lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL only for types...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
2
3         * lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL
4         only for types where LTO sets them.
5         * tree.c (build_array_type_1): Do ont set TYPE_CANONICAL for LTO.
6         (make_vector_type): Likewise.
7         (gimple_canonical_types_compatible_p): Use canonical_type_used_p.
8         * tree.h (canonical_type_used_p): New inline.
9         * alias.c (get_alias_set): Handle structural equality for all
10         types that pass canonical_type_used_p.
11         (record_component_aliases): Look through all types with
12         record_component_aliases for possible pointers; sanity check that
13         the alias sets match.
14
15 2015-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
16
17         * config/rs6000/rs6000.md (lround<mode>di2): Remove constraints.
18
19 2015-11-24  Jan Hubicka  <hubicka@ucw.cz>
20
21         * tree.c (free_node): New function.
22         (type_hash_canon): Use it.
23         * tree.h (free_node): Declare.
24
25 2015-11-24  David Edelsohn  <dje.gcc@gmail.com>
26             Michael Meissner  <meissner@linux.vnet.ibm.com>
27
28         * config/rs6000/rs6000.md (UNSPEC_XSRDPI): New unspec.
29         (Fv2): New mode attribute to be used when ISA 2.07 instructions
30         are used on SF values, and ISA 2.06 instructions on DF values.
31         (add<mode>3_fpr): Use <Fv2> instead of <Fv>.
32         (sub<mode>3_fpr): Use <Fv2> instead of <Fv>.
33         (mul<mode>3_fpr): Use <Fv2> instead of <Fv>.
34         (div<mode>3_fpr): Use <Fv2> instead of <Fv>.
35         (sqrt<mode>2): Use <Fv2> instead of <Fv>.
36         (fre<Fs>): Use <Fv2> instead of <Fv>.
37         (rsqrt<mode>2): Use <Fv2> instead of <Fv>.
38         (cmp<mode>_fpr): Use <Fv2> instead of <Fv>.
39         (xsrdpi<mode>): Add support for the lround function.
40         (lround<mode>di2): Likewise.
41         (fma<mode>4_fpr): Use <Fv2> instead of <Fv>.
42         (fms<mode>4_fpr): Use <Fv2> instead of <Fv>.
43         (nfma<mode>4_fpr): Use <Fv2> instead of <Fv>.
44         (nfms<mode>4_fpr): Use <Fv2> instead of <Fv>.
45
46 2015-11-24  Aditya Kumar  <aditya.k7@samsung.com>
47             Sebastian Pop  <s.pop@samsung.com>
48
49         PR tree-optimization/67984
50         * graphite-isl-ast-to-gimple.c (is_constant): New.
51         (get_rename): Call is_constant.
52         (get_new_name): Same.
53
54 2015-11-24  Aditya Kumar  <aditya.k7@samsung.com>
55             Sebastian Pop  <s.pop@samsung.com>
56
57         * graphite-dependences.c: Only include graphite.h.
58         * graphite-isl-ast-to-gimple.c: Same.
59         * graphite-optimize-isl.c: Same.
60         * graphite-poly.c: Same.
61         * graphite-scop-detection.c: Same.
62         * graphite-sese-to-poly.c: Same.
63         * graphite.c: Same.
64         * graphite-isl-ast-to-gimple.h: Move to graphite.h.
65         * graphite-poly.h: Same.
66         * graphite-scop-detection.h: Same.
67         * graphite.h: New.
68
69 2015-11-24  Pierre-Marie de Rodat  <derodat@adacore.com>
70
71         * dwarf2out.c (gen_decl_die): Generate DW_TAG_imported_* instead of
72         DW_TAG_namespace for IMPORTED_DECL declarations.  Call
73         dwarf2out_imported_module_or_decl_1 for all DWARF versions as this
74         function already takes care of checking what it can emit.
75
76 2015-11-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
77
78         * doc/invoke.texi (-fpic): Add the AArch64 limit.
79         (-fPIC): Add AArch64.
80
81 2015-11-24  Tom de Vries  <tom@codesourcery.com>
82
83         * tree-ssa-loop-im.c (tree_ssa_lim): Make static.
84         (pass_lim::execute): Allow to run outside pass_tree_loop.
85
86 2015-11-24  Wilco Dijkstra  <wdijkstr@arm.com>
87
88         * gcc/config/aarch64/aarch64.md (add<mode>3):
89         Block early expansion into 2 add instructions.
90         (add<mode>3_pluslong): New pattern to combine complex
91         immediates into 2 additions.
92
93 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
94
95         PR target/66217
96         PR target/67677
97         PR target/68332
98         * config/rs6000/predicates.md (and_operand): Check that the operand
99         is a const_int before calling rs6000_is_valid_and_mask.
100
101 2015-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
102
103         * config/aarch64/aarch64.md (*condjump): Rename to...
104         (condjump): ... This.
105         (*compare_condjump<mode>): New define_insn_and_split.
106         (*compare_cstore<mode>_insn): Likewise.
107         (*cstore<mode>_insn): Rename to...
108         (cstore<mode>_insn): ... This.
109         * config/aarch64/iterators.md (CMP): Handle ne code.
110         * config/aarch64/predicates.md (aarch64_imm24): New predicate.
111
112 2015-11-24  Mikhail Maltsev  <maltsevm@gmail.com>
113
114         PR target/68497
115         * config/i386/i386.c (output_387_binary_op): Fix assertion for
116         -fno-checking case.
117
118 2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
119
120         * tree-ssa-uncprop.c (struct val_ssa_equiv_hash_traits): Remove.
121         (val_ssa_equiv_hash_traits::remove): Likewise.
122         (pass_uncprop::execute): Adjust.
123
124 2015-11-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
125
126         * hash-map-traits.h (simple_hashmap_traits ::remove): call
127         destructors on values that are being removed.
128         * mem-stats.h (hash_map): Pass type of values to
129         simple_hashmap_traits.
130         * tree-sra.c (sra_deinitialize): Remove work around for hash
131         maps not destructing values.
132         * genmatch.c (sinfo_hashmap_traits): Adjust.
133         * tree-ssa-uncprop.c (val_ssa_equiv_hash_traits): Likewise.
134
135 2015-11-24  Richard Biener  <rguenther@suse.de>
136             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
137
138         PR middle-end/68375
139         * cfgloop.c (get_loop_body_in_bfs_order): Restructure loop to avoid
140         bogus assertion.
141
142 2015-11-24  Jakub Jelinek  <jakub@redhat.com>
143
144         PR target/68483
145         * tree-vect-generic.c (lower_vec_perm): If VEC_PERM_EXPR
146         is valid vec_shr pattern, don't lower it even if can_vec_perm_p
147         returns false.
148         * optabs.c (shift_amt_for_vec_perm_mask): Return NULL_RTX
149         whenever first is nelt or above.  Don't mask expected with
150         2 * nelt - 1.
151
152 2015-11-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
153
154         PR c/68337
155         * gimple-fold.c: Include ipa-chkp.h.
156         (gimple_fold_builtin_memory_op): Don't fold call if we
157         are going to instrument it and it may copy pointers.
158
159 2015-11-24  Bernd Schmidt <bschmidt@redhat.com>
160             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
161
162         PR rtl-optimization/68194
163         PR rtl-optimization/68328
164         PR rtl-optimization/68185
165         * ree.c (combine_reaching_defs): Reject copy_needed case if
166         copies_list is not empty.
167
168 2015-11-24  Richard Biener  <rguenther@suse.de>
169
170         PR middle-end/68221
171         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
172         use mem_ref_offset.
173
174 2015-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
175
176         PR rtl-optimization/68381
177         * combine.c (is_parallel_of_n_reg_sets): Return false if the pattern
178         is poisoned.
179
180 2015-11-23  Nick Clifton  <nickc@redhat.com>
181             Jeff Law  <law@redhat.com>
182
183         * ree.c (add_removable_extension): Avoid mis-optimizing cases where
184         the source/dest of the target extension require a different number of
185         hard registers.
186         (combine_set_extension): Remove #if 0 code.
187
188 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
189             Sebastian Pop  <s.pop@samsung.com>
190
191         PR tree-optimization/68314
192         * graphite-optimize-isl.c (optimize_isl): Do not call isl_union_map_is_equal.
193         * graphite-poly.c (new_scop): Remove original_schedule.
194         (free_scop): Same.
195         * graphite-poly.h (struct scop): Same.
196         * graphite-sese-to-poly.c (build_pbb_minimal_scattering_polyhedrons): Remove.
197         (build_pbb_scattering_polyhedrons): Add back.
198         (build_scop_minimal_scattering): Remove.
199         (build_scop_scattering): Add back.
200         (build_scop_original_schedule): Remove.
201         (build_poly_scop): Revert to only call build_scop_scattering.
202
203 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
204             Sebastian Pop  <s.pop@samsung.com>
205
206         PR tree-optimization/68493
207         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes): Add
208         missing early return when codegen_error is set.
209
210 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
211             Sebastian Pop  <s.pop@samsung.com>
212
213         PR tree-optimization/68279
214         * graphite-poly.c (new_scop): Remove poly_scop_p.
215         * graphite-poly.h (struct scop): Same.
216         (build_poly_scop): Declare.
217         * graphite-sese-to-poly.c: Do not include graphite-sese-to-poly.h.
218         (cleanup_loop_iter_dom): New.
219         (build_loop_iteration_domains): Early return when scev analysis fails.
220         (create_pw_aff_from_tree): Same.
221         (add_condition_to_pbb): Same.
222         (add_conditions_to_domain): Same.
223         (add_conditions_to_constraints): Same.
224         (build_scop_iteration_domain): Same.
225         (build_poly_scop): Same.  Do not initialize poly_scop_p.
226         * graphite-sese-to-poly.h: Remove.
227         * graphite.c: Do not include graphite-sese-to-poly.h.
228         (graphite_transform_loops): Stop before code generation when
229         build_poly_scop fails.
230         * sese.c (scalar_evolution_in_region): Add fixme note about scev
231         analysis.
232
233 2015-11-23  Aditya Kumar  <aditya.k7@samsung.com>
234             Sebastian Pop  <s.pop@samsung.com>
235
236         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
237         Remove call to update_ssa.
238         * sese.c (sese_insert_phis_for_liveouts): Same.
239
240 2015-11-23  Marek Polacek  <polacek@redhat.com>
241
242         PR tree-optimization/68455
243         * tree-vrp.c (extract_range_from_binary_expr_1): Don't call
244         extract_range_from_multiplicative_op_1 on symbolic ranges.
245
246 2015-11-23  Richard Henderson  <rth@redhat.com>
247
248         * optabs.def (uaddv4_optab, usubv4_optab): New.
249         * internal-fn.c (expand_addsub_overflow): Use them.
250         * doc/md.texi (Standard Names): Add uaddv<m>4, usubv<m>4.
251
252         * config/i386/i386.c (ix86_cc_mode): Extend add overflow check
253         to reversed operands.
254         * config/i386/i386.md (uaddv<SWI>4, usubv<SWI>4): New.
255         (*add<SWI>3_cconly_overflow_1): Rename *add<SWI>3_cconly_overflow.
256         (*add<SWI>3_cc_overflow_1): Rename *add<SWI>3_cc_overflow.
257         (*addsi3_zext_cc_overflow_1): Rename *add3_zext_cc_overflow.
258         (*add<SWI>3_cconly_overflow_2): New.
259         (*add<SWI>3_cc_overflow_2): New.
260         (*addsi3_zext_cc_overflow_2): New.
261
262 2015-11-23  Richard Biener  <rguenther@suse.de>
263
264         PR tree-optimization/68465
265         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children):
266         Also record equalities from multiple predecessor blocks if
267         only one non-backedge exists.
268
269 2015-11-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
270
271         PR target/68363
272         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Reject arguments
273         that are not INSN_P.
274
275 2015-11-23  Bilyan Borisov  <bilyan.borisov@arm.com>
276
277         * config/aarch64/aarch64-builtins.c
278         (aarch64_gimple_fold_builtin): Fold FMULX.
279
280 2015-11-23  David Edelsohn  <dje.gcc@gmail.com>
281
282         * system.h: Don't poison calloc and strdup if USES_ISL is defined.
283         * graphite-dependences.c: Define USES_ISL.  Include ISL header files
284         after GCC header files and before graphite header files.
285         * graphite-dependences.c: Same.
286         * graphite-isl-ast-to-gimple.c: Same.
287         * graphite-optimize-isl.c: Same.
288         * graphite-poly.c: Same.
289         * graphite-scop-detection.c: Same.
290         * graphite-sese-to-poly.c: Same.
291         * graphite.c: Same.
292
293 2015-11-23  Richard Biener  <rguenth@gcc.gnu.org>
294             Jiong Wang  <jiong.wang@arm.com>
295
296         PR tree-optimization/68317
297         PR tree-optimization/68326
298         * tree-vrp.c (adjust_range_with_scev): Call drop_tree_overflow if the
299         final min and max are not infinity.
300
301 2015-11-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
302             Richard Biener  <rguenther@suse.de>
303
304         PR tree-optimization/68327
305         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
306         compute vectype for non-relevant mask producers.
307         * gcc/tree-vect-stmts.c (vectorizable_comparison): Check stmt
308         relevance earlier.
309
310 2015-11-23  Tom de Vries  <tom@codesourcery.com>
311
312         PR tree-optimization/68460
313         * tree-parloops.c (gather_scalar_reductions): Also call
314         free_stmt_vec_info_vec if simple_loop_info == NULL.
315
316 2015-11-23  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
317
318         * opts.c (finish_options): Allow -fsanitize-recover=address for
319         userspace sanitization.
320         * asan.c (asan_expand_check_ifn): Redefine recover_p.
321         * doc/invoke.texi (fsanitize-recover): Update documentation.
322
323 2015-11-23  Tom de Vries  <tom@codesourcery.com>
324
325         * omp-low.c (build_receiver_ref): Mark by_ref mem_ref as non-trapping.
326
327 2015-11-23  Richard Biener  <rguenther@suse.de>
328
329         PR tree-optimization/68445
330         * tree-vect-slp.c (vect_create_mask_and_perm): Properly use
331         two different strides.
332
333 2015-11-23  Robin Dapp  <rdapp@linux.vnet.ibm.com>
334
335         * config/s390/s390.h: Add new symref flags, _NOTALIGN2 etc.
336         * config/s390/s390.c (s390_check_symref_alignment): Use new
337         symref flags, early abort on wrong alignment
338         (s390_secondary_reload): Use new symref flags.
339         (s390_encode_section_info): Likewise.
340         * config/s390/predicates.md: Likewise.
341
342 2015-11-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
343
344         PR target/68390
345         * config/arm/arm.c (arm_function_ok_for_sibcall): Get function type
346         for indirect function call.
347
348 2015-11-22  Bilyan Borisov  <bilyan.borisov@arm.com>
349
350         * config/aarch64/aarch64-simd.md
351         (*aarch64_mulx_elt_<vswap_width_name><mode>, VDQSF): New.
352         (*aarch64_mulx_elt<mode>, VDQF): Likewise.
353         (*aarch64_mulx_elt_to_64v2df): Likewise.
354         (*aarch64_vgetfmulx<mode>, VDQF_DF): Likewise.
355         * config/aarch64/arm_neon.h (vmulx_lane_f32): New.
356         (vmulx_lane_f64): Likewise.
357         (vmulxq_lane_f32): Refactored & moved.
358         (vmulxq_lane_f64): Likewise.
359         (vmulx_laneq_f32): New.
360         (vmulx_laneq_f64): Likewise.
361         (vmulxq_laneq_f32): Likewise.
362         (vmulxq_laneq_f64): Likewise.
363         (vmulxs_lane_f32): Likewise.
364         (vmulxs_laneq_f32): Likewise.
365         (vmulxd_lane_f64): Likewise.
366         (vmulxd_laneq_f64): Likewise.
367
368 2015-11-21  Jan Hubicka  <hubicka@ucw.cz>
369
370         * tree.c (build_pointer_type_for_mode,build_reference_type_for_mode):
371         In LTO we do not compute TYPE_CANONICAL of pointers.
372         (gimple_canonical_types_compatible_p): Improve coments; sanity check
373         that pointers do not have canonical type that would make us believe
374         they are different.
375         * alias.c (get_alias_set): Do structural type equality on pointers;
376         enable pointer path for LTO; also glob pointer to vector with pointer
377         to vector element; glob pointers and references for LTO; do more strict
378         sanity checking about build_pointer_type returning the canonical type
379         which is also the main variant.
380         (record_component_aliases): When component type is pointer and we
381         do LTO; record void_type_node alias set.
382
383 2015-11-21  Nathan Sidwell  <nathan@acm.org>
384
385         * config/nvptx/nvptx.md (clz<mode>2): Use operand 1 for type.
386
387         * config/nvptx/nvptx.c (write_function_decl_and_comment): Print
388         leading blank line.
389         (write_func_decl_from_insn): Likewise.
390         (init_output_initializer, nvptx_assemble_undefined_decl): Likewise.
391         (nvptx_file_end): Likewise.
392         (nvptx_function_end): Undent output.
393         (nvptx_expand_call): Fix formatting.
394         (nvptx_output_call_insn): Indent output.
395         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGNED_DECL_COMMON,
396         ASM__OUTPUT_ALIGNED_DECL_LOCAL): Print leading blank line.
397
398 2015-11-21  Jakub Jelinek  <jakub@redhat.com>
399
400         PR debug/66432
401         * tree-inline.c (copy_debug_stmt): If
402         gimple_debug_source_bind_get_value is DECL_ORIGIN of a PARM_DECL
403         in decl_debug_args, don't call remap_gimple_op_r on it.
404
405 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
406
407         * ipa-icf.c (sem_item::add_type): Do not look for TYPE_CANONICAL;
408         do not check AGGREGATE_TYPE_P when adding TYPE_MODE;
409         Check that all record types are complete.
410         * ipa-icf-gimple.c (func_checker::compatible_types_p): Do not
411         compare alias sets for types w/o alias sets.
412
413 2015-11-20  Eric Botcazou  <ebotcazou@adacore.com>
414
415         * config/sparc/sparc.md (umulxhi_vis): Move around.
416         (*umulxhi_sp64): Likewise.
417         (umulxhi_v8plus): Likewise.
418         (xmulx_vis): Likewise.
419         (*xmulx_sp64): Likewise.
420         (xmulx_v8plus): Likewise.
421         (xmulxhi_vis): Likewise.
422         (*xmulxhi_sp64): Likewise.
423         (xmulxhi_v8plus): Likewise.
424
425 2015-11-20  David Malcolm  <dmalcolm@redhat.com>
426
427         PR 62314
428         * diagnostic-show-locus.c (colorizer::set_fixit_hint): New.
429         (class layout): Update comment
430         (layout::print_any_fixits): New method.
431         (layout::move_to_column): New method.
432         (diagnostic_show_locus): Add call to layout.print_any_fixits.
433
434 2015-11-20  Jakub Jelinek  <jakub@redhat.com>
435
436         PR middle-end/68221
437         * omp-low.c (lower_rec_input_clauses): If C/C++ array reduction
438         has non-zero bias, subtract it in integer type instead of
439         pointer plus of negated bias.
440
441         PR middle-end/68339
442         * omp-low.c (expand_simd_clones): Call node->get_body () before
443         allocating stuff in GC.
444
445 2015-11-20  Jim Wilson  <jim.wilson@linaro.org>
446
447         * tree-vect-data-refs.c (compare_tree): Call STRIP_NOPS.
448
449 2015-11-20  Evandro Menezes  <e.menezes@samsung.com>
450
451         * config/aarch64/aarch64.md (predicated): Copy attribute from
452         "arm.md".
453         * config/arm/arm.md (predicated): Added description.
454
455 2015-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
456
457         * config/arm/arm.c (arm_option_override): Require TARGET_32BIT
458         for unaligned_access.
459         * config/arm/arm.md (unaligned_loadsi): Remove redundant TARGET_32BIT
460         from matching condition.
461         (unaligned_loadhis): Likewise.
462         (unaligned_loadhiu): Likewise.
463         (unaligned_storesi): Likewise.
464         (unaligned_storehi): Likewise.
465
466 2015-11-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
467
468         PR target/68149
469         * config/arm/arm.md (unaligned_loaddi): Delete.
470         (unaligned_storedi): Likewise.
471         * config/arm/arm.c (gen_movmem_ldrd_strd): Don't generate
472         unaligned DImode memory ops.  Instead perform two back-to-back
473         unaligned SImode ops.
474
475 2015-11-20  Nathan Sidwell  <nathan@codesourcery.com>
476             James Norris  <jnorris@codesourcery.com>
477
478         * config/nvptx/nvptx.c (nvptx_use_anchors_for_symbol_p): New.
479         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Override.
480
481 2015-11-20  Alan Hayward <alan.hayward@arm.com>
482
483         PR tree-optimization/68413
484         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Cache
485         evolution base
486         (vectorizable_reduction): Use cached base
487
488 2015-11-20  Tom de Vries  <tom@codesourcery.com>
489
490         * tree-parloops.c (build_new_reduction): Fix trailing whitespace in
491         dump-file string.
492         (try_create_reduction_list): Same.  Fix typo in dump-file string.
493
494 2015-11-20  Eric Botcazou  <ebotcazou@adacore.com>
495
496         * doc/md.texi (Standard Names): Move entry for addptr3 around,
497         add entries for addv4, subv4, mulv4, umulv4 and negv3, fixes
498         glitch in entries for cbranch4 and jump.
499
500 2015-11-20  Tom de Vries  <tom@codesourcery.com>
501
502         PR tree-optimization/68373
503         * tree-scalar-evolution.c (final_value_replacement_loop): Factor out
504         of ...
505         (scev_const_prop): ... here.
506         * tree-scalar-evolution.h (final_value_replacement_loop): Declare.
507         * tree-parloops.c (try_create_reduction_list): Call
508         final_value_replacement_loop.
509
510 2015-11-20  Bin Cheng  <bin.cheng@arm.com>
511
512         PR tree-optimization/52272
513         * tree-ssa-loop-ivopts.c (struct iv_common_cand): New struct.
514         (struct iv_common_cand_hasher): New struct.
515         (iv_common_cand_hasher::hash): New function.
516         (iv_common_cand_hasher::equal): New function.
517         (struct ivopts_data): New fields, iv_common_cand_tab and
518         iv_common_cands.
519         (tree_ssa_iv_optimize_init): Initialize above fields.
520         (record_common_cand, common_cand_cmp): New functions.
521         (add_iv_candidate_derived_from_uses): New function.
522         (add_iv_candidate_for_use): Record iv_common_cands derived from
523         iv use in hash table, instead of adding candidates directly.
524         (add_iv_candidate_for_uses): Call add_iv_candidate_derived_from_uses.
525         (record_important_candidates): Add important candidates to iv uses'
526         related_cands.  Always keep related_cands for future use.
527         (try_add_cand_for): Use iv uses' related_cands.
528         (free_loop_data, tree_ssa_iv_optimize_finalize): Release new fields
529         in struct ivopts_data, iv_common_cand_tab and iv_common_cands.
530
531 2015-11-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
532
533         * config/s390/s390.md ("bswaphi2"): New pattern.
534
535 2015-11-20  Dominik Vogt  <vogt@linux.vnet.ibm.com>
536
537         * config/s390/s390.md (GPR1_REGNUM): New constant.
538         ("*trunc<BFP:mode><DFP_ALL:mode>2")
539         ("*trunc<DFP_ALL:mode><BFP:mode>2")
540         ("trunc<BFP:mode><DFP_ALL:mode>2")
541         ("trunc<DFP_ALL:mode><BFP:mode>2")
542         ("*extend<BFP:mode><DFP_ALL:mode>2")
543         ("*extend<DFP_ALL:mode><BFP:mode>2")
544         ("extend<BFP:mode><DFP_ALL:mode>2")
545         ("extend<DFP_ALL:mode><BFP:mode>2"): Clobber r1.
546
547 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
548             Sebastian Pop  <s.pop@samsung.com>
549
550         PR tree-optimization/68428
551         * graphite-scop-detection.c (harmful_stmt_in_region): Do not iterate
552         over basic blocks outside the scop.
553
554 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
555             Sebastian Pop  <s.pop@samsung.com>
556
557         PR tree-optimization/68341
558         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Remove
559         gcc_unreachable and safely fail codegen.
560         (copy_loop_close_phi_args): Do not insert merge phis in a basic
561         block with loop phi nodes.
562         (edge_for_new_close_phis): New.
563         (copy_bb_and_scalar_dependences): Call edge_for_new_close_phis.
564
565 2015-11-19  Nathan Sidwell  <nathan@acm.org>
566
567         * config/nvptx/nvptx.h (SUPPORTS_WEAK): Define.
568         * config/nvptx/nvptx.c (nvptx_write_function_decl): Support DECL_WEAK.
569         (nvptx_declare_objec_name): Likewise.
570
571 2015-11-19  Aditya Kumar  <aditya.k7@samsung.com>
572
573         * graphite-isl-ast-to-gimple.c (get_true_edge_from_guard_bb): Move...
574         (get_false_edge_from_guard_bb): Move...
575         * sese.c (get_false_edge_from_guard_bb)
576         (get_true_edge_from_guard_bb): ... here.
577
578 2015-11-19  David Edelsohn  <dje.gcc@gmail.com>
579
580         Revert
581         2015-11-18  Alan Modra  <amodra@gmail.com>
582
583         * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
584         type-limits warning.
585
586
587 2015-11-19  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
588
589         * tree.h (desired_pro_or_demotion_p): New function.
590         * tree-vrp.c (simplify_cond_using_ranges): Call it.
591
592 2015-11-19  Michael Matz  <matz@suse.de>
593
594         * fwprop.c (update_uses): Use flag_checking instead of
595         gcc_checking_assert.
596
597 2015-11-19  David Malcolm  <dmalcolm@redhat.com>
598
599         * doc/gty.texi (Support for inheritance): Fix missing
600         parentheses in example.
601
602 2015-11-19  Marek Polacek  <polacek@redhat.com>
603
604         PR tree-optimization/68431
605         * tree-vrp.c (extract_range_from_binary_expr_1): Fix condition.
606
607 2015-11-19  Nathan Sidwell  <nathan@acm.org>
608
609         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>_1,
610         atomic_exchange<mode>): Input values can be immediates.
611
612 2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>
613
614         PR lto/61313
615         * configure.ac (PLUGIN_LD_SUFFIX): Do not touch the value specified
616         by the user.
617         * configure: Regenerate.
618
619 2015-11-19  Eric Botcazou  <ebotcazou@adacore.com>
620
621         PR target/68408
622         * config/sparc/sp-elf.h (CTORS_SECTION_ASM_OP): Undefine.
623         (DTORS_SECTION_ASM_OP): Likewise.
624
625 2015-11-19  Jakub Jelinek  <jakub@redhat.com>
626
627         PR rtl-optimization/68376
628         * ifcvt.c (noce_try_abs): Disable one_cmpl optimization if
629         encountering x <= 0 ? ~x : x or x > 0 ? ~x : x.
630
631 2015-11-19  Richard Biener  <rguenther@suse.de>
632
633         PR middle-end/68117
634         * tree-ssa.c (delete_tree_ssa): Revert removal of call to
635         redirect_edge_var_map_destroy.
636
637 2015-11-19  Jakub Jelinek  <jakub@redhat.com>
638
639         PR target/67770
640         * config/i386/i386.md (simple_return): Disable if
641         ix86_static_chain_on_stack is true.
642
643 2015-11-19  Richard Sandiford  <richard.sandiford@arm.com>
644
645         PR bootstrap/68393
646         * internal-fn.c (expand_direct_optab_fn): Handle SUBREG_PROMOTED_VAR_P
647         destinations.
648
649 2015-11-18  Jeff Law  <law@redhat.com>
650
651         PR tree-optimization/68198
652         * tree-ssa-threadupdate.c (valid_jump_thread_path): Distinguish
653         between threading a multi-way branch and a thread path that contains
654         a multi-way branch.  Disallow the case where a path contains a
655         multi-way branch and does not thread a multi-way branch.
656         (thread_through_all_blocks): Update comment.
657
658 2015-11-18  Joseph Myers  <joseph@codesourcery.com>
659
660         PR c/65083
661         * ginclude/stdatomic.h (atomic_thread_fence, atomic_signal_fence)
662         (atomic_flag_test_and_set, atomic_flag_test_and_set_explicit)
663         (atomic_flag_clear, atomic_flag_clear_explicit): Declare as
664         functions before defining as macros.
665
666 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
667
668         * config/nvptx/nvptx.c (nvptx_process_pars): Fix whitespace.
669         (nvptx_record_offload_symbol): Remove code compensating for lack
670         of default dimension handling.
671         (nvptx_goacc_validate_dims): Remove incorrect ARG_UNUSED markers.
672
673 2015-11-18  Aditya Kumar  <aditya.k7@samsung.com>
674
675         * graphite-isl-ast-to-gimple.c (copy_loop_phi_args): Change the return
676         type to bool for early exit.
677         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Early return
678         in case of error.
679         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
680         (add_phi_arg_for_new_expr): Enable codegen for if-block where one
681         predecessor dominates the other.
682         (translate_isl_ast_to_gimple::copy_cond_phi_args): Fix. When the
683         element is not found it returns -1.
684         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Bail
685         out early when codegen fails.
686         (graphite_regenerate_ast_isl): Remove codegen region when pending
687         phis could not be generated.
688
689 2015-11-18  Aditya Kumar  <aditya.k7@samsung.com>
690
691         * graphite-isl-ast-to-gimple.c (struct ast_build_info): Remove
692         semicolon.
693         (class translate_isl_ast_to_gimple): Indentation.
694         (translate_pending_phi_nodes): Comment.
695         (add_parameters_to_ivs_params): Moved from sese.c inside class
696         translate_isl_ast_to_gimple.
697         (get_max_schedule_dimensions): Same.
698         (generate_isl_context): Same.
699         (extend_schedule): Same.
700         (generate_isl_schedule): Same.
701         (set_options): Same.
702         (scop_to_isl_ast): Same.
703         (is_valid_rename): Same.
704         (get_rename): Same.
705         (get_rename_from_scev): Same.
706         (get_def_bb_for_const): Same.
707         (get_new_name): Same.
708         (collect_all_ssa_names): Same.
709         (copy_loop_phi_args): Same.
710         (copy_loop_phi_nodes): Same.
711         (copy_loop_close_phi_args): Same.
712         (copy_loop_close_phi_nodes): Same.
713         (copy_cond_phi_args): Same.
714         (copy_cond_phi_nodes): Same.
715         (graphite_copy_stmts_from_block): Same.
716         (copy_bb_and_scalar_dependences): Same.
717         (add_phi_arg_for_new_expr): Same.
718         (rename_uses): Same.
719         (set_rename): Same.
720         (set_rename_for_each_def): Same.
721         (gsi_insert_earliest): Same.
722         (rename_all_uses): Same.
723         (codegen_error_p): Same.
724         (print_isl_ast_node): Same.
725         (translate_isl_ast_for_loop): Call function codegen_error_p.
726         (translate_isl_ast_to_gimple::translate_isl_ast): Same.
727         (translate_isl_ast_node_user): Make nb_loops const and release
728         iv_map before exit.
729         (get_true_edge_from_guard_bb): Move all free-functions early.
730         (get_false_edge_from_guard_bb): Same.
731         (bb_contains_loop_close_phi_nodes): Same.
732         (bb_contains_loop_phi_nodes): Same.
733         (is_loop_closed_ssa_use):  Same.
734         (number_of_phi_nodes): Same.
735         (phi_uses_name): Same.
736         (later_of_the_two): Same.
737         (substitute_ssa_name):
738         (get_edges): Same.
739         (get_loc): Same.
740         (get_loop_init_value): Same.
741         (find_init_value): Same.
742         (find_init_value_close_phi): Same.
743         (ast_build_before_for): Same.
744         (graphite_regenerate_ast_isl): Formatting changes.
745         * graphite-scop-detection.c (build_cross_bb_scalars_use): Same.
746         * sese.c (get_rename): Move to graphite-isl-ast-to-gimple.c
747         (set_rename): Same.
748         (gsi_insert_earliest): Same.
749         (collect_all_ssa_names): Same.
750         (rename_all_uses): Same.
751         (rename_uses): Same.
752         (get_def_bb_for_const): Same.
753         (copy_loop_phi_nodes): Same.
754         (copy_loop_close_phi_args): Same.
755         (copy_loop_close_phi_nodes): Same.
756         (copy_cond_phi_args): Same.
757         (copy_cond_phi_nodes): Same.
758         (set_rename_for_each_def): Same.
759         (graphite_copy_stmts_from_block): Same.
760         (copy_bb_and_scalar_dependences): Same.
761         (if_region_set_false_region): Same.
762         (scev_analyzable_p): Same.
763         * sese.h: Delete extern functions moved to graphite-isl-ast-to-gimple.c.
764
765 2015-11-18  Andreas Tobler  <andreast@gcc.gnu.org>
766
767         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Bring in the
768         commit from r125920 for FreeBSD.
769
770 2015-11-18  Jason Merrill  <jason@redhat.com>
771
772         * ggc-page.c (ggc_globals): Change finalizers and vec_finalizers
773         to be vecs of vecs.
774         (add_finalizer): Split out from ggc_internal_alloc.
775         (ggc_handle_finalizers): Run finalizers for the current depth.
776         (init_ggc, ggc_pch_read): Reserve space for finalizers.
777
778 2015-11-18  Sandra Loosemore  <sandra@codesourcery.com>
779
780         PR target/68410
781         * config/nios2/nios2.c (cdx_and_immed): Remove duplicate tests
782         from || expression.
783
784 2015-11-18  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
785
786         * config/avr/avr-mcus.def: Add new avr4 devices atmega48pb and
787         atmega88pb. Add new avr5 devices ata5791, ata8210, ata8510, atmega168pb
788         and atmega328pb.
789         * doc/avr-mmcu.texi: Regenerate.
790
791 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
792
793         * config/nvptx/nvptx.c (bb_pair_t, bb_pair_vec_t): New types.
794         (pseudo_node_t, struct bracket, bracket_vec_t): New types.
795         (struct bb_sese): New struct.
796         (bb_sese::~bb_sese, bb_sese::append, bb_sese::remove): New.
797         (BB_GET_SESE, BB_SET_SESE): Define.
798         (nvptx_sese_number, nvptx_sese_pseudo, nvptx_sese_color): New.
799         (nvptx_find_sese): New.
800         (nvptx_neuter_pars): Find SESE regions when optimizing.
801
802 2015-11-18  Alan Modra  <amodra@gmail.com>
803
804         * config/rs6000/rs6000.c (use_toc_relative_ref): Ignore
805         type-limits warning.
806
807 2015-11-18  Richard Sandiford  <richard.sandiford@arm.com>
808
809         PR bootstrap/68406
810         * hash-set.h (hash_set::traverse): Expand Key typedef.
811
812 2015-11-18  Martin Liska  <mliska@suse.cz>
813
814         * config/arm/arm.c (arm_valid_target_attribute_p): Finalize
815         options struct.
816
817 2015-11-18  Nathan Sidwell  <nathan@codesourcery.com>
818
819         * config/nvptx/nvptx.c (global_lock_var): New.
820         (nvptx_global_lock_addr): New.
821         (nvptx_lockless_update): Recomment and adjust for clarity.
822         (nvptx_lockfull_update): New.
823         (nvptx_reduction_update): New.
824         (nvptx_goacc_reduction_fini): Call it.
825
826 2015-11-18  Bernd Schmidt  <bschmidt@redhat.com>
827
828         * regrename.h (struct du_head): Add target_data_1 and target_data_2
829         fields.
830         * regrename.c (create_new_chain): Clear entire struct after allocating.
831
832         * config/i386/i386.opt (mmitigate-rop): New option.
833         * doc/invoke.texi (mmitigate-rop): Document.
834         * config/i386/i386.c: Include "regrename.h".
835         (ix86_rop_should_change_byte_p, reg_encoded_number,
836         ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): New
837         static functions.
838         (ix86_reorg): Call ix86_mitigate_rop if -fmitigate-rop.
839         * config/i386/i386.md (attr "modrm_class"): New.
840         (cmp<mode>_ccno_1, mov<mode>_xor, movstrict<mode>_xor,
841         x86_mov<mode>cc_0_m1. x86_mov<mode>cc_0_m1_se)
842         (x86_mov<mode>cc_0_m1_neg): Override modrm_class attribute.
843
844 2015-11-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
845
846         PR target/68405
847         * config/i386/i386.c (ix86_expand_mask_vec_cmp): Add missing break.
848
849 2015-11-18  Jakub Jelinek  <jakub@redhat.com>
850
851         PR tree-optimization/68157
852         * tree-ssa-reassoc.c (attempt_builtin_powi): Set uid of
853         pow_stmt or mul_stmt from stmt's uid.
854         (reassociate_bb): Set uid of mul_stmt from stmt's uid.
855
856 2015-11-18  Martin Liska  <mliska@suse.cz>
857
858         * haifa-sched.c (haifa_finish_h_i_d): Release reg_set_list.
859
860 2015-11-18  Martin Liska  <mliska@suse.cz>
861
862         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
863         Fix GNU coding style.
864         (find_def_preds): Use auto_vec.
865         (destroy_predicate_vecs): Change signature of the function.
866         (prune_uninit_phi_opnds_in_unrealizable_paths): Use the
867         new signature.
868         (simplify_preds_4): Use destroy_predicate_vecs instread of
869         just releasing preds vector.
870         (normalize_preds): Likewise.
871         (is_use_properly_guarded): Use new signature of
872         destroy_predicate_vecs.
873         (find_uninit_use): Likewise.
874
875 2015-11-18  Richard Biener  <rguenther@suse.de>
876
877         PR tree-optimization/67790
878         * tree-vect-loop.c (vect_is_simple_reduction_1): Remove
879         IL rewrite for MINUS_EXPR reductions, rename back to ...
880         (vect_is_simple_reduction): ... this, removing the wrapper.
881         (vect_force_simple_reduction): Adjust.
882         (vectorizable_reduction): Adjust reduc_index for MINUS_EXPR
883         reductions and make use if reduc_index in all places.  For
884         the final reduction of MINUS_EXPR use PLUS_EXPR.
885
886 2015-11-18  Alan Modra  <amodra@gmail.com>
887
888         * configure.ac (POWERPC64_TOC_POINTER_ALIGNMENT): Pass -z norelro
889         to ld.
890         * configure: Regenerate.
891
892 2015-11-17  Tom de Vries  <tom@codesourcery.com>
893
894         * tree-ssa-loop.c (pass_tree_loop_init::execute): Improve comments.
895
896 2015-11-17  Tom de Vries  <tom@codesourcery.com>
897
898         * tree-scalar-evolution.c (scev_const_prop): Dump details if replacing
899         uses of ssa_name with constant.
900
901 2015-11-17  Tom de Vries  <tom@codesourcery.com>
902
903         * tree-ssa-ccp.c (do_ssa_ccp): Clear LOOP_CLOSED_SSA in loops state if
904         something changed.
905
906 2015-11-17  Tom de Vries  <tom@codesourcery.com>
907
908         * cfgloop.h (struct loop): Add in_oacc_kernels_region field.
909         * omp-low.c (mark_loops_in_oacc_kernels_region): New function.
910         (expand_omp_target): Call mark_loops_in_oacc_kernels_region.
911
912 2015-11-17  Bernd Schmidt  <bschmidt@redhat.com>
913
914         * regrename.c (regrename_find_superclass): New function, code moved
915         from ...
916         (rename_chains): ... here.  Call it.
917         * regrename.h (regrename_find_superclass): Declare.
918
919         * regrename.c (record_out_operands): Terminate earlyclobbered
920         operands here.
921
922         PR target/66785
923         * regrename.c (record_operand_use): Keep track of failed operands
924         and stop appending if we see any.
925         * regrename.h (struct operand_rr_info): Add a failed field and shrink
926         n_chains to short.
927
928 2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
929
930         PR 48568
931         * doc/extend.texi (Common Function Attributes) [visibility]:
932         Add cross-references to matching variable and type attributes.
933         (Common Variable Attributes) [visibility]: Add missing entry.
934
935 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
936
937         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove
938         entries that map directly to optabs.
939
940 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
941
942         * config/i386/i386.c (ix86_builtin_vectorized_function): Remove
943         entries that map directly to optabs.
944
945 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
946
947         * internal-fn.h (direct_internal_fn_info): Add vectorizable flag.
948         * internal-fn.c (direct_internal_fn_array): Update accordingly.
949         * tree-vectorizer.h (vectorizable_function): Delete.
950         * tree-vect-stmts.c: Include internal-fn.h.
951         (vectorizable_internal_function): New function.
952         (vectorizable_function): Inline into...
953         (vectorizable_call): ...here.  Explicitly reject calls that read
954         from or write to memory.  Try using an internal function before
955         falling back on the old vectorizable_function behavior.
956
957 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
958
959         * target.def (builtin_vectorized_function): Take a combined_fn (in
960         the form of an unsigned int) rather than a function decl.
961         (builtin_md_vectorized_function): New.
962         * targhooks.h (default_builtin_vectorized_function): Replace the
963         fndecl argument with an unsigned int.
964         (default_builtin_md_vectorized_function): Declare.
965         * targhooks.c (default_builtin_vectorized_function): Replace the
966         fndecl argument with an unsigned int.
967         (default_builtin_md_vectorized_function): New function.
968         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION):
969         New hook.
970         * doc/tm.texi: Regenerate.
971         * tree-vect-stmts.c (vectorizable_function): Update call to
972         builtin_vectorized_function, also passing internal functions.
973         Call builtin_md_vectorized_function for target-specific builtins.
974         * config/aarch64/aarch64-protos.h
975         (aarch64_builtin_vectorized_function): Replace fndecl argument
976         with an unsigned int.
977         * config/aarch64/aarch64-builtins.c: Include case-cfn-macros.h.
978         (aarch64_builtin_vectorized_function): Update after above changes.
979         Use CASE_CFN_*.
980         * config/arm/arm-protos.h (arm_builtin_vectorized_function): Replace
981         fndecl argument with an unsigned int.
982         * config/arm/arm-builtins.c: Include case-cfn-macros.h
983         (arm_builtin_vectorized_function): Update after above changes.
984         Use CASE_CFN_*.
985         * config/i386/i386.c: Include case-cfn-macros.h
986         (ix86_veclib_handler): Take a combined_fn rather than a
987         built_in_function.
988         (ix86_veclibabi_svml, ix86_veclibabi_acml): Likewise.  Use
989         mathfn_built_in rather than calling builtin_decl_implicit directly.
990         (ix86_builtin_vectorized_function) Update after above changes.
991         Use CASE_CFN_*.
992         * config/rs6000/rs6000.c: Include case-cfn-macros.h
993         (rs6000_builtin_vectorized_libmass): Replace fndecl argument
994         with a combined_fn.  Use CASE_CFN_*.  Use mathfn_built_in rather
995         than calling builtin_decl_implicit directly.
996         (rs6000_builtin_vectorized_function): Update after above changes.
997         Use CASE_CFN_*.  Move BUILT_IN_MD to...
998         (rs6000_builtin_md_vectorized_function): ...this new function.
999         (TARGET_VECTORIZE_BUILTIN_MD_VECTORIZED_FUNCTION): Define.
1000
1001 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1002
1003         * tree-vect-patterns.c: Include internal-fn.h.
1004         (vect_recog_pow_pattern): Use IFN_SQRT instead of BUILT_IN_SQRT*.
1005
1006 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1007
1008         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P)
1009         (BUILTIN_CBRT_P, BUILTIN_ROOT_P): Delete.
1010
1011 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1012
1013         * builtins.c (expand_errno_check, expand_builtin_mathfn)
1014         (expand_builtin_mathfn_2): Delete.
1015         (expand_builtin): Remove handling of functions with
1016         internal function equivalents.
1017         * internal-fn.def (SET_EDOM): New internal function.
1018         * internal-fn.h (set_edom_supported_p): Declare.
1019         * internal-fn.c (expand_SET_EDOM): New function.
1020         (set_edom_supported_p): Likewise.
1021         * tree-call-cdce.c: Include builtins.h and internal-fn.h.
1022         Rewrite comment at head of file.
1023         (is_call_dce_candidate): Rename to...
1024         (can_test_argument_range): ...this.  Don't check gimple_call_lhs
1025         or gimple_call_builtin_p here.
1026         (edom_only_function): New function.
1027         (shrink_wrap_one_built_in_call_with_conds): New function, split out
1028         from...
1029         (shrink_wrap_one_built_in_call): ...here.
1030         (can_use_internal_fn, use_internal_fn): New functions.
1031         (shrink_wrap_conditional_dead_built_in_calls): Call use_internal_fn
1032         for calls that have an lhs.
1033         (pass_call_cdce::gate): Remove optimize_function_for_speed_p check.
1034         (pass_call_cdce::execute): Skip blocks that are optimized for size.
1035         Check gimple_call_builtin_p here.  Use can_use_internal_fn for
1036         calls with an lhs.
1037         * opts.c (default_options_table): Enable -ftree-builtin-call-cdce
1038         at -O and above.
1039
1040 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1041
1042         * builtins.h (called_as_built_in): Declare.
1043         * builtins.c (called_as_built_in): Make external.
1044         * internal-fn.h (expand_internal_call): Define a variant that
1045         specifies the internal function explicitly.
1046         * internal-fn.c (expand_load_lanes_optab_fn)
1047         (expand_store_lanes_optab_fn, expand_ANNOTATE, expand_GOMP_SIMD_LANE)
1048         (expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE)
1049         (expand_GOMP_SIMD_ORDERED_START, expand_GOMP_SIMD_ORDERED_END)
1050         (expand_UBSAN_NULL, expand_UBSAN_BOUNDS, expand_UBSAN_VPTR)
1051         (expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK, expand_TSAN_FUNC_EXIT)
1052         (expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB)
1053         (expand_UBSAN_CHECK_MUL, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW)
1054         (expand_MUL_OVERFLOW, expand_LOOP_VECTORIZED)
1055         (expand_mask_load_optab_fn, expand_mask_store_optab_fn)
1056         (expand_ABNORMAL_DISPATCHER, expand_BUILTIN_EXPECT, expand_VA_ARG)
1057         (expand_UNIQUE, expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS)
1058         (expand_GOACC_LOOP, expand_GOACC_REDUCTION, expand_direct_optab_fn)
1059         (expand_unary_optab_fn, expand_binary_optab_fn): Add an internal_fn
1060         argument.
1061         (internal_fn_expanders): Update prototype.
1062         (expand_internal_call): Define a variant that specifies the
1063         internal function explicitly. Use it to implement the previous
1064         interface.
1065         * cfgexpand.c (expand_call_stmt): Try to expand calls to built-in
1066         functions as calls to internal functions.
1067
1068 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1069
1070         * Makefile.in (MOSTLYCLEANFILES): Add cfn-operators.pd.
1071         (generated_files): Likewise.
1072         (s-cfn-operators, cfn-operators.pd): New rules.
1073         (s-match): Depend on cfn-operators.pd.
1074         * gencfn-macros.c: Expand comment to describe -o behavior.
1075         (print_define_operator_list): New function.
1076         (main): Accept -o.  Call print_define_operator_list.
1077         * genmatch.c (main): Add the current directory to the include path.
1078         * match.pd (DEFINE_MATH_FN): Delete.  Include cfn-operators.pd
1079         instead.
1080
1081 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1082
1083         * doc/match-and-simplify.texi: Document the "null" identifier.
1084         * genmatch.c (id_base::NULL_ID): New kind.
1085         (null_id): New variable.
1086         (get_operator): Add a parameter that says whether null identifiers
1087         are allowed.
1088         (contains_id): New function.
1089         (lower_for): Skip substitutions that would have a null_id in
1090         either the match or the result.
1091         (parser::parse_for): Allow the null identifier to be used.
1092         (parser::parse_operator_list): Likewise.
1093         (main): Initialize null_id.
1094
1095 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1096
1097         * match.pd: Use HYPOT and COS rather than hypot and cos.
1098         Use CASE_CFN_* macros.  Guard log/exp folds with
1099         SCALAR_FLOAT_TYPE_P.
1100         * genmatch.c (internal_fn): New enum.
1101         (fn_id::fn): Change to an unsigned int.
1102         (fn_id::fn_id): Accept internal_fn too.
1103         (add_builtin): Rename to...
1104         (add_function): ...this and turn into a template.
1105         (get_operator): Only try one variation if the original name fails.
1106         Only add _EXPR if the original name was all lower case.
1107         Try converting internal and built-in function names to their
1108         CFN equivalents.
1109         (expr::gen_transform): Use maybe_build_call_expr_loc for generic.
1110         (dt_simplify::gen_1): Likewise.
1111         (dt_node::gen_kids_1): Use gimple_call_combined_fn for gimple
1112         and get_call_combined_fn for generic.
1113         (dt_simplify::gen): Use combined_fn as the type of fn_ids.
1114         (decision_tree::gen): Likewise.
1115         (main): Use lower case in the strings for {VIEW_,}CONVERT[012].
1116         Use add_function rather than add_builtin.  Register internal
1117         functions too.
1118         * generic-match-head.c: Include case-cfn-macros.h.
1119         * gimple-fold.c (replace_stmt_with_simplification): Use
1120         gimple_call_combined_fn to test whether we can keep an
1121         existing call.
1122         * gimple-match.h (code_helper): Replace built_in_function
1123         with combined_fn.
1124         * gimple-match-head.c: Include fold-const-call.h, internal-fn.h
1125         and case-fn-macros.h.
1126         (gimple_resimplify1): Use fold_const_call.
1127         (gimple_resimplify2, gimple_resimplify3): Likewise.
1128         (build_call_internal, build_call): New functions.
1129         (maybe_push_res_to_seq): Use them.
1130         (gimple_simplify): Use fold_const_call.  Set *rcode to a combined_fn
1131         rather than a built-in function.
1132         * tree.h (build_call_expr_internal_loc): Declare.
1133         (maybe_build_call_expr_loc): Likewise.
1134         * tree.c (build_call_expr_internal_loc_array): New function.
1135         (maybe_build_call_expr_loc): Likewise.
1136
1137 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1138
1139         * builtins.h (mathfn_built_in): Add a variant that takes
1140         a combined_fn.
1141         * builtins.c: Include case-cfn-macros.h.
1142         (CASE_MATHFN): Use CASE_CFN_*.
1143         (CASE_MATHFN_REENT): Use CFN_ codes.
1144         (mathfn_built_in_2, mathfn_built_in_1): Replace built_in_function
1145         argument with a combined_fn.
1146         (mathfn_built_in): Add a variant that takes a combined_fn.
1147         (expand_builtin_int_roundingfn_2): Update callers accordingly.
1148         (fold_builtin_sincos, fold_builtin_classify): Likewise.
1149
1150 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1151
1152         * tree-vect-patterns.c: Include case-cfn-macros.h.
1153         (vect_recog_pow_pattern): Use combined_fn instead of built-in codes.
1154
1155 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1156
1157         * tree-ssa-math-opts.c: Include case-cfn-macros.h.
1158         (execute_cse_sincos_1): Use combined_fn instead of built-in codes.
1159         (pass_cse_sincos::execute): Likewise.
1160
1161 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1162
1163         * tree-ssa-reassoc.c: Include case-cfn-macros.h.
1164         (stmt_is_power_of_op): Use combined_fn instead of built-in codes.
1165         (decrement_power, acceptable_pow_call): Likewise.
1166         (attempt_builtin_copysign): Likewise.
1167
1168 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1169
1170         * tree-vrp.c: Include case-cfn-macros.h.
1171         (extract_range_basic): Switch on combined_fn rather than handling
1172         built-in functions and internal functions separately.
1173
1174 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1175
1176         * fold-const.h (negate_mathfn_p): Take a combined_fn rather
1177         than a built_in_function.
1178         (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
1179         a function decl.
1180         (integer_valued_real_call_p): Likewise.
1181         * fold-const.c: Include case-cfn-macros.h
1182         (negate_mathfn_p): Take a combined_fn rather than a built_in_function.
1183         (negate_expr_p): Update accordingly.
1184         (tree_call_nonnegative_warnv_p): Take a combined_fn rather than
1185         a function decl.
1186         (integer_valued_real_call_p): Likewise.
1187         (tree_invalid_nonnegative_warnv_p): Update accordingly.
1188         (integer_valued_real_p): Likewise.
1189         * gimple-fold.c (gimple_call_nonnegative_warnv_p): Update call
1190         to tree_call_nonnegative_warnv_p.
1191         (gimple_call_integer_valued_real_p): Likewise
1192         integer_valued_real_call_p.
1193         * gimple-ssa-backprop.c: Include case-cfn-macros.h.
1194         (backprop::process_builtin_call_use): Extend to combined_fn.
1195         (strip_sign_op_1): Likewise.
1196         (backprop::process_use): Don't check for built-in calls here.
1197         (backprop::execute): Likewise.
1198         (backprop::optimize_builtin_call): Update call to negate_mathfn_p.
1199
1200 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1201
1202         * fold-const-call.h (fold_const_call): Replace built_in_function
1203         arguments with combined_fn arguments.
1204         * fold-const-call.c: Include case-cfn-macros.h.
1205         (fold_const_call_ss, fold_const_call_cs, fold_const_call_sc)
1206         (fold_const_call_cc, fold_const_call_sss, fold_const_call_ccc)
1207         (fold_const_call_ssss, fold_const_call_1, fold_const_call): Replace
1208         built_in_function arguments with combined_fn arguments.
1209         * builtins.c (fold_builtin_sincos, fold_builtin_1, fold_builtin_2)
1210         (fold_builtin_3): Update calls to fold_const_call.
1211
1212 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1213
1214         * Makefile.in (HASH_TABLE_H): Add GGC_H.
1215         (MOSTLYCLEANFILES, generated_files): Add case-fn-macros.h.
1216         (s-case-cfn-macros, case-cfn-macros.h, build/gencfn-macros.o)
1217         (build/gencfn-macros$(build_exeext): New rules.
1218         (genprogerr): Add cfn-macros.
1219         * hash-set.h (hash_set): Use the traits value_type as the key.
1220         * gencfn-macros.c: New file.
1221
1222 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1223
1224         * internal-fn.def (DEF_INTERNAL_INT_FN): New macro.
1225         (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): New functions.
1226         * builtins.c (associated_internal_fn): Handle them.
1227
1228 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1229
1230         * builtins.h (associated_internal_fn): Declare.
1231         (replacement_internal_fn): Likewise.
1232         * builtins.c: Include internal-fn.h
1233         (associated_internal_fn, replacement_internal_fn): New functions.
1234         * internal-fn.def (DEF_INTERNAL_FLT_FN): New macro.
1235         (ACOS, ASIN, ATAN, COS, EXP, EXP10, EXP2, EXPM1, LOG, LOG10, LOG1P)
1236         (LOG2, LOGB, SIGNIFICAND, SIN, SQRT, TAN, CEIL, FLOOR, NEARBYINT)
1237         (RINT, ROUND, TRUNC, ATAN2, COPYSIGN, FMOD, POW, REMAINDER, SCALB)
1238         (LDEXP): New functions.
1239         * internal-fn.c: Include recog.h.
1240         (unary_direct, binary_direct): New macros.
1241         (expand_direct_optab_fn): New function.
1242         (expand_unary_optab_fn): New macro.
1243         (expand_binary_optab_fn): Likewise.
1244         (direct_unary_optab_supported_p): Likewise.
1245         (direct_binary_optab_supported_p): Likewise.
1246
1247 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1248
1249         * coretypes.h (tree_pair): New type.
1250         * internal-fn.def (DEF_INTERNAL_OPTAB_FN): New macro.  Use it
1251         for MASK_LOAD, LOAD_LANES, MASK_STORE and STORE_LANES.
1252         * internal-fn.h (direct_internal_fn_info): New structure.
1253         (direct_internal_fn_array): Declare.
1254         (direct_internal_fn_p, direct_internal_fn): New functions.
1255         (direct_internal_fn_types, direct_internal_fn_supported_p): Declare.
1256         * internal-fn.c (not_direct, mask_load_direct, load_lanes_direct)
1257         (mask_store_direct, store_lanes_direct): New macros.
1258         (direct_internal_fn_array) New array.
1259         (get_multi_vector_move): Return the optab handler without asserting
1260         that it is available.
1261         (expand_LOAD_LANES): Rename to...
1262         (expand_load_lanes_optab_fn): ...this and add an optab argument.
1263         (expand_STORE_LANES): Rename to...
1264         (expand_store_lanes_optab_fn): ...this and add an optab argument.
1265         (expand_MASK_LOAD): Rename to...
1266         (expand_mask_load_optab_fn): ...this and add an optab argument.
1267         (expand_MASK_STORE): Rename to...
1268         (expand_mask_store_optab_fn): ...this and add an optab argument.
1269         (direct_internal_fn_types, direct_optab_supported_p)
1270         (multi_vector_optab_supported_p, direct_internal_fn_supported_p)
1271         (direct_internal_fn_supported_p): New functions.
1272         (direct_mask_load_optab_supported_p): New macro.
1273         (direct_load_lanes_optab_supported_p): Likewise.
1274         (direct_mask_store_optab_supported_p): Likewise.
1275         (direct_store_lanes_optab_supported_p): Likewise.
1276
1277 2015-11-17  Richard Sandiford  <richard.sandiford@arm.com>
1278
1279         * tree-core.h (internal_fn): Move immediately after the definition
1280         of built_in_function.
1281         (combined_fn): New enum.
1282         * tree.h (as_combined_fn, builtin_fn_p, as_builtin_fn)
1283         (internal_fn_p, as_internal_fn): New functions.
1284         (get_call_combined_fn, combined_fn_name): Declare.
1285         * tree.c (get_call_combined_fn): New function.
1286         (combined_fn_name): Likewise.
1287         * gimple.h (gimple_call_combined_fn): Declare.
1288         * gimple.c (gimple_call_combined_fn): New function.
1289
1290 2015-11-17  Martin Sebor  <msebor@redhat.com>
1291
1292         PR c++/68308
1293         * cp/init.c (build_new_1): Check for expression constness
1294         the right way.
1295
1296 2015-11-17  Sandra Loosemore  <sandra@codesourcery.com>
1297
1298         PR target/53587
1299         * doc/invoke.texi (Option Summary): Add -mms-bitfields to x86
1300         option list.
1301         (x86 Options): Add -mms-bitfields and -mno-ms-bitfields.  Move
1302         discussion of the Microsoft structure layout details here from
1303         its former home in extend.texi.
1304         * doc/extend.texi (x86 Variable Attributes): Replace detailed
1305         discussion with pointer to its new location.  Add cross-reference
1306         to corresponding type attributes.
1307         (x86 Type Attributes): Add cross-references to command-line options
1308         and variable attributes.
1309
1310 2015-11-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
1311
1312         PR middle-end/68134
1313         * targhooks.c (default_get_mask_mode): Filter out
1314         scalar modes returned by mode_for_vector.
1315
1316 2015-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1317
1318         PR target/68143
1319         * config/arm/arm.c (arm_block_set_unaligned_vect): Keep track of
1320         offset from dstbase and use it appropriately in
1321         adjust_automodify_address.
1322         (arm_block_set_aligned_vect): Likewise.
1323
1324 2015-11-17  Eric Botcazou  <ebotcazou@adacore.com>
1325
1326         * config/visium/t-visium (MULTILIB_OPTIONS): Add muser-mode.
1327         (MULTILIB_DIRNAMES): Adjust accordingly.
1328
1329 2015-11-17  James Greenhalgh  <james.greenhalgh@arm.com>
1330
1331         * config/aarch64/aarch64-cores.def (cortex-a35): New.
1332         * config/aarch64/aarch64.c (cortexa35_tunings): New.
1333         * config/aarch64/aarch64-tune.md: Regenerate.
1334         * doc/invoke.texi (-mcpu): Add Cortex-A35
1335
1336 2015-11-17  Uros Bizjak  <ubizjak@gmail.com>
1337
1338         PR target/68263
1339         * config/i386/i386.h (BIGGEST_ALIGNMENT): Always define
1340         to 32 for IAMCU.
1341         * config/i386/sse.md (*mov<mode>_internal): Always enable
1342         AVX and SSE unaligned moves for IAMCU.
1343
1344 2015-11-17  Venkataramanan Kumar  <Venkataramanan.Kumar@amd.com>
1345
1346         * tree-if-conv.c: Include varasm.h
1347         (ref_DR_map): Define.
1348         (baseref_DR_map): Like wise
1349         (struct ifc_dr): Add new tree predicate field.
1350         (hash_memrefs_baserefs_and_store_DRs_read_written_info): New function.
1351         (memrefs_read_or_written_unconditionally): Remove.
1352         (write_memrefs_written_at_least_once): Remove.
1353         (ifcvt_memrefs_wont_trap): Use hash maps to query
1354         unconditional read/written information.
1355         (if_convertible_loop_p_1):  Initialize hash maps and predicates
1356         before hashing data references and delete hashmaps at the end.
1357
1358 2015-11-16  Thomas Preud'homme <thomas.preudhomme@arm.com>
1359
1360         PR 56036
1361         * doc/invoke.texi (Optimize Options): Move @end table to the right
1362         place.
1363
1364 2015-11-16  Sandra Loosemore  <sandra@codesourcery.com>
1365
1366         PR 65129
1367         * doc/extend.texi (__builtin_assume_aligned): Fix formatting of
1368         return value.
1369
1370 2015-11-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
1371
1372         * config/rs6000/vsx.md (VSX_L): Do not include IBM extended double
1373         128-bit types, just types that fit in a single vector.
1374         * config/rs6000/rs6000.md (FMOVE128_GPR): Likewise.
1375
1376 2015-11-16  David Wohlferd  <dw@LimeGreenSocks.com>
1377
1378         * doc/md.texi ('#' and '*' constraint modifiers): Do not include these
1379         in the user documentation.
1380         (define_peephole2, define_split): Similarly.
1381
1382 2015-11-16 Andris Pavenis <andris.pavenis@iki.fi>
1383
1384         * lto-streamer-out.c (write_global_references): Adjust integer type.
1385         (lto_output_decl_state_refs): Likewise.
1386
1387 2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>
1388
1389         * config/arm/arm-cores.def (cortex-a35): New.
1390         * config/arm/arm.c (arm_cortex_a35_tune): New.
1391         * config/arm/arm-tables.opt: Regenerate.
1392         * config/arm/arm-tune.md: Regenerate.
1393         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-a35.
1394         * config/arm/t-aprofile: Likewise.
1395         * doc/invoke.texi (-mcpu): Likewise.
1396
1397 2015-11-16  Jim Wilson  <jim.wilson@linaro.org>
1398
1399         * config/arm/t-aprofile (MULTILIB_MATCHES): Add lines for exynos-m1
1400         and qdf24xx and xgene1 to match -march=armv8-a.
1401
1402 2015-11-16  Segher Boessenkool  <segher@kernel.crashing.org>
1403
1404         PR rtl-optimization/68330
1405         * simplify-rtx.c (simplify_unary_operation_1): Simplify SIGN_EXTEND
1406         of LSHIFTRT by a non-zero constant integer.
1407
1408 2015-11-16  Richard Biener  <rguenther@suse.de>
1409
1410         PR tree-optimization/68306
1411         * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Fix
1412         bogus copying from verify_data_ref_alignment and use continue
1413         instead of return.
1414
1415 2015-11-16  Oleg Endo  <olegendo@gcc.gnu.org>
1416             Kaz Kojima  <kkojima@gcc.gnu.org>
1417
1418         PR target/68277
1419         * config/sh/sh.md (addsi3_scr): Handle reg overlap of operands[0] and
1420         operands[2].
1421         (*addsi3): Add another insn_and_split variant for reload.
1422
1423 2015-11-16  Richard Biener  <rguenther@suse.de>
1424
1425         PR middle-end/68117
1426         * cfgexpand.c (pass_expand::execute): Destroy the edge
1427         redirection var map before setting RTL CFG hooks.
1428
1429 2015-11-16  Alan Lawrence  <alan.lawrence@arm.com>
1430
1431         * config/i386/sse.md (reduc_splus_v8df): Rename to...
1432         (reduc_plus_scal_v8df): ...here; reduce to temp and extract scalar.
1433
1434         (reduc_splus_v4df): Rename to...
1435         (reduc_plus_scal_v4df): ...here; reduce to temp and extract scalar.
1436
1437         (reduc_splus_v2df): Rename to...
1438         (reduc_plus_scal_v2df): ...here; reduce to temp and extract scalar.
1439
1440         (reduc_splus_v16sf): Rename to...
1441         (reduc_plus_scal_v16sf): ...here; reduce to temp and extract scalar.
1442
1443         (reduc_splus_v8sf): Rename to...
1444         (reduc_plus_scal_v8sf): ...here; reduce to temp and extract scalar.
1445
1446         (reduc_splus_v4sf): Rename to...
1447         (reduc_plus_scal_v4sf): ...here; reduce to temp and extract scalar.
1448
1449         (reduc_<code>_<mode>, all 3 variants): Rename each to...
1450         (reduc_<code>_scal_<mode>): ...here; reduce to temp and extract scalar.
1451
1452         (reduc_umin_v8hf): Rename to...
1453         (reduc_umin_scal_v8hf): ...here; reduce to temp and extract scalar.
1454
1455 2015-11-16  Kirill Yukhin  <kirill.yukhin@intel.com>
1456
1457         * omp-low.c (pass_omp_simd_clone::gate): If target allows - call
1458         without additional conditions.
1459         * doc/extend.texi (@item simd): New.
1460
1461 2015-11-16  Tom de Vries  <tom@codesourcery.com>
1462
1463         * passes.c (first_pass_instance): Remove variable.
1464         (execute_todo): Remove setting of first_pass_instance.
1465         * tree-pass.h (first_pass_instance): Remove declaration.
1466
1467 2015-11-16  Tom de Vries  <tom@codesourcery.com>
1468
1469         * passes.def: Add arg to pass_ccp pass instantiation.
1470         * tree-ssa-ccp.c (ccp_finalize): Add param nonzero_p.  Use nonzero_p
1471         instead of first_pass_instance.
1472         (do_ssa_ccp): Add and handle param nonzero_p.
1473         (pass_ccp::pass_ccp): Initialize nonzero_p.
1474         (pass_ccp::set_pass_param): New member function.  Set nonzero_p.
1475         (pass_ccp::execute): Call do_ssa_ccp with extra arg.
1476         (pass_ccp::nonzero_p): New private member.
1477
1478 2015-11-16  Tom de Vries  <tom@codesourcery.com>
1479
1480         * passes.def: Add arg to pass_object_sizes pass instantiation.
1481         * tree-object-size.c (pass_object_sizes::pass_object_sizes): Initialize
1482         insert_min_max_p.
1483         (pass_object_sizes::set_pass_param): New member function.  Set
1484         insert_min_max_p.
1485         (pass_object_sizes::insert_min_max_p): New private member.
1486         (pass_object_sizes::execute): Use insert_min_max_p instead of
1487         first_pass_instance.
1488
1489 2015-11-16  Tom de Vries  <tom@codesourcery.com>
1490
1491         * passes.def: Add arg to pass_dominator pass instantiation.
1492         * tree-pass.h (first_pass_instance): Remove pass_dominator-related bit
1493         of comment.
1494         * tree-ssa-dom.c (pass_dominator::pass_dominator): Initialize
1495         may_peel_loop_headers_p.
1496         (pass_dominator::set_pass_param): New member function.  Set
1497         may_peel_loop_headers_p.
1498         (pass_dominator::may_peel_loop_headers_p): New private member.
1499         (pass_dominator::execute): Use may_peel_loop_headers_p instead of
1500         first_pass_instance.
1501
1502 2015-11-16  Tom de Vries  <tom@codesourcery.com>
1503
1504         * passes.def: Add arg to pass_reassoc pass instantiation.
1505         * tree-ssa-reassoc.c (reassoc_insert_powi_p): New static variable.
1506         (acceptable_pow_call, reassociate_bb): Use reassoc_insert_powi_p instead
1507         of first_pass_instance.
1508         (execute_reassoc): Add and handle insert_powi_p parameter.
1509         (pass_reassoc::insert_powi_p): New private member.
1510         (pass_reassoc::pass_reassoc): Initialize insert_powi_p.
1511         (pass_reassoc::set_pass_param): New member function.  Set insert_powi_p.
1512         (pass_reassoc::execute): Call execute_reassoc with extra arg.
1513
1514 2015-11-16  Tom de Vries  <tom@codesourcery.com>
1515
1516         * gdbhooks.py (class PassNames): Handle extra arg NEXT_PASS argument.
1517         * gen-pass-instances.awk (handle_line): Same.
1518         * pass_manager.h (class pass_manager): Define and undefine
1519         NEXT_PASS_WITH_ARG.
1520         * passes.c (opt_pass::set_pass_param): New function.
1521         (pass_manager::pass_manager): Define and undefine NEXT_PASS_WITH_ARG.
1522         * passes.def: Add extra arg to NEXT_PASS (pass_vrp).
1523         * tree-pass.h (gimple_opt::set_pass_param): Declare.
1524         * tree-vrp.c (vrp_finalize, execute_vrp): Add and handle
1525         warn_array_bounds_p parameter.
1526         (pass_vrp::pass_vrp): Initialize warn_array_bounds_p.
1527         (pass_vrp::set_pass_param): New function.
1528         (pass_vrp::execute): Add warn_array_bounds_p arg to execute_vrp call.
1529         (pass_vrp::warn_array_bounds_p): New private member.
1530
1531 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1532
1533         * config/sparc/sparc.c (sparc_emit_probe_stack_range): Adjust.
1534         (output_probe_stack_range): Rotate the loop and simplify.
1535
1536 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1537
1538         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_rang): Adjust.
1539         (output_probe_stack_range): Rotate the loop and simplify.
1540
1541 2015-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1542
1543         * config/i386/i386.c (ix86_adjust_stack_and_probe): Adjust and use
1544         an lea instruction when possible.
1545         (output_adjust_stack_and_probe): Rotate the loop and simplify.
1546         (ix86_emit_probe_stack_range): Adjust.
1547         (output_probe_stack_range): Rotate the loop and simplify.
1548
1549 2015-11-16  Christian Bruel  <christian.bruel@st.com>
1550
1551         * config/arm/arm_neon.h: Remove #ifndef check on __ARM_NEON.
1552         Replace #ifdef __ARM_FEATURE_CRYPTO, __ARM_FEATURE_FMA, __ARM_FP
1553         with appropriate pragma GCC target.
1554
1555 2015-11-16  Christian Bruel  <christian.bruel@st.com>
1556
1557         PR target/65837
1558         * config/arm/arm-c.c (arm_cpu_builtins): Conditionally set and reset
1559         __ARM_FEATURE_FMA and __ARM_NEON_FP, __ARM_FP.
1560
1561 2015-11-16  James Greenhalgh  <james.greenhalgh@arm.com>
1562
1563         * config/aarch64/aarch64.c (cortexa57_branch_costs): New.
1564         (cortexa57_tunings): Use it.
1565
1566 2015-11-16  Christian Bruel  <christian.bruel@st.com>
1567
1568         PR target/65837
1569         * config/arm/arm-c.c (arm_cpu_builtins): Set or reset
1570         __ARM_FEATURE_CRYPTO, __VFP_FP__, __ARM_NEON__
1571         (arm_pragma_target_parse): Change check for arm_cpu_builtins.
1572         undefine __ARM_FP.
1573         * config/arm/arm.c (arm_can_inline_p): Check FPUs.
1574         (arm_valid_target_attribute_rec): Handle -mfpu attribute target.
1575         * doc/invoke.texi (-mfpu=): Mention attribute and pragma.
1576         * doc/extend.texi (-mfpu=): Describe attribute.
1577
1578 2015-11-16  Christian Bruel  <christian.bruel@st.com>
1579
1580         PR target/65837
1581         * config/arm/arm-protos.h (arm_init_neon_builtins): Declare.
1582         * config/arm/arm.c (arm_valid_target_attribute_tree): Call
1583         arm_init_neon_builtins.
1584         * config/arm/arm-builtins.c (arm_init_neon_builtins): Split into...
1585         (arm_init_neon_builtins_internal)
1586         (arm_init_crypto_builtins_internal):
1587         Test and set neon_set_p, neon_crypto_set_p.
1588         (neon_set_p, neon_crypto_set_p): New static booleans.
1589
1590 2015-11-16  Christian Bruel  <christian.bruel@st.com>
1591
1592         PR target/65837
1593         * config/arm/arm.c (arm_fpu_desc): Remove.
1594         (all_fpus): Make global.
1595         (arm_option_override): Use FPU TARGET accessors.
1596         (arm_declare_function_name): Likewise.
1597         * config/arm/arm.h (TARGET_VFP, TARGET_VFPD32, TARGET_VFP5)
1598         (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE, TARGET_NEON_FP16)
1599         (TARGET_FP16, TARGET_FMA, TARGET_FPU_ARMV8, TARGET_CRYPTO)
1600         (TARGET_NEON): Likewise.
1601         (all_fpus): Declare extern.
1602         (TARGET_FPU_NAME, TARGET_FPU_MODEL, TARGET_FPU_REV)
1603         (TARGET_FPU_REGS, TARGET_FPU_FEATURES): Define all_fpus accessors.
1604
1605 2015-11-15  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1606
1607         PR middle-end/68366
1608         * sdbout.c: Include emit-rtl.h and function.h.
1609
1610 2015-11-15  Gerald Pfeifer  <gerald@pfeifer.com>
1611
1612         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Change to i586.
1613         Remove support for FreeBSD 5 and earlier.
1614
1615 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1616
1617         * configure: Regenerate.
1618         * configure.ac: Always define ENABLE_OFFLOADING.
1619         * cgraph.c (cgraph_node::create): Adjust.
1620         * gcc.c (process_command): Likewise.
1621         * omp-low.c (create_omp_child_function): Likewise.
1622         (expand_omp_target): Likewise.
1623         * varpool.c (varpool_node::get_create): Likewise.
1624
1625 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1626
1627         * defaults.h (EH_RETURN_HANDLER_RTX): New default definition.
1628         * df-scan.c (df_get_exit_block_use_set): Adjust.
1629         * except.c (expand_eh_return): Likewise.
1630
1631 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1632
1633         * config/i386/i386.h (TARGET_PECOFF): Remove define.
1634         * defaults.h (TARGET_PECOFF): New default definition.
1635         * varasm.c (handle_vtv_comdat_section): Adjust.
1636
1637 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1638
1639         * defaults.h: New definition of SDB_DEBUGGING_INFO.
1640         * doc/tm.texi: Regenerate.
1641         * doc/tm.texi.in: Adjust.
1642         * final.c (rest_of_clean_state): Remove check if
1643         SDB_DEBUGGING_INFO is defined.
1644         * function.c (number_blocks): Likewise.
1645         * output.h: Likewise.
1646         * sdbout.c: Likewise.
1647         * toplev.c (process_options): Likewise.
1648
1649 2015-11-14  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1650
1651         * gsyms.h (enum sdb_type): Remove code for EXTENDED_SDB_BASIC_TYPES.
1652         (enum sdb_masks): Likewise.
1653         * sdbout.c (plain_type_1): Likewise.
1654         * system.h: Poison EXTENDED_SDB_BASIC_TYPES macro.
1655
1656 2015-11-14  Jakub Jelinek  <jakub@redhat.com>
1657
1658         * omp-low.c (lower_omp_ordered): Add argument to GOMP_SMD_ORDERED_*
1659         internal calls - 0 if ordered simd and 1 for ordered threads simd.
1660         * tree-vectorizer.c (adjust_simduid_builtins): If GOMP_SIMD_ORDERED_*
1661         argument is 1, replace it with GOMP_ordered_* call instead of removing
1662         it.
1663
1664 2015-11-13  Rich Felker <dalias@libc.org>
1665
1666         * config/sh/sh.md (symGOT_load): Suppress __stack_chk_guard
1667         address loading hack for FDPIC targets.
1668
1669 2015-11-13  Ajit Agarwal  <ajitkum@xilinx.com>
1670             Jeff Law  <law@redhat.com>
1671
1672         * Makefile.in (OBJS): Add gimple-ssa-split-paths.o
1673         * common.opt (-fsplit-paths): New flag controlling path splitting.
1674         * doc/invoke.texi (fsplit-paths): Document.
1675         * opts.c (default_options_table): Add -fsplit-paths to -O2.
1676         * passes.def: Add split_paths pass.
1677         * timevar.def (TV_SPLIT_PATHS): New timevar.
1678         * tracer.c: Include "tracer.h"
1679         (ignore_bb_p): No longer static.
1680         (transform_duplicate): New function, broken out of tail_duplicate.
1681         (tail_duplicate): Use transform_duplicate.
1682         * tracer.h (ignore_bb_p): Declare
1683         (transform_duplicate): Likewise.
1684         * tree-pass.h (make_pass_split_paths): Declare.
1685         * gimple-ssa-split-paths.c: New file.
1686
1687 2015-11-13  Kai Tietz  <ktietz70@googlemail.com>
1688             Marek Polacek  <polacek@redhat.com>
1689             Jason Merrill  <jason@redhat.com>
1690
1691         * convert.c (maybe_fold_build1_loc): New.
1692         (maybe_fold_build2_loc): New.
1693         (convert_to_pointer_1): Split out from convert_to_pointer.
1694         (convert_to_pointer_nofold): New.
1695         (convert_to_real_1): Split out from convert_to_real.
1696         (convert_to_real_nofold): New.
1697         (convert_to_integer_1): Split out from convert_to_integer.
1698         (convert_to_integer_nofold): New.
1699         (convert_to_complex_1): Split out from convert_to_complex.
1700         (convert_to_complex_nofold): New.
1701         * convert.h: Declare new functions.
1702         * tree-complex.c (create_one_component_var): Break up line to
1703         avoid sequence point issues.
1704
1705 2015-11-13  Jason Merrill  <jason@redhat.com>
1706
1707         * fold-const.c (fold_convert_const): Fold changing cv-quals on
1708         VECTOR_CST.
1709
1710         * hash-map.h (hash_map::empty): New.
1711
1712 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
1713
1714         * gcc/omp-low.c (scan_sharing_clauses): Accept INDEPENDENT, AUTO & SEQ.
1715         (oacc_loop_fixed_partitions): Correct return type to bool.
1716         (oacc_loop_auto_partitions): New.
1717         (oacc_loop_partition): Take mask argument, call
1718         oacc_loop_auto_partitions.
1719         (execute_oacc_device_lower): Provide mask to oacc_loop_partition.
1720
1721 2015-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
1722
1723         * config/rs6000/constraints.md (we constraint): New constraint for
1724         64-bit power9 vector support.
1725         (wL constraint): New constraint for the element in a vector that
1726         can be addressed by the MFVSRLD instruction.
1727
1728         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Add
1729         declaration.
1730         (convert_int_to_float128): Likewise.
1731         (rs6000_generate_compare): Add support for ISA 3.0 (power9)
1732         hardware support for IEEE 128-bit floating point.
1733         (rs6000_expand_float128_convert): Likewise.
1734         (convert_float128_to_int): Likewise.
1735         (convert_int_to_float128): Likewise.
1736
1737         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): New unspecs for
1738         ISA 3.0 hardware IEEE 128-bit floating point.
1739         (UNSPEC_IEEE128_MOVE): Likewise.
1740         (UNSPEC_IEEE128_CONVERT): Likewise.
1741         (FMA_F): Add support for IEEE 128-bit floating point hardware support.
1742         (Ff): Add support for DImode.
1743         (Fv): Likewise.
1744         (any_fix code iterator): New and updated iterators for IEEE
1745         128-bit floating point hardware support.
1746         (any_float code iterator): Likewise.
1747         (s code attribute): Likewise.
1748         (su code attribute): Likewise.
1749         (az code attribute): Likewise.
1750         (uns code attribute): Likewise.
1751         (neg<mode>2, FLOAT128 iterator): Add support for IEEE 128-bit
1752         floating point hardware support.
1753         (abs<mode>2, FLOAT128 iterator): Likewise.
1754         (add<mode>3, IEEE128 iterator): New insns for IEEE 128-bit
1755         floating point hardware.
1756         (sub<mode>3, IEEE128 iterator): Likewise.
1757         (mul<mode>3, IEEE128 iterator): Likewise.
1758         (div<mode>3, IEEE128 iterator): Likewise.
1759         (copysign<mode>3, IEEE128 iterator): Likewise.
1760         (sqrt<mode>2, IEEE128 iterator): Likewise.
1761         (neg<mode>2, IEEE128 iterator): Likewise.
1762         (abs<mode>2, IEEE128 iterator): Likewise.
1763         (nabs<mode>2, IEEE128 iterator): Likewise.
1764         (fma<mode>4_hw, IEEE128 iterator): Likewise.
1765         (fms<mode>4_hw, IEEE128 iterator): Likewise.
1766         (nfma<mode>4_hw, IEEE128 iterator): Likewise.
1767         (nfms<mode>4_hw, IEEE128 iterator): Likewise.
1768         (extend<SFDF:mode><IEEE128:mode>2_hw): Likewise.
1769         (trunc<mode>df2_hw, IEEE128 iterator): Likewise.
1770         (trunc<mode>sf2_hw, IEEE128 iterator): Likewise.
1771         (fix_fixuns code attribute): Likewise.
1772         (float_floatuns code attribute): Likewise.
1773         (fix<uns>_<mode>si2_hw): Likewise.
1774         (fix<uns>_<mode>di2_hw): Likewise.
1775         (float<uns>_<mode>si2_hw): Likewise.
1776         (float<uns>_<mode>di2_hw): Likewise.
1777         (xscvqp<su>wz_<mode>): Likewise.
1778         (xscvqp<su>dz_<mode>): Likewise.
1779         (xscv<su>dqp_<mode): Likewise.
1780         (ieee128_mfvsrd): Likewise.
1781         (ieee128_mfvsrwz): Likewise.
1782         (ieee128_mtvsrw): Likewise.
1783         (ieee128_mtvsrd): Likewise.
1784         (trunc<mode>df2_odd): Likewise.
1785         (cmp<mode>_h): Likewise.
1786         (128-bit GPR splitters): Don't split a 128-bit move that is a
1787         direct move between GPR and vector registers using ISA 3.0 direct
1788         move instructions.
1789         (maddld4): Add support for the ISA 3.0 integer multiply-add
1790         instruction.
1791
1792         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add ISA 3.0
1793         debugging.
1794         (rs6000_init_hard_regno_mode_ok): If ISA 3.0 and 64-bit, enable we
1795         constraint.  Disable the VSX<->GPR direct move helpers if we have
1796         the MFVSRLD and MTVSRDD instructions.
1797         (rs6000_secondary_reload_simple_move): Add support for doing
1798         vector direct moves directly without additional scratch registers
1799         if we have ISA 3.0 instructions.
1800         (rs6000_secondary_reload_direct_move): Update comments.
1801         (rs6000_output_move_128bit): Add support for ISA 3.0 vector
1802         instructions.
1803
1804         * config/rs6000/vsx.md (vsx_mov<mode>): Add support for ISA 3.0
1805         direct move instructions.
1806         (vsx_movti_64bit): Likewise.
1807         (vsx_extract_<mode>): Likewise.
1808
1809         * config/rs6000/rs6000.h (VECTOR_ELEMENT_MFVSRLD_64BIT): New
1810         macros for ISA 3.0 direct move instructions.
1811         (TARGET_DIRECT_MOVE_128): Likewise.
1812         (TARGET_MADDLD): Add support for the ISA 3.0 integer multiply-add
1813         instruction.
1814
1815         * doc/md.texi (RS/6000 constraints): Document we, wF, wG, wL
1816         constraints.  Update wa documentation to say not to use %x<n> on
1817         instructions that only take Altivec registers.
1818
1819 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
1820
1821         * Makefile.in (OBJS): Add gcc-rich-location.o.
1822         * diagnostic.c (diagnostic_append_note): Pass line_table to
1823         rich_location ctor.
1824         (emit_diagnostic): Likewise.
1825         (inform): Likewise.
1826         (inform_n): Likewise.
1827         (warning): Likewise.
1828         (warning_at): Likewise.
1829         (warning_n): Likewise.
1830         (pedwarn): Likewise.
1831         (permerror): Likewise.
1832         (error): Likewise.
1833         (error_n): Likewise.
1834         (error_at): Likewise.
1835         (sorry): Likewise.
1836         (fatal_error): Likewise.
1837         (internal_error): Likewise.
1838         (internal_error_no_backtrace): Likewise.
1839         (source_range::debug): Likewise.
1840         * gcc-rich-location.c: New file.
1841         * gcc-rich-location.h: New file.
1842         * genmatch.c (fatal_at): Pass line_table to rich_location ctor.
1843         (warning_at): Likewise.
1844         * gimple.h (gimple_set_block): Use set_block function.
1845         * input.c (dump_line_table_statistics): Dump stats on how many
1846         ranges were optimized vs how many needed ad-hoc table.
1847         (write_digit_row): Add "map" param; use its range_bits
1848         to calculate the per-character offset.
1849         (dump_location_info): Print the range and column bits for each
1850         ordinary map.  Use the range bits to calculate the per-character
1851         offset.  Pass the map as a new param to the various calls to
1852         write_digit_row.  Eliminate uses of
1853         ORDINARY_MAP_NUMBER_OF_COLUMN_BITS.
1854         * print-tree.c (print_node): Print any source range information.
1855         * rtl-error.c (diagnostic_for_asm): Likewise.
1856         * toplev.c (general_init): Initialize line_table's
1857         default_range_bits.
1858         * tree-cfg.c (move_block_to_fn): Likewise.
1859         (move_block_to_fn): Likewise.
1860         * tree-inline.c (copy_phis_for_bb): Likewise.
1861         * tree.c (tree_set_block): Likewise.
1862         (get_pure_location): New function.
1863         (set_source_range): New functions.
1864         (set_block): New function.
1865         (set_source_range): New functions.
1866         * tree.h (CAN_HAVE_RANGE_P): New.
1867         (EXPR_LOCATION_RANGE): New.
1868         (EXPR_HAS_RANGE): New.
1869         (get_expr_source_range): New inline function.
1870         (DECL_LOCATION_RANGE): New.
1871         (set_source_range): New decls.
1872         (get_decl_source_range): New inline function.
1873
1874 2015-11-13  Alan Lawrence  <alan.lawrence@arm.com>
1875
1876         PR tree-optimization/67682
1877         * tree-vect-slp.c (vect_split_slp_store_group): New.
1878         (vect_analyze_slp_instance): During basic block SLP, recurse on
1879         subgroups if vect_build_slp_tree fails after 1st vector.
1880
1881 2015-11-13  Christian Bruel  <christian.bruel@st.com>
1882
1883         PR target/65837
1884         * config/arm/arm.c (arm_option_override): Move NEON check...
1885         (arm_option_check_internal): here
1886         (arm_file_start): Move .fpu print...
1887         (arm_declare_function_name): here
1888         (arm_option_print): Dump current fpu name.
1889         * config/arm/arm.opt (arm_fpu_index): Mark Save.
1890
1891 2015-11-13  Segher Boessenkool  <segher@kernel.crashing.org>
1892             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1893
1894         * combine.c (subst): Don't substitute or simplify when
1895         handling register-wise widening multiply.
1896         (force_to_mode): Likewise.
1897
1898 2015-11-13  Richard Sandiford  <richard.sandiford@arm.com>
1899
1900         PR tree-optimization/68264
1901         * tree-call-cdce.c (gen_one_condition): Update commentary.
1902         (gen_conditions_for_pow_int_base): Invert the sense of the tests
1903         passed to gen_one_condition.
1904         (gen_conditions_for_domain): Likewise.  Use unordered comparisons.
1905         (shrink_wrap_one_built_in_call): Invert the sense of the tests,
1906         using EDGE_FALSE_VALUE for edges to the call block and
1907         EDGE_TRUE_VALUE for the others.
1908
1909 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
1910
1911         * config/nvptx/nvptx.c (nvptx_generate_vector_shuffle): Deal with
1912         complex types.
1913
1914 2015-11-13  Nathan Sidwell  <nathan@codesourcery.com>
1915
1916         * gimplify.c (oacc_default_clause): Use inform for enclosing scope.
1917
1918 2015-11-13  Tom de Vries  <tom@codesourcery.com>
1919
1920         * gen-pass-instances.awk (handle_line): Rename prefix_len var to
1921         len_of_prefix.
1922
1923 2015-11-13  Tom de Vries  <tom@codesourcery.com>
1924
1925         * gen-pass-instances.awk (handle_line): Add args_str variable.
1926
1927 2015-11-13  Martin Liska  <mliska@suse.cz>
1928
1929         * graphite-poly.c (free_scop): Release scop->drs vector.
1930         * graphite-scop-detection.c (scop_detection::harmful_stmt_in_region):
1931         Release dom vector.
1932         (try_generate_gimple_bb): Use vNULL as a default initialization
1933         for vectors.
1934
1935 2015-11-13  Martin Liska  <mliska@suse.cz>
1936
1937         PR ipa/68311
1938         * ipa-icf.c (sem_item_optimizer::traverse_congruence_split):
1939         Replace array initialization (using a variable post-increment)
1940         that possible triggers multiple unsequenced modifications
1941         with a pair of pushes to a vector.
1942
1943 2015-11-13  Richard Biener  <rguenther@suse.de>
1944
1945         PR tree-optimization/68306
1946         * tree-vect-data-refs.c (verify_data_ref_alignment): Move
1947         loop related checks ...
1948         (vect_verify_datarefs_alignment): ... here.
1949         (vect_slp_analyze_and_verify_node_alignment): Compute and
1950         verify alignment of the single DR that it matters.
1951         * tree-vect-stmts.c (vectorizable_store): Add an assert.
1952         (vectorizable_load): Add a comment.
1953         * tree-vect-slp.c (vect_analyze_slp_cost_1): Fix DR used
1954         for determining load cost.
1955
1956 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
1957
1958         * tree-vect-loop.c (vect_determine_vectorization_factor): Check
1959         mix of boolean and integer vectors in a single statement.
1960         * tree-vect-slp.c (vect_mask_constant_operand_p): New.
1961         (vect_get_constant_vectors): Use vect_mask_constant_operand_p to
1962         determine constant type.
1963         * tree-vect-stmts.c (vectorizable_comparison): Provide vectype
1964         for loop invariants.
1965
1966 2015-11-13  Alan Hayward <alan.hayward@arm.com>
1967
1968         PR tree-optimization/66558
1969         * tree-vect-loop.c (is_integer_induction):Add.
1970         (vectorizable_reduction): Add integer induction checks.
1971
1972 2015-11-13  Christophe Lyon  <christophe.lyon@linaro.org>
1973
1974         Revert [ARM] Remove neon-testgen.ml and generated tests.
1975
1976         2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>
1977
1978         [ARM] Remove neon-testgen.ml and generated tests.
1979
1980         * config/arm/neon-testgen.ml: Remove.
1981
1982 2015-11-13  Richard Biener  <rguenther@suse.de>
1983
1984         * tree-vect-loop.c (vect_analyze_loop_2): Add fatal parameter.
1985         Signal fatal failure if early checks fail.
1986         (vect_analyze_loop): If vect_analyze_loop_2 fails fatally
1987         do not bother testing further vector sizes.
1988
1989 2015-11-13  Uros Bizjak  <ubizjak@gmail.com>
1990
1991         * config/i386/predicates.md (misaligned_operand): Return true if
1992         operand is aligned to less than its natural alignmnet.
1993
1994 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
1995
1996         * doc/md.texi (vec_cmp@var{m}@var{n}): New item.
1997         (vec_cmpu@var{m}@var{n}): New item.
1998         (vcond@var{m}@var{n}): Specify comparison is signed.
1999         (vcondu@var{m}@var{n}): New item.
2000         (vcond_mask_@var{m}@var{n}): New item.
2001         (maskload@var{m}@var{n}): New item.
2002         (maskstore@var{m}@var{n}): New item.
2003
2004 2015-11-13  Ilya Enkovich  <enkovich.gnu@gmail.com>
2005
2006         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
2007         types of stored value and storage are compatible.
2008
2009 2015-11-13  Andris Pavenis  <andris.pavenis@iki.fi>
2010
2011         * gcc.c (POST_LINK_SPEC): Define if not already defined.
2012         (LINK_COMMAND_SPEC): Use post_link.
2013         (post_link_spec): New, initialize to POST_LINK_SPEC.
2014         (post_link): Initialize new static spec.
2015         * doc/tm.texi.in (POST_LINK_SPEC): Document.
2016         * doc/tm.texi: Regenerated.
2017
2018 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
2019
2020         PR driver/67613
2021         * Makefile.in (GCC_OBJS): Add spellcheck.o.
2022         (OBJS): Add spellcheck-tree.o.
2023         * gcc.c: Include "spellcheck.h".
2024         (suggest_option): New function.
2025         (driver::handle_unrecognized_options): Call suggest_option to
2026         provide a hint about misspelled options.
2027         * spellcheck.c: Update file comment.
2028         (levenshtein_distance): Convert 4-param implementation from static
2029         to extern scope.  Remove note about unit tests from leading
2030         comment for const char * implementation.  Move tree
2031         implementation to...
2032         * spellcheck-tree.c: New file.
2033         * spellcheck.h (levenshtein_distance):  Add 4-param decl.
2034
2035 2015-11-13  David Malcolm  <dmalcolm@redhat.com>
2036
2037         * Makefile.in (OBJS): Add spellcheck.o.
2038         * spellcheck.c: New file.
2039         * spellcheck.h: New file.
2040
2041 2015-11-13  James Bowman  <james.bowman@ftdichip.com>
2042
2043         * config/ft32/ft32.md (*sne): New insn pattern.
2044
2045 2015-11-12  Brad Lucier  <lucier@math.purdue.edu>
2046
2047         * gcc/cprop.c (is_too_expensive): Remove.
2048         (gcse.h): Include.
2049         (one_cprop_pass): Call gcse_or_cprop_is_too_expensive, not
2050         is_too_expensive.
2051         * gcc/gcse.h (gcse_or_cprop_is_too_expensive): Declare.
2052         * gcc/gcse.c (is_too_expensive): Rename to ...
2053         (gcse_or_cprop_is_too_expensive): ... this.
2054         Expand warning to add required size of max-gcse-memory.
2055         (one_pre_gcse_pass): Use it.
2056         (one_code_hoisting_pass): Use it.
2057         * gcc/params.def (max-gcse-memory): Increase from 50MB to 128MB.
2058
2059 2015-11-12  James Norris  <jnorris@codesourcery.com>
2060             Joseph Myers  <joseph@codesourcery.com>
2061
2062         * gimple-pretty-print.c (dump_gimple_omp_target): Handle
2063         GF_OMP_TARGET_KIND_OACC_DECLARE.
2064         * gimple.h (enum gf_mask): Add GF_OMP_TARGET_KIND_OACC_DECLARE.
2065         (is_gomple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
2066         * gimplify.c (oacc_declare_returns): New.
2067         (gimplify_bind_expr): Prepend 'exit' stmt to cleanup.
2068         (device_resident_p): New function.
2069         (oacc_default_clause): Handle device_resident clause.
2070         (gimplify_oacc_declare_1, gimplify_oacc_declare): New functions.
2071         (gimplify_expr): Handle OACC_DECLARE.
2072         * omp-builtins.def (BUILT_IN_GOACC_DECLARE): New builtin.
2073         * omp-low.c (expand_omp_target): Handle
2074         GF_OMP_TARGET_KIND_OACC_DECLARE and BUILTIN_GOACC_DECLARE.
2075         (build_omp_regions_1): Handlde GF_OMP_TARGET_KIND_OACC_DECLARE.
2076         (lower_omp_target): Handle GF_OMP_TARGET_KIND_OACC_DECLARE,
2077         GOMP_MAP_DEVICE_RESIDENT and GOMP_MAP_LINK.
2078         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_OACC_DECLARE.
2079         * tree-pretty-print.c (dump_omp_clause): Handle GOMP_MAP_LINK and
2080         GOMP_MAP_DEVICE_RESIDENT.
2081
2082 2015-11-12  Christophe Lyon  <christophe.lyon@linaro.org>
2083
2084         [ARM] Remove neon-testgen.ml and generated tests.
2085
2086         * config/arm/neon-testgen.ml: Remove.
2087
2088 2015-11-12  Jim Wilson  <jim.wilson@linaro.org>
2089
2090         * config/aarch64/aarch64-cores.def (qdf24xx): New.
2091         * config/aarch64/aarch64-tune.md: Regenerated.
2092         * config/arm/arm-cores.def (qdf24xx): New.
2093         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Regenerated.
2094         * config/arm/bpabi.h (BE8_LINK_SPEC): Add qdf24xx support.
2095         * doc/invoke.texi (AArch64 Options/-mtune): Add "qdf24xx".
2096         (ARM Options/-mtune): Likewise.
2097
2098 2015-11-12  Martin Liska  <mliska@suse.cz>
2099
2100         * config/i386/i386.c (ix86_valid_target_attribute_p):
2101         Finalize options at the of the function.
2102         * gcc.c (driver_get_configure_time_options): Call newly
2103         introduced init_opts_obstack.
2104         * lto-wrapper.c (main): Likewise.
2105         * opts.c (init_opts_obstack): New function.
2106         (init_options_struct): Call newly introduced init_opts_obstack.
2107         * opts.h (init_options_struct): Declare.
2108
2109 2015-11-12  Martin Liska  <mliska@suse.cz>
2110
2111         PR ipa/68035
2112         * ipa-icf.c (void sem_item::set_hash): New function.
2113         (sem_function::get_hash): Use renamed m_hash member variable.
2114         (sem_item::update_hash_by_addr_refs): Utilize get_hash.
2115         (sem_item::update_hash_by_local_refs): Likewise.
2116         (sem_variable::get_hash): Use renamed m_hash member variable.
2117         (sem_item_optimizer::update_hash_by_addr_refs): Utilize get_hash.
2118         (sem_item_optimizer::build_hash_based_classes): Utilize set_hash.
2119         (sem_item_optimizer::build_graph): As the hash value of an item
2120         is lazy initialized, force the calculation.
2121         * ipa-icf.h (set_hash): Declare new function and rename hash member
2122         variable to m_hash.
2123
2124 2015-11-12  Richard Biener  <rguenther@suse.de>
2125
2126         * tree-vectorizer.h (vect_slp_analyze_data_ref_dependences):
2127         Rename to vect_slp_analyze_instance_dependence.
2128         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
2129         Remove WAR special-case.
2130         (vect_slp_analyze_node_dependences): Instead add more specific
2131         code here, not relying on other instances being vectorized.
2132         (vect_slp_analyze_instance_dependence): Adjust accordingly.
2133         * tree-vect-slp.c (vect_build_slp_tree_1): Remove excessive
2134         vertical space in dump files.
2135         (vect_print_slp_tree): Likewise.
2136         (vect_analyze_slp_instance): Dump a header for the final SLP tree.
2137         (vect_slp_analyze_bb_1): Delay computing relevant stmts and
2138         not vectorized stmts until after dependence analysis removed
2139         instances.  Merge alignment and dependence checks.
2140         * tree-vectorizer.c (pass_slp_vectorize::execute): Clear visited
2141         flag on all stmts.
2142
2143 2015-11-12  Evandro Menezes  <e.menezes@samsung.com>
2144
2145         * config/aarch64/aarch64-protos.h (tune_params): Add new members
2146         "max_case_values" and "cache_line_size".
2147         * config/aarch64/aarch64.c (aarch64_case_values_threshold): New
2148         function.
2149         (aarch64_override_options_internal): Tune heuristics based on new
2150         members in "tune_params".
2151         (TARGET_CASE_VALUES_THRESHOLD): Define macro.
2152
2153 2015-11-12  Richard Biener  <rguenther@suse.de>
2154
2155         PR tree-optimization/68306
2156         * tree-vect-data-refs.c (verify_data_ref_alignment): Remove
2157         relevant and vectorizable checks here.
2158         (vect_verify_datarefs_alignment): Add relevant check here.
2159
2160 2015-11-12  Nathan Sidwell  <nathan@codesourcery.com>
2161
2162         * gimplify.c (oacc_default_clause): New.
2163         (omp_notice_variable): Call it.
2164
2165 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
2166
2167         PR tree-optimization/68305
2168         * tree-vect-slp.c (vect_get_constant_vectors): Support
2169         COND_EXPR with SSA_NAME as a condition.
2170
2171 2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
2172
2173         * config/visium/visium-protos.h (notice_update_cc): Delete.
2174         (print_operand): Likewise.
2175         (print_operand_address): Likewise.
2176
2177 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
2178
2179         * config/alpha/alpha.h (FUNCTION_VALUE, LIBCALL_VALUE,
2180         FUNCTION_VALUE_REGNO_P): Remove.
2181         * config/alpha/alpha-protos.h (function_value): Remove.
2182         * config/alpha/alpha.c (function_value): Rename to...
2183         (alpha_function_value_1): ... this.  Make static.
2184         (alpha_function_value, alpha_libcall_value,
2185         alpha_function_value_regno_p): New functions.
2186         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2187         TARGET_FUNCTION_VALUE_REGNO_P): Define.
2188
2189 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
2190
2191         * config/alpha/alpha.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2192         * config/alpha/alpha.c (alpha_memory_latency): Make static.
2193         (alpha_register_move_cost, alpha_memory_move_cost): New functions.
2194         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2195
2196 2015-11-12  Eric Botcazou  <ebotcazou@adacore.com>
2197
2198         PR target/67265
2199         * config/i386/i386.c (ix86_adjust_stack_and_probe): Remove obsolete
2200         assertion on the CFA register.
2201
2202 2015-11-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
2203
2204         * expr.c (do_store_flag): Expand vector comparison as
2205         VEC_COND_EXPR if vector comparison is not supported by target.
2206
2207 2015-11-12  Renlin Li  <renlin.li@arm.com>
2208
2209         * config/arm/arm.md (addsi3_compare_op2): Make the order of
2210         assembly pattern consistent with constraint order.
2211
2212 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2213
2214         * gen-pass-instances.awk (handle_line): Simplify match regexp.
2215
2216 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2217
2218         * gen-pass-instances.awk (handle_line): Simplify init of
2219         postfix_starts_at.
2220
2221 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2222
2223         * gen-pass-instances.awk (handle_line): Rename var where to
2224         call_starts_at.
2225
2226 2015-11-12  Claudiu Zissulescu  <claziss@synopsys.com>
2227
2228         * config/arc/arc.c (gen_compare_reg): Swap operands also when we
2229         do not expand to rtl.
2230
2231 2015-11-12  Richard Biener  <rguenther@suse.de>
2232
2233         PR tree-optimization/58497
2234         * tree-vect-generic.c: Include gimplify.h.
2235         (tree_vec_extract): Lookup constant/constructor DEFs.
2236         (do_cond): Unshare cond.
2237
2238 2015-11-12  Uros Bizjak  <ubizjak@gmail.com>
2239
2240         * config/i386/i386.c (ix86_legitimate_combined_insn): Reject
2241         combined insn if the alignment of vector mode memory operand
2242         is less than ssememalign.
2243
2244 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2245
2246         * gen-pass-instances.awk (handle_line): Print parentheses and
2247         pass_name explicitly.
2248
2249 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2250
2251         * gen-pass-instances.awk (handle_line): Add pass_num, prefix
2252         and postfix vars.
2253
2254 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2255
2256         * gen-pass-instances.awk (handle_line): Add comments.
2257
2258 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2259
2260         * gen-pass-instances.awk (handle_line): Rename len_of_end to
2261         len_of_close.
2262
2263 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2264
2265         * gen-pass-instances.awk (handle_line): Add len_of_call variable.
2266
2267 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2268
2269         * gen-pass-instances.awk (handle_line): Restructure using early-out.
2270
2271 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2272
2273         * gen-pass-instances.awk (handle_line): Unify semicolon use.
2274
2275 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2276
2277         * gen-pass-instances.awk (handle_line): Remove unused var line_length.
2278
2279 2015-11-12  Tom de Vries  <tom@codesourcery.com>
2280
2281         * gen-pass-instances.awk: Add emacs indent setting.
2282
2283 2015-11-12  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2284
2285         * fold-const.c (fold_binary_loc) : Move Convert A/B/C to A/(B*C)
2286         to match.pd.
2287         Move Convert A/(B/C) to (A/B)*C to match.pd.
2288         Move Convert C1/(X*C2) into (C1/C2)/X to match.pd.
2289         Move Optimize (X & (-A)) / A where A is a power of 2, to
2290         X >> log2(A) to match.pd.
2291
2292         * match.pd (rdiv (rdiv:s @0 @1) @2): New simplifier.
2293         (rdiv @0 (rdiv:s @1 @2)): New simplifier.
2294         (div (convert? (bit_and @0 INTEGER_CST@1)) INTEGER_CST@2):
2295         New simplifier.
2296         (rdiv REAL_CST@0 (mult @1 REAL_CST@2)): New simplifier.
2297
2298 2015-11-12  Charles Baylis  <charles.baylis@linaro.org>
2299
2300         * config/arm/neon.md: (neon_vld2_lane<mode>): Remove unused max
2301         variable.
2302         (neon_vst2_lane<mode>): Likewise.
2303         (neon_vld3_lane<mode>): Likewise.
2304         (neon_vst3_lane<mode>): Likewise.
2305         (neon_vld4_lane<mode>): Likewise.
2306         (neon_vst4_lane<mode>): Likewise.
2307
2308 2015-11-11  Aditya Kumar  <aditya.k7@samsung.com>
2309             Sebastian Pop  <s.pop@samsung.com>
2310
2311         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
2312         New member codegen_error
2313         (translate_isl_ast_for_loop): Remove call to single_succ_edge and
2314         early return.
2315         (translate_isl_ast_node_user): Early return in case of error.
2316         (translate_isl_ast_to_gimple::translate_isl_ast): Same.
2317         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): New.
2318         (add_parameters_to_ivs_params): Remove macro.
2319         (graphite_regenerate_ast_isl): Add if_region pointer to region.
2320         * graphite-poly.c (new_poly_dr): Remove macro.
2321         (print_pdr): Same.
2322         (new_gimple_poly_bb): Same.
2323         (free_gimple_poly_bb): Same.
2324         (print_scop_params): Same.
2325         * graphite-poly.h (struct poly_dr): Same.
2326         (struct poly_bb): Add new_bb.
2327         (gbb_from_bb): Remove dead code.
2328         (pbb_from_bb): Same.
2329         * graphite-scop-detection.c (parameter_index_in_region_1): Same.
2330         (parameter_index_in_region): Same.
2331         (find_scop_parameters): Same.
2332         (build_cross_bb_scalars_def): New.
2333         (build_cross_bb_scalars_use): New.
2334         (graphite_find_cross_bb_scalar_vars): New
2335         (try_generate_gimple_bb): Reads and Writes.
2336         (build_alias_set): Move.
2337         (gather_bbs::before_dom_children): Gather bbs visited.
2338         (build_scops): call build_alias_set.
2339         * graphite-sese-to-poly.c (phi_arg_in_outermost_loop): Delete.
2340         (remove_simple_copy_phi): Delete.
2341         (remove_invariant_phi): Delete.
2342         (simple_copy_phi_p): Delete.
2343         (reduction_phi_p): Delete.
2344         (isl_id_for_dr): Remove unused param.
2345         (parameter_index_in_region_1): Remove macro usage.
2346         (set_scop_parameter_dim): Same.
2347         (add_param_constraints): Same.
2348         (add_conditions_to_constraints): Same
2349         (build_scop_iteration_domain): Same.
2350         (pdr_add_alias_set): Comment.
2351         (add_scalar_version_numbers): New.
2352         (build_poly_dr): ISL id.
2353         (build_scop_drs): Move.
2354         (build_poly_sr_1): Same.
2355         (insert_stmts): Remove.
2356         (build_poly_sr): New.
2357         (new_pbb_from_pbb): Delete.
2358         (insert_out_of_ssa_copy_on_edge): Delete.
2359         (create_zero_dim_array): Delete.
2360         (scalar_close_phi_node_p): Delete.
2361         (propagate_expr_outside_region): Delete.
2362         (rewrite_close_phi_out_of_ssa): Delete.
2363         (rewrite_phi_out_of_ssa): Delete.
2364         (rewrite_degenerate_phi): Delete.
2365         (rewrite_reductions_out_of_ssa): Delete.
2366         (rewrite_cross_bb_scalar_dependence): Delete.
2367         (handle_scalar_deps_crossing_scop_limits):
2368         (rewrite_cross_bb_scalar_deps): Delete.
2369         (build_poly_scop): Remove calls to out-of-ssa functions.
2370         * graphite.c (graphite_transform_loops): Early return in case of
2371         codegen error.
2372         * sese.c (debug_rename_map_1): Delete.
2373         (debug_rename_map): Delete.
2374         (sese_record_loop): Remove macro.
2375         (build_sese_loop_nests): Same.
2376         (new_sese_info): Same.
2377         (free_sese_info): Same.
2378         (sese_insert_phis_for_liveouts):
2379         (is_loop_closed_ssa_use): New.
2380         (number_of_phi_nodes): New.
2381         (bb_contains_loop_close_phi_nodes): New.
2382         (bb_contains_loop_phi_nodes): New.
2383         (phi_uses_name): New.
2384         (is_valid_rename):
2385         (get_rename): Add old_bb and loop_phi for more precise matching of
2386         exprs.
2387         (set_rename): Pass region.
2388         (later_of_the_two): New.
2389         (gsi_insert_earliest): New.
2390         (collect_all_ssa_names): New.
2391         (substitute_ssa_name): New.
2392         (rename_all_uses): New.
2393         (get_rename_from_scev): New.
2394         (rename_uses): Pass old_bb for more precise matching of exprs.
2395         (get_def_bb_for_const): New.
2396         (get_new_name): New.
2397         (get_loc): New.
2398         (get_edges): New.
2399         (copy_loop_phi_args): New.
2400         (copy_loop_phi_nodes): New.
2401         (get_loop_init_value): New.
2402         (find_init_value): New.
2403         (find_init_value_close_phi): New.
2404         (copy_loop_close_phi_args): New.
2405         (copy_loop_close_phi_nodes): New.
2406         (add_phi_arg_for_new_expr): New.
2407         (copy_cond_phi_args): New.
2408         (copy_cond_phi_nodes): New.
2409         (copy_phi_nodes): New.
2410         (should_copy_to_new_region): New.
2411         (set_rename_for_each_def): New.
2412         (graphite_copy_stmts_from_block): Early return in case of error.
2413         (copy_bb_and_scalar_dependences): Same.
2414         * sese.h (vec_find): New.
2415         (SESE_PARAMS): Delete.
2416         (SESE_LOOPS): Delete.
2417         (SESE_LOOP_NEST): Delete.
2418         (sese_contains_loop): Remove macro usage.
2419         (sese_nb_params): Same.
2420         (struct gimple_poly_bb): Added read_scalar_refs, write_scalar_refs.
2421
2422 2015-11-11  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
2423
2424         * graphite-sese-to-poly.c (build_scop_original_schedule): Call
2425         isl_union_map_add_map on every pbb->schedule.
2426
2427 2015-11-11  Tom de Vries  <tom@codesourcery.com>
2428
2429         * tree-parloops.c (create_parallel_loop): Return void.
2430
2431 2015-11-11  Tom de Vries  <tom@codesourcery.com>
2432
2433         * tree-parloops.c (transform_to_exit_first_loop_alt): Insert new exit
2434         block only when needed.
2435
2436 2015-11-11  Uros Bizjak  <ubizjak@gmail.com>
2437
2438         * config/alpha/alpha-protos.h (print_operand): Remove.
2439         (print_operand_address): Remove.
2440         * config/alpha/alpha.h (PRINT_OPERAND): Remove.
2441         (PRINT_OPERAND_ADDRESS): Remove.
2442         (PRINT_OPERAND_PUNCT_VALID_P): Remove.
2443         * config/alpha/alpha.c (TARGET_PRINT_OPERAND): New hook define.
2444         (TARGET_PRINT_OPERAND_ADDRESS): New hook define.
2445         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): New hook define.
2446         (print_operand_address): Rename to...
2447         (alpha_print_operand_address): ...this and make static.
2448         (print_operand): Rename to...
2449         (alpha_print_operand): ...this and make static.
2450         (alpha_print_operand_punct_valid_p): New static function.
2451
2452 2015-11-11  Richard Biener  <rguenther@suse.de>
2453
2454         * tree-vectorizer.h (vect_slp_analyze_and_verify_instance_alignment):
2455         Declare.
2456         (vect_analyze_data_refs_alignment): Make loop vect specific.
2457         (vect_verify_datarefs_alignment): Likewise.
2458         * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependences):
2459         Add missing continue.
2460         (vect_compute_data_ref_alignment): Export.
2461         (vect_compute_data_refs_alignment): Merge into...
2462         (vect_analyze_data_refs_alignment): ... this.
2463         (verify_data_ref_alignment): Split out from ...
2464         (vect_verify_datarefs_alignment): ... here.
2465         (vect_slp_analyze_and_verify_node_alignment): New function.
2466         (vect_slp_analyze_and_verify_instance_alignment): Likewise.
2467         * tree-vect-slp.c (vect_supported_load_permutation_p): Remove
2468         misplaced checks on alignment.
2469         (vect_slp_analyze_bb_1): Add fatal output parameter.  Do
2470         alignment analysis after SLP discovery and do it per instance.
2471         (vect_slp_bb): When vect_slp_analyze_bb_1 fatally failed do not
2472         bother to re-try using different vector sizes.
2473
2474 2015-11-11  Nathan Sidwell  <nathan@codesourcery.com>
2475             Cesar Philippidis  <cesar@codesourcery.com>
2476
2477         * gimplify.c (enum omp_region_type): Add ORT_ACC,
2478         ORT_ACC_DATA, ORT_ACC_PARALLEL, ORT_ACC_KERNELS.  Adjust ORT_NONE.
2479         (gimple_add_tmp_var): Add ORT_ACC checks.
2480         (gimplify_var_or_parm_decl): Likewise.
2481         (omp_firstprivatize_variable): Likewise. Use ORT_TARGET_DATA as a mask.
2482         (omp_add_variable): Look in outer contexts for openacc and allow
2483         reductions with other sharing. Add ORT_ACC and ORT_TARGET_DATA checks.
2484         (omp_notice_variable, omp_is_private, omp_check_private): Add
2485         ORT_ACC checks.
2486         (gimplify_scan_omp_clauses: Treat ORT_ACC as ORT_WORKSHARE.
2487         Permit private openacc reductions.
2488         (gimplify_oacc_cache): Specify ORT_ACC.
2489         (gimplify_omp_workshare): Adjust OpenACC region types.
2490         (gimplify_omp_target_update): Likewise.
2491         * omp-low.c (scan_sharing_clauses): Remove Openacc firstprivate sorry.
2492         (lower-rec_input_clauses): Don't handle openacc firstprivate
2493         references here.
2494         (lower_omp_target): Emit initializers for openacc firstprivate vars.
2495
2496 2015-11-11  Eric Botcazou  <ebotcazou@adacore.com>
2497
2498         PR target/67265
2499         * ira.c (ira_setup_eliminable_regset): Do not necessarily create the
2500         frame pointer for stack checking if non-call exceptions aren't used.
2501         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Likewise.
2502
2503 2015-11-11  Segher Boessenkool  <segher@kernel.crashing.org>
2504
2505         * simplify-rtx.c (simplify_truncation): Simplify TRUNCATE of AND of
2506         [LA]SHIFTRT.
2507
2508 2015-11-11  Martin Liska  <mliska@suse.cz>
2509             Richard Biener  <rguenther@suse.de>
2510
2511         PR rtl-optimization/68287
2512         * lra-lives.c (lra_create_live_ranges_1): Reserve the right
2513         number of elements.
2514
2515 2015-11-11  Simon Dardis  <simon.dardis@imgtec.com>
2516
2517         * config/mips/mips.c (mips_breakable_sequence_p): New function.
2518         (mips_break_sequence): New function.
2519         (mips_reorg_process_insns): Use them. Use compact branches in selected
2520         situations.
2521
2522 2015-11-11  Alan Lawrence  <alan.lawrence@arm.com>
2523
2524         * fold-const.c (get_array_ctor_element_at_index): Fix whitespace, typo.
2525
2526 2015-11-11  Jiong Wang  <jiong.wang@arm.com>
2527             Jim Wilson  <wilson@gcc.gnu.org>
2528
2529         PR target/67305
2530         * config/arm/arm.md (neon_vector_mem_operand): Return FALSE if strict
2531         be true and eliminable registers mentioned.
2532
2533 2015-11-11  Claudiu Zissulescu  <claziss@synopsys.com>
2534
2535         * common/config/arc/arc-common.c (arc_handle_option): Handle ARCv2
2536         options.
2537         * config/arc/arc-opts.h: Add ARCv2 CPUs.
2538         * config/arc/arc-protos.h (arc_secondary_reload_conv): Prototype.
2539         * config/arc/arc.c (arc_secondary_reload): Handle subreg (reg)
2540         situation, and store instructions with large offsets.
2541         (arc_secondary_reload_conv): New function.
2542         (arc_init): Add ARCv2 options.
2543         (arc_conditional_register_usage): Select the proper register usage
2544         for ARCv2 processors.
2545         (arc_handle_interrupt_attribute): ILINK2 is only valid for ARCv1
2546         architecture.
2547         (arc_compute_function_type): Likewise.
2548         (arc_print_operand): Handle new ARCv2 punctuation characters.
2549         (arc_return_in_memory): ARCv2 ABI returns in registers up to 16 bytes.
2550         (workaround_arc_anomaly, arc_asm_insn_p, arc_loop_hazard): New
2551         function.
2552         (arc_reorg, arc_hazard): Use it.
2553         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __HS__ and __EM__.
2554         (ASM_SPEC): Add ARCv2 options.
2555         (TARGET_NORM): ARC HS has norm instructions by default.
2556         (TARGET_OPTFPE): Use optimized floating point emulation for ARC HS.
2557         (TARGET_AT_DBR_CONDEXEC): Only for ARC600 family.
2558         (TARGET_EM, TARGET_HS, TARGET_V2, TARGET_MPYW, TARGET_MULTI): Define.
2559         (SIGNED_INT16, TARGET_MPY, TARGET_ARC700_MPY, TARGET_ANY_MPY):
2560         Likewise.
2561         (TARGET_ARC600_FAMILY, TARGET_ARCOMPACT_FAMILY): Likewise.
2562         (TARGET_LP_WR_INTERLOCK): Likewise.
2563         * config/arc/arc.md
2564         (commutative_binary_mult_comparison_result_used, movsicc_insn)
2565         (mulsi3, mulsi3_600_lib, mulsidi3, mulsidi3_700, mulsi3_highpart)
2566         (umulsi3_highpart_i, umulsi3_highpart_int, umulsi3_highpart)
2567         (umulsidi3, umulsidi3_700, cstoresi4, simple_return, p_return_i):
2568         Use it for ARCv2.
2569         (mulhisi3, mulhisi3_imm, mulhisi3_reg, umulhisi3, umulhisi3_imm)
2570         (umulhisi3_reg, umulhisi3_reg, mulsi3_v2, nopv, bswapsi2)
2571         (prefetch, divsi3, udivsi3 modsi3, umodsi3, arcset, arcsetltu)
2572         (arcsetgeu, arcsethi, arcsetls, reload_*_load, reload_*_store)
2573         (extzvsi): New pattern.
2574         * config/arc/arc.opt: New ARCv2 options.
2575         * config/arc/arcEM.md: New file.
2576         * config/arc/arcHS.md: Likewise.
2577         * config/arc/constraints.md (C3p): New constraint, accepts 1 and 2
2578         values.
2579         (Cm2): A signed 9-bit integer constant constraint.
2580         (C62): An unsigned 6-bit integer constant constraint.
2581         (C16): A signed 16-bit integer constant constraint.
2582         * config/arc/predicates.md (mult_operator): Add ARCv2 processort.
2583         (short_const_int_operand): New predicate.
2584         * config/arc/t-arc-newlib: Add ARCv2 multilib options.
2585         * doc/invoke.texi: Add documentation for -mcpu=<archs/arcem>
2586         -mcode-density and -mdiv-rem.
2587
2588 2015-11-11  Julia Koval  <julia.koval@intel.com>
2589
2590         * config/i386/i386.c (m_SKYLAKE_AVX512): Fix typo.
2591
2592 2015-11-11  Julia Koval  <julia.koval@intel.com>
2593
2594         * config/i386/i386.c: Handle "skylake" and "skylake-avx512".
2595
2596 2015-11-11  Martin Liska  <mliska@suse.cz>
2597
2598         * gimple-ssa-strength-reduction.c (create_phi_basis):
2599         Use auto_vec.
2600         * passes.c (release_dump_file_name): New function.
2601         (pass_init_dump_file): Used from this function.
2602         (pass_fini_dump_file): Likewise.
2603         * tree-sra.c (convert_callers_for_node): Use xstrdup_for_dump.
2604         * var-tracking.c (vt_initialize): Use pool_allocator.
2605
2606 2015-11-11  Richard Biener  <rguenth@gcc.gnu.org>
2607             Jiong Wang      <jiong.wang@arm.com>
2608
2609         PR tree-optimization/68234
2610         * tree-vrp.c (vrp_visit_phi_node): Extend SCEV check to those loop PHI
2611         node which estimiated to be VR_VARYING initially.
2612
2613 2015-11-11  Robert Suchanek  <robert.suchanek@imgtec.com>
2614
2615         * regname.c (scan_rtx_reg): Check the matching number of consecutive
2616         registers when tying chains.
2617         (build_def_use): Move terminated_this_insn earlier in the function.
2618
2619 2015-11-10  Mike Frysinger  <vapier@gentoo.org>
2620
2621         * configure.ac: Use = with test and not ==.
2622         * configure: Regenerated.
2623
2624 2015-11-11  David Edelsohn  <dje.gcc@gmail.com>
2625
2626         * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Add cpu and
2627         machine asserts.  Update defines for 64 bit.
2628
2629 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
2630
2631         PR target/63870
2632         * config/arm/neon.md (neon_vld1_lane<mode>): Remove error for invalid
2633         lane number.
2634         (neon_vst1_lane<mode>): Likewise.
2635         (neon_vld2_lane<mode>): Likewise.
2636         (neon_vst2_lane<mode>): Likewise.
2637         (neon_vld3_lane<mode>): Likewise.
2638         (neon_vst3_lane<mode>): Likewise.
2639         (neon_vld4_lane<mode>): Likewise.
2640         (neon_vst4_lane<mode>): Likewise.
2641
2642 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
2643
2644         PR target/63870
2645         * config/arm/arm-builtins.c: (arm_load1_qualifiers) Use
2646         qualifier_struct_load_store_lane_index.
2647         (arm_storestruct_lane_qualifiers) Likewise.
2648         * config/arm/neon.md: (neon_vld1_lane<mode>) Reverse lane numbers for
2649         big-endian.
2650         (neon_vst1_lane<mode>) Likewise.
2651         (neon_vld2_lane<mode>) Likewise.
2652         (neon_vst2_lane<mode>) Likewise.
2653         (neon_vld3_lane<mode>) Likewise.
2654         (neon_vst3_lane<mode>) Likewise.
2655         (neon_vld4_lane<mode>) Likewise.
2656         (neon_vst4_lane<mode>) Likewise.
2657
2658 2015-11-11  Charles Baylis  <charles.baylis@linaro.org>
2659
2660         PR target/63870
2661         * config/arm/arm-builtins.c (enum arm_type_qualifiers): New enumerator
2662         qualifier_struct_load_store_lane_index.
2663         (builtin_arg): New enumerator NEON_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
2664         (arm_expand_neon_args): New parameter. Remove ellipsis. Handle NEON
2665         argument qualifiers.
2666         (arm_expand_neon_builtin): Handle new NEON argument qualifier.
2667         * config/arm/arm.h (NEON_ENDIAN_LANE_N): New macro.
2668
2669 2015-11-10  Nathan Sidwell  <nathan@codesourcery.com>
2670
2671         * config/nvptx/nvptx.opt (moptimize): New flag.
2672         * config/nvptx/nvptx.c (nvptx_option_override): Set nvptx_optimize
2673         default.
2674         (nvptx_optimize_inner): New.
2675         (nvptx_process_pars): Call it when optimizing.
2676         * doc/invoke.texi (Nvidia PTX Options): Document -moptimize.
2677
2678 2015-11-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2679
2680         * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
2681         Remove redundant code.
2682
2683 2015-11-10  Jeff Law  <law@redhat.com>
2684
2685         * config/ft32/ft32.c (ft32_print_operand): Supply mode to
2686         call to output_address.
2687         * config/moxie/moxie.c (moxie_print_operand_address): Similarly.
2688         Add unnamed machine_mode argument.
2689
2690 2015-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2691
2692         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add power9 to hosts that
2693         default to 64-bit.
2694
2695 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
2696
2697         * config/i386/i386.md (*movabs<mode>_1): Add explicit
2698         size directives for -masm=intel.
2699         (*movabs<mode>_2): Ditto.
2700
2701 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
2702
2703         * config/i386/i386.c (ix86_print_operand): Remove dead code that
2704         tried to avoid (%rip) for call operands.
2705
2706 2015-11-10  Uros Bizjak  <ubizjak@gmail.com>
2707
2708         * config/i386/i386.c (ix86_print_operand_address_as): Add no_rip
2709         argument.  Do not use RIP relative addressing when no_rip is set.
2710         (ix86_print_operand): Update call to ix86_print_operand_address_as.
2711         (ix86_print_operand_address): Ditto.
2712         * config/i386/i386.md (*movabs<mode>_1): Use %P modifier for
2713         absolute movabs operand 0.  Add square braces for -masm=intel.
2714         (*movabs<mode>_2): Ditto for operand 1.
2715
2716 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2717
2718         * config/arm/arm.c (arm_new_rtx_costs, FIX case): Handle
2719         combine_vcvtf2i pattern.
2720
2721 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2722
2723         * config/arm/arm.c (neon_valid_immediate): Remove integer
2724         CONST_DOUBLE handling.  It should never occur.
2725
2726 2015-11-10  Matthew Wahab  <matthew.wahab@arm.com>
2727
2728         * config/aarch64/atomics.md (unspecv): Move to iterators.md.
2729         (ATOMIC_LDOP): Likewise.
2730         (atomic_ldop): Likewise.
2731         * config/aarch64/iterators.md (unspecv): Moved from atomics.md.
2732         (ATOMIC_LDOP): Likewise.
2733         (atomic_ldop): Likewise.
2734
2735 2015-11-10  Martin Liska  <mliska@suse.cz>
2736
2737         * alloc-pool.h (allocate_raw): New function.
2738         (operator new (size_t, object_allocator<T> &a)): Use the
2739         function instead of object_allocator::allocate).
2740
2741 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
2742
2743         * config/i386/sse.md (HALFMASKMODE): New attribute.
2744         (DOUBLEMASKMODE): New attribute.
2745         (vec_pack_trunc_qi): New.
2746         (vec_pack_trunc_<mode>): New.
2747         (vec_unpacks_lo_hi): New.
2748         (vec_unpacks_lo_si): New.
2749         (vec_unpacks_lo_di): New.
2750         (vec_unpacks_hi_hi): New.
2751         (vec_unpacks_hi_<mode>): New.
2752
2753 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
2754
2755         * optabs.c (expand_binop_directly): Allow scalar mode for
2756         vec_pack_trunc_optab.
2757         * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
2758         boolean vector producers from pattern sequence when computing VF.
2759         * tree-vect-patterns.c (vect_vect_recog_func_ptrs) Add
2760         vect_recog_mask_conversion_pattern.
2761         (search_type_for_mask): Choose the smallest
2762         type if different size types are mixed.
2763         (build_mask_conversion): New.
2764         (vect_recog_mask_conversion_pattern): New.
2765         (vect_pattern_recog_1): Allow scalar mode for boolean vectype.
2766         * tree-vect-stmts.c (vectorizable_mask_load_store): Support masked
2767         load with pattern.
2768         (vectorizable_conversion): Support boolean vectors.
2769         (free_stmt_vec_info): Allow patterns for statements with no lhs.
2770         * tree-vectorizer.h (NUM_PATTERNS): Increase to 14.
2771
2772 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
2773
2774         * config/i386/i386-protos.h (ix86_expand_sse_movcc): New.
2775         * config/i386/i386.c (ix86_expand_sse_movcc): Make public.
2776         Cast mask to FP mode if required.
2777         * config/i386/sse.md (vcond_mask_<mode><avx512fmaskmodelower>): New.
2778         (vcond_mask_<mode><avx512fmaskmodelower>): New.
2779         (vcond_mask_<mode><sseintvecmodelower>): New.
2780         (vcond_mask_<mode><sseintvecmodelower>): New.
2781         (vcond_mask_v2div2di): New.
2782         (vcond_mask_<mode><sseintvecmodelower>): New.
2783         (vcond_mask_<mode><sseintvecmodelower>): New.
2784
2785 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
2786
2787         * optabs-query.h (get_vcond_mask_icode): New.
2788         * optabs-tree.c (expand_vec_cond_expr_p): Use
2789         get_vcond_mask_icode for VEC_COND_EXPR with mask.
2790         * optabs.c (expand_vec_cond_mask_expr): New.
2791         (expand_vec_cond_expr): Use get_vcond_mask_icode when possible.
2792         * optabs.def (vcond_mask_optab): New.
2793         * tree-vect-patterns.c (vect_recog_bool_pattern): Don't
2794         generate redundant comparison for COND_EXPR.
2795         * tree-vect-stmts.c (vect_is_simple_cond): Allow SSA_NAME
2796         as a condition.
2797         (vectorizable_condition): Likewise.
2798         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow
2799         cond_exp with no embedded comparison.
2800         (vect_build_slp_tree_1): Likewise.
2801
2802 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
2803
2804         * config/i386/sse.md (maskload<mode>): Rename to ...
2805         (maskload<mode><sseintvecmodelower>): ... this.
2806         (maskstore<mode>): Rename to ...
2807         (maskstore<mode><sseintvecmodelower>): ... this.
2808         (maskload<mode><avx512fmaskmodelower>): New.
2809         (maskstore<mode><avx512fmaskmodelower>): New.
2810
2811 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
2812
2813         * internal-fn.c (expand_MASK_LOAD): Adjust to maskload optab changes.
2814         (expand_MASK_STORE): Adjust to maskstore optab changes.
2815         * optabs-query.c (can_vec_mask_load_store_p): Add MASK_MODE arg.
2816          Adjust to maskload, maskstore optab changes.
2817         * optabs-query.h (can_vec_mask_load_store_p): Add MASK_MODE arg.
2818         * optabs.def (maskload_optab): Transform into convert optab.
2819         (maskstore_optab): Likewise.
2820         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Adjust to
2821         can_vec_mask_load_store_p signature change.
2822         (predicate_mem_writes): Use boolean mask.
2823         * tree-vect-stmts.c (vectorizable_mask_load_store): Adjust to
2824         can_vec_mask_load_store_p signature change.  Allow invariant masks.
2825         (vectorizable_operation): Ignore type precision for boolean vectors.
2826
2827 2015-11-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
2828
2829         * expr.c (do_store_flag): Use expand_vec_cmp_expr for mask results.
2830         (const_vector_mask_from_tree): New.
2831         (const_vector_from_tree): Use const_vector_mask_from_tree
2832         for boolean vectors.
2833         * optabs-query.h (get_vec_cmp_icode): New.
2834         * optabs-tree.c (expand_vec_cmp_expr_p): New.
2835         * optabs-tree.h (expand_vec_cmp_expr_p): New.
2836         * optabs.c (vector_compare_rtx): Add OPNO arg.
2837         (expand_vec_cond_expr): Adjust to vector_compare_rtx change.
2838         (expand_vec_cmp_expr): New.
2839         * optabs.def (vec_cmp_optab): New.
2840         (vec_cmpu_optab): New.
2841         * optabs.h (expand_vec_cmp_expr): New.
2842         * tree-vect-generic.c (expand_vector_comparison): Add vector
2843         comparison optabs check.
2844         * tree-vect-loop.c (vect_determine_vectorization_factor):  Ignore mask
2845         operations for VF.  Add mask type computation.
2846         * tree-vect-stmts.c (get_mask_type_for_scalar_type): New.
2847         (vectorizable_comparison): New.
2848         (vect_analyze_stmt): Add vectorizable_comparison.
2849         (vect_transform_stmt): Likewise.
2850         (vect_init_vector): Support boolean vector invariants.
2851         (vect_get_vec_def_for_operand): Add VECTYPE arg.
2852         (vectorizable_condition): Directly provide vectype for invariants
2853         used in comparison.
2854         * tree-vectorizer.h (get_mask_type_for_scalar_type): New.
2855         (enum vect_var_kind): Add vect_mask_var.
2856         (enum stmt_vec_info_type): Add comparison_vec_info_type.
2857         (vectorizable_comparison): New.
2858         (vect_get_vec_def_for_operand): Add VECTYPE arg.
2859         * tree-vect-data-refs.c (vect_get_new_vect_var): Support vect_mask_var.
2860         (vect_create_destination_var): Likewise.
2861         * tree-vect-patterns.c (check_bool_pattern): Check fails
2862         if we can vectorize comparison directly.
2863         (search_type_for_mask): New.
2864         (vect_recog_bool_pattern): Support cases when bool pattern check fails.
2865         * tree-vect-slp.c (vect_build_slp_tree_1): Allow
2866         comparison statements.
2867         (vect_get_constant_vectors): Support boolean vector constants.
2868         * config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): New.
2869         (ix86_expand_int_vec_cmp): New.
2870         (ix86_expand_fp_vec_cmp): New.
2871         * config/i386/i386.c (ix86_expand_sse_cmp): Allow NULL for
2872         op_true and op_false.
2873         (ix86_int_cmp_code_to_pcmp_immediate): New.
2874         (ix86_fp_cmp_code_to_pcmp_immediate): New.
2875         (ix86_cmp_code_to_pcmp_immediate): New.
2876         (ix86_expand_mask_vec_cmp): New.
2877         (ix86_expand_fp_vec_cmp): New.
2878         (ix86_expand_int_sse_cmp): New.
2879         (ix86_expand_int_vcond): Use ix86_expand_int_sse_cmp.
2880         (ix86_expand_int_vec_cmp): New.
2881         (ix86_get_mask_mode): New.
2882         (TARGET_VECTORIZE_GET_MASK_MODE): New.
2883         * config/i386/sse.md (avx512fmaskmodelower): New.
2884         (vec_cmp<mode><avx512fmaskmodelower>): New.
2885         (vec_cmp<mode><sseintvecmodelower>): New.
2886         (vec_cmpv2div2di): New.
2887         (vec_cmpu<mode><avx512fmaskmodelower>): New.
2888         (vec_cmpu<mode><sseintvecmodelower>): New.
2889         (vec_cmpuv2div2di): New.
2890
2891 2015-11-10  Richard Biener  <rguenther@suse.de>
2892
2893         PR tree-optimization/68240
2894         * tree-ssa-sccvn.c (cond_stmts_equal_p): Handle commutative compares
2895         properly.
2896         (visit_phi): For PHIs with just a single executable edge
2897         take its value directly.
2898         (expressions_equal_p): Handle VN_TOP properly.
2899
2900 2015-11-10  Richard Biener  <rguenther@suse.de>
2901
2902         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
2903         Handle memory using/clobbering stmts without a STMT_VINFO_DATA_REF
2904         conservatively.
2905
2906 2015-11-10  Richard Biener  <rguenther@suse.de>
2907
2908         PR tree-optimization/56118
2909         * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Make equal
2910         cost favor vectorized version.
2911
2912 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2913
2914         * config/aarch64/aarch64.md (<neg_not_op><mode>cc): New define_expand.
2915         * config/aarch64/iterators.md (NEG_NOT): New code iterator.
2916         (neg_not_op): New code attribute.
2917
2918 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2919
2920         * ifcvt.c (noce_try_inverse_constants): New function.
2921         (noce_process_if_block): Call it.
2922         * optabs.h (emit_conditional_neg_or_complement): Declare prototype.
2923         * optabs.def (negcc_optab, notcc_optab): Declare.
2924         * optabs.c (emit_conditional_neg_or_complement): New function.
2925         * doc/tm.texi (Standard Names): Document negcc, notcc names.
2926
2927 2015-11-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2928
2929         PR rtl-optimization/68236
2930         * haifa-sched.c (autopref_multipass_dfa_lookahead_guard): Return 0
2931         if insn_queue doesn't exist.
2932         (haifa_sched_finish): Reset insn_queue to NULL.
2933
2934 2015-11-10  Robert Suchanek  <robert.suchanek@imgtec.com>
2935
2936         * regrename.c (create_new_chain): Initialize renamed and tied_chain.
2937         (build_def_use): Initialize terminated_this_insn.
2938         (find_best_rename_reg): Pick and check register from the tied chain.
2939         (regrename_do_replace): Mark head as renamed.
2940         (struct du_head *terminated_this_insn). New static variable.
2941         (scan_rtx_reg): Tie chains in move insns.  Set terminated_this_insn.
2942         * regrename.h (struct du_head): Add tied_chain, renamed members.
2943
2944 2015-11-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2945
2946         PR bootstrap/68256
2947         * config/aarch64/aarch64.c (aarch64_use_constant_blocks_p):
2948         Return false.
2949
2950 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
2951
2952         PR target/57845
2953         * config/sparc/sparc.c (sparc_function_value_1): In 32-bit mode, do
2954         not promote the mode for aggregate types.
2955
2956 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
2957
2958         * omp-low.h (replace_oacc_fn_attrib, build_oacc_routine_dims): Declare.
2959         * omp-low.c (build_oacc_routine_dims): New.
2960
2961 2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
2962
2963         * config/rs6000/constraints.md (wF constraint): New constraints
2964         for power9/toc fusion.
2965         (wG constraint): Likewise.
2966
2967         * config/rs6000/predicates.md (u6bit_cint_operand): New
2968         predicate, recognize 0..63.
2969         (upper16_cint_operand): New predicate for power9 and toc fusion.
2970         (fpr_reg_operand): Likewise.
2971         (toc_fusion_or_p9_reg_operand): Likewise.
2972         (toc_fusion_mem_raw): Likewise.
2973         (toc_fusion_mem_wrapped): Likewise.
2974         (fusion_gpr_addis): If power9 fusion, allow fusion for a larger
2975         address range.
2976         (fusion_gpr_mem_combo): Delete, use fusion_addis_mem_combo_load
2977         instead.
2978         (fusion_addis_mem_combo_load): Add support for power9 fusion of
2979         floating point loads, floating point stores, and gpr stores.
2980         (fusion_addis_mem_combo_store): Likewise.
2981         (fusion_offsettable_mem_operand): Likewise.
2982
2983         * config/rs6000/rs6000-protos.h (emit_fusion_addis): Add declarations.
2984         (emit_fusion_load_store): Likewise.
2985         (fusion_p9_p): Likewise.
2986         (expand_fusion_p9_load): Likewise.
2987         (expand_fusion_p9_store): Likewise.
2988         (emit_fusion_p9_load): Likewise.
2989         (emit_fusion_p9_store): Likewise.
2990         (fusion_wrap_memory_address): Likewise.
2991
2992         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add new
2993         elements for power9 fusion.
2994         (rs6000_debug_print_mode): Rework debug information to print more
2995         information about fusion.
2996         (rs6000_init_hard_regno_mode_ok): Setup for power9 fusion support.
2997         (rs6000_legitimate_address_p): Recognize toc fusion as a valid
2998         offsettable memory address.
2999         (rs6000_rtx_costs): Update costs for new ISA 3.0 instructions.
3000         (emit_fusion_gpr_load): Move most of the code from
3001         emit_fusion_gpr_load into emit_fusion-addis that handles both
3002         power8 and power9 fusion.
3003         (emit_fusion_addis): Likewise.
3004         (emit_fusion_load_store): Likewise.
3005         (fusion_wrap_memory_address): Add support for TOC fusion.
3006         (fusion_split_address): Likewise.
3007         (fusion_p9_p): Add support for power9 fusion.
3008         (expand_fusion_p9_load): Likewise.
3009         (expand_fusion_p9_store): Likewise.
3010         (emit_fusion_p9_load): Likewise.
3011         (emit_fusion_p9_store): Likewise.
3012
3013         * config/rs6000/rs6000.h (TARGET_EXTSWSLI): Macros for support for
3014         new instructions in ISA 3.0.
3015         (TARGET_CTZ): Likewise.
3016         (TARGET_TOC_FUSION_INT): Macros for power9 fusion support.
3017         (TARGET_TOC_FUSION_FP): Likewise.
3018
3019         * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): New power9/toc
3020         fusion unspecs.
3021         (UNSPEC_FUSION_ADDIS): Likewise.
3022         (QHSI mode iterator): New iterator for power9 fusion.
3023         (GPR_FUSION): Likewise.
3024         (FPR_FUSION): Likewise.
3025         (mod<mode>3): Add support for ISA 3.0 modulus instructions.
3026         (umod<mode>3): Likewise.
3027         (divmod peephole): Likewise.
3028         (udivmod peephole): Likewise.
3029         (ctz<mode>2): Add support for ISA 3.0 count trailing zeros scalar
3030         instructions.
3031         (ctz<mode>2_h): Likewise.
3032         (ashdi3_extswsli): Add support for ISA 3.0 EXTSWSLI instruction.
3033         (ashdi3_extswsli_dot): Likewise.
3034         (ashdi3_extswsli_dot2): Likewise.
3035         (power9 fusion splitter): New power9/toc fusion support.
3036         (toc_fusionload_<mode>): Likewise.
3037         (toc_fusionload_di): Likewise.
3038         (fusion_gpr_load_<mode>): Update predicate function.
3039         (power9 fusion peephole2s): New power9/toc fusion support.
3040         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
3041         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise.
3042         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_load): Likewise.
3043         (fusion_fpr_<P:mode>_<FPR_FUSION:mode>_store): Likewise.
3044         (fusion_p9_<mode>_constant): Likewise.
3045
3046 2015-11-09  Steve Ellcey  <sellcey@imgtec.com>
3047
3048         * optabs.c (prepare_libcall_arg): New function.
3049         (expand_fixed_convert): Add call to prepare_libcall_arg.
3050
3051 2015-11-09  Nikolai Bozhenov  <n.bozhenov@samsung.com>
3052
3053         * sched-int.h (dump_rgn_dependencies_dot): Declare
3054         * sched-rgn.c (dump_rgn_dependencies_dot): New function
3055         * print-rtl.h (print_insn): Add prototype
3056
3057         * haifa-sched.c (setup_sched_dump): Don't redirect output to stderr.
3058         * common.opt (-fsched-verbose): Set default value to 1.
3059         * invoke.texi (-fsched-verbose): Update the option's description.
3060
3061 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3062
3063         * config/visium/visium.h (PRINT_OPERAND): Delete.
3064         (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
3065         (PRINT_OPERAND_ADDRESS): Likewise.
3066         * config/visium/visium.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define
3067         to...
3068         (visium_print_operand_punct_valid_p): ...this.  New function.
3069         (TARGET_PRINT_OPERAND): Define to...
3070         (print_operand): Rename to...
3071         (visium_print_operand): ...this.
3072         (TARGET_PRINT_OPERAND_ADDRESS): Define to...
3073         (visium_output_address): Rename to...
3074         (visium_print_operand_address): ...this.
3075         (print_operand_address): Delete.
3076
3077 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3078
3079         PR middle-end/68259
3080         * tree.h (reverse_storage_order_for_component_p) <COMPONENT_REF>:
3081         Check that the type of the first operand is an aggregate type.
3082
3083 2015-11-09  Nathan Sidwell  <nathan@codesourcery.com>
3084
3085         * omp-low.c: Fix some OpenACC comment typos.
3086         (lower_reduction_clauses): Remove BUILT_IN_GOACC_GET_THREAD_NUM call.
3087         * omp-builtins.def (BUILT_IN_GOACC_GET_THREAD_NUM,
3088         BUILT_IN_GOACC_GET_NUM_THREADS): Delete.
3089
3090 2015-11-09  Uros Bizjak  <ubizjak@gmail.com>
3091
3092         * config/i386/i386.md (*strmovqi_1): Fix insn enable condition.
3093
3094 2015-11-09  Jeff Law  <law@redhat.com>
3095
3096         * tree-ssanames.c (verify_ssaname_freelists): Simplify check for
3097         being in gimple/ssa form.  Remove redundant check for SSA_NAME.
3098         Fix comment typo.
3099
3100 2015-11-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3101             Peter Bergner  <bergner@vnet.ibm.com>
3102
3103         * config/rs6000/rs6000.opt (-mpower9-fusion): Add new switches for
3104         ISA 3.0 (power9).
3105         (-mpower9-vector): Likewise.
3106         (-mpower9-dform): Likewise.
3107         (-mpower9-minmax): Likewise.
3108         (-mtoc-fusion): Likewise.
3109         (-mmodulo): Likewise.
3110         (-mfloat128-hardware): Likewise.
3111
3112         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add option
3113         mask for ISA 3.0 (power9).
3114         (POWERPC_MASKS): Add new ISA 3.0 switches.
3115         (power9 cpu): Add power9 cpu.
3116
3117         * config/rs6000/rs6000.h (ASM_CPU_POWER9_SPEC): Add support for power9.
3118         (ASM_CPU_SPEC): Likewise.
3119         (EXTRA_SPECS): Likewise.
3120
3121         * config/rs6000/rs6000-opts.h (enum processor_type): Add
3122         PROCESSOR_POWER9.
3123
3124         * config/rs6000/rs6000.c (power9_cost): Initial cost setup for power9.
3125         (rs6000_debug_reg_global): Add support for power9 fusion.
3126         (rs6000_setup_reg_addr_masks): Cache mode size.
3127         (rs6000_option_override_internal): Until real power9 tuning is
3128         added, use -mtune=power8 for -mcpu=power9.
3129         (rs6000_setup_reg_addr_masks): Do not allow pre-increment,
3130         pre-decrement, or pre-modify on SFmode/DFmode if we allow the use
3131         of Altivec registers.
3132         (rs6000_option_override_internal): Add support for ISA 3.0 switches.
3133         (rs6000_loop_align): Add support for power9 cpu.
3134         (rs6000_file_start): Likewise.
3135         (rs6000_adjust_cost): Likewise.
3136         (rs6000_issue_rate): Likewise.
3137         (insn_must_be_first_in_group): Likewise.
3138         (insn_must_be_last_in_group): Likewise.
3139         (force_new_group): Likewise.
3140         (rs6000_register_move_cost): Likewise.
3141         (rs6000_opt_masks): Likewise.
3142
3143         * config/rs6000/rs6000.md (cpu attribute): Add power9.
3144         * config/rs6000/rs6000-tables.opt: Regenerate.
3145
3146         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
3147         _ARCH_PWR9 if power9 support is available.
3148
3149         * config/rs6000/aix61.h (ASM_CPU_SPEC): Add power9.
3150         * config/rs6000/aix53.h (ASM_CPU_SPEC): Likewise.
3151
3152         * configure.ac: Determine if the assembler supports the ISA 3.0
3153         instructions.
3154         * config.in (HAVE_AS_POWER9): Likewise.
3155         * configure: Regenerate.
3156
3157         * doc/invoke.texi (RS/6000 and PowerPC Options): Document ISA 3.0
3158         switches.
3159
3160 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3161
3162         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate):
3163         Remove integer CONST_DOUBLE handling.  It should never occur.
3164
3165 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3166
3167         PR target/68129
3168         * config/aarch64/aarch64.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
3169         * config/aarch64/aarch64.c (aarch64_print_operand, CONST_DOUBLE):
3170         Delete VOIDmode case.  Assert that mode is not VOIDmode.
3171         * config/aarch64/predicates.md (const0_operand): Remove const_double
3172         match.
3173
3174 2015-11-09  Martin Liska  <mliska@suse.cz>
3175
3176         * ipa-inline-analysis.c (estimate_function_body_sizes): Call
3177         body_info release function.
3178         * ipa-prop.c (ipa_release_body_info): New function.
3179         (ipa_analyze_node): Call the function.
3180         (ipa_node_params::~ipa_node_params): Release known_csts.
3181         * ipa-prop.h (ipa_release_body_info): Declare.
3182
3183 2015-11-09  Martin Liska  <mliska@suse.cz>
3184
3185         * gcc.c (record_temp_file): Release name string.
3186         * ifcvt.c (noce_convert_multiple_sets): Use auto_vec instead of vec.
3187         * lra-lives.c (free_live_range_list): Utilize
3188         lra_live_range_pool for allocation and deallocation.
3189         (create_live_range): Likewise.
3190         (copy_live_range): Likewise.
3191         (lra_merge_live_ranges): Likewise.
3192         (remove_some_program_points_and_update_live_ranges): Likewise.
3193         (lra_create_live_ranges_1): Release point_freq_vec that can
3194         be not freed from previous iteration of the function.
3195         * tree-eh.c (lower_try_finally_switch): Use auto_vec instead of vec.
3196         * tree-sra.c (sra_deinitialize): Release all vectors in
3197         base_access_vec.
3198         * tree-ssa-dom.c (free_dom_edge_info): Make the function extern.
3199         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
3200         Release edge_info for a removed edge.
3201         (thread_through_all_blocks): Free region vector.
3202         * tree-ssa.h (free_dom_edge_info): Declare function extern.
3203
3204 2015-11-09  Ilya Enkovich  <enkovich.gnu@gmail.com>
3205
3206         * optabs.c (expand_vec_cond_expr): Always get sign from type.
3207         * tree.c (wide_int_to_tree): Support negative values for boolean.
3208         (build_nonstandard_boolean_type): Use signed type for booleans.
3209
3210 2015-11-09  Richard Biener  <rguenther@suse.de>
3211
3212         PR tree-optimization/68248
3213         * tree-vect-generic.c (expand_vector_operations_1): Handle scalar rhs2.
3214
3215 2015-11-09  Richard Biener  <rguenther@suse.de>
3216
3217         PR tree-optimization/56118
3218         * tree-vectorizer.h (vect_find_last_scalar_stmt_in_slp): Declare.
3219         * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Export.
3220         * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): New
3221         function.
3222         (vect_slp_analyze_data_ref_dependences): Instead of computing
3223         all dependences of the region DRs just analyze the code motions
3224         SLP vectorization will perform.  Remove SLP instances that
3225         cannot have their store/load motions applied.
3226         (vect_analyze_data_refs): Allow DRs without a vectype
3227         in BB vectorization.
3228
3229 2015-11-09  Julian Brown  <julian@codesourcery.com>
3230
3231         * final.c (output_asm_insn): Pass VOIDmode to output_address.
3232         (output_address): Add MODE argument. Pass to print_operand_address
3233         hook.
3234         * targhooks.c (default_print_operand_address): Add MODE argument.
3235         * targhooks.h (default_print_operand_address): Update prototype.
3236         * output.h (output_address): Update prototype.
3237         * target.def (print_operand_address): Add MODE argument.
3238         * config/vax/vax.c (print_operand_address): Pass VOIDmode to
3239         output_address.
3240         (print_operand): Pass access mode to output_address.
3241         * config/mcore/mcore.c (mcore_print_operand_address): Add MODE
3242         argument.
3243         (mcore_print_operand): Update calls to mcore_print_operand_address.
3244         * config/fr30/fr30.c (fr30_print_operand): Pass VOIDmode to
3245         output_address.
3246         * config/lm32/lm32.c (lm32_print_operand): Pass mode in calls to
3247         output_address.
3248         * config/tilegx/tilegx.c (output_memory_reference_mode): Remove
3249         global.
3250         (tilegx_print_operand): Don't set above global. Update calls to
3251         output_address.
3252         (tilegx_print_operand_address): Add MODE argument. Use instead of
3253         output_memory_reference_mode global.
3254         * config/frv/frv.c (frv_print_operand_address): Add MODE argument.
3255         (frv_print_operand): Pass mode to frv_print_operand_address calls.
3256         * config/mn10300/mn10300.c (mn10300_print_operand): Pass mode to
3257         output_address.
3258         * config/cris/cris.c (cris_print_operand_address): Add MODE argument.
3259         (cris_print_operand): Pass mode to output_address calls.
3260         * config/spu/spu.c (print_operand): Pass mode to output_address calls.
3261         * config/aarch64/aarch64.h (aarch64_print_operand)
3262         (aarch64_print_operand_address): Remove prototypes.
3263         * config/aarch64/aarch64.c (aarch64_memory_reference_mode): Delete
3264         global.
3265         (aarch64_print_operand): Make static. Update calls to output_address.
3266         (aarch64_print_operand_address): Add MODE argument. Use instead of
3267         aarch64_memory_reference_mode global.
3268         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define target
3269         hooks.
3270         * config/aarch64/aarch64.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
3271         Delete macro definitions.
3272         * config/pa/pa.c (pa_print_operand): Pass mode in output_address calls.
3273         * config/xtensa/xtensa.c (print_operand): Pass mode in
3274         output_address calls.
3275         * config/h8300/h8300.c (h8300_print_operand_address): Add MODE
3276         argument.
3277         (h83000_print_operand): Update calls to h8300_print_operand_address
3278         and output_address.
3279         * config/ia64/ia64.c (ia64_print_operand_address): Add MODE argument.
3280         * config/tilepro/tilepro.c (output_memory_reference_mode): Delete
3281         global.
3282         (tilepro_print_operand): Pass mode to output_address.
3283         (tilepro_print_operand_address): Add MODE argument. Use instead of
3284         output_memory_reference_mode.
3285         * config/nvptx/nvptx.c (output_decl_chunk, nvptx_assemble_integer)
3286         (nvptx_output_call_insn, nvptx_print_address_operand): Pass VOIDmode
3287         to output_address calls.
3288         (nvptx_print_operand_address): Add MODE argument.
3289         * config/alpha/alpha.c (print_operand): Pass mode argument in
3290         output_address calls.
3291         * config/m68k/m68k.c (print_operand): Pass mode argument in
3292         output_address call.
3293         * config/avr/avr.c (avr_print_operand_address): Add MODE argument.
3294         (avr_print_operand): Update calls to avr_print_operand_address.
3295         * config/sparc/sparc.c (sparc_print_operand_address): Add MODE
3296         argument. Update calls to output_address.
3297         (sparc_print_operand): Pass mode to output_address.
3298         * config/iq2000/iq2000.c (iq2000_print_operand_address): Add MODE
3299         argument.
3300         (iq2000_print_operand): Pass mode in output_address calls.
3301         * config/stormy16/stormy16.c (xstormy16_print_operand_address): Add
3302         MODE argument.
3303         (xstormy16_print_operand): Pass mode to
3304         xstormy16_print_operand_address calls.
3305         * config/mips/mips.c (mips_print_operand): Update calls to
3306         output_address.
3307         (mips_print_operand_address): Add MODE argument.
3308         * config/epiphany/epiphany.c (epiphany_print_operand): Update calls
3309         to output_address.
3310         (epiphany_print_operand_address): Add MODE argument. Add FIXME note.
3311         * config/pdp11/pdp11.c (pdp11_asm_print_operand): Update call to
3312         output_address.
3313         * config/rx/rx.c (rx_print_operand_address): Add MODE argument.
3314         (rx_print_operand): Update calls to output_address,
3315         rx_print_operand_address.
3316         * config/nds32/nds32.c (nds32_print_operand): Update calls to
3317         output_address.
3318         (nds32_print_operand_address): Add MODE argument.
3319         * config/rs6000/rs6000.c (print_operand): Pass mem mode to
3320         output_address calls.
3321         * config/c6x/c6x.c (print_address_offset): Pass mem mode to
3322         output_address call.
3323         (c6x_print_address_operand): Update calls to output_address.
3324         (c6x_print_operand_address): Pass mode to above.
3325         * config/v850/v850.c (v850_print_operand_address): Add MODE argument.
3326         (v850_print_operand): Pass mode to v850_print_operand_address,
3327         output_address.
3328         * config/mmix/mmix.c (mmix_print_operand_address): Add MODE argument.
3329         (mmix_print_operand): Pass mode in output_address calls.
3330         * config/sh/sh.c (sh_print_operand_address): Add MODE argument.
3331         (sh_print_operand): Pass mem mode to output_address,
3332         sh_print_operand_address.
3333         * config/cr16/cr16.c (cr16_print_operand_address): Add MODE argument.
3334         (cr16_print_operand): Pass mode to output_address,
3335         cr16_print_operand_address.
3336         * config/bfin/bfin.c (print_address_operand): Pass VOIDmode to
3337         output_address.
3338         * config/microblaze/microblaze.c (print_operand): Pass mode to
3339         output_address.
3340         * config/nios2/nios2.c (nios2_print_operand): Pass VOIDmode to
3341         output_address.
3342         (nios2_print_operand_address): Add MODE argument. Update call to
3343         nios2_print_operand_address.
3344         * config/s390/s390.c (print_operand): Pass mode to output_address.
3345         * config/m32c/m32c.c (m32c_print_operand_address): Add MODE argument.
3346         * config/arc/arc.c (arc_print_operand): Pass VOIDmode to
3347         output_address.
3348         * config/arm/arm.c (arm_print_operand_address): Add MODE argument.
3349         Use instead of output_memory_reference_mode.
3350         (output_memory_reference_mode): Delete global.
3351         (arm_print_operand): Pass mem mode to output_address.
3352         * config/m32r/m32r.c (m32r_print_operand_address): Add MODE argument.
3353         (m32r_print_operand): Pass mode to output_address.
3354         * config/msp430/msp430.c (msp430_print_operand_addr): Add MODE
3355         argument.
3356         (msp430_print_operand): Pass mode to msp430_print_operand_addr.
3357         * config/i386/i386.c (ix86_print_operand): Pass mode to
3358         output_address calls.
3359         (ix86_print_operand_address): Add MODE argument.
3360
3361 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3362
3363         PR middle-end/68251
3364         * tree-core.h (REF_REVERSE_STORAGE_ORDER): Move around.
3365         * tree.h (REF_REVERSE_STORAGE_ORDER): Change to default_def_flag.
3366         * tree-streamer-in.c (unpack_ts_base_value_fields): Adjust.
3367         * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
3368
3369 2015-11-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3370
3371         PR rtl-optimization/67749
3372         * ifcvt.c (noce_try_cmove_arith): Do not emit move in IF-ELSE
3373         case before emitting the two blocks.  Instead modify the register
3374         in the corresponding final insn of the basic block.
3375
3376 2015-11-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3377
3378         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Allow for differences in
3379         assembler syntax.
3380         Support Solaris ld.
3381         Define HAVE_INITFINI_ARRAY_SUPPORT as 0/1.
3382
3383         * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define to
3384         HAVE_INITFINI_ARRAY_SUPPORT.
3385         * config/initfini-array.h: Check HAVE_INITFINI_ARRAY_SUPPORT value.
3386
3387         * configure.ac (gcc_cv_as_sparc_nobits): Remove.
3388         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section):
3389         Don't check HAVE_AS_SPARC_NOBITS.
3390         Heed SECTION_NOTYPE.
3391
3392         * configure: Regenerate.
3393         * config.in: Regenerate.
3394
3395 2015-11-09  Eric Botcazou  <ebotcazou@adacore.com>
3396
3397         PR middle-end/68253
3398         * fold-const.c (fold_truth_andor_1): Initialize new variables to 0.
3399
3400 2015-11-09  Richard Henderson  <rth@redhat.com>
3401
3402         * config/i386/i386-c.c (ix86_target_macros): Define __SEG_FS,
3403         __SEG_GS, __SEG_TLS.
3404         (ix86_register_pragmas): Register address spaces __seg_fs,
3405         __seg_gs, __seg_tls.
3406         * config/i386/i386-protos.h (enum ix86_address_seg): Remove.
3407         (ADDR_SPACE_SEG_FS, ADDR_SPACE_SEG_GS, ADDR_SPACE_SEG_TLS): New.
3408         (struct ix86_address): Use addr_space_t instead of ix86_address_seg.
3409         * config/i386/i386.c (ix86_decompose_address): Likewise.
3410         (ix86_legitimate_address_p): Likewise.
3411         (memory_address_length): Likewise.  Check mem address space too.
3412         (ix86_print_operand): Use ix86_print_operand_address_as.
3413         (ix86_print_operand_address_as): Rename from
3414         ix86_print_operand_address, add new addr_space_t parameter.
3415         Validate that either the parameter or the ix86_address segment
3416         is default address space.  Handle ADDR_SPACE_SEG_TLS.
3417         (ix86_print_operand_address): New.
3418         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): New.
3419         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): New.
3420         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): New.
3421         (ix86_addr_space_zero_address_valid): New.
3422         (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
3423         * config/i386/i386.h (DEFAULT_TLS_SEG_REG): Use addr_space_t constants.
3424         * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Likewise.
3425         * config/i386/predicates.md (address_no_seg_operand): Likewise.
3426         (vsib_address_operand): Likewise.
3427         (address_mpx_no_base_operand): Likewise.
3428         (address_mpx_no_index_operand): Likewise.
3429         * doc/extend.texi (x86 Named Address Spaces): New section.
3430
3431         * config/i386/i386.c (ix86_check_no_addr_space): New.
3432         (decide_alg): Add have_as parameter.
3433         (alg_usable_p): Likewise; disable rep algorithms if set.
3434         (ix86_expand_set_or_movmem): Notice if either MEM has a
3435         non-default address space.
3436         (ix86_expand_strlen): Likewise.
3437         * config/i386/i386.md (strmov, strset): Likewise.
3438         (*strmovdi_rex_1): Use ix86_check_no_addr_space.
3439         (*strmovsi_1, *strmovqi_1, *rep_movdi_rex64, *rep_movsi, *rep_movqi,
3440         *strsetdi_rex_1, *strsetsi_1, *strsethi_1, *strsetqi_1,
3441         *rep_stosdi_rex64, *rep_stossi, *rep_stosqi, *cmpstrnqi_nz_1,
3442         *cmpstrnqi_1, *strlenqi_1): Likewise.
3443
3444         * config/i386/i386.md (*movabs<mode>_1): Print the full memory rtx.
3445         (*movabs<mode>_2): Likewise.
3446
3447         * dwarf2out.c (modified_type_die): Pass the address space number
3448         through TARGET_ADDR_SPACE_DEBUG to produce the dwarf address class.
3449         * target.def (TARGET_ADDR_SPACE_DEBUG): New.
3450         * targhooks.c (default_addr_space_debug): New.
3451         * targhooks.h (default_addr_space_debug): Declare.
3452         * doc/tm.texi.in (TARGET_ADDR_SPACE_DEBUG): Mark it.
3453         * doc/tm.texi: Rebuild.
3454
3455         * gimple.c (check_loadstore): Return false when 0 is a valid address.
3456         * fold-const.c (const_unop) [ADDR_SPACE_CONVERT_EXPR]: Do not fold
3457         null when 0 is valid in the source address space.
3458         * target.def (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): New.
3459         * targhooks.c (default_addr_space_zero_address_valid): New.
3460         * targhooks.h (default_addr_space_zero_address_valid): Declare.
3461         * doc/tm.texi.in (TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID): Mark it.
3462         * doc/tm.texi: Rebuild.
3463
3464         * cselib.c (add_mem_for_addr): Compare address spaces when
3465         matching memories.
3466         (cselib_lookup_mem): Likewise.
3467         * fold-const.c (operand_equal_p): Check address spaces of
3468         pointer types before checking integer constants.
3469
3470         PR tree-opt/66768
3471         * tree-ssa-address.c (create_mem_ref_raw): Use a pointer of
3472         the correct type for the base.
3473
3474 2015-11-09  Jeff Law  <law@redhat.com>
3475
3476         * tree-into-ssa.c (names_to_release): No longer static.
3477         * tree-into-ssa.h (names_to_release): Declare.
3478         * tree-ssanames.c (verify_ssaname_freelists): New debug function.
3479         (release_free_names_and_compact_live_names): New function extracted
3480         from pass_release_ssa_names::execute.
3481         (pass_release_ssa_names::execute): Use it.
3482
3483 2015-11-09  Alan Modra  <amodra@gmail.com>
3484
3485         * gensupport.c (add_mnemonic_string): Make len param a size_t.
3486         (gen_mnemonic_setattr): Make "size" var a size_t.  Use
3487         obstack_blank_fast to shrink obstack.  Cast obstack_next_free
3488         return value.
3489
3490 2015-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
3491
3492         PR rtl-optimization/68182
3493         * bb-reorder.c (reorder_basic_blocks_simple): Treat a conditional
3494         branch with only one successor just like unconditional branches.
3495
3496 2015-11-08  Jeff Law  <law@redhat.com>
3497
3498         * tree-ssa-threadupdate.c (register_jump_thraed): Assert that a
3499         non-FSM path has no edges marked with EDGE_DFS_BACK.
3500         (ssa_redirect_edges): No longer call mark_loop_for_removal.
3501         (thread_single_edge, def_split_header_continue_p): Remove.
3502         (bb_ends_with_multiway_branch): Likewise.
3503         (thread_through_loop_header): Remove cases of threading from
3504         latch through the header.  Simplify knowing we won't thread
3505         the latch.
3506         (thread_through_all_blocks): Simplify knowing that only the FSM
3507         threader needs to handle backedges.
3508
3509 2015-11-08  Eric Botcazou  <ebotcazou@adacore.com>
3510
3511         * doc/extend.texi (type attributes): Document scalar_storage_order.
3512         (Structure-Packing Pragmas): Rename into...
3513         (Structure-Layout Pragmas): ...this.  Document scalar_storage_order.
3514         * doc/invoke.texi (C Dialect Options): Document -fsso-struct
3515         (Warnings): Document -Wno-scalar-storage-order.
3516         * flag-types.h (enum scalar_storage_order_kind): New enumeration.
3517         * calls.c (store_unaligned_arguments_into_pseudos): Adjust calls to
3518         extract_bit_field and store_bit_field.
3519         (initialize_argument_information): Adjust call to store_expr.
3520         (load_register_parameters): Adjust call to extract_bit_field.
3521         * expmed.c (check_reverse_storage_order_support): New function.
3522         (check_reverse_float_storage_order_support): Likewise.
3523         (flip_storage_order): Likewise.
3524         (store_bit_field_1): Add REVERSE parameter.  Flip the storage order
3525         of the value if it is true.  Pass REVERSE to recursive call after
3526         adjusting the target offset.
3527         Do not use extraction or movstrict instruction if REVERSE is true.
3528         Pass REVERSE to store_fixed_bit_field.
3529         (store_bit_field): Add REVERSE parameter and pass to it to above.
3530         (store_fixed_bit_field): Add REVERSE parameter and pass to it to
3531         store_split_bit_field and store_fixed_bit_field_1.
3532         (store_fixed_bit_field_1):  Add REVERSE parameter.  Flip the storage
3533         order of the value if it is true and adjust the target offset.
3534         (store_split_bit_field): Add REVERSE parameter and pass it to
3535         store_fixed_bit_field.  Adjust the target offset if it is true.
3536         (extract_bit_field_1): Add REVERSE parameter.  Flip the storage order
3537         of the value if it is true.  Pass REVERSE to recursive call after
3538         adjusting the target offset.
3539         Do not use extraction or subreg instruction if REVERSE is true.
3540         Pass REVERSE to extract_fixed_bit_field.
3541         (extract_bit_field): Add REVERSE parameter and pass to it to above.
3542         (extract_fixed_bit_field): Add REVERSE parameter and pass to it to
3543         extract_split_bit_field and extract_fixed_bit_field_1.
3544         (extract_fixed_bit_field_1): Add REVERSE parameter.  Flip the storage
3545         order of the value if it is true and adjust the target offset.
3546         (extract_split_bit_field): Add REVERSE parameter and pass it to
3547         extract_fixed_bit_field.  Adjust the target offset if it is true.
3548         * expmed.h (flip_storage_order): Declare.
3549         (store_bit_field): Adjust prototype.
3550         (extract_bit_field): Likewise.
3551         * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
3552         (emit_group_store): Adjust call to store_bit_field.
3553         (copy_blkmode_from_reg): Likewise.
3554         (copy_blkmode_to_reg): Likewise.
3555         (write_complex_part): Likewise.
3556         (read_complex_part): Likewise.
3557         (optimize_bitfield_assignment_op): Add REVERSE parameter.  Assert
3558         that it isn't true if the target is a register.
3559         <PLUS_EXPR>: If it is, do not optimize unless bitsize is equal to 1,
3560         and flip the storage order of the value.
3561         <BIT_IOR_EXPR>: Flip the storage order of the value.
3562         (get_bit_range): Adjust call to get_inner_reference.
3563         (expand_assignment): Adjust calls to get_inner_reference, store_expr,
3564         optimize_bitfield_assignment_op and store_field.  Handle MEM_EXPRs
3565         with reverse storage order.
3566         (store_expr_with_bounds): Add REVERSE parameter and pass it to
3567         recursive calls and call to store_bit_field.  Force the value into a
3568         register if it is true and then flip the storage order of the value.
3569         (store_expr): Add REVERSE parameter and pass it to above.
3570         (categorize_ctor_elements_1): Adjust call to
3571         initializer_constant_valid_p.
3572         (store_constructor_field): Add REVERSE parameter and pass it to
3573         recursive calls and call to store_field.
3574         (store_constructor): Add REVERSE parameter and pass it to calls to
3575         store_constructor_field and store_expr.  Set it to true for an
3576         aggregate type with TYPE_REVERSE_STORAGE_ORDER.
3577         (store_field): Add REVERSE parameter and pass it to recursive calls
3578         and calls to store_expr and store_bit_field.  Temporarily flip the
3579         storage order of the value with record type and integral mode and
3580         adjust the shift if it is true.
3581         (get_inner_reference): Add PREVERSEP parameter and set it to true
3582         upon encoutering a reference with reverse storage order.
3583         (expand_expr_addr_expr_1): Adjust call to get_inner_reference.
3584         (expand_constructor): Adjust call to store_constructor.
3585         (expand_expr_real_2) <CASE_CONVERT>: Pass TYPE_REVERSE_STORAGE_ORDER
3586         of the union type to store_expr in the MEM case and assert that it
3587         isn't set in the REG case.  Adjust call to store_field.
3588         (expand_expr_real_1) <MEM_REF>: Handle reverse storage order.
3589         <normal_inner_ref>: Add REVERSEP variable and adjust calls to
3590         get_inner_reference and extract_bit_field. Temporarily flip the
3591         storage order of the value with record type and integral mode and
3592         adjust the shift if it is true.  Flip the storage order of the value
3593         at the end if it is true.
3594         <VIEW_CONVERT_EXPR>: Add REVERSEP variable and adjust call to
3595         get_inner_reference.  Do not fetch an inner reference if it is true.
3596         * expr.h (store_expr_with_bounds): Ajust prototype.
3597         (store_expr): Likewise.
3598         * fold-const.c (make_bit_field_ref): Add REVERSEP parameter and set
3599         REF_REVERSE_STORAGE_ORDER on the reference according to it.
3600         (optimize_bit_field_compare): Deal with reverse storage order.
3601         Adjust calls to get_inner_reference and make_bit_field_ref.
3602         (decode_field_reference): Add PREVERSEP parameter and adjust call to
3603         get_inner_reference.
3604         (fold_truth_andor_1): Deal with reverse storage order.  Adjust calls
3605         to decode_field_reference and make_bit_field_ref.
3606         (fold_unary_loc) <CASE_CONVERT>: Adjust call to get_inner_reference.
3607         <VIEW_CONVERT_EXPR>: Propagate the REF_REVERSE_STORAGE_ORDER flag.
3608         (fold_comparison): Adjust call to get_inner_reference.
3609         (split_address_to_core_and_offset): Adjust call to
3610         get_inner_reference.
3611         * gimple-expr.c (useless_type_conversion_p): Return false for array
3612         types with different TYPE_REVERSE_STORAGE_ORDER flag.
3613         * gimplify.c (gimplify_expr) <MEM_REF>: Propagate the
3614         REF_REVERSE_STORAGE_ORDER flag.
3615         * lto-streamer-out.c (hash_tree): Deal with TYPE_REVERSE_STORAGE_ORDER.
3616         * output.h (assemble_real): Adjust prototype.
3617         * print-tree.c (print_node): Convey TYPE_REVERSE_STORAGE_ORDER.
3618         * stor-layout.c (finish_record_layout): Propagate the
3619         TYPE_REVERSE_STORAGE_ORDER flag to the variants.
3620         * tree-core.h (TYPE_REVERSE_STORAGE_ORDER): Document.
3621         (TYPE_SATURATING): Adjust.
3622         (REF_REVERSE_STORAGE_ORDER): Document.
3623         * tree-dfa.c (get_ref_base_and_extent): Add PREVERSE parameter and
3624         set it to true upon encoutering a reference with reverse storage order.
3625         * tree-dfa.h (get_ref_base_and_extent): Adjust prototype.
3626         * tree-inline.c (remap_gimple_op_r): Propagate the
3627         REF_REVERSE_STORAGE_ORDER flag.
3628         (copy_tree_body_r): Likewise.
3629         * tree-outof-ssa.c (insert_value_copy_on_edge): Adjust call to
3630         store_expr.
3631         * tree-streamer-in.c (unpack_ts_base_value_fields): Deal with
3632         TYPE_REVERSE_STORAGE_ORDER and REF_REVERSE_STORAGE_ORDER.
3633         * tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
3634         * tree.c (stabilize_reference) <BIT_FIELD_REF>: Propagate the
3635         REF_REVERSE_STORAGE_ORDER flag.
3636         (verify_type_variant): Deal with TYPE_REVERSE_STORAGE_ORDER.
3637         (gimple_canonical_types_compatible_p): Likewise.
3638         * tree.h (TYPE_REVERSE_STORAGE_ORDER): New flag.
3639         (TYPE_SATURATING): Adjust.
3640         (REF_REVERSE_STORAGE_ORDER): New flag.
3641         (reverse_storage_order_for_component_p): New inline predicate.
3642         (storage_order_barrier_p): Likewise.
3643         (get_inner_reference): Adjust prototype.
3644         * varasm.c: Include expmed.h.
3645         (assemble_variable_contents): Adjust call to output_constant.
3646         (assemble_real): Add REVERSE parameter.  Flip the storage
3647         order of the value if REVERSE is true.
3648         (compare_constant) <CONSTRUCTOR>: Compare TYPE_REVERSE_STORAGE_ORDER.
3649         (assemble_constant_contents): Adjust call to output_constant.
3650         (output_constant_pool_2): Adjust call to assemble_real.
3651         (initializer_constant_valid_p_1) <CONSTRUCTOR>: Deal with
3652         TYPE_REVERSE_STORAGE_ORDER.
3653         (initializer_constant_valid_p): Add REVERSE parameter.
3654         (output_constant): Add REVERSE parameter.
3655         <INTEGER_TYPE>: Flip the storage order of the value if REVERSE is true.
3656         <REAL_TYPE>: Adjust call to assemble_real.
3657         <COMPLEX_TYPE>: Pass it to recursive calls.
3658         <ARRAY_TYPE>: Likewise.  Adjust call to output_constructor.
3659         <RECORD_TYPE>: Likewise.  Adjust call to output_constructor.
3660         (struct oc_local_state): Add REVERSE field.
3661         (output_constructor_array_range): Adjust calls to output_constant.
3662         (output_constructor_regular_field): Likewise.
3663         (output_constructor_bitfield): Adjust call to output_constructor.
3664         Flip the storage order of the value if REVERSE is true.
3665         (output_constructor): Add REVERSE parameter.  Set it to true for an
3666         aggregate type with TYPE_REVERSE_STORAGE_ORDER.  Adjust call to
3667         output_constructor_bitfield.
3668         * varasm.h (initializer_constant_valid_p): Default REVERSE to false.
3669         * asan.c (instrument_derefs): Adjust call to get_inner_reference.
3670         * builtins.c (get_object_alignment_2): Likewise.
3671         * cfgexpand.c (expand_debug_expr): Adjust call to get_inner_reference
3672         and get_ref_base_and_extent.
3673         * dbxout.c (dbxout_expand_expr): Likewise.
3674         * dwarf2out.c (add_var_loc_to_decl): Likewise.
3675         (loc_list_for_address_of_addr_expr_of_indirect_ref): Likewise.
3676         (loc_list_from_tree): Likewise.
3677         (fortran_common): Likewise.
3678         * gimple-fold.c (gimple_fold_builtin_memory_op): Adjust calls to
3679         get_ref_base_and_extent.
3680         (get_base_constructor): Likewise.
3681         (fold_const_aggregate_ref_1): Likewise.
3682         * gimple-laddress.c (pass_laddress::execute): Adjust call to
3683         get_inner_reference.
3684         * gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust call to
3685         get_inner_reference and bail out on reverse storage order.
3686         * ifcvt.c (noce_emit_move_insn): Adjust calls to store_bit_field.
3687         * ipa-cp.c (ipa_get_jf_ancestor_result): Adjust call to
3688         build_ref_for_offset.
3689         * ipa-polymorphic-call.c (set_by_invariant): Adjust call to
3690         get_ref_base_and_extent.
3691         (ipa_polymorphic_call_context): Likewise.
3692         (extr_type_from_vtbl_ptr_store): Likewise.
3693         (check_stmt_for_type_change): Likewise.
3694         (get_dynamic_type): Likewise.
3695         * ipa-prop.c (ipa_load_from_parm_agg_1): Adjust call to
3696         get_ref_base_and_extent.
3697         (compute_complex_assign_jump_func): Likewise.
3698         (get_ancestor_addr_info): Likewise.
3699         (compute_known_type_jump_func): Likewise.
3700         (determine_known_aggregate_parts): Likewise.
3701         (ipa_get_adjustment_candidate): Likewise.
3702         (ipa_modify_call_arguments): Set REF_REVERSE_STORAGE_ORDER on MEM_REF.
3703         * ipa-prop.h (ipa_parm_adjustment): Add REVERSE field.
3704         (build_ref_for_offset): Adjust prototype.
3705         * simplify-rtx.c (delegitimize_mem_from_attrs): Adjust call to
3706         get_inner_reference.
3707         * tree-affine.c (tree_to_aff_combination): Adjust call to
3708         get_inner_reference.
3709         (get_inner_reference_aff): Likewise.
3710         * tree-data-ref.c (split_constant_offset_1): Likewise.
3711         (dr_analyze_innermost): Likewise.  Bail out if reverse storage order.
3712         * tree-scalar-evolution.c (interpret_rhs_expr): Adjust call to
3713         get_inner_reference.
3714         * tree-sra.c (struct access): Add REVERSE and move WRITE around.
3715         (dump_access): Print new fields.
3716         (create_access): Adjust call to get_ref_base_and_extent and set the
3717         REVERSE flag according to the result.
3718         (completely_scalarize_record): Set the REVERSE flag.
3719         (scalarize_elem): Add REVERSE parameter.
3720         (build_access_from_expr_1): Preserve storage order barriers.
3721         (build_accesses_from_assign): Likewise.
3722         (build_ref_for_offset): Add REVERSE parameter and set the
3723         REF_REVERSE_STORAGE_ORDER flag accordingly.
3724         (build_ref_for_model): Adjust call to build_ref_for_offset and clear
3725         the REF_REVERSE_STORAGE_ORDER flag if there are components.
3726         (analyze_access_subtree): Likewise.
3727         (create_artificial_child_access): Set the REVERSE flag.
3728         (get_access_for_expr): Adjust call to get_ref_base_and_extent.
3729         (turn_representatives_into_adjustments): Propagate REVERSE flag.
3730         (ipa_sra_check_caller): Adjust call to get_inner_reference.
3731         * tree-ssa-alias.c (ao_ref_base): Adjust call to
3732         get_ref_base_and_extent.
3733         (aliasing_component_refs_p): Likewise.
3734         (stmt_kills_ref_p_1): Likewise.
3735         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
3736         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p) <MEM_REF>: New.
3737         Return true if reverse storage order.
3738         <BIT_FIELD_REF>: Likewise.
3739         <COMPONENT_REF>: Likewise.
3740         <ARRAY_REF>: Likewise.
3741         <ARRAY_RANGE_REF>: Likewise.
3742         (split_address_cost): Likewise.  Bail out if reverse storage order.
3743         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Adjust call to
3744         get_inner_reference.  Bail out if reverse storage order.
3745         (bswap_replace): Adjust call to get_inner_reference.
3746         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <MEM_REF>: Set
3747         the REF_REVERSE_STORAGE_ORDER flag.
3748         <BIT_FIELD_REF>: Likewise.
3749         * tree-ssa-sccvn.c (vn_reference_eq): Return false on storage order
3750         barriers.
3751         (copy_reference_ops_from_ref) <MEM_REF>: Set REVERSE field according
3752         to the REF_REVERSE_STORAGE_ORDER flag.
3753         <BIT_FIELD_REF>: Likewise.
3754         <VIEW_CONVERT_EXPR>: Set it for storage order barriers.
3755         (contains_storage_order_barrier_p): New predicate.
3756         (vn_reference_lookup_3): Adjust calls to get_ref_base_and_extent.
3757         Punt on storage order barriers if necessary.
3758         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add REVERSE.
3759         * tree-ssa-structalias.c (get_constraint_for_component_ref): Adjust
3760         call to get_ref_base_and_extent.
3761         (do_structure_copy): Likewise.
3762         * tree-vect-data-refs.c (vect_check_gather): Adjust call to
3763         get_inner_reference.
3764         (vect_analyze_data_refs): Likewise.  Bail out if reverse storage order.
3765         * tsan.c (instrument_expr): Adjust call to get_inner_reference.
3766         * ubsan.c (instrument_bool_enum_load): Likewise.
3767         (instrument_object_size): Likewise.
3768         * var-tracking.c (track_expr_p): Adjust call to
3769         get_ref_base_and_extent.
3770         * config/mips/mips.c (r10k_safe_mem_expr_p): Adjust call to
3771         get_inner_reference.
3772         * config/s390/s390.c (s390_expand_atomic): Adjust call to
3773         store_bit_field.
3774         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust call to
3775         extract_bit_field.
3776         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
3777
3778 2015-11-07  Eric Botcazou  <ebotcazou@adacore.com>
3779
3780         * config/sparc/sparc.opt (mfix-at697f): Add final period.
3781
3782 2015-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
3783
3784         PR rtl-optimization/67864
3785         * common/config/i386/i386-common.c (ix86_option_optimization_table)
3786         <OPT_freorder_blocks_algorithm_>: Use REORDER_BLOCKS_ALGORITHM_STC
3787         at -Os and up.
3788
3789 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
3790
3791         * trans-mem.c (is_tm_pure_call): Use gimple_call_flags for
3792         internal functions.
3793
3794 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
3795
3796         * builtins.def: #undef DEF_BUILTIN and DEF_BUILTIN_CHKP
3797         * builtins.c, genmatch.c, tree-core.h: Don't undef them here.
3798
3799 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
3800
3801         * internal-fn.def: #undef DEF_INTERNAL_FN at the end.
3802         * internal-fn.c: Don't undef it here.
3803         * tree-core.h: Likewise.
3804
3805 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
3806
3807         * builtins.c (fold_builtin_nan): Delete.
3808         (fold_builtin_memcmp): Remove case where both arguments are constant.
3809         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
3810         (fold_builtin_strspn, fold_builtin_strcspn): Likewise.
3811         (fold_builtin_1): Remove BUILT_IN_NAN* handling.
3812         * fold-const-call.c: Include fold-const.h.
3813         (host_size_t_cst_p): New function.
3814         (build_cmp_result, fold_const_builtin_nan): Likewise.
3815         (fold_const_call_1): New function, split out from...
3816         (fold_const_call): ...here (for all three interfaces).  Handle
3817         constant nan, nans, strlen, strcmp, strncmp, strspn and strcspn.
3818
3819 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
3820
3821         * builtins.c (fold_builtin_bitop, fold_builtin_bswap): Delete.
3822         (fold_builtin_1): Don't call them.
3823         * fold-const-call.c: Include tm.h.
3824         (fold_const_call_ss): New variant for integer-to-integer folds.
3825         (fold_const_call): Call it.
3826
3827 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
3828
3829         * builtins.c (fold_builtin_classify): Move constant cases to...
3830         * fold-const-call.c (fold_const_call_ss): ...here.
3831
3832 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
3833
3834         * builtins.h (c_getstr): Move to...
3835         * fold-const.h (c_getstr): ...here.
3836         * builtins.c (c_getstr): Move to...
3837         * fold-const.c (c_getstr): ...here.
3838
3839 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
3840
3841         * builtins.def (BUILTIN_RINT, BUILTIN_RINTF, BUILTIN_RINTL): Use
3842         ATTR_MATHFN_FPROUNDING rather than ATTR_MATHFN_FPROUNDING_ERRNO.
3843
3844 2015-11-07  Richard Sandiford  <richard.sandiford@arm.com>
3845
3846         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Try to update
3847         the dominance info; free it if we can't.
3848         (pass_call_cdce::execute): Don't free the dominance info here.
3849
3850 2015-11-06  Jeff Law <law@redhat.com>
3851
3852         * tree-ssa-threadedge.c (dummy_simplify): Remove.
3853         (thread_around_empty_blocks): Remove backedge_seen_p argument.
3854         If we thread to a backedge, then return false.  Update recursive
3855         call to eliminate backedge_seen_p argument.
3856         (thread_through_normal_block): Remove backedge_seen_p argument.
3857         Remove backedge_seen_p argument from calls to
3858         thread_around_empty_blocks.  Remove checks on backedge_seen_p.
3859         If we thread to a backedge, then return 0.
3860         (thread_across_edge): Remove bookkeeping for backedge_seen.  Don't
3861         pass it to thread_through_normal_block or thread_through_empty_blocks.
3862         For joiner handling, if we see a backedge, do not try normal
3863         threading.
3864
3865 2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
3866
3867         * graphite-optimize-isl.c (optimize_isl): Call isl_union_map_is_equal.
3868         * graphite-poly.c (new_scop): Initialize original_schedule.
3869         (free_scop): Free original_schedule.
3870         * graphite-poly.h (struct scop): Add field original_schedule.
3871         * graphite-sese-to-poly.c (build_scop_original_schedule): New.
3872         (build_poly_scop): Call build_scop_original_schedule.
3873
3874 2015-11-06  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
3875
3876         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
3877         (build_pbb_minimal_scattering_polyhedrons): New.
3878         (build_scop_scattering): Remove.
3879         (build_scop_minimal_scattering): New.
3880         (build_scop_scattering): Call build_pbb_minimal_scattering_polyhedrons.
3881         (build_poly_scop): Call build_scop_minimal_scattering.
3882
3883 2015-11-06  Jeff Law <law@redhat.com>
3884
3885         * cfg-flags.def (IGNORE): New edge flag.
3886         * tree-vrp.c (identify_jump_threads): Mark and clear edges
3887         scheduled for removal with EDGE_IGNORE around call into
3888         jump threader.  Do no thread across edges with EDGE_IGNORE,
3889         but do allow threading across those with EDGE_DFS_BACK.
3890
3891 2015-11-06  David Wohlferd  <dw@LimeGreenSocks.com>
3892
3893         * doc/md.texi (multi-alternative constraints): Don't document
3894         alternatives inherently tied to reload for the user documentation.
3895
3896 2015-11-06  Michael Collison  <michael.collison@linaro.org>
3897             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3898
3899         Revert:
3900         2015-08-01  Michael Collison  <michael.collison@linaro.org
3901                     Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3902
3903         * config/arm/arm.md (*arm_smin_cmp): New pattern.
3904         (*arm_umin_cmp): Likewise.
3905
3906 2015-11-06  Jakub Jelinek  <jakub@redhat.com>
3907
3908         * gimplify.c (gimplify_omp_ordered): Fix up diagnostics wording.
3909         * omp-low.c (check_omp_nesting_restrictions): Update for the
3910         various new OpenMP 4.5 nesting restrictions, clarified
3911         nesting glossary, closely nested region relationship clarified
3912         to mean explicit or implicit parallel regions (target/teams),
3913         use %</%> or %qs where appropriate.
3914
3915 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
3916             Sebastian Pop  <s.pop@samsung.com>
3917
3918         * graphite-scop-detection.c (loop_is_valid_scop): Call
3919         optimize_loop_nest_for_speed_p.
3920
3921 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
3922             Sebastian Pop  <s.pop@samsung.com>
3923
3924         * graphite-optimize-isl.c (optimize_isl): Call
3925         isl_options_set_schedule_maximize_band_depth.
3926
3927 2015-11-06  Aditya Kumar  <aditya.k7@samsung.com>
3928             Sebastian Pop  <s.pop@samsung.com>
3929
3930         * graphite-scop-detection.c (scop_detection::merge_sese): Entry
3931         and exit edges should not be a part of irreducible loop.
3932         (scop_detection::can_represent_loop_1): Loops should not be
3933         irreducible.
3934         (scop_detection::harmful_stmt_in_region): All the basic block
3935         should belong to reducible loops.
3936
3937 2015-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
3938
3939         * config/aarch64/aarch64-simd-builtins.def: Update builtins
3940         tables: add tbl3v16qi, qtbl[34]*, tbx4v16qi, qtbx[34]*.
3941         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): Rename to...
3942         (aarch64_tbl3<mode>) ... this, which supports v16qi too.
3943         (aarch64_tbx4v8qi): Rename to...
3944         aarch64_tbx4<mode>): ... this.
3945         (aarch64_qtbl3<mode>): New pattern.
3946         (aarch64_qtbx3<mode>): New pattern.
3947         (aarch64_qtbl4<mode>): New pattern.
3948         (aarch64_qtbx4<mode>): New pattern.
3949         * config/aarch64/arm_neon.h (vqtbl2_s8, vqtbl2_u8, vqtbl2_p8)
3950         (vqtbl2q_s8, vqtbl2q_u8, vqtbl2q_p8, vqtbl3_s8, vqtbl3_u8)
3951         (vqtbl3_p8, vqtbl3q_s8, vqtbl3q_u8, vqtbl3q_p8, vqtbl4_s8)
3952         (vqtbl4_u8, vqtbl4_p8, vqtbl4q_s8, vqtbl4q_u8, vqtbl4q_p8)
3953         (vqtbx2_s8, vqtbx2_u8, vqtbx2_p8, vqtbx2q_s8, vqtbx2q_u8)
3954         (vqtbx2q_p8, vqtbx3_s8, vqtbx3_u8, vqtbx3_p8, vqtbx3q_s8)
3955         (vqtbx3q_u8, vqtbx3q_p8, vqtbx4_s8, vqtbx4_u8, vqtbx4_p8)
3956         (vqtbx4q_s8, vqtbx4q_u8, vqtbx4q_p8): Rewrite using builtin
3957         functions.
3958
3959 2015-11-06  Mike Stump  <mikestump@comcast.net>
3960
3961         PR debug/66728
3962         * dwarf2out.c (get_full_len): Return a value based upon the actual
3963         precision needed for the value.
3964         (add_const_value_attribute): Use a maximal wide-int for
3965         CONST_WIDE_INTs, not VOIDmode.
3966         (output_die): Don't ever output NULL with printf.
3967
3968         * rtl.h (get_precision of rtx_mode_t): Ensure we never process
3969         BLKmode nor VOIDmode values.
3970
3971 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
3972
3973         * diagnostic-color.c (color_dict): Eliminate "caret"; add "range1"
3974         and "range2".
3975         (parse_gcc_colors): Update comment to describe default GCC_COLORS.
3976         * diagnostic-core.h (warning_at_rich_loc): New declaration.
3977         (error_at_rich_loc): New declaration.
3978         (permerror_at_rich_loc): New declaration.
3979         (inform_at_rich_loc): New declaration.
3980         * diagnostic-show-locus.c (adjust_line): Delete.
3981         (struct point_state): New struct.
3982         (class colorizer): New class.
3983         (class layout_point): New class.
3984         (class layout_range): New class.
3985         (struct line_bounds): New.
3986         (class layout): New class.
3987         (colorizer::colorizer): New ctor.
3988         (colorizer::~colorizer): New dtor.
3989         (layout::layout): New ctor.
3990         (layout::print_source_line): New method.
3991         (layout::print_annotation_line): New method.
3992         (layout::get_state_at_point): New method.
3993         (layout::get_x_bound_for_row): New method.
3994         (diagnostic_show_locus): Reimplement in terms of class layout.
3995         (diagnostic_print_caret_line): Delete.
3996         * diagnostic.c (diagnostic_initialize): Replace
3997         MAX_LOCATIONS_PER_MESSAGE with rich_location::MAX_RANGES.
3998         (diagnostic_set_info_translated): Convert param from location_t
3999         to rich_location *.  Eliminate calls to set_location on the
4000         message in favor of storing the rich_location ptr there.
4001         (diagnostic_set_info): Convert param from location_t to
4002         rich_location *.
4003         (diagnostic_build_prefix): Break out array into...
4004         (diagnostic_kind_color): New variable.
4005         (diagnostic_get_color_for_kind): New function.
4006         (diagnostic_report_diagnostic): Colorize the option_text
4007         using the color for the severity.
4008         (diagnostic_append_note): Update for change in signature of
4009         diagnostic_set_info.
4010         (diagnostic_append_note_at_rich_loc): New function.
4011         (emit_diagnostic): Update for change in signature of
4012         diagnostic_set_info.
4013         (inform): Likewise.
4014         (inform_at_rich_loc): New function.
4015         (inform_n): Update for change in signature of diagnostic_set_info.
4016         (warning): Likewise.
4017         (warning_at): Likewise.
4018         (warning_at_rich_loc): New function.
4019         (warning_n): Update for change in signature of diagnostic_set_info.
4020         (pedwarn): Likewise.
4021         (permerror): Likewise.
4022         (permerror_at_rich_loc): New function.
4023         (error): Update for change in signature of diagnostic_set_info.
4024         (error_n): Likewise.
4025         (error_at): Likewise.
4026         (error_at_rich_loc): New function.
4027         (sorry): Update for change in signature of diagnostic_set_info.
4028         (fatal_error): Likewise.
4029         (internal_error): Likewise.
4030         (internal_error_no_backtrace): Likewise.
4031         (source_range::debug): New function.
4032         * diagnostic.h (struct diagnostic_info): Eliminate field
4033         "override_column".  Add field "richloc".
4034         (struct diagnostic_context): Add field "colorize_source_p".
4035         (diagnostic_override_column): Delete.
4036         (diagnostic_set_info): Convert param from location_t to
4037         rich_location *.
4038         (diagnostic_set_info_translated): Likewise.
4039         (diagnostic_append_note_at_rich_loc): New function.
4040         (diagnostic_num_locations): New function.
4041         (diagnostic_expand_location): Get the location from the
4042         rich_location.
4043         (diagnostic_print_caret_line): Delete.
4044         (diagnostic_get_color_for_kind): New declaration.
4045         * genmatch.c (linemap_client_expand_location_to_spelling_point): New.
4046         (error_cb): Update for change in signature of "error" callback.
4047         (fatal_at): Likewise.
4048         (warning_at): Likewise.
4049         * input.c (linemap_client_expand_location_to_spelling_point): New.
4050         * pretty-print.c (text_info::set_range): New method.
4051         (text_info::get_location): New method.
4052         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): Eliminate this macro.
4053         (struct text_info): Eliminate "locations" array in favor of
4054         "m_richloc", a rich_location *.
4055         (textinfo::set_location): Add a "caret_p" param, and reimplement
4056         in terms of a call to set_range.
4057         (textinfo::get_location): Eliminate inline implementation in favor of
4058         an out-of-line reimplementation.
4059         (textinfo::set_range): New method.
4060         * rtl-error.c (diagnostic_for_asm): Update for change in signature
4061         of diagnostic_set_info.
4062         * tree-diagnostic.c (default_tree_printer): Update for new
4063         "caret_p" param for textinfo::set_location.
4064         * tree-pretty-print.c (percent_K_format): Likewise.
4065
4066 2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4067
4068         Properly apply.
4069         2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4070         * config/aarch64/aarch64.c
4071         (aarch64_can_use_per_function_literal_pools_p): New.
4072         (aarch64_use_blocks_for_constant_p): Adjust declaration
4073         and use aarch64_can_use_function_literal_pools_p.
4074         (aarch64_select_rtx_section): Update.
4075
4076 2015-11-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4077
4078         * config/arm/arm-ldmstm.ml: Rewrite to generate unified asm templates.
4079         * config/arm/arm.c (arm_asm_trampoline_template): Make unified asm safe.
4080         (arm_output_multireg_pop): Likewise.
4081         (output_move_double):  Likewise.
4082         (output_move_quad):  Likewise.
4083         (output_return_instruction): Likewise.
4084         (arm_print_operand): Remove support for %( and %. print modifiers.
4085         (arm_output_shift): Make unified asm.
4086         (arm_declare_function_name): Likewise.
4087         * config/arm/arm.h (TARGET_UNIFIED_ASM): Delete.
4088         (ASM_APP_OFF): Adjust.
4089         (ASM_OUTPUT_REG_PUSH): Undo special casing for TARGET_ARM.
4090         (ASM_OUTPUT_REG_POP): Likewise.
4091         * config/arm/arm.md: Adjust uses of %., %(, %)
4092         * config/arm/sync.md: Likewise.
4093         * config/arm/thumb2.md: Likewise.
4094         * config/arm/ldmstm.md: Regenerate.
4095         * config/arm/arm.opt (masm-unified-syntax): Do not special case Thumb.
4096         * doc/invoke.texi (masm-unified-syntax): Update documentation.
4097
4098 2015-11-06  David Malcolm  <dmalcolm@redhat.com>
4099
4100         * input.c (dump_line_table_statistics): Dump stats on adhoc table.
4101
4102 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
4103
4104         * tree-core.h (size_type_kind): Remove OEP_CONSTANT_ADDRESS_OF and
4105         add OEP_MATCH_SIDE_EFFECTS.
4106         * fold-const.c (operand_equal_p): Update documentation; handle
4107         OEP_MATCH_SIDE_EFFECTS.
4108         * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Use
4109         OEP_MATCH_SIDE_EFFECTS.
4110
4111 2015-11-06  Benedikt Huber  <benedikt.huber@theobroma-systems.com>
4112             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
4113
4114         * config/aarch64/aarch64-builtins.c: Builtins for rsqrt and rsqrtf.
4115         * config/aarch64/aarch64-protos.h: Declare.
4116         * config/aarch64/aarch64-simd.md: Matching expressions for frsqrte and
4117         frsqrts.
4118         * config/aarch64/aarch64-tuning-flags.def: Added recip_sqrt.
4119         * config/aarch64/aarch64.c: New functions. Emit rsqrt estimation
4120         code when applicable.
4121         * config/aarch64/aarch64.md: Added enum entries.
4122         * config/aarch64/aarch64.opt: Added option -mlow-precision-recip-sqrt.
4123
4124 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
4125
4126         PR ipa/68057
4127         PR ipa/68220
4128         * ipa-polymorphic-call.c
4129         (ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
4130         issue when offset is out of range.
4131         (contains_type_p): Fix out of range check, clear dynamic flag.
4132
4133 2015-11-06  Arnout Vandecappelle  <arnout@mind.be>
4134
4135         * config.gcc (e6500): Fix cpu_is_64bit typo.
4136
4137 2015-11-06  Alan Lawrence  <alan.lawrence@arm.com>
4138
4139         * tree-sra.c (completely_scalarize): Properly handle negative array
4140         indices using offset_int.
4141
4142 2015-11-06  Richard Biener  <rguenther@suse.de>
4143
4144         * alloc-pool.h (object_allocator::allocate): Default-initialize
4145         object.
4146
4147 2015-11-06  Richard Biener  <rguenther@suse.de>
4148
4149         * tree-ssa-sccvn.c (class sccvn_dom_walker): Add destructor.
4150         * lra.c (init_reg_info): Truncate copy_vec instead of
4151         re-allocating a new one and leaking the old.
4152         * ipa-inline-analysis.c (estimate_function_body_sizes): Free
4153         bb_infos vec.
4154         * sched-deps.c (sched_deps_finish): Free the dn/dl pools.
4155         * postreload-gcse.c (free_mem): Free modify_mem_list and
4156         canon_modify_mem_list.
4157
4158 2015-11-06  Ilya Enkovich  <enkovich.gnu@gmail.com>
4159
4160         PR tree-optimization/68145
4161         * tree-vect-stmts.c (vectorizable_operation): Fix
4162         determination for booleans.
4163
4164 2015-11-06  Tom de Vries  <tom@codesourcery.com>
4165
4166         * tree-cfg.c (gimple_split_block_before_cond_jump): Split before
4167         cond_jump, instead of split after last nondebug insn before cond_jump.
4168         * tree-parloops.c (transform_to_exit_first_loop_alt): Verify ssa before
4169         returning.
4170
4171 2015-11-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4172
4173         PR target/68088
4174         * config/arm/aarch-common.c (aarch_accumulator_forwarding): Strip
4175         subregs from accumulator and make sure it's a register.
4176
4177 2015-11-06  Simon Dardis  <simon.dardis@imgtec.com>
4178
4179         * config/mips/loongson.md (vec_loongson_extract_lo_<mode>): New, extract
4180         low part to scalar.
4181         (reduc_uplus_<mode>): Remove.
4182         (reduc_plus_scal_<mode>): Rename from reduc_splus_<mode>, Use vec
4183         loongson_extract_lo_<mode>.
4184         (reduc_smax_scal_<mode>, reduc_smin_scal_<mode>): Rename from
4185         reduc_smax_<mode>, reduc_smax_<mode>, use vec
4186         loongson_extract_lo_<mode>.
4187         (reduc_umax_scal_<mode>, reduc_umin_scal_<mode>): Rename.
4188
4189 2015-11-06  Richard Biener  <rguenther@suse.de>
4190
4191         * tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end
4192         members.
4193         (vect_stmt_in_region_p): Declare.
4194         * tree-vect-slp.c (new_bb_vec_info): Work on a region.
4195         (destroy_bb_vec_info): Likewise.
4196         (vect_bb_slp_scalar_cost): Use vect_stmt_in_region_p.
4197         (vect_get_and_check_slp_defs): Likewise.
4198         (vect_slp_analyze_bb_1): Refactor to make it work on sub-BBs.
4199         (vect_slp_bb): Likewise.
4200         * tree-vect-patterns.c (vect_same_loop_or_bb_p): Implement
4201         in terms of vect_stmt_in_region_p.
4202         (vect_pattern_recog): Iterate over the BB region.
4203         * tree-vect-stmts.c (vect_is_simple_use): Use vect_stmt_in_region_p.
4204         * tree-vectorizer.c (vect_stmt_in_region_p): New function.
4205         (pass_slp_vectorize::execute): Initialize all stmt UIDs to -1.
4206         * config/i386/i386.c: Include gimple-iterator.h.
4207         * config/aarch64/aarch64.c: Likewise.
4208
4209 2015-11-06  Alexandre Oliva <aoliva@redhat.com>
4210
4211         PR rtl-optimization/67753
4212         PR rtl-optimization/64164
4213         * function.c (assign_parm_setup_block): Avoid allocating a
4214         stack slot if we don't have an ABI-reserved one.  Emit the
4215         copy to target_reg in the conversion seq if the copy from
4216         entry_parm is in it too.  Don't use the conversion seq to copy
4217         a PARALLEL to a REG or a CONCAT.
4218
4219 2015-11-06  Richard Biener  <rguenther@suse.de>
4220
4221         * tree-hash-traits.h (tree_operand_hash): Provide equal, not
4222         equal_keys.
4223
4224 2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
4225             Thomas Schwinge  <thomas@codesourcery.com>
4226             James Norris  <jnorris@codesourcery.com>
4227
4228
4229         * gimplify.c (gimplify_scan_omp_clauses): Add support for
4230         OMP_CLAUSE_TILE.  Update handling of OMP_CLAUSE_INDEPENDENT.
4231         (gimplify_adjust_omp_clauses): Likewise.
4232         * omp-low.c (scan_sharing_clauses): Add support for OMP_CLAUSE_TILE.
4233         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_TILE.
4234         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_TILE.
4235         * tree.c (omp_clause_num_ops): Add an entry for OMP_CLAUSE_TILE.
4236         (omp_clause_code_name): Likewise.
4237         (walk_tree_1): Handle OMP_CLAUSE_TILE.
4238         * tree.h (OMP_TILE_LIST): New macro.
4239
4240 2015-11-05  Martin Sebor  <msebor@redhat.com>
4241
4242         PR c++/67942
4243         * doc/invoke.texi (-Wplacement-new): Document new option.
4244
4245 2015-11-05  Alan Lawrence  <alan.lawrence@arm.com>
4246
4247         PR tree-optimization/65963
4248         * tree-scalar-evolution.c (interpret_rhs_expr): Try to handle
4249         LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs.
4250
4251 2015-11-05  James Greenhalgh  <james.greenhalgh@arm.com>
4252
4253         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New.
4254         (noce_convert_multiple_sets): Likewise.
4255         (noce_process_if_block): Call them.
4256
4257 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
4258
4259         * gimple-fold.c: Include omp-low.h.
4260         (fold_internal_goacc_dim): New.
4261         (gimple_fold_call): Call it.
4262
4263 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
4264             Ilya Verbin  <ilya.verbin@intel.com>
4265
4266         * builtin-types.def
4267         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
4268         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
4269         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
4270         SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
4271         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
4272         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
4273         (struct cgraph_simd_clone_arg): Adjust comment.
4274         * omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
4275         to GOMP_target_ext.  Add num_teams and thread_limit arguments.
4276         (BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
4277         to GOMP_target_data_ext.
4278         (BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
4279         to GOMP_target_update_ext.
4280         (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
4281         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
4282         BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
4283         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
4284         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
4285         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
4286         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
4287         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
4288         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
4289         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
4290         * tree-core.h (enum omp_clause_schedule_kind): Add
4291         OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
4292         OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
4293         OMP_CLAUSE_SCHEDULE_LAST value.
4294         * tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
4295         OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
4296         * tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
4297         OMP_FOR_CHECK.  Remove comment.
4298         * tree-pretty-print.c (dump_omp_clause): Handle
4299         GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
4300         Simplify.  Print schedule clause modifiers.
4301         * tree-vect-stmts.c (vectorizable_simd_clone_call): Add
4302         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
4303         cases.
4304         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
4305         (omp_default_clause): Tweak for
4306         private/firstprivate/is_device_ptr variables on target
4307         construct and use_device_ptr on target data.
4308         (omp_check_private): Likewise.
4309         (omp_notice_variable): For references check whether what it refers
4310         to has mappable type, rather than the reference itself.
4311         (omp_is_private): Diagnose linear iteration variables on non-simd
4312         constructs.
4313         (omp_no_lastprivate): Return true only for Fortran.
4314         (gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
4315         GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
4316         Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
4317         GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
4318         based array sections.  Use GOMP_MAP_ALWAYS_P.  Fix up handling of
4319         lastprivate and linear when combined with distribute.  Gimplify
4320         variable low-bound for array reduction.  Look through
4321         POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
4322         reductions.
4323         (gimplify_adjust_omp_clauses_1): For implicit references to
4324         variables with reference type and when not ref to scalar or
4325         ref to pointer, map what they refer to using tofrom and
4326         use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
4327         (gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
4328         from target exit data.  Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
4329         Drop OMP_CLAUSE_MAP_PRIVATE support.  Use GOMP_MAP_ALWAYS_P.
4330         Diagnose the same var on both firstprivate and lastprivate on
4331         distribute construct.
4332         (gimplify_omp_for): Fix up handling of predetermined
4333         lastprivate or linear iter vars when combined with distribute.
4334         (find_omp_teams, computable_teams_clause, optimize_target_teams): New
4335         functions.
4336         (gimplify_omp_workshare): Call optimize_target_teams.
4337         * omp-low.c (struct omp_region): Add sched_modifiers field.
4338         (struct omp_for_data): Likewise.
4339         (omp_any_child_fn_dumped): New variable.
4340         (extract_omp_for_data): Fill in sched_modifiers, and mask out
4341         OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
4342         from sched_kind.
4343         (determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
4344         bits of OMP_CLAUSE_SCHED_KIND.
4345         (scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
4346         drop OMP_CLAUSE_MAP_PRIVATE support.  Look through POINTER_PLUS_EXPR
4347         for array section reductions.
4348         (add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
4349         for distribute parallel for, if there are lastprivate clauses on the
4350         for.
4351         (lower_rec_input_clauses): Handle non-zero low-bound on array
4352         section reductions.
4353         (lower_reduction_clauses): Likewise.
4354         (lower_send_clauses): Look through POINTER_PLUS_EXPR
4355         for array section reductions.
4356         (expand_parallel_call): Use nonmonotonic entrypoints for
4357         nonmonotonic: dynamic/guided.
4358         (expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
4359         child_fn if current_function_decl has assembler name set, but child_fn
4360         does not.  Dump the header and IL of the child function when not in SSA
4361         form.
4362         (expand_omp_target): Likewise.  Pass num_teams and thread_limit
4363         arguments to BUILT_IN_GOMP_TARGET.
4364         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
4365         Initialize the extra _looptemp_ clause to fd->loop.n2.
4366         (expand_omp_for): Use nonmonotonic entrypoints for
4367         nonmonotonic: dynamic/guided.  Initialize region->sched_modifiers.
4368         (expand_omp): Clear omp_any_child_fn_dumped.  Dump function header
4369         again if we have dumped any child functions.
4370         (lower_omp_for_lastprivate): Determine the right count variable
4371         for distribute simd, or distribute parallel for{, simd}.
4372         (lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
4373         and GOMP_MAP_ALWAYS_POINTER.  Drop OMP_CLAUSE_MAP_PRIVATE
4374         support.
4375         (simd_clone_clauses_extract): Handle variable step
4376         for references and arguments passed by reference.
4377         (simd_clone_mangle): Mangle ref/uval/val variable steps.
4378         (simd_clone_adjust_argument_types): Handle
4379         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
4380         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
4381         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
4382         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
4383         (simd_clone_linear_addend): New function.
4384         (simd_clone_adjust): Handle variable step like similarly
4385         to constant step, use simd_clone_linear_addend to determine
4386         the actual step at runtime.
4387
4388 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
4389
4390         * target.def (goacc.dim_limit): New hook.
4391         * targhooks.h (default_goacc_dim_limit): Declare.
4392         * doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add.
4393         * doc/tm.texi: Rebuilt.
4394         * omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare.
4395         * omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New.
4396         (default_goacc_dim_limit): New.
4397         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
4398         (nvptx_goacc_dim_limit) New.
4399         (TARGET_GOACC_DIM_LIMIT): Override.
4400         * tree-vrp.c: Include omp-low.h, target.h.
4401         (extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE &
4402         IFN_GOACC_DIM_POS.
4403
4404 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
4405
4406         * tree-vect-generic.c (do_compare): Use -1 for true
4407         result instead of 1.
4408
4409 2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4410
4411         * config/aarch64/aarch64.c
4412         (aarch64_can_use_per_function_literal_pools_p): New.
4413         (aarch64_use_blocks_for_constant_p): Adjust declaration
4414         and use aarch64_can_use_function_literal_pools_p.
4415         (aarch64_select_rtx_section): Update.
4416
4417 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
4418
4419         * targhooks.c (default_get_mask_mode): Use BLKmode in
4420         case target doesn't support required vector mode.
4421         * stor-layout.c (layout_type); Check for BLKmode.
4422
4423 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
4424             Sebastian Pop  <s.pop@samsung.com>
4425
4426         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
4427         Remove use of parameter_rename_map.
4428         (copy_def): Remove.
4429         (copy_internal_parameters): Remove.
4430         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
4431         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
4432         (free_sese_info): Do not free parameter_rename_map.
4433         (set_rename): Do not use parameter_rename_map.
4434         (rename_uses): Update call to set_rename.
4435         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
4436         * sese.h (parameter_rename_map_t): Remove.
4437         (struct sese_info_t): Remove field parameter_rename_map.
4438
4439 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
4440             Sebastian Pop  <s.pop@samsung.com>
4441
4442         * graphite-isl-ast-to-gimple.c: Include tree-cfg.h.
4443         (translate_isl_ast_node_user): Add more dumps: call print_loops_bb.
4444         * graphite-scop-detection.c (dot_all_scops_1): Moved out of
4445         anonymous namespace.
4446         * graphite-sese-to-poly.c (ssa_name_version_typesize): Remove.
4447         (isl_id_for_pbb): Use a buffer of size 10.
4448         (isl_id_for_ssa_name): Same.
4449         * sese.c (set_rename): Add more dumps.
4450
4451 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
4452
4453         * omp-low.c (struct omp_context): Remove reduction_map field.
4454         (lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete.
4455         (new_omp_context, delete_omp_context, scan_omp_target): Remove
4456         reduction_map handling.
4457         (lower_omp_target): Remove obsolete openacc reduction handling.
4458
4459 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
4460
4461         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking.
4462
4463 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
4464             Cesar Philippidis  <cesar@codesourcery.com>
4465
4466         * config/nvptx/nvptx.c: Include gimple headers.
4467         (worker_red_size, worker_red_align, worker_red_name,
4468         worker_red_sym): New.
4469         (nvptx_option_override): Initialize worker reduction buffer.
4470         (nvptx_file_end): Write out worker reduction buffer var.
4471         (nvptx_expand_shuffle, nvptx_expand_worker_addr,
4472         nvptx_expand_cmp_swap): New builtin expanders.
4473         (enum nvptx_builtins): New.
4474         (nvptx_builtin_decls): New.
4475         (nvptx_builtin_decl, nvptx_init_builtins, nvptx_expand_builtin): New
4476         (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
4477         (nvptx_get_worker_red_addr, nvptx_generate_vector_shuffle,
4478         nvptx_lockless_update): New helpers.
4479         (nvptx_goacc_reduction_setup, nvptx_goacc_reduction_init,
4480         nvptx_goacc_reduction_fini, nvptx_goacc_reduction_teaddown): New.
4481         (nvptx_goacc_reduction): New.
4482         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN,
4483         TARGET_BUILTIN_DECL): Override.
4484         (TARGET_GOACC_REDUCTION): Override.
4485
4486 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
4487             Cesar Philippidis  <cesar@codesourcery.com>
4488
4489         * internal-fn.def (GOACC_REDUCTION): New.
4490         * internal-fn.h (enum ifn_goacc_reduction_kind): New.
4491         * internal-fn.c (expand_GOACC_REDUCTION): New.
4492         * target.def (goacc.reduction): New OpenACC hook.
4493         * targhooks.h (default_goacc_reduction): Declare.
4494         * doc/tm.texi.in: Add TARGET_GOACC_REDUCTION.
4495         * doc/tm.texi: Rebuilt.
4496         * omp-low.c (oacc_get_reduction_array_id, oacc_max_threads,
4497         scan_sharing_clauses): Remove oacc reduction handling here.
4498         (lower_rec_input_clauses): Don't handle OpenACC reductions here.
4499         (oacc_lower_reduction_var_helper): Delete.
4500         (lower_oacc_reductions): New.
4501         (lower_reduction_clauses): Don't handle OpenACC reductions here.
4502         (lower_oacc_head_tail): Call lower_oacc_reductions.
4503         (oacc_gimple_assign, oacc_init_reduction_array,
4504         oacc_initialize_reduction_data, oacc_finalize_reduction_data,
4505         oacc_process_reduction_data): Delete.
4506         (lower_omp_target): Remove old OpenACC reduction handling.  Insert
4507         dummy OpenACC gang reduction for reductions at outer level.
4508         (oacc_loop_xform_head_tail): Transform IFN_GOACC_REDUCTION.
4509         (default_goacc_reduction): New.
4510         (execute_oacc_device_lower): Handle IFN_GOACC_REDUCTION.
4511
4512 2015-11-04  Martin Liska  <mliska@suse.cz>
4513
4514         * cgraphunit.c (cgraph_node::expand_thunk): Call
4515         allocate_struct_function before init_function_start.
4516         (cgraph_node::expand): Use push_cfun and pop_cfun.
4517         * config/i386/i386.c (ix86_code_end): Call
4518         allocate_struct_function before init_function_start.
4519         * config/rs6000/rs6000.c (rs6000_code_end): Likewise.
4520         * function.c (init_function_start): Move preamble to all
4521         callers.
4522         * passes.c (do_per_function_toporder): Use push_cfun and pop_cfun.
4523         (execute_one_pass): Handle newly added TODO_discard_function.
4524         (execute_pass_list_1): Terminate if cfun equals to NULL.
4525         (execute_pass_list): Do not push and pop cfun, expect that
4526         cfun is set.
4527         * tree-pass.h (TODO_discard_function): Define.
4528
4529 2015-11-04  Mikhail Maltsev  <maltsevm@gmail.com>
4530
4531         * cfganal.c (inverted_post_order_compute): Remove conditional
4532         compilation, use flag_checking.
4533         * config.in: Regenerate.
4534         * configure: Regenerate.
4535         * configure.ac: Remove ENABLE_CHECKING.
4536         * genconditions.c: Do not #undef ENABLE_CHECKING.
4537         * sese.h (bb_in_region): Comment out broken check.
4538         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa_1): Remove
4539         conditional compilation, use flag_checking.
4540
4541 2015-11-04  Tom de Vries  <tom@codesourcery.com>
4542
4543         PR tree-optimization/67742
4544         * tree-ssa-structalias.c (struct fieldoff): Add restrict_pointed_type
4545         field.
4546         (push_fields_onto_fieldstack): Handle restrict_pointed_type field.
4547         (create_variable_info_for_1): Add and handle handle_param parameter.
4548         Add restrict handling.
4549         (create_variable_info_for): Call create_variable_info_for_1 with extra
4550         arg.
4551         (make_param_constraints): Drop restrict_name parameter.  Ignore
4552         vi->only_restrict_pointers.
4553         (intra_create_variable_infos): Call create_variable_info_for_1 with
4554         extra arg.  Remove restrict handling.  Call make_param_constraints with
4555         one fewer arg.
4556
4557 2015-11-04  Tom de Vries  <tom@codesourcery.com>
4558
4559         * tree-ssa-structalias.c (create_variable_info_for_1): Use decl_type
4560         variable.
4561
4562 2015-11-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4563
4564         * config/arm/coff.h: Remove.
4565
4566 2015-11-03  Eric Botcazou  <ebotcazou@adacore.com>
4567
4568         * gimple-expr.c (useless_type_conversion_p): Reinstate type canonical
4569         check for aggregate types and beef up comment for mode check.
4570
4571 2015-11-03  Richard Biener  <rguenther@suse.de>
4572
4573         * tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect
4574         data references here.
4575         * tree-vect-loop.c: Include cgraph.h.
4576         (vect_analyze_loop_2): Collect data references here.
4577         * tree-vect-slp.c (find_bb_location): Inline ...
4578         (vect_slp_bb): ... here.  Renamed from vect_slp_analyze_bb.
4579         Factor in vect_slp_transform_bb.
4580         (vect_slp_transform_bb): Removed.
4581         (vect_slp_analyze_bb_1): Collect data references here.
4582         * tree-vectorizer.c (pass_slp_vectorize::execute): Call
4583         vect_slp_bb.
4584         * tree-vectorizer.h (vect_slp_bb): Declare.
4585         (vect_slp_analyze_bb): Remove.
4586         (vect_slp_transform_bb): Remove.
4587         (find_bb_location): Remove.
4588         (vect_analyze_data_refs): Remove stmt count reference parameter.
4589
4590 2015-11-03  Evgeny Stupachenko  <evstupac@gmail.com>
4591
4592         * multiple_target.c (create_dispatcher_calls): Add target check
4593         on ifunc.
4594         (create_target_clone): Change assembler name for versioned declarations.
4595
4596 2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
4597             Chung-Lin Tang  <cltang@codesourcery.com>
4598
4599         * builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc.
4600         * omp-low.c (check_omp_nesting_restrictions): Allow
4601         GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC
4602         contexts.
4603
4604 2015-11-03  Bilyan Borisov  <bilyan.borisov@arm.com>
4605
4606         * config/aarch64/aarch64-simd-builtins.def (fmulx): New.
4607         * config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New.
4608         * config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx
4609         builtin.
4610         (vmulxq_f32): Likewise.
4611         (vmulx_f64): New.
4612         (vmulxq_f64): Rewrite to call fmulx builtin.
4613         (vmulxs_f32): Likewise.
4614         (vmulxd_f64): Likewise.
4615         (vmulx_lane_f32): Remove.
4616         * config/aarch64/iterators.md (UNSPEC): Add fmulx.
4617
4618 2015-11-03  Alan Lawrence  <alan.lawrence@arm.com>
4619
4620         * config/aarch64/aarch64.md (*movhf_aarch64): Use
4621         aarch64_reg_or_fp_zero for second operand.
4622
4623 2015-11-03  Alexandre Oliva <aoliva@redhat.com>
4624
4625         * gimple-expr.c: Include hash-set.h and rtl.h.
4626         (mark_addressable_queue): New var.
4627         (mark_addressable): Factor actual marking into...
4628         (mark_addressable_1): ... this.  Queue it up during expand.
4629         (mark_addressable_2): New.
4630         (flush_mark_addressable_queue): New.
4631         * gimple-expr.h (flush_mark_addressable_queue): Declare.
4632         * cfgexpand.c: Include gimple-expr.h.
4633         (pass_expand::execute): Flush mark_addressable queue.
4634
4635 2015-11-02  Alexandre Oliva <aoliva@redhat.com>
4636
4637         * tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out
4638         bb_no_side_effects_p tests...
4639         (tree_ssa_ifcombine_bb): ... here.
4640
4641         PR tree-optimization/68083
4642         * tree-ssa-ifcombine.c: Include tree-ssa.h.
4643         (bb_no_side_effects_p): Test for undefined uses too.
4644         * tree-ssa.c (gimple_uses_undefined_value_p): New.
4645         * tree-ssa.h (gimple_uses_undefined_value_p): Declare.
4646
4647 2015-11-02  Jeff Law <law@redhat.com>
4648
4649         * tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect
4650         cases where the loop latch edge is in the middle of an FSM path.
4651
4652 2015-11-03  Tom de Vries  <tom@codesourcery.com>
4653
4654         * tree-ssa-structalias.c (make_restrict_var_constraints): Rename to ...
4655         (make_param_constraints): ... this.  Add and handle restrict_name
4656         parameter.  Handle is_full_var case.
4657         (intra_create_variable_infos): Use make_param_constraints.
4658
4659 2015-11-03  Tom de Vries  <tom@codesourcery.com>
4660
4661         * tree-ssa-structalias.c (make_restrict_var_constraints): Replace
4662         make_copy_constraint call with make_constraint_from call.
4663
4664 2015-11-02  Andreas Tobler  <andreast@gcc.gnu.org>
4665
4666         * config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle
4667         PIE executables.
4668
4669 2015-11-02  Richard Sandiford  <richard.sandiford@arm.com>
4670
4671         * builtins.h (fold_fma): Move to fold-const-call.h.
4672         * builtins.c: Include fold-const-call.h.
4673         (mathfn_built_in_2): New function, split out from...
4674         (mathfn_built_in_1): ...here.
4675         (do_real_to_int_conversion, fold_const_builtin_pow)
4676         (fold_const_builtin_logb, fold_const_builtin_significand)
4677         (fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2)
4678         (do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete.
4679         (fold_builtin_sincos): Use fold_const_call to handle constants.
4680         (fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit
4681         checks for ERROR_MARK.  Use fold_const_call to handle constant
4682         folds for math functions.
4683         (fold_fma): Move to fold-const-call.c.
4684         * fold-const.c: Include fold-const-call.h.
4685         * Makefile.in (OBJS): Add fold-const-call.o.
4686         (PLUGIN_HEADERS): Add fold-const-call.h.
4687         * realmpfr.h (real_from_mpfr): Allow the format to be specified
4688         directly.
4689         * realmpfr.c (real_from_mpfr): Likewise.
4690         * fold-const-call.h, fold-const-call.c: New files.
4691
4692 2015-11-02  Julian Brown  <julian@codesourcery.com>
4693
4694         * config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous
4695         brackets and semicolon.
4696
4697 2015-11-02  Alan Lawrence  <alan.lawrence@arm.com>
4698
4699         Revert:
4700         2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
4701
4702         PR tree-optimization/65963
4703         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
4704         LSHIFT_EXPRs as equivalent MULT_EXPRs.
4705
4706 2015-11-02  Thomas Schwinge  <thomas@codesourcery.com>
4707
4708         PR middle-end/68166
4709         * fold-const.c: Include "md5.h".
4710
4711 2015-11-01  Jeff Law <law@redhat.com>
4712
4713         * vmsdbgout.c: Revert unused header file reduction patch.
4714
4715         * config/mcore/mcore.c: Include regs.h.
4716
4717 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
4718
4719         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Rewrite.
4720
4721 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
4722
4723         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
4724         same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
4725         live as for using it elsewhere, for TARGET_MINIMAL_TOC.
4726
4727 2015-10-31  Markus Trippelsdorf  <markus@trippelsdorf.de>
4728
4729         * ggc-common.c: Restore needed header for checking=release.
4730
4731 2015-10-31  Tom de Vries  <tom@codesourcery.com>
4732
4733         * fold-const.c (fold_unary_loc): Tune POINTER_PLUS_EXPR folding.
4734
4735 2015-10-31  Tom de Vries  <tom@codesourcery.com>
4736
4737         * tree-ssa-structalias.c (intra_create_variable_infos): Don't expect
4738         existing varinfo for arguments.
4739
4740 2015-10-31  Tom de Vries  <tom@codesourcery.com>
4741
4742         * tree-ssa-structalias.c (ipa_pta_execute): Add extra arg to call to
4743         create_function_info_for.  Dump constraints generated during
4744         create_function_info_for. Move intra_create_variable_infos call and
4745         function-return-values-escape bit to ...
4746         (create_function_info_for): ... here, and merge
4747         intra_create_variable_infos call with argument loop.  Add and handle
4748         nonlocal_p parameter.
4749
4750 2015-10-31  Tom de Vries  <tom@codesourcery.com>
4751
4752         * tree-ssa-structalias.c (create_function_info_for): Make sure prev_vi
4753         updating is alap, and seperated from preceding code.  Make sure
4754         insert_vi_for_tree is seperated from surrounding code.
4755
4756 2015-10-31  Tom de Vries  <tom@codesourcery.com>
4757
4758         * tree-ssa-structalias.c (ipa_pta_execute): Use make_copy_constraint.
4759
4760 2015-10-30  Jeff Law <law@redhat.com>
4761             Nathan Sidwell  <nathan@acm.org>
4762
4763         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Avoid warning on unused
4764         args.
4765         (MOVE_MAX): Set to 8.
4766
4767 2015-10-30  Cesar Philippidis  <cesar@codesourcery.com>
4768
4769         * cgraph.c: Include context.h for offloading.
4770         * varpool.c: Include context.h and omp-low.h.
4771
4772 2015-10-30  Anatoly Sokolov  <aesok@post.ru>
4773
4774         * rtl.h (contains_symbol_ref_p): Declare.
4775         (SYMBOL_REF_P): Define.
4776         * rtlanal.c (contains_symbol_ref_p: New function.
4777         * lra-constraints.c (contains_symbol_ref_p): Remove.
4778         * var-tracking.c (contains_symbol_ref): Remove.
4779         (track_expr_p): Use contains_symbol_ref_p instead of
4780         contains_symbol_ref.
4781
4782 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
4783
4784         * gimple-fold.c (fold_array_ctor_reference): Move searching code to:
4785         * fold-const.c (get_array_ctor_element_at_index): New.
4786         (fold): Remove binary-search through CONSTRUCTOR, call previous.
4787
4788         * fold-const.h (get_array_ctor_element_at_index): New.
4789
4790 2015-10-30  Evgeny Stupachenko  <evstupac@gmail.com>
4791
4792         * Makefile.in (OBJS): Add multiple_target.o.
4793         * attrib.c (make_attribute): Moved from config/i386/i386.c
4794         * config/i386/i386.c (make_attribute): Deleted.
4795         * multiple_target.c (create_dispatcher_calls): New.
4796         (get_attr_len): Ditto.
4797         (get_attr_str): Ditto.
4798         (separate_attrs): Ditto.
4799         (is_valid_asm_symbol): Ditto.
4800         (create_new_asm_name): Ditto.
4801         (create_target_clone): Ditto.
4802         (expand_target_clones): Ditto.
4803         (ipa_target_clone): Ditto.
4804         (ipa_dispatcher_calls): Ditto.
4805         * passes.def (pass_target_clone): Two new ipa passes.
4806         * tree-pass.h (make_pass_target_clone): Ditto.
4807         * doc/extend.texi (target_clones): New attribute description.
4808
4809 2015-10-30  Vladimir Makarov  <vmakarov@redhat.com>
4810
4811         PR rtl-optimization/68106
4812         * lra-remat.c (input_regno_present_p): Process hard regs
4813         explicitly present in machine description insns.
4814         (call_used_input_regno_present_p): Ditto.
4815         (calculate_gen_cands): Ditto.
4816         (do_remat): Ditto.
4817
4818 2015-10-30  Jim Wilson  <jim.wilson@linaro.org>
4819
4820         * config/arm/neon-testgen.ml: Fix comment typo.
4821
4822 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4823
4824         * rtlanal.c (reg_set_p): Expand function comment.
4825
4826 2015-10-30  Andrew MacLeod  <amacleod@redhat.com>
4827
4828         * alias.c: Remove unused headers.
4829         * asan.c: Likewise.
4830         * attribs.c: Likewise.
4831         * auto-inc-dec.c: Likewise.
4832         * auto-profile.c: Likewise.
4833         * bb-reorder.c: Likewise.
4834         * bitmap.c: Likewise.
4835         * bt-load.c: Likewise.
4836         * builtins.c: Likewise.
4837         * caller-save.c: Likewise.
4838         * calls.c: Likewise.
4839         * ccmp.c: Likewise.
4840         * cfg.c: Likewise.
4841         * cfganal.c: Likewise.
4842         * cfgbuild.c: Likewise.
4843         * cfgcleanup.c: Likewise.
4844         * cfgexpand.c: Likewise.
4845         * cfghooks.c: Likewise.
4846         * cfgloop.c: Likewise.
4847         * cfgloopanal.c: Likewise.
4848         * cfgloopmanip.c: Likewise.
4849         * cfgrtl.c: Likewise.
4850         * cgraph.c: Likewise.
4851         * cgraphbuild.c: Likewise.
4852         * cgraphclones.c: Likewise.
4853         * cgraphunit.c: Likewise.
4854         * cilk-common.c: Likewise.
4855         * combine-stack-adj.c: Likewise.
4856         * combine.c: Likewise.
4857         * compare-elim.c: Likewise.
4858         * convert.c: Likewise.
4859         * coverage.c: Likewise.
4860         * cppbuiltin.c: Likewise.
4861         * cprop.c: Likewise.
4862         * cse.c: Likewise.
4863         * cselib.c: Likewise.
4864         * data-streamer-in.c: Likewise.
4865         * data-streamer-out.c: Likewise.
4866         * data-streamer.c: Likewise.
4867         * dbxout.c: Likewise.
4868         * dce.c: Likewise.
4869         * ddg.c: Likewise.
4870         * debug.c: Likewise.
4871         * df-core.c: Likewise.
4872         * df-problems.c: Likewise.
4873         * df-scan.c: Likewise.
4874         * dfp.c: Likewise.
4875         * dojump.c: Likewise.
4876         * dominance.c: Likewise.
4877         * domwalk.c: Likewise.
4878         * double-int.c: Likewise.
4879         * dse.c: Likewise.
4880         * dumpfile.c: Likewise.
4881         * dwarf2asm.c: Likewise.
4882         * dwarf2cfi.c: Likewise.
4883         * dwarf2out.c: Likewise.
4884         * emit-rtl.c: Likewise.
4885         * except.c: Likewise.
4886         * explow.c: Likewise.
4887         * expmed.c: Likewise.
4888         * expr.c: Likewise.
4889         * final.c: Likewise.
4890         * fixed-value.c: Likewise.
4891         * fold-const.c: Likewise.
4892         * function.c: Likewise.
4893         * fwprop.c: Likewise.
4894         * gcse.c: Likewise.
4895         * generic-match-head.c: Likewise.
4896         * ggc-common.c: Likewise.
4897         * gimple-builder.c: Likewise.
4898         * gimple-expr.c: Likewise.
4899         * gimple-fold.c: Likewise.
4900         * gimple-iterator.c: Likewise.
4901         * gimple-low.c: Likewise.
4902         * gimple-match-head.c: Likewise.
4903         * gimple-pretty-print.c: Likewise.
4904         * gimple-ssa-isolate-paths.c: Likewise.
4905         * gimple-ssa-strength-reduction.c: Likewise.
4906         * gimple-streamer-in.c: Likewise.
4907         * gimple-streamer-out.c: Likewise.
4908         * gimple-walk.c: Likewise.
4909         * gimple.c: Likewise.
4910         * gimplify-me.c: Likewise.
4911         * gimplify.c: Likewise.
4912         * godump.c: Likewise.
4913         * graph.c: Likewise.
4914         * graphds.c: Likewise.
4915         * haifa-sched.c: Likewise.
4916         * hw-doloop.c: Likewise.
4917         * ifcvt.c: Likewise.
4918         * init-regs.c: Likewise.
4919         * internal-fn.c: Likewise.
4920         * ipa-chkp.c: Likewise.
4921         * ipa-comdats.c: Likewise.
4922         * ipa-cp.c: Likewise.
4923         * ipa-devirt.c: Likewise.
4924         * ipa-icf-gimple.c: Likewise.
4925         * ipa-icf.c: Likewise.
4926         * ipa-inline-analysis.c: Likewise.
4927         * ipa-inline-transform.c: Likewise.
4928         * ipa-inline.c: Likewise.
4929         * ipa-polymorphic-call.c: Likewise.
4930         * ipa-profile.c: Likewise.
4931         * ipa-prop.c: Likewise.
4932         * ipa-pure-const.c: Likewise.
4933         * ipa-ref.c: Likewise.
4934         * ipa-reference.c: Likewise.
4935         * ipa-split.c: Likewise.
4936         * ipa-utils.c: Likewise.
4937         * ipa-visibility.c: Likewise.
4938         * ipa.c: Likewise.
4939         * ira-build.c: Likewise.
4940         * ira-color.c: Likewise.
4941         * ira-conflicts.c: Likewise.
4942         * ira-costs.c: Likewise.
4943         * ira-emit.c: Likewise.
4944         * ira-lives.c: Likewise.
4945         * ira.c: Likewise.
4946         * jump.c: Likewise.
4947         * langhooks.c: Likewise.
4948         * lcm.c: Likewise.
4949         * lists.c: Likewise.
4950         * loop-doloop.c: Likewise.
4951         * loop-init.c: Likewise.
4952         * loop-invariant.c: Likewise.
4953         * loop-iv.c: Likewise.
4954         * loop-unroll.c: Likewise.
4955         * lower-subreg.c: Likewise.
4956         * lra-assigns.c: Likewise.
4957         * lra-coalesce.c: Likewise.
4958         * lra-constraints.c: Likewise.
4959         * lra-eliminations.c: Likewise.
4960         * lra-lives.c: Likewise.
4961         * lra-remat.c: Likewise.
4962         * lra-spills.c: Likewise.
4963         * lra.c: Likewise.
4964         * lto-cgraph.c: Likewise.
4965         * lto-compress.c: Likewise.
4966         * lto-opts.c: Likewise.
4967         * lto-section-in.c: Likewise.
4968         * lto-section-out.c: Likewise.
4969         * lto-streamer-in.c: Likewise.
4970         * lto-streamer-out.c: Likewise.
4971         * lto-streamer.c: Likewise.
4972         * mcf.c: Likewise.
4973         * mode-switching.c: Likewise.
4974         * modulo-sched.c: Likewise.
4975         * optabs.c: Likewise.
4976         * opts-global.c: Likewise.
4977         * passes.c: Likewise.
4978         * plugin.c: Likewise.
4979         * postreload-gcse.c: Likewise.
4980         * postreload.c: Likewise.
4981         * predict.c: Likewise.
4982         * print-tree.c: Likewise.
4983         * profile.c: Likewise.
4984         * real.c: Likewise.
4985         * realmpfr.c: Likewise.
4986         * recog.c: Likewise.
4987         * ree.c: Likewise.
4988         * reg-stack.c: Likewise.
4989         * regcprop.c: Likewise.
4990         * reginfo.c: Likewise.
4991         * regrename.c: Likewise.
4992         * regstat.c: Likewise.
4993         * reload.c: Likewise.
4994         * reload1.c: Likewise.
4995         * reorg.c: Likewise.
4996         * resource.c: Likewise.
4997         * rtl-chkp.c: Likewise.
4998         * rtl-error.c: Likewise.
4999         * rtlanal.c: Likewise.
5000         * rtlhooks.c: Likewise.
5001         * sanopt.c: Likewise.
5002         * sched-deps.c: Likewise.
5003         * sched-ebb.c: Likewise.
5004         * sched-rgn.c: Likewise.
5005         * sdbout.c: Likewise.
5006         * sel-sched-dump.c: Likewise.
5007         * sel-sched-ir.c: Likewise.
5008         * sel-sched.c: Likewise.
5009         * sese.c: Likewise.
5010         * shrink-wrap.c: Likewise.
5011         * simplify-rtx.c: Likewise.
5012         * stack-ptr-mod.c: Likewise.
5013         * statistics.c: Likewise.
5014         * stmt.c: Likewise.
5015         * stor-layout.c: Likewise.
5016         * store-motion.c: Likewise.
5017         * stringpool.c: Likewise.
5018         * symtab.c: Likewise.
5019         * target-globals.c: Likewise.
5020         * targhooks.c: Likewise.
5021         * toplev.c: Likewise.
5022         * tracer.c: Likewise.
5023         * trans-mem.c: Likewise.
5024         * tree-affine.c: Likewise.
5025         * tree-call-cdce.c: Likewise.
5026         * tree-cfg.c: Likewise.
5027         * tree-cfgcleanup.c: Likewise.
5028         * tree-chkp-opt.c: Likewise.
5029         * tree-chkp.c: Likewise.
5030         * tree-chrec.c: Likewise.
5031         * tree-complex.c: Likewise.
5032         * tree-data-ref.c: Likewise.
5033         * tree-dfa.c: Likewise.
5034         * tree-diagnostic.c: Likewise.
5035         * tree-dump.c: Likewise.
5036         * tree-eh.c: Likewise.
5037         * tree-emutls.c: Likewise.
5038         * tree-if-conv.c: Likewise.
5039         * tree-inline.c: Likewise.
5040         * tree-into-ssa.c: Likewise.
5041         * tree-iterator.c: Likewise.
5042         * tree-loop-distribution.c: Likewise.
5043         * tree-nested.c: Likewise.
5044         * tree-nrv.c: Likewise.
5045         * tree-object-size.c: Likewise.
5046         * tree-outof-ssa.c: Likewise.
5047         * tree-parloops.c: Likewise.
5048         * tree-phinodes.c: Likewise.
5049         * tree-predcom.c: Likewise.
5050         * tree-pretty-print.c: Likewise.
5051         * tree-profile.c: Likewise.
5052         * tree-scalar-evolution.c: Likewise.
5053         * tree-sra.c: Likewise.
5054         * tree-ssa-address.c: Likewise.
5055         * tree-ssa-alias.c: Likewise.
5056         * tree-ssa-ccp.c: Likewise.
5057         * tree-ssa-coalesce.c: Likewise.
5058         * tree-ssa-copy.c: Likewise.
5059         * tree-ssa-dce.c: Likewise.
5060         * tree-ssa-dse.c: Likewise.
5061         * tree-ssa-forwprop.c: Likewise.
5062         * tree-ssa-ifcombine.c: Likewise.
5063         * tree-ssa-live.c: Likewise.
5064         * tree-ssa-loop-ch.c: Likewise.
5065         * tree-ssa-loop-im.c: Likewise.
5066         * tree-ssa-loop-ivcanon.c: Likewise.
5067         * tree-ssa-loop-ivopts.c: Likewise.
5068         * tree-ssa-loop-manip.c: Likewise.
5069         * tree-ssa-loop-niter.c: Likewise.
5070         * tree-ssa-loop-prefetch.c: Likewise.
5071         * tree-ssa-loop-unswitch.c: Likewise.
5072         * tree-ssa-loop.c: Likewise.
5073         * tree-ssa-math-opts.c: Likewise.
5074         * tree-ssa-operands.c: Likewise.
5075         * tree-ssa-phiopt.c: Likewise.
5076         * tree-ssa-phiprop.c: Likewise.
5077         * tree-ssa-pre.c: Likewise.
5078         * tree-ssa-propagate.c: Likewise.
5079         * tree-ssa-reassoc.c: Likewise.
5080         * tree-ssa-scopedtables.c: Likewise.
5081         * tree-ssa-sink.c: Likewise.
5082         * tree-ssa-strlen.c: Likewise.
5083         * tree-ssa-structalias.c: Likewise.
5084         * tree-ssa-tail-merge.c: Likewise.
5085         * tree-ssa-ter.c: Likewise.
5086         * tree-ssa-threadupdate.c: Likewise.
5087         * tree-ssa-uncprop.c: Likewise.
5088         * tree-ssa-uninit.c: Likewise.
5089         * tree-ssa.c: Likewise.
5090         * tree-ssanames.c: Likewise.
5091         * tree-stdarg.c: Likewise.
5092         * tree-streamer-in.c: Likewise.
5093         * tree-streamer-out.c: Likewise.
5094         * tree-streamer.c: Likewise.
5095         * tree-switch-conversion.c: Likewise.
5096         * tree-tailcall.c: Likewise.
5097         * tree-vect-data-refs.c: Likewise.
5098         * tree-vect-generic.c: Likewise.
5099         * tree-vect-loop-manip.c: Likewise.
5100         * tree-vect-loop.c: Likewise.
5101         * tree-vect-patterns.c: Likewise.
5102         * tree-vect-slp.c: Likewise.
5103         * tree-vect-stmts.c: Likewise.
5104         * tree-vectorizer.c: Likewise.
5105         * tree-vrp.c: Likewise.
5106         * tree.c: Likewise.
5107         * tsan.c: Likewise.
5108         * ubsan.c: Likewise.
5109         * value-prof.c: Likewise.
5110         * var-tracking.c: Likewise.
5111         * varasm.c: Likewise.
5112         * varpool.c: Likewise.
5113         * vmsdbgout.c: Likewise.
5114         * vtable-verify.c: Likewise.
5115         * web.c: Likewise.
5116         * wide-int-print.cc: Likewise.
5117         * wide-int.cc: Likewise.
5118         * xcoffout.c: Likewise.
5119
5120 2015-10-30  James Greenhalgh  <james.greenhalgh@arm.com>
5121
5122         * doc/invoke.texi (fdump-rtl-@var{pass}): Clarify relationship
5123         between pass numbering and execution order.
5124
5125 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5126
5127         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Use reg_set_p to
5128         check for dependencies.
5129
5130 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
5131
5132         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Don't free
5133         CDI_DOMINATORS.
5134
5135 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
5136
5137         * real.h (format_helper): New.
5138         (real_convert, exact_real_truncate, real_from_string3, real_to_target)
5139         (real_from_target, real_nan, real_2expN, real_value_truncate)
5140         (significand_size, real_from_string2, exact_real_inverse)
5141         (exact_real_inverse, real_powi, real_trunc, real_floor, real_ceil)
5142         (real_round, real_isinteger, real_from_integer): Replace
5143         machine_mode arguments with format_helper arguments.
5144         * real.c (exact_real_inverse, real_from_string2, real_from_string3)
5145         (real_from_integer, real_nan, real_2expN, real_convert)
5146         (real_value_truncate, exact_real_truncate, real_to_target)
5147         (real_from_target, significand_size, real_powi, real_trunc)
5148         (real_floor, real_ceil, real_round, real_isinteger): Replace
5149         machine_mode arguments with format_helper arguments.
5150         (real_to_target_fmt, real_from_target_fmt): Delete.
5151         * dfp.h (decimal_real_convert): Replace mode argument with real_format.
5152         * dfp.c (decimal_to_binary, decimal_real_convert): Replace mode
5153         argument with real_format.
5154         * builtins.c (do_real_to_int_conversion): Update type of fn argument.
5155
5156 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
5157
5158         * fixed-value.c (check_real_for_fixed_mode, fixed_from_string)
5159         (fixed_to_decimal, fixed_convert_from_real)
5160         (real_convert_from_fixed): Fix mode arguments to real_2expN.
5161
5162 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
5163
5164         * real.h (REAL_MODE_FORMAT): Abort if the mode isn't a
5165         SCALAR_FLOAT_MODE_P.
5166
5167 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
5168
5169         * tree-sra.c (scalarizable_type_p): Comment variable-length arrays.
5170         (completely_scalarize): Comment zero-length arrays.
5171         (get_access_replacement): Correct comment re. precondition.
5172
5173 2015-10-30  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5174
5175         * config/i386/i386.c (get_builtin_code_for_version): Set priority
5176         for PROCESSOR_ZNVER1.
5177         (enum processor_model): Add M_AMDFAM17H_znver1.
5178         (struct arch_names_table): Likewise.
5179         * doc/extend.texi: ADD znver1.
5180
5181 2015-10-30  Richard Biener  <rguenther@suse.de>
5182
5183         * gimple-fold.c (fold_gimple_assign): Do not dispatch to
5184         fold () on single RHSs.  Allow CONSTRUCTORS with trailing
5185         zeros to be folded to VECTOR_CSTs.
5186         * tree.c (build_vector_from_ctor): Handle VECTOR_CST elements.
5187         * fold-const.c (fold): Use build_vector_from_ctor.
5188
5189 2015-10-30  Evandro Menezes  <e.menezes@samsung.com>
5190
5191         * config/aarch64/aarch64.md (*movhf_aarch64): Change the type of
5192         "mov %0.h[0], %1.h[0] to "neon_move".
5193         (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
5194         (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to
5195         "mov_imm".
5196         (*cmovsi_insn_uxtw): Likewise.
5197
5198 2015-10-30  Tom de Vries  <tom@codesourcery.com>
5199
5200         * tree-ssa-structalias.c (ipa_pta_execute): Declare variable from as
5201         unsigned, and initialize, and use initial value instead of hardcoded
5202         constant.  Add generic constraints dumping section.  Don't dump global
5203         initializers constraints dumping section if empty.  Don't update
5204         variable from if unused.
5205
5206 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
5207
5208         * config/alpha/alpha.c (alpha_function_arg): Use gcc_checking_assert,
5209         flag_checking and/or CHECKING_P to eliminate conditional compilation
5210         on ENABLE_CHECKING.
5211         * config/arm/arm.c (arm_unwind_emit_sequence): Likewise.
5212         * config/bfin/bfin.c (hwloop_optimize): Likewise.
5213         * config/i386/i386.c (ix86_print_operand_address): Likewise.
5214         (output_387_binary_op): Likewise.
5215         * config/ia64/ia64.c (ia64_sched_init, bundling): Likewise.
5216         * config/m68k/m68k.c (m68k_sched_md_init_global): Likewise.
5217         * config/rs6000/rs6000.c (htm_expand_builtin, rs6000_emit_prologue):
5218         Likewise.
5219         * config/rs6000/rs6000.h: Likewise.
5220         * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
5221
5222 2015-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
5223
5224         * config/sh/sh.opt (mfdpic): Add missing period.
5225
5226 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
5227
5228         * config/mcore/mcore.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
5229         BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P,
5230         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
5231         * config/mcore/mcore.c (mcore_reg_ok_for_base_p,
5232         mcore_base_register_rtx_p, mcore_legitimate_index_p,
5233         mcore_legitimate_address_p): New functions.
5234         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
5235
5236 2015-10-29  Jeff Law  <law@redhat.com>
5237
5238         * tree-ssa-scopedtables.h (const_and_copies): Remove invalidate
5239         method.
5240         * tree-ssa-scopedtables.h (const_and_copies::invalidate): Remove.
5241         * tree-ssa-threadedge.c
5242         (record_temporary_equivalences_from_stmts_at_dest): Remove
5243         backedge_seen argument and associated code which invalidated
5244         equivalences based on the value of that argument.
5245         (thread_through_normal_block): Corresponding changes.
5246
5247 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
5248
5249         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Move this
5250         function earlier in the file.
5251         (first_reg_to_save): Use rs6000_reg_live_or_pic_offset_p instead of
5252         df_regs_ever_live_p.
5253
5254 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
5255
5256         * lra-constraints.c (process_address_1): Handle (mem:BLK (scratch))
5257         by ignoring it.
5258
5259 2015-10-29  Richard Henderson  <rth@redhat.com>
5260
5261         PR target/68124
5262         PR rtl-opt/67609
5263         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
5264         sse check to the exact conditions of PR 67609.
5265
5266 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
5267
5268         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Split libfunc
5269         setup into 3 functions: init_float128_ibm, init_float128_ieee, and
5270         rs6000_init_libfuncs. If -mfloat128, add IFmode functions for all
5271         of the traditional names that TFmode uses for handling IEEE
5272         extended double. If -mfloat128, add KFmode functions for all of
5273         the emulation functions. If -mabi=ieeelongdouble and -mfloat128,
5274         make TFmode use the same emulation functions as KFmode.
5275         (init_float128_ibm): Likewise.
5276         (init_float128_ieee): Likewise.
5277         (rs6000_generate_compare): For IEEE 128-bit floating point
5278         comparisons, call the unordered comparison function instead of the
5279         ordered comparison function.
5280         (rs6000_expand_float128_convert): Deal with operands that are
5281         memory operands. Restructure the code to use a switch statement on
5282         the mode. Add support for TFmode defaulting to either IBM extended
5283         double or IEEE 128-bit floating point. If the underlying types are
5284         the same, use a move instead of a conversion function.
5285         (TARGET_C_MODE_FOR_SUFFIX): Define 'q' and 'Q' as the suffix to
5286         use for IEEE 128-bit floating point constants with -mfloat128.
5287         (rs6000_c_mode_for_suffix): Likewise.
5288         (TARGET_INVALID_BINARY_OP): Do not allow inter-mixing of IEEE
5289         128-bit floating point with IBM extended double floating point.
5290         (rs6000_invalid_binary_op): Likewise.
5291         (rs6000_gen_le_vsx_permute): On little endian systems generate a
5292         ROTATE insn instead of VEC_SELECT for IEEE 128-bit floating point
5293         types that can go in vector registers.
5294         (chain_contains_only_swaps): Properly swap IEEE 128-bit floating
5295         point types that can go in vector registers on little endian
5296         PowerPC systems.
5297         (mark_swaps_for_removal): Likewise.
5298         (rs6000_analyze_swaps): Likewise.
5299         (rs6000_mangle_type): Use U10__float128 for IEEE 128-bit floating point.
5300
5301         * config/rs6000/rs6000.md (FLOAT128_SFDFTF): Delete iterator,
5302         rework IEEE 128-bit floating point insns to deal with TFmode being
5303         either IBM extended double or IEEE 128-bit floating point.
5304         (IFKF): Likewise.
5305         (IBM128): Update iterator to add condition that the mode is IBM
5306         extended double.
5307         (IEEE128): New iterator for IEEE 128-bit floating point.
5308         (TFIFKF): Rename TFIFKF iterator to FLOAT128.
5309         (FLOAT128): Likewise.
5310         (signbit<mode>2): FLOAT128_IBM_P condition test moved into IBM128
5311         iterator.
5312         (neg<mode>2): Replace TFIFKF iterator with FLOAT128. Add support
5313         for TFmode being IEEE 128-bit floating point. Use IEEE128 iterator
5314         instead of hard coding TFmode or KFmode.
5315         (negtf2_internal): Likewise.
5316         (neg<mode>2_internal): Likewise.
5317         (abs<mode>2): Likewise.
5318         (abstf2_internal): Likewise.
5319         (abs<mode>2_internal): Likewise.
5320         (ieee_128bit_neg<mode>2): Likewise.
5321         (ieee_128bit_neg<mode>2_internal): Likewise.
5322         (ieee_128bit_abs<mode>2): Likewise.
5323         (ieee_128bit_abs<mode>2_internal): Likewise.
5324         (ieee_128bit_nabs<mode>2): Likewise.
5325         (ieee_128bit_nabs<mode>2_internal): Likewise.
5326         (extendiftf2): Add explicit conversions between 128-bit floating
5327         point types. Drop the old conversions that had become unwieldy.
5328         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
5329         (extendifkf2): Likewise.
5330         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
5331         (extendtfkf2): Likewise.
5332         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
5333         (trunciftf2): Likewise.
5334         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
5335         (truncifkf2): Likewise.
5336         (float<SDI:mode><IFKF:mode>2): Likewise.
5337         (trunckftf2): Likewise.
5338         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
5339         (trunctfif2): Likewise.
5340         (FP iterator): Allow TFmode to be IEEE 128-bit floating point.
5341         (extenddftf2): Rework 128-bit floating point conversions to
5342         properly handle -mabi=ieeelongdouble. Merge IFmode, TFmode, and
5343         KFmode expanders into one function.
5344         (extenddf<mode>2): Likewise.
5345         (extenddftf2_fprs): Likewise.
5346         (extenddf<mode>2_fprs): Likewise.
5347         (extenddftf2_vsx): Likewise.
5348         (extenddf<mode>2_vsx): Likewise.
5349         (extendsftf2): Likewise.
5350         (extendsf<mode>2): Likewise.
5351         (trunctfdf2): Likewise.
5352         (trunc<mode>df2): Likewise.
5353         (trunctfdf2_internal1): Likewise.
5354         (trunc<mode>df2_internal1): Likewise.
5355         (trunctfdf2_internal2): Likewise.
5356         (trunc<mode>df2_internal2): Likewise.
5357         (trunctfsf2): Likewise.
5358         (trunc<mode>sf2): Likewise.
5359         (trunctfsf2_fprs): Likewise.
5360         (trunc<mode>sf2_fprs): Likewise.
5361         (floatsit2f): Likewise.
5362         (floatsi<mode>2): Likewise.
5363         (fix_trunc_helper): Likewise.
5364         (fix_trunc_helper<mode>): Likewise.
5365         (fix_trunctfsi2): Likewise.
5366         (fix_trunc<mode>si2): Likewise.
5367         (fix_trunctfsi2_fprs): Likewise.
5368         (fix_trunc<mode>si2_fprs): Likewise.
5369         (fix_trunctfsi2_internal): Likewise.
5370         (fix_trunc<mode>si2_internal): Likewise.
5371         (fix_trunctfdi2): Likewise.
5372         (fix_trunc<mode>di2): Likewise.
5373         (fixuns_trunctf<mode>2): Likewise.
5374         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
5375         (floatditf2): Likewise.
5376         (floatdi<mode>2): Likewise.
5377         (floatuns<mode>tf2): Likewise.
5378         (floatuns<SDI:mode><IEEE128:mode>): Likewise.
5379         (cmptf_internal1): Use a mode iterator to add support for both
5380         types (IFmode, TFmode) that support IBM extended double.
5381         (cmp<mode>_internal1): Likewise.
5382         (cmptf_internal2): Likewise.
5383         (cmp<mode>_internal2): Likewise.
5384
5385         * doc/extend.texi (Floating Types): Document __ibm128 and
5386         __float128 on PowerPC.
5387
5388         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
5389         -mfloat128 and -mno-float128.
5390
5391 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
5392
5393         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Add IEEE 128-bit
5394         floating point modes that can go in vector registers.
5395         (MODES_TIEABLE_P): Move tests for vector modes before tests for
5396         scalar floating point, so that IEEE 128-bit floating point that
5397         can go in vector registers bind with vectors and not FP.
5398         (struct rs6000_args): Add libcall field.
5399
5400         * config/rs6000/rs6000.opt (-mfloat128-*): Delete -mfloat128-none
5401         and -mfloat128-software switches.  Replace them with a binary
5402         -mfloat128 switch.
5403         (-mfloat128): Likewise.
5404
5405         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
5406         128-bit floating point types in GPRs, even if the appropriate
5407         option enabling the type was not used.
5408         (rs6000_debug_reg_global): Remove -mfloat128-{software,none}
5409         debugging.
5410         (rs6000_setup_reg_addr_masks): Do not allow pre-increment and
5411         pre-decrement on IEEE 128-bit floating point values.
5412         (rs6000_init_hard_regno_mode_ok): Change test for whether TFmode
5413         is IEEE 128-bit floating point.
5414         (rs6000_init_hard_regno_mode_ok): Add reload handlers for IEEE
5415         128-bit floating point types that can go in vector registers.
5416         (rs6000_option_override_internal): Change -mfloat128-none and
5417         -mfloat128-software to -mfloat128, and move code to be near other
5418         VSX option handling.
5419         (rs6000_option_override_internal): Disable -mfloat128 if we don't
5420         have the Altivec ABI.
5421         (rs6000_init_builtins): Don't make TFmode use either IFmode or
5422         KFmode floating point nodes. Instead, have three separate nodes.
5423         (rs6000_scalar_mode_supported_p): Add support for IFmode to allow
5424         eventually moving the long double default to IEEE 128-bit floating
5425         point.
5426         (rs6000_opt_masks): Add -mfloat128.
5427         (struct rs6000_opt_var): Fix typo in comment.
5428         (init_cumulative_args): Initialize libcall field in
5429         CUMULATIVE_ARGS.
5430         (rs6000_function_arg): Treat library functions as if they had
5431         prototypes to prevent IEEE 128-bit support functions from passing
5432         arguments in both GPRs and vector registers.
5433         (rs6000_arg_partial_bytes): Likewise.
5434
5435         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add -mfloat128 as
5436         an option that can be turned on via -mcpu=<xxx>.
5437
5438         * config/rs6000/rs6000-opts.h (enum float128_type_t): Delete, no
5439         longer used.
5440
5441         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
5442         __FLOAT128__ if -mfloat128. Define __LONG_DOUBLE_IEEE128__ if long
5443         double is IEEE 128-bit. Define __LONG_DOUBLE_IBM128__ if long
5444         double is IBM extended double.
5445
5446         * config/rs6000/predicates.md (reg_or_indexed_operand): Allow
5447         SUBREGs.
5448
5449 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
5450
5451         * genautomata.c: Use CHECKING_P instead of ENABLE_CHECKING.
5452         * genconditions.c: Define CHECKING_P in the generated code.
5453         * genextract.c: Use flag_checking in insn_extract.
5454         * gengtype.c (main): Remove conditional compilation.
5455         * gengtype.h: Likewise.
5456
5457 2015-10-29  Jeff Law  <law@redhat.com>
5458
5459         PR tree-optimization/67892
5460         * tree-ssa-threadedge.c (simplify_controL_stmt_condition): Fix typo
5461         in comment.
5462         (thread_through_normal_block): If we have seen a backedge, then
5463         do nothing.  No longer call find_jump_threads_backwards here.
5464         (thread_across_edge): Use find_jump_threads_backwards to find
5465         jump threads if the old style threader was not successful.
5466         * tree-ssa-threadbackward.c (get_gimple_control_stmt): Use
5467         gsi_last_nondebug_bb.  Return NULL if the block does not end
5468         with a control statement.
5469         (find_jump_threads_backwards): Setup code moved here from
5470         tree-ssa-threadedge.c::thread_through_normal_block.  Accept
5471         single edge argument instead of name & block.
5472         * tree-ssa-threadbackward.h (find_jump_threads_backwards): Update
5473         prototype.
5474
5475 2015-10-29  Tom de Vries  <tom@codesourcery.com>
5476
5477         * fold-const.c (fold_unary_loc): Remove folding inhibition for restrict
5478         types.
5479
5480 2015-10-29  Nathan Sidwell  <nathan@codesourcery.com>
5481
5482         * omp-low.c (lower_omp_target): Remove unreachable code & merge
5483         ifs.
5484
5485 2015-10-29  Marc Glisse  <marc.glisse@inria.fr>
5486
5487         * match.pd (X-(X/Y)*Y): Properly handle conversions and commutativity.
5488
5489 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
5490
5491         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
5492         guard_bb0 and use guard_bb throughout.
5493
5494 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
5495
5496         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
5497         unnecessary label.
5498
5499 2015-10-29  Richard Biener  <rguenther@suse.de>
5500
5501         PR middle-end/68142
5502         * fold-const.c (extract_muldiv_1): Avoid introducing undefined
5503         overflow.
5504
5505 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
5506
5507         * alias.c: Reorder #include statements and remove duplicates.
5508         * asan.c: Likewise.
5509         * attribs.c: Likewise.
5510         * auto-inc-dec.c: Likewise.
5511         * auto-profile.c: Likewise.
5512         * bb-reorder.c: Likewise.
5513         * bt-load.c: Likewise.
5514         * builtins.c: Likewise.
5515         * caller-save.c: Likewise.
5516         * calls.c: Likewise.
5517         * ccmp.c: Likewise.
5518         * cfg.c: Likewise.
5519         * cfganal.c: Likewise.
5520         * cfgbuild.c: Likewise.
5521         * cfgcleanup.c: Likewise.
5522         * cfgexpand.c: Likewise.
5523         * cfghooks.c: Likewise.
5524         * cfgloop.c: Likewise.
5525         * cfgloopanal.c: Likewise.
5526         * cfgloopmanip.c: Likewise.
5527         * cfgrtl.c: Likewise.
5528         * cgraph.c: Likewise.
5529         * cgraphbuild.c: Likewise.
5530         * cgraphclones.c: Likewise.
5531         * cgraphunit.c: Likewise.
5532         * cilk-common.c: Likewise.
5533         * combine-stack-adj.c: Likewise.
5534         * combine.c: Likewise.
5535         * compare-elim.c: Likewise.
5536         * convert.c: Likewise.
5537         * coverage.c: Likewise.
5538         * cppbuiltin.c: Likewise.
5539         * cprop.c: Likewise.
5540         * cse.c: Likewise.
5541         * cselib.c: Likewise.
5542         * data-streamer-in.c: Likewise.
5543         * data-streamer-out.c: Likewise.
5544         * data-streamer.c: Likewise.
5545         * dbxout.c: Likewise.
5546         * dce.c: Likewise.
5547         * ddg.c: Likewise.
5548         * debug.c: Likewise.
5549         * df-core.c: Likewise.
5550         * df-problems.c: Likewise.
5551         * df-scan.c: Likewise.
5552         * dfp.c: Likewise.
5553         * dojump.c: Likewise.
5554         * dominance.c: Likewise.
5555         * double-int.c: Likewise.
5556         * dse.c: Likewise.
5557         * dumpfile.c: Likewise.
5558         * dwarf2asm.c: Likewise.
5559         * dwarf2cfi.c: Likewise.
5560         * dwarf2out.c: Likewise.
5561         * emit-rtl.c: Likewise.
5562         * except.c: Likewise.
5563         * explow.c: Likewise.
5564         * expmed.c: Likewise.
5565         * expr.c: Likewise.
5566         * final.c: Likewise.
5567         * fixed-value.c: Likewise.
5568         * fold-const.c: Likewise.
5569         * function.c: Likewise.
5570         * fwprop.c: Likewise.
5571         * gcse.c: Likewise.
5572         * generic-match-head.c: Likewise.
5573         * ggc-common.c: Likewise.
5574         * gimple-builder.c: Likewise.
5575         * gimple-expr.c: Likewise.
5576         * gimple-fold.c: Likewise.
5577         * gimple-iterator.c: Likewise.
5578         * gimple-low.c: Likewise.
5579         * gimple-match-head.c: Likewise.
5580         * gimple-pretty-print.c: Likewise.
5581         * gimple-ssa-isolate-paths.c: Likewise.
5582         * gimple-ssa-strength-reduction.c: Likewise.
5583         * gimple-streamer-in.c: Likewise.
5584         * gimple-streamer-out.c: Likewise.
5585         * gimple-walk.c: Likewise.
5586         * gimple.c: Likewise.
5587         * gimplify-me.c: Likewise.
5588         * gimplify.c: Likewise.
5589         * godump.c: Likewise.
5590         * graph.c: Likewise.
5591         * graphite-poly.c: Likewise.
5592         * haifa-sched.c: Likewise.
5593         * hw-doloop.c: Likewise.
5594         * ifcvt.c: Likewise.
5595         * incpath.c: Likewise.
5596         * init-regs.c: Likewise.
5597         * internal-fn.c: Likewise.
5598         * ipa-chkp.c: Likewise.
5599         * ipa-comdats.c: Likewise.
5600         * ipa-cp.c: Likewise.
5601         * ipa-devirt.c: Likewise.
5602         * ipa-icf-gimple.c: Likewise.
5603         * ipa-icf.c: Likewise.
5604         * ipa-inline-analysis.c: Likewise.
5605         * ipa-inline-transform.c: Likewise.
5606         * ipa-inline.c: Likewise.
5607         * ipa-polymorphic-call.c: Likewise.
5608         * ipa-profile.c: Likewise.
5609         * ipa-prop.c: Likewise.
5610         * ipa-pure-const.c: Likewise.
5611         * ipa-ref.c: Likewise.
5612         * ipa-reference.c: Likewise.
5613         * ipa-split.c: Likewise.
5614         * ipa-utils.c: Likewise.
5615         * ipa-visibility.c: Likewise.
5616         * ipa.c: Likewise.
5617         * ira-build.c: Likewise.
5618         * ira-color.c: Likewise.
5619         * ira-conflicts.c: Likewise.
5620         * ira-costs.c: Likewise.
5621         * ira-emit.c: Likewise.
5622         * ira-lives.c: Likewise.
5623         * ira.c: Likewise.
5624         * jump.c: Likewise.
5625         * langhooks.c: Likewise.
5626         * lcm.c: Likewise.
5627         * lists.c: Likewise.
5628         * loop-doloop.c: Likewise.
5629         * loop-init.c: Likewise.
5630         * loop-invariant.c: Likewise.
5631         * loop-iv.c: Likewise.
5632         * loop-unroll.c: Likewise.
5633         * lower-subreg.c: Likewise.
5634         * lra-assigns.c: Likewise.
5635         * lra-coalesce.c: Likewise.
5636         * lra-constraints.c: Likewise.
5637         * lra-eliminations.c: Likewise.
5638         * lra-lives.c: Likewise.
5639         * lra-remat.c: Likewise.
5640         * lra-spills.c: Likewise.
5641         * lra.c: Likewise.
5642         * lto-cgraph.c: Likewise.
5643         * lto-compress.c: Likewise.
5644         * lto-opts.c: Likewise.
5645         * lto-section-in.c: Likewise.
5646         * lto-section-out.c: Likewise.
5647         * lto-streamer-in.c: Likewise.
5648         * lto-streamer-out.c: Likewise.
5649         * lto-streamer.c: Likewise.
5650         * mode-switching.c: Likewise.
5651         * modulo-sched.c: Likewise.
5652         * omp-low.c: Likewise.
5653         * optabs.c: Likewise.
5654         * opts-global.c: Likewise.
5655         * passes.c: Likewise.
5656         * plugin.c: Likewise.
5657         * postreload-gcse.c: Likewise.
5658         * postreload.c: Likewise.
5659         * predict.c: Likewise.
5660         * print-tree.c: Likewise.
5661         * profile.c: Likewise.
5662         * real.c: Likewise.
5663         * realmpfr.c: Likewise.
5664         * recog.c: Likewise.
5665         * ree.c: Likewise.
5666         * reg-stack.c: Likewise.
5667         * regcprop.c: Likewise.
5668         * reginfo.c: Likewise.
5669         * regrename.c: Likewise.
5670         * regstat.c: Likewise.
5671         * reload.c: Likewise.
5672         * reload1.c: Likewise.
5673         * reorg.c: Likewise.
5674         * resource.c: Likewise.
5675         * rtl-chkp.c: Likewise.
5676         * rtl-error.c: Likewise.
5677         * rtlanal.c: Likewise.
5678         * rtlhooks.c: Likewise.
5679         * sanopt.c: Likewise.
5680         * sched-deps.c: Likewise.
5681         * sched-ebb.c: Likewise.
5682         * sched-rgn.c: Likewise.
5683         * sese.c: Likewise.
5684         * shrink-wrap.c: Likewise.
5685         * simplify-rtx.c: Likewise.
5686         * stack-ptr-mod.c: Likewise.
5687         * statistics.c: Likewise.
5688         * stmt.c: Likewise.
5689         * stor-layout.c: Likewise.
5690         * store-motion.c: Likewise.
5691         * stringpool.c: Likewise.
5692         * symtab.c: Likewise.
5693         * target-globals.c: Likewise.
5694         * targhooks.c: Likewise.
5695         * toplev.c: Likewise.
5696         * tracer.c: Likewise.
5697         * trans-mem.c: Likewise.
5698         * tree-affine.c: Likewise.
5699         * tree-call-cdce.c: Likewise.
5700         * tree-cfg.c: Likewise.
5701         * tree-cfgcleanup.c: Likewise.
5702         * tree-chkp-opt.c: Likewise.
5703         * tree-chkp.c: Likewise.
5704         * tree-chrec.c: Likewise.
5705         * tree-complex.c: Likewise.
5706         * tree-data-ref.c: Likewise.
5707         * tree-dfa.c: Likewise.
5708         * tree-diagnostic.c: Likewise.
5709         * tree-dump.c: Likewise.
5710         * tree-eh.c: Likewise.
5711         * tree-emutls.c: Likewise.
5712         * tree-if-conv.c: Likewise.
5713         * tree-inline.c: Likewise.
5714         * tree-into-ssa.c: Likewise.
5715         * tree-iterator.c: Likewise.
5716         * tree-loop-distribution.c: Likewise.
5717         * tree-nested.c: Likewise.
5718         * tree-nrv.c: Likewise.
5719         * tree-object-size.c: Likewise.
5720         * tree-outof-ssa.c: Likewise.
5721         * tree-parloops.c: Likewise.
5722         * tree-phinodes.c: Likewise.
5723         * tree-predcom.c: Likewise.
5724         * tree-pretty-print.c: Likewise.
5725         * tree-profile.c: Likewise.
5726         * tree-scalar-evolution.c: Likewise.
5727         * tree-sra.c: Likewise.
5728         * tree-ssa-address.c: Likewise.
5729         * tree-ssa-alias.c: Likewise.
5730         * tree-ssa-ccp.c: Likewise.
5731         * tree-ssa-coalesce.c: Likewise.
5732         * tree-ssa-copy.c: Likewise.
5733         * tree-ssa-dce.c: Likewise.
5734         * tree-ssa-dom.c: Likewise.
5735         * tree-ssa-dse.c: Likewise.
5736         * tree-ssa-forwprop.c: Likewise.
5737         * tree-ssa-ifcombine.c: Likewise.
5738         * tree-ssa-live.c: Likewise.
5739         * tree-ssa-loop-ch.c: Likewise.
5740         * tree-ssa-loop-im.c: Likewise.
5741         * tree-ssa-loop-ivcanon.c: Likewise.
5742         * tree-ssa-loop-ivopts.c: Likewise.
5743         * tree-ssa-loop-manip.c: Likewise.
5744         * tree-ssa-loop-niter.c: Likewise.
5745         * tree-ssa-loop-prefetch.c: Likewise.
5746         * tree-ssa-loop-unswitch.c: Likewise.
5747         * tree-ssa-loop.c: Likewise.
5748         * tree-ssa-math-opts.c: Likewise.
5749         * tree-ssa-operands.c: Likewise.
5750         * tree-ssa-phiopt.c: Likewise.
5751         * tree-ssa-phiprop.c: Likewise.
5752         * tree-ssa-pre.c: Likewise.
5753         * tree-ssa-propagate.c: Likewise.
5754         * tree-ssa-reassoc.c: Likewise.
5755         * tree-ssa-sccvn.c: Likewise.
5756         * tree-ssa-scopedtables.c: Likewise.
5757         * tree-ssa-sink.c: Likewise.
5758         * tree-ssa-strlen.c: Likewise.
5759         * tree-ssa-structalias.c: Likewise.
5760         * tree-ssa-tail-merge.c: Likewise.
5761         * tree-ssa-ter.c: Likewise.
5762         * tree-ssa-threadedge.c: Likewise.
5763         * tree-ssa-threadupdate.c: Likewise.
5764         * tree-ssa-uncprop.c: Likewise.
5765         * tree-ssa-uninit.c: Likewise.
5766         * tree-ssa.c: Likewise.
5767         * tree-ssanames.c: Likewise.
5768         * tree-stdarg.c: Likewise.
5769         * tree-streamer-in.c: Likewise.
5770         * tree-streamer-out.c: Likewise.
5771         * tree-streamer.c: Likewise.
5772         * tree-switch-conversion.c: Likewise.
5773         * tree-tailcall.c: Likewise.
5774         * tree-vect-data-refs.c: Likewise.
5775         * tree-vect-generic.c: Likewise.
5776         * tree-vect-loop-manip.c: Likewise.
5777         * tree-vect-loop.c: Likewise.
5778         * tree-vect-patterns.c: Likewise.
5779         * tree-vect-slp.c: Likewise.
5780         * tree-vect-stmts.c: Likewise.
5781         * tree-vectorizer.c: Likewise.
5782         * tree-vrp.c: Likewise.
5783         * tree.c: Likewise.
5784         * tsan.c: Likewise.
5785         * ubsan.c: Likewise.
5786         * value-prof.c: Likewise.
5787         * var-tracking.c: Likewise.
5788         * varasm.c: Likewise.
5789         * varpool.c: Likewise.
5790         * vtable-verify.c: Likewise.
5791         * web.c: Likewise.
5792         * wide-int-print.cc: Likewise.
5793         * wide-int.cc: Likewise.
5794         * xcoffout.c: Likewise.
5795
5796 2015-10-29  H.J. Lu  <hongjiu.lu@intel.com>
5797
5798         * Makefile.in (NO_PIE_CFLAGS): New.
5799         (NO_PIE_FLAG): Likewise.
5800         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
5801         (NO_PIE_FLAG_FOR_BUILD): Likewise.
5802         (BUILD_NO_PIE_CFLAGS): Likewise.
5803         (BUILD_NO_PIE_FLAG): Likewise.
5804         (COMPILER): Replace @NO_PIE_CFLAGS@ with $(NO_PIE_CFLAGS).
5805         (LINKER): Replace @NO_PIE_FLAG@ with $(NO_PIE_FLAG).
5806         (BUILD_CFLAGS): Replace @NO_PIE_CFLAGS@ with
5807         $(BUILD_NO_PIE_CFLAGS).
5808         (BUILD_CXXFLAGS): Likewise.
5809         (BUILD_LDFLAGS ): Replace @NO_PIE_FLAG@ with
5810         $(BUILD_NO_PIE_FLAG).
5811         * configure.ac (BUILD_NO_PIE_CFLAGS): New.  AC_SUBST.
5812         (BUILD_NO_PIE_FLAG): Likewise.
5813         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
5814         (NO_PIE_FLAG_FOR_BUILD): Likewise.
5815         * configure: Regenerated.
5816
5817 2015-10-29  Richard Biener  <rguenther@suse.de>
5818
5819         PR middle-end/56956
5820         * fold-const.c (fold_cond_expr_with_comparison): Do not fold
5821         unsigned conditonal negation to ABS_EXPR.
5822
5823 2015-10-29  Richard Biener  <rguenther@suse.de>
5824
5825         * gimple-match-head.c (gimple_simplify): Remove premature checking
5826         of builtin_decl_implicit of function calls we simplify.
5827
5828 2015-10-29  Bin Cheng  <bin.cheng@arm.com>
5829
5830         * tree-ssa-loop-ivopts.c (split_address_cost): Check depends_on.
5831         (get_computation_cost_at): Ditto.
5832         (determine_use_iv_cost_address): Pass NULL for arguments depends_on
5833         and inv_expr_id.
5834
5835 2015-10-28  Tom de Vries  <tom@codesourcery.com>
5836
5837         * tree-ssa-structalias.c (intra_create_variable_infos): Remove
5838         superfluous code.
5839
5840 2015-10-28  Jason Merrill  <jason@redhat.com>
5841
5842         * Makefile.in (TAGS): Include libcpp and libiberty.
5843
5844 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
5845
5846         * omp-low.c (MASK_GANG, MASK_WORKER, MASK_VECTOR): Delete.
5847         (extract_omp_for_data): Remove OpenACC special handling of
5848         chunking.
5849
5850         * config/nvptx/nvptx.c (nvptx_print_operand): Remove 'd' case.
5851         (struct parallel): Update comment.
5852         (nvptx_reorg): Likewise.
5853         (nvptx_neuter): Cleanup whitespace.
5854
5855 2015-10-28  Richard Henderson  <rth@redhat.com>
5856
5857         * tree-eh.c (mark_reachable_handlers): Fix typo in assert.
5858
5859 2015-10-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
5860
5861         PR target/67839
5862         * config/avr/predicates.md (low_io_address_operand): Don't
5863         consider MODE when computing upper bound.
5864         (io_address_operand): Likewise.
5865
5866 2015-10-28  Jan Hubicka  <hubicka@ucw.cz>
5867
5868         * fold-const.c (operand_equal_p): Do not verify that types are
5869         compatible for MEM_REFs.
5870
5871 2015-10-28  Richard Biener  <rguenther@suse.de>
5872
5873         * gimple-match-head.c (gimple_simplify): Allow VECTOR_CSTs
5874         in simplifying VEC_COND_EXPR conditions.
5875
5876 2015-10-28  Tom de Vries  <tom@codesourcery.com>
5877
5878         * tree-ssa-structalias.c (intra_create_variable_infos): Don't iterate
5879         into vi_next of a full_var.
5880
5881 2015-10-28  Tom de Vries  <tom@codesourcery.com>
5882
5883         * tree-ssa-structalias.c (new_var_info, make_heapvar)
5884         (make_constraint_from_restrict, make_constraint_from_global_restrict)
5885         (create_function_info_for, create_variable_info_for_1)
5886         (create_variable_info_for): Add and handle add_id parameter.
5887         (get_call_vi, new_scalar_tmp_constraint_exp, handle_rhs_call)
5888         (init_base_vars): Add extra argument to calls to new_var_info.
5889         (get_vi_for_tree): Add extra argument to call to
5890         create_variable_info_for.
5891         (process_constraint, do_deref, process_all_all_constraints): Add extra
5892         argument to calls to new_scalar_tmp_constraint_exp.
5893         (handle_lhs_call, find_func_aliases_for_builtin_call): Add extra
5894         argument to calls to make_heapvar.
5895         (make_restrict_var_constraints): Add extra argument to call to
5896         make_constraint_from_global_restrict.
5897         (intra_create_variable_infos): Add extra argument to call to
5898         create_variable_info_for_1.
5899         (ipa_pta_execute): Add extra argument to call to
5900         create_function_info_for.
5901
5902 2015-10-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5903
5904         * config/aarch64/aarch64.md (call, call_value, sibcall): Handle noplt.
5905         (sibcall_value): Likewise.
5906
5907 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
5908
5909         * config/nvptx/nvptx.h (struct machine_function): Add
5910         axis_predicate.
5911         * config/nvptx/nvptx-protos.h (nvptx_expand_oacc_fork,
5912         nvptx_expand_oacc_join): Declare.
5913         * config/nvptx/nvptx.md (UNSPEC_NTID, UNSPEC_TID): Delete.
5914         (UNSPEC_DIM_SIZE, UNSPEC_SHARED_DATA, UNSPEC_BIT_CONV,
5915         UNSPEC_SHUFFLE, UNSPEC_BR_UNIFIED): New.
5916         (UNSPECV_BARSYNC, UNSPECV_DIM_POS, UNSPECV_FORK, UNSPECV_FORKED,
5917         UNSPECV_JOINING, UNSPECV_JOIN): New.
5918         (BITS, BITD): New mode iterators.
5919         (br_true_uni, br_false_uni): New.
5920         (*oacc_ntid_insn, oacc_ntid, *oacc_tid_insn, oacc_tid): Delete.
5921         (oacc_dim_size, oacc_dim_pos): New.
5922         (nvptx_fork, nvptx_forked, nvptx_joining, nvptx_join): New.
5923         (oacc_fork, oacc_join): New.
5924         (nvptx_shuffle<mode>, unpack<mode>si2, packsi<mode>2): New.
5925         (worker_load<mode>, worker_store<mode>): New.
5926         (nvptx_barsync): New.
5927         * config/nvptx/nvptx.c: Include gimple.h & dumpfile.h.
5928         (SHUFFLE_UP, SHUFFLE_DOWN, SHUFFLE_BFLY, SHUFFLE_IDX): Define.
5929         (worker_bcast_hwm, worker_bcast_align, worker_bcast_name,
5930         worker_bcast_sym): New.
5931         (nvptx_option_override): Initialize worker broadcast buffer.
5932         (nvptx_emit_forking, nvptx_emit_joining): New.
5933         (nvptx_init_axis_predicate): New.
5934         (nvptx_declare_function_name): Init axis predicates.
5935         (nvptx_expand_call): Add fork/join markers around routine call.
5936         (nvptx_expand_oacc_fork, nvptx_expand_oacc_join): New.
5937         (nvptx_gen_unpack, nvptx_gen_pack, nvptx_gen_shuffle): New.
5938         (nvptx_gen_vcast): New.
5939         (struct wcast_data_t): New.
5940         (enum propagate_mask): New.
5941         (nvptx_gen_wcast): New.
5942         (nvptx_print_operand): Add 'S' case.
5943         (struct parallel): New.
5944         (parallel::parallel, parallel::~parallel): New.
5945         (bb_insn_map_t, insn_bb_t, insn_bb_vec_t): New typedefs.
5946         (nvptx_split_blocks, nvptx_discover_pre, nvptx_dump_pars,
5947         nvptx_find_par, nvptx_discover_pars): New.
5948         (nvptx_propagate): New.
5949         (vprop_gen, nvptx_vpropagate): New.
5950         (wprop_gen, nvptx_wpropagate): New.
5951         (nvptx_wsync): New.
5952         (nvptx_single, nvptx_skip_par): New.
5953         (nvptx_process_pars, nvptx_neuter_pars): New.
5954         (ntptx_reorg): Split blocks, generate parallel structure, apply
5955         neutering.
5956         (nvptx_cannot_copy_insn_p): New.
5957         (nvptx_file_end): Emit worker broadcast decl.
5958         (nvptx_goacc_fork_join): New.
5959         (TARGET_CANNOT_COPY_INSN_P): Override.
5960         (TARGET_GOACC_FORK_JOIN): Override.
5961
5962 2015-10-28  Richard Biener  <rguenther@suse.de>
5963
5964         * fold-const.c (negate_expr_p): Adjust the division case to
5965         properly avoid introducing undefined overflow.
5966         (fold_negate_expr): Likewise.
5967
5968 2015-10-28  Richard Biener  <rguenther@suse.de>
5969
5970         PR tree-optimization/65962
5971         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5972         Avoid creating loop carried dependences also for outer loops
5973         of the loop a use to replace is in.
5974
5975 2015-10-28  Richard Biener  <rguenther@suse.de>
5976
5977         * common.opt (fchecking): New flag controlling flag_checking.
5978         * passes.c (verify_curr_properties): Drop DEBUG_FUNCTION.
5979         * timevar.c (timer::print): Adjust output.
5980         * doc/invoke.texi (fchecking): Document.
5981
5982 2015-10-28  Richard Biener  <rguenther@suse.de>
5983
5984         PR middle-end/68067
5985         * fold-const.c (negate_expr_p): We cannot negate plus or minus
5986         if overflow is not wrapping.  Likewise multiplication unless
5987         one operand is constant and not power of two.
5988         (fold_negate_expr): Adjust accordingly.
5989
5990 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
5991
5992         * omp-low.c (struct omp_context): Remove gwv_below, gwv_this
5993         fields.
5994         (is_oacc_parallel, is_oacc_kernels): New.
5995         (enclosing_target_ctx): May return NULL.
5996         (ctx_in_oacc_kernels_region): New.
5997         (check_oacc_kernel_gwv): New.
5998         (oacc_loop_or_target_p): Delete.
5999         (scan_omp_for): Don't calculate gwv mask.  Check parallel clause
6000         operands.  Strip reductions fro kernels.
6001         (scan_omp_target): Don't calculate gwv mask.
6002         (lower_oacc_head_mark, lower_oacc_loop_marker,
6003         lower_oacc_head_tail): New.
6004         (struct oacc_collapse): New.
6005         (expand_oacc_collapse_init, expand_oacc_collapse_vars): New.
6006         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
6007         Remove OpenACC handling.
6008         (expand_oacc_for): New.
6009         (expand_omp_for): Call expand_oacc_for.
6010         (lower_omp_for): Call lower_oacc_head_tail.
6011
6012 2015-10-27  Mikhail Maltsev  <maltsevm@gmail.com>
6013
6014         * attribs.c (check_attribute_tables): New function, broken out from...
6015         (init_attributes): Use it.
6016         * cfgcleanup.c (try_optimize_cfg): Use flag_checking, CHECKING_P
6017         gcc_checking_assert and checking_* functions to eliminate
6018         ENABLE_CHECKING conditionals.
6019         * cfgexpand.c (expand_goto, expand_debug_expr): Likewise.
6020         (pass_expand::execute): Likewise.
6021         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
6022         * cgraphunit.c (mark_functions_to_output): Likewise.
6023         (cgraph_node::expand_thunk): Likewise.
6024         (symbol_table::compile): Likewise.
6025         * ddg.c (add_cross_iteration_register_deps): Likewise.
6026         (create_ddg_all_sccs): Likewise.
6027         * df-core.c (df_finish_pass, df_analyze): Likewise.
6028         * diagnostic-core.h: Likewise.
6029         * diagnostic.c (diagnostic_report_diagnostic): Likewise.
6030         * dominance.c (calculate_dominance_info): Likewise.
6031         * dwarf2out.c (add_AT_die_ref): Likewise.
6032         (const_ok_for_output_1, mem_loc_descriptor): Likewise.
6033         (loc_list_from_tree, gen_lexical_block_die): Likewise.
6034         gen_type_die_with_usage, gen_type_die): Likewise.
6035         (dwarf2out_decl): Likewise.
6036         * emit-rtl.c (verify_rtx_sharing, reorder_insns_nobb): Likewise.
6037         * except.c (duplicate_eh_regions): Likewise.
6038         * fwprop.c (register_active_defs, update_df_init): Likewise.
6039         (fwprop_init, fwprop_done): Likewise.
6040         (update_uses): Likewise.
6041         * ggc-page.c (ggc_grow): Likewise.
6042         * gimplify.c (gimplify_body): Likewise.
6043         (gimplify_hasher::equal): Likewise.
6044         * graphite-isl-ast-to-gimple.c (graphite_verify): Likewise.
6045         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form):
6046         Likewise.
6047         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Likewise.
6048         (rewrite_cross_bb_scalar_deps_out_of_ssa): Likwise.
6049         * hash-table.h (::find_empty_slot_for_expand): Likewise.
6050         * ifcvt.c (if_convert): Likewise.
6051         * ipa-cp.c (ipcp_propagate_stage): Likewise.
6052         * ipa-devirt.c (type_in_anonymous_namespace_p): Likewise.
6053         (odr_type_p, odr_types_equivalent_p): Likewise.
6054         (add_type_duplicate, get_odr_type): Likewise.
6055         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
6056         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
6057         (sem_item_optimizer::verify_classes): Likewise.
6058         (sem_item_optimizer::traverse_congruence_split): Likewise.
6059         (sem_item_optimizer::checking_verify_classes): New.
6060         * ipa-icf.h (sem_item_optimizer::checking_verify_classes): Add new
6061         method.
6062         * cfgrtl.c (commit_edge_insertions): Likewise.
6063         (fixup_reorder_chain, cfg_layout_finalize): Likewise.
6064         (rtl_flow_call_edges_add): Likewise.
6065         * cgraph.c (symbol_table::create_edge): Likewise.
6066         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
6067         * cgraph.h (symtab_node): Likewise.
6068         (symtab_node::checking_verify_symtab_nodes): Define.
6069         (cgraph_node::checking_verify_cgraph_nodes): Define.
6070         * cfghooks.h (checking_verify_flow_info): Define.
6071         * cfgloop.h (checking_verify_loop_structure): Define.
6072         * dominance.h (checking_verify_dominators): Define.
6073         * et-forest.c: Fix comment.
6074         * ipa-inline-analysis.c (compute_inline_parameters): Use flag_checking,
6075         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
6076         ENABLE_CHECKING conditionals.
6077         * ipa-inline-transform.c (save_inline_function_body): Likewise.
6078         * ipa-inline.c (inline_small_functions): Likewise.
6079         (early_inliner): Likewise.
6080         * ipa-inline.h (estimate_edge_growth): Likewise.
6081         * ipa-visibility.c (function_and_variable_visibility): Likewise.
6082         * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
6083         (ipa_single_use): Likewise.
6084         * ira-int.h: Likewise.
6085         * ira.c (ira): Likewise.
6086         * loop-doloop.c (doloop_optimize_loops): Likewise.
6087         * loop-init.c (loop_optimizer_init, fix_loop_structure): Likewise.
6088         * loop-invariant.c (move_loop_invariants): Likewise.
6089         * lra-assigns.c (lra_assign): Likewise.
6090         * lra-constraints.c (lra_constraints): Likewise.
6091         * lra-eliminations.c (lra_eliminate): Likewise.
6092         * lra-int.h (struct lra_reg): Likewise.
6093         * lra-lives.c (check_pseudos_live_through_calls): Likewise.
6094         (lra_create_live_ranges_1): Likewise.
6095         * lra-remat.c (create_remat_bb_data): Likewise.
6096         * lra.c (lra_update_insn_recog_data, restore_scratches): Likewise.
6097         (lra): Likewise.
6098         (check_rtl): Always define. Remove incorrect guard around
6099         extract_constrain_insn call.
6100         * lto-cgraph.c (input_cgraph_1: Use flag_checking,
6101         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
6102         ENABLE_CHECKING conditionals.
6103         * lto-streamer-out.c (DFS::DFS): Likewise.
6104         (lto_output): Likewise.
6105         * lto-streamer.c (lto_streamer_init): Likewise.
6106         * omp-low.c (scan_omp_target, expand_omp_taskreg): Likewise.
6107         expand_omp_target, execute_expand_omp): Likewise.
6108         (lower_omp_target): Likewise.
6109         * passes.c (execute_function_todo): Likewise.
6110         (execute_todo, execute_one_pass): Likewise.
6111         (verify_curr_properties): Always define.
6112         * predict.c (tree_estimate_probability: Use flag_checking,
6113         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
6114         ENABLE_CHECKING conditionals.
6115         (propagate_freq): Likewise.
6116         * pretty-print.c (pp_format): Likewise.
6117         * real.c (real_to_decimal_for_mode): Likewise.
6118         * recog.c (split_all_insns): Likewise.
6119         * regcprop.c (kill_value_one_regno): Likewise.
6120         (copy_value): Likewise.
6121         (validate_value_data): Define unconditionally.
6122         * reload.c: Fix comment.
6123         * timevar.c: Include options.h
6124         * tree-ssa.h (checking_verify_ssa): Define.
6125         * tree-ssa-loop-manip.h (checking_verify_loop_closed_ssa): Define.
6126         * sched-deps.c (CHECK): Remove unused macro.
6127         (add_or_update_dep_1, sd_add_dep: Use flag_checking, CHECKING_P
6128         gcc_checking_assert and checking_* functions to eliminate
6129         ENABLE_CHECKING conditionals.
6130         * sel-sched-ir.c (free_regset_pool, tidy_control_flow): Likewise.
6131         * sel-sched.c (struct moveop_static_params): Likewise.
6132         (find_best_reg_for_expr, move_cond_jump): Likewise.
6133         (move_op_orig_expr_not_found): Likewise.
6134         (code_motion_process_successors, move_op): Likewise.
6135         * ssa-iterators.h (first_readonly_imm_use): Likewise.
6136         (next_readonly_imm_use): Likewise.
6137         * store-motion.c (compute_store_table): Likewise.
6138         * symbol-summary.h (function_summary::function_summary): Likewise.
6139         * target.h (cumulative_args_t): Likewise.
6140         (get_cumulative_args, pack_cumulative_args): Likewise.
6141         * timevar.c: (timer::print): Likewise.
6142         * trans-mem.c (ipa_tm_execute): Likewise.
6143         * tree-cfg.c (move_stmt_op): Likewise.
6144         (move_sese_region_to_fn): Likewise.
6145         (gimple_flow_call_edges_add): Likewise.
6146         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
6147         Likewise.
6148         * tree-eh.c (remove_unreachable_handlers): Likewise.
6149         * tree-if-conv.c (pass_if_conversion::execute): Likewise.
6150         * tree-inline.c (expand_call_inline, optimize_inline_calls): Likewise.
6151         * tree-into-ssa.c (update_ssa): Likewise.
6152         * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise.
6153         * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees): Likewise.
6154         * tree-parloops.c (pass_parallelize_loops::execute): Likewise.
6155         * tree-predcom.c (suitable_component_p): Likewise.
6156         * tree-profile.c (gimple_gen_const_delta_profiler): Likewise.
6157         * tree-ssa-alias.c (refs_may_alias_p_1): Likewise.
6158         * tree-ssa-live.c (verify_live_on_entry): Likewise.
6159         * tree-ssa-live.h (register_ssa_partition): Likewise.
6160         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Likewise.
6161         * tree-ssa-loop-manip.c (add_exit_phi): Likewise.
6162         (tree_transform_and_unroll_loop): Likewise.
6163         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
6164         * tree-ssa-operands.c (get_expr_operands): Likewise.
6165         * tree-ssa-propagate.c (replace_exp_1): Likewise.
6166         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
6167         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
6168         * tree-ssa-threadupdate.c (duplicate_thread_path): Likewise.
6169         * tree-ssanames.c (release_ssa_name_fn): Likewise.
6170         * tree-stdarg.c (expand_ifn_va_arg): Likewise.
6171         * tree-vect-loop-manip.c
6172         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
6173         (slpeel_checking_verify_cfg_after_peeling): Likewise.
6174         (vect_do_peeling_for_loop_bound): Likewise.
6175         (vect_do_peeling_for_alignment): Likewise.
6176         * tree-vrp.c (supports_overflow_infinity): Likewise.
6177         (set_value_range): Likewise.
6178         * tree.c (free_lang_data_in_cgraph): Likewise.
6179         * value-prof.c (gimple_remove_histogram_value): Likewise.
6180         (free_hist): Likewise.
6181         * var-tracking.c (canonicalize_values_star): Likewise.
6182         (compute_bb_dataflow, vt_find_locations, vt_emit_notes): Likewise.
6183
6184 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
6185
6186         * internal-fn.def (IFN_GOACC_DIM_SIZE, IFN_GOACC_DIM_POS,
6187         IFN_GOACC_LOOP): New.
6188         * internal-fn.h (enum ifn_unique_kind): Add IFN_UNIQUE_OACC_FORK,
6189         IFN_UNIQUE_OACC_JOIN, IFN_UNIQUE_OACC_HEAD_MARK,
6190         IFN_UNIQUE_OACC_TAIL_MARK.
6191         (enum ifn_goacc_loop_kind): New.
6192         * internal-fn.c (expand_UNIQUE): Add IFN_UNIQUE_OACC_FORK,
6193         IFN_UNIQUE_OACC_JOIN cases.
6194         (expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS): New.
6195         (expand_GOACC_LOOP): New.
6196         * target-insns.def (oacc_dim_pos, oacc_dim_size): New.
6197         * omp-low.c: Include gimple-pretty-print.h.
6198         (struct oacc_loop): New.
6199         (enum oacc_loop_flags): New.
6200         (oacc_thread_numbers): New.
6201         (oacc_xform_loop): New.
6202         (new_oacc_loop_raw, new_oacc_loop_outer, new_oacc_loop,
6203         new_oacc_loop_routine, finish_oacc_loop, free_oacc_loop): New,
6204         (dump_oacc_loop_part, dump_oacc_loop, debug_oacc_loop): New,
6205         (oacc_loop_discover_walk, oacc_loop_sibling_nrevers,
6206         oacc_loop_discovery): New.
6207         (oacc_loop_xform_head_tail, oacc_loop_xform_loop,
6208         oacc_loop_process): New.
6209         (oacc_loop_fixed_partitions, oacc_loop_partition): New.
6210         (execute_oacc_device_lower): Discover & process loops.  Process
6211         internal fns.
6212         * target.def (goacc.fork_join): Change sense of hook, clarify
6213         documentation.
6214         * doc/tm.texi: Regenerated.
6215
6216 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
6217
6218         * target-insns.def (oacc_fork, oacc_join): Define.
6219         * target.def (goacc.validate_dims): Adjust doc to avoid warning.
6220         (goacc.fork_join): New GOACC hook.
6221         * targhooks.h (default_goacc_fork_join): Declare.
6222         * omp-low.c (default_goacc_forkjoin): New.
6223         * doc/tm.texi.in (TARGET_GOACC_FORK_JOIN): Add.
6224         * doc/tm.texi: Regenerate.
6225
6226 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
6227
6228         * omp-low.c (oacc_init_rediction_array): New.
6229         (oacc_initialize_reduction_data): Initialize array.
6230
6231 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
6232
6233         * omp-low.c (pass_oacc_device_lower::execute): Ignore errors.
6234
6235 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
6236
6237         * internal-fn.c (expand_UNIQUE): New.
6238         * internal-fn.h (enum ifn_unique_kind): New.
6239         * internal-fn.def (IFN_UNIQUE): New.
6240         * target-insns.def (unique): Define.
6241         * gimple.h (gimple_call_internal_unique_p): New.
6242         * gimple.c (gimple_call_same_target_p): Check internal fn
6243         uniqueness.
6244         * tracer.c (ignore_bb_p): Check for IFN_UNIQUE call.
6245         * tree-ssa-threadedge.c
6246         (record_temporary_equivalences_from_stmts): Likewise.
6247         * tree-cfg.c (gmple_call_initialize_ctrl_altering): Likewise.
6248
6249 2015-10-27  Richard Henderson  <rth@redhat.com>
6250
6251         PR rtl-opt/67609
6252         * config/i386/i386.c (ix86_cannot_change_mode_class): Disallow
6253         narrowing subregs on SSE and MMX registers.
6254         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Clarify when subregs that
6255         appear to be sub-words of multi-register pseudos must be rejected.
6256         * doc/tm.texi: Regenerate.
6257
6258 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6259
6260         PR target/68102
6261         * config/aarch64/aarch64.md (*movsi_aarch64): Check that
6262         operands[0] is a reg before taking its REGNO in split condition.
6263         (*movdi_aarch64): Likewise.
6264
6265 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6266
6267         * config/aarch64/aarch64.c (aarch64_output_simd_mov_immediate):
6268         Handle floating point inner modes properly.
6269
6270 2015-10-27  Alan Hayward  <alan.hayward@arm.com>
6271
6272         * tree-vect-looop.c
6273         (vectorizable_live_operation): Change iterator.
6274
6275 2015-10-27  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
6276             Aditya Kumar  <aditya.k7@samsung.com>
6277
6278         * graphite-optimize-isl.c (get_schedule_for_node_st): New callback
6279           function to schedule based on isl_schedule_node.
6280         (get_schedule_map_st): New schedule optimizer based on
6281         isl_schedule_node.
6282         (scop_get_domains): New. Return the isl_union_set containing the
6283         domains of all the pbbs.
6284         (optimize_isl): Call the new function get_schedule_map_st for isl-0.15
6285
6286 2015-10-27  H.J. Lu  <hongjiu.lu@intel.com>
6287
6288         PR target/67215
6289         * calls.c (prepare_call_address): Don't handle -fno-plt here.
6290         * config/i386/i386.c (ix86_expand_call): Generate indirect call
6291         via GOT for -fno-plt.  Support indirect call via GOT for x32.
6292         * config/i386/predicates.md (sibcall_memory_operand): Allow
6293         GOT memory operand.
6294
6295 2015-10-27  Richard Biener  <rguenther@suse.de>
6296
6297         PR tree-optimization/68104
6298         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
6299         strided access check ...
6300         (vect_compute_data_refs_alignment): ... here.
6301
6302 2015-10-27  Daniel Jacobowitz  <dan@codesourcery.com>
6303             Joseph Myers  <joseph@codesourcery.com>
6304             Mark Shinwell  <shinwell@codesourcery.com>
6305             Andrew Stubbs  <ams@codesourcery.com>
6306             Rich Felker <dalias@libc.org>
6307
6308         * config.gcc: Handle --enable-fdpic.
6309         * config/sh/constraints.md (Ccl): New constraint.
6310         * config/sh/linux.h (SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic.
6311         * config/sh/sh-c.c (sh_cpu_cpp_builtins): Add __FDPIC__ and
6312         __SH_FDPIC__.
6313         * config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to
6314         library functions.
6315         * config/sh/sh-protos.h (function_symbol_result): New struct.
6316         (function_symbol): Return function_symbol_result.
6317         (sh_get_fdpic_reg_initial_val, sh_load_function_descriptor): New
6318         declarations.
6319         * config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement
6320         target hook.
6321         (TARGET_CANNOT_FORCE_CONST_MEM, sh_cannot_force_const_mem_p): Likewise.
6322         (sh_option_override): Force -fPIC if FDPIC is in effect.
6323         (sh_asm_output_addr_const_extra): Add UNSPEC_GOTFUNCDESC and
6324         UNSPEC_GOTOFFFUNCDESC cases.
6325         (prepare_move_operands): Use FDPIC initial GOT register for
6326         TLS-related GOT access; inhibit cross-section address offset constants
6327         for FDPIC.
6328         (sh_assemble_integer): New function.
6329         (sh_cannot_copy_insn_p): Inhibit copying insns that are FDPIC
6330         PC-relative call sites.
6331         (expand_ashiftrt): Adapt invocation of function_symbol.
6332         (sh_expand_prologue): Inhibit PC-relative GOT address load for FDPIC.
6333         (nonpic_symbol_mentioned_p): Add cases for UNSPEC_GOTFUNCDESC and
6334         UNSPEC_GOTOFFFUNCDESC.
6335         (legitimize_pic_address): Resolve function symbols to function
6336         descriptors for FDPIC.  Do not use GOT-relative addressing for local
6337         data that may be read-only on FDPIC.
6338         (sh_emit_storesi, sh_emit_storehi): New functions.
6339         (sh_trampoline_init): Generate FDPIC trampolines.
6340         (sh_function_ok_for_sibcall): Add TARGET_FDPIC check.
6341         (sh_expand_sym_label2reg): Don't assume sibcalls are local.
6342         (sh_output_mi_thunk): Generate FDPIC call.
6343         (function_symbol): Return function_symbol_result.  For SFUNC_STATIC on
6344         FDPIC, generate call site labels to use PC-relative addressing rather
6345         than GOT-relative addressing.
6346         (sh_conditional_register_usage): Make PIC register fixed and call used
6347         when FDPIC is in effect.
6348         (sh_legitimate_constant_p): Impose FDPIC constant constraints.
6349         (sh_cannot_force_const_mem_p, sh_load_function_descriptor,
6350         sh_get_fdpic_reg_initial_val): New functions.
6351         * config/sh/sh.h (SUBTARGET_ASM_SPEC, SUBTARGET_LINK_EMUL_SUFFIX):
6352         Handle -mfdpic.
6353         (FDPIC_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
6354         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED,
6355         SH_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macros.
6356         (DRIVER_SELF_SPECS): Add SUBTARGET_DRIVER_SELF_SPECS and
6357         FDPIC_SELF_SPECS.
6358         (TRAMPOLINE_SIZE): Select trampoline size for FDPIC.
6359         (ASM_PREFERRED_EH_DATA_FORMAT): Add EH format constraints for FDPIC.
6360         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Handle FDPIC case.
6361         * config/sh/sh.md (UNSPEC_GOTFUNCDESC, UNSPEC_GOTOFFFUNCDESC): New
6362         constants.
6363         (calli_fdpic, call_valuei_fdpic, sibcalli_fdpic, sibcalli_pcrel_fdpic,
6364         sibcall_pcrel_fdpic, sibcall_valuei_fdpic, sibcall_valuei_pcrel_fdpic,
6365         sibcall_value_pcrel_fdpic, sym2GOTFUNCDESC, symGOTFUNCDESC2reg,
6366         sym2GOTOFFFUNCDESC, symGOTOFFFUNCDESC2reg): New patterns.
6367         (udivsi3_i1, udivsi3_i4, udivsi3_i4_single, udivsi3,
6368         *divsi_inv_call_combine, divsi3_i4, divsi3_i4_single, divsi3, ashlsi3,
6369         ashlsi3_d_call, ashrsi3_n, lshrsi3, lshrsi3_d_call, calli, call_valuei,
6370         call, call_value, sibcalli, sibcalli_pcrel, sibcall_pcrel, sibcall,
6371         sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
6372         sibcall_value, GOTaddr2picreg, symGOT_load, symGOTOFF2reg,
6373         block_move_real, block_lump_real, block_move_real_i4,
6374         block_lump_real_i4): Add support for FDPIC calls.
6375         (mulsi3, ic_invalidate_line, initialize_trampoline, call_pop,
6376         call_value_pop): Adjust for new function_symbol signature.
6377         * config/sh/sh.opt (-mfdpic): New option.
6378         * doc/install.texi (Options specification): Document --enable-fdpic.
6379         * doc/invoke.texi (SH Options): Document -mfdpic.
6380
6381
6382 2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
6383
6384         PR tree-optimization/65963
6385         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
6386         LSHIFT_EXPRs as equivalent MULT_EXPRs.
6387
6388 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6389
6390         PR target/67929
6391         * config/arm/arm.c (vfp3_const_double_for_bits): Rewrite.
6392         * config/arm/constraints.md (Dp): Update callsite.
6393         * config/arm/predicates.md (const_double_vcvt_power_of_two): Likewise.
6394
6395 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6396
6397         * builtins.c (fold_builtin_load_exponent): Rename to...
6398         (fold_const_builtin_load_exponent): ...this and only handle
6399         constant arguments.
6400         (fold_builtin_2): Update accordingly.
6401         * match.pd: Add rules previously handled by fold_builtin_load_exponent.
6402
6403 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6404
6405         * builtins.c (fold_builtin_logb): Rename to...
6406         (fold_const_builtin_logb): ...this and remove STRIP_NOPS call.
6407         (fold_builtin_significand): Rename to...
6408         (fold_const_builtin_significand): ...this and remove STRIP_NOPS call.
6409         (fold_builtin_1): Update accordingly.
6410
6411 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6412
6413         * builtins.c (fold_builtin_fmin_fmax): Delete.
6414         (fold_builtin_2): Handle constant fmin and fmax arguments here.
6415         * match.pd: Add rules previously handled by fold_builtin_fmin_fmax.
6416
6417 2015-10-27  Evandro Menezes  <e.menezes@samsung.com>
6418
6419         * config/aarch64/aarch64-protos.h (cpu_addrcost_table): Split member
6420         for register extension into sign and zero register extension.
6421         * config/aarch64/aarch64.c (generic_addrcost_table): Infer values
6422         for sign and zero register extension.
6423         (cortexa57_addrcost_table): Likewise.
6424         (xgene1_addrcost_table): Likewise.
6425
6426 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6427
6428         * fold-const.c (fold_minmax): Delete.
6429         (fold_binary_loc): Don't call it.
6430         * match.pd: Add rules previously handled by fold_minmax.
6431
6432 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6433
6434         * builtins.c (fold_builtin_fma): Remove constant handling.
6435         (fold_builtin_3): Handle constant fma arguments here.
6436
6437 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6438
6439         * builtins.c (fold_builtin_fabs): Remove constant handling.
6440         (fold_builtin_abs): Likewise.
6441
6442 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6443
6444         * builtins.c (fold_builtin_copysign): Delete.
6445         (fold_builtin_2): Handle constant copysign arguments here.
6446         * match.pd: Add rules previously handled by fold_builtin_copysign.
6447
6448 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6449
6450         * builtins.c (fold_builtin_signbit): Delete.
6451         (fold_builtin_2): Handle constant signbit arguments here.
6452         * match.pd: Add rules previously handled by fold_builtin_signbit.
6453
6454 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6455
6456         * match.pd: Handle sqrt(x) cmp 0 specially.
6457
6458 2015-10-27  Ilya Enkovich  <enkovich.gnu@gmail.com>
6459
6460         * tree-vect-generic.c (expand_vector_operations_1): Check
6461         optab type before using it.
6462
6463 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6464
6465         * config/aarch64/aarch64-protos.h
6466         (struct tune_params): Add autoprefetcher_model field.
6467         * config/aarch64/aarch64.c: Include params.h
6468         (generic_tunings): Specify autoprefetcher_model value.
6469         (cortexa53_tunings): Likewise.
6470         (cortexa57_tunings): Likewise.
6471         (cortexa72_tunings): Likewise.
6472         (thunderx_tunings): Likewise.
6473         (xgene1_tunings): Likewise.
6474         (aarch64_first_cycle_multipass_dfa_lookahead_guard): New function.
6475         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
6476         (aarch64_override_options_internal): Set
6477         PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param.
6478
6479 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6480
6481         * builtins.c (fold_builtin_exponent): Delete.
6482         (fold_builtin_2): Handle constant expN arguments here.
6483         * match.pd: Fold expN(logN(x)) -> x.
6484
6485 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6486
6487         * builtins.c (fold_builtin_powi): Delete.
6488         (fold_builtin_2): Handle constant powi arguments here.
6489         * match.pd: Add rules previously handled by fold_builtin_powi.
6490
6491 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6492
6493         * builtins.c (fold_builtin_pow): Delete in favor of...
6494         (fold_const_builtin_pow): ...this new function.  Only handle constant
6495         arguments.
6496         (fold_builtin_2): Update accordingly.
6497         * match.pd: Add rules previously handled by fold_builtin_pow.
6498
6499 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6500
6501         * builtins.c (fold_builtin_hypot): Delete.
6502         (fold_builtin_2): Handle constant hypot arguments here.
6503         * match.pd: Fold hypot(x, 0) and hypot(0, x) to x.  Canonicalize
6504         hypot(x, x) to fabs(x)*sqrt(2).
6505
6506 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
6507
6508         * gimple-match-head.c (maybe_push_res_to_seq): Use create_tmp_reg
6509         instead of make_ssa_name if not yet in SSA form.
6510
6511 2015-10-27  Richard Biener  <rguenther@suse.de>
6512
6513         * cfg.c (free_edge): Add function argument and use it instead of cfun.
6514         (clear_edges): Likewise.
6515         * cfg.h (clear_edges): Adjust prototype.
6516         * cfgexpand.c (pass_expand::execute): Adjust.
6517         * cfgloop.c (release_recorded_exits): Add function argument and use
6518         it instead of cfun.
6519         * cfgloop.h (release_recorded_exits): Adjust prototype.
6520         (loops_state_satisfies_p): Add overload with function argument.
6521         (loops_state_set): Likewise.
6522         (loops_state_clear): Likewise.
6523         (struct loop_iterator): Add function argument to constructor
6524         and iterator and use it instead of cfun.
6525         (FOR_EACH_LOOP_FN): New macro.
6526         (loop_optimizer_finalize): Add overload with function argument.
6527         * loop-init.c (loop_optimizer_init): Adjust.
6528         (fix_loop_structure): Likewise.
6529         (loop_optimizer_finaliz): Add function argument and use it
6530         instead of cfun.
6531         * tree-cfg.c (delete_tree_cfg_annotations): Likewise.
6532         * tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype.
6533         * cgraph.c (release_function_body): Do not push/pop cfun.
6534         * final.c (rest_of_clean_state): Adjust.
6535         * graphite.c (graphite_finalize): Likewise.
6536         * tree-ssa-copy.c (fini_copy_prop): Likewise.
6537         * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
6538         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
6539         (tree_unroll_loops_completely): Likewise.
6540         (pass_complete_unrolli::execute): Likewise.
6541         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates):
6542         Add function argument and use it instead of cfun.
6543         * tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates):
6544         Adjust prototype.
6545         * tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
6546         * tree-ssa.c (delete_tree_ssa): Add function argument and use it
6547         instead of cfun.
6548         * tree-ssa.h (delete_tree_ssa): Adjust prototype.
6549         * tree-ssanames.c (fini_ssanames): Add function argument and use it
6550         instead of cfun.
6551         * tree-ssanames.c (fini_ssanames): Adjust prototype.
6552         * tree-vrp.c (execute_vrp): Adjust.
6553         * value-prof.c (free_histograms): Add function argument and use it
6554         instead of cfun.
6555         * value-prof.h (free_histograms): Adjust prototype.
6556
6557 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
6558
6559         * tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
6560         (OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
6561         (OACC_PARALLEL_COMBINED): Don't define macros.  Adjust all users.
6562
6563 2015-10-27  Tom de Vries  <tom@codesourcery.com>
6564
6565         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
6566         field_type.
6567
6568 2015-10-27  Bin Cheng  <bin.cheng@arm.com>
6569
6570         * loop-invariant.c (struct def): New field can_prop_to_addr_uses.
6571         (inv_can_prop_to_addr_use): New function.
6572         (record_use): Call can_prop_to_addr_uses, set the new field.
6573         (get_inv_cost): Count cost if inv can't be propagated into its
6574         address uses.
6575
6576 2015-10-26  Doug Evans  <dje@google.com>
6577
6578         * config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL.
6579
6580 2015-10-26  Eric Botcazou  <ebotcazou@adacore.com>
6581
6582         * match.pd (fold_widened_comparison): Apply simplifications to all
6583         integral types.
6584
6585 2015-10-26  Simon Dardis  <simon.dardis@imgtec.com>
6586
6587         * target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
6588         * doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document.
6589         * doc/tm.texi: Regenerated.
6590         * reorg.c (dbr_schedule): Use new hook.
6591         * config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New.
6592
6593 2015-10-26  Jeff Law  <law@redhat.com>
6594
6595         PR tree-optimization/68013
6596         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6597         Make sure the first block in the path is in VISITED_BBs.
6598
6599 2015-10-26  Richard Biener  <rguenther@suse.de>
6600         Dominik Vogt  <vogt@linux.vnet.ibm.com>
6601
6602         PR middle-end/67443
6603         * alias.c (ao_ref_from_mem): Remove promoted subreg handling.
6604         Properly prune ref->ref for accesses outside of ref.
6605
6606 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
6607
6608         * gimple-fold.c (replace_stmt_with_simplification): Don't allow
6609         new statements to be inserted if inplace.  Allow calls to have
6610         nonempty sequences.
6611
6612 2015-10-26  Richard Biener  <rguenther@suse.de>
6613
6614         * tree-object-size.c: Remove builtins.h include, include tree-cfg.h.
6615         (do_valueize): New function.
6616         (pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and
6617         replace_uses_by.
6618         * tree-ssa-threadedge.c: Remove builtins.h include, include
6619         gimple-fold.h
6620         (fold_assignment_stmt): Remove.
6621         (threadedge_valueize): New function.
6622         (record_temporary_equivalences_from_stmts): Use
6623         gimple_fold_stmt_to_constant_1, note additional cleanup
6624         opportunities.
6625
6626 2015-10-26  Richard Biener  <rguenther@suse.de>
6627
6628         * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
6629         ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.
6630
6631 2015-10-26  Alan Hayward <alan.hayward@arm.com>
6632
6633         * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
6634         VEC_COND_EXPR types.
6635
6636 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6637
6638         * auto-inc-dec.c (insert_move_insn_before): Delete.
6639         (attempt_change): Remember to cost the simple move in the
6640         FORM_PRE_ADD and FORM_POST_ADD cases.
6641
6642 2015-10-26  Kaz Kojima  <kkojima@gcc.gnu.org>
6643
6644         PR target/68091
6645         * config/sh/sh.c (sh_vector_mode_supported_p): Use
6646         TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.
6647
6648 2015-10-26  Tom de Vries  <tom@codesourcery.com>
6649
6650         * tree-ssa-structalias.c (make_restrict_var_constraints): New function,
6651         factored out of ...
6652         (intra_create_variable_infos): ... here.
6653
6654 2015-10-26  Tom de Vries  <tom@codesourcery.com>
6655
6656         * tree-ssa-structalias.c (intra_create_variable_infos): Add
6657         restrict_pointer_p and recursive_restrict_p variables.
6658
6659 2015-10-26  Tom de Vries  <tom@codesourcery.com>
6660
6661         * tree-ssa-structalias.c (intra_create_variable_infos): Inline
6662         get_vi_for_tree call.
6663
6664 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6665
6666         PR middle-end/67989
6667         * optabs.c (expand_atomic_compare_and_swap): Handle case when
6668         ptarget_oval or ptarget_bool are const0_rtx.
6669
6670 2015-10-26  Christian Bruel  <christian.bruel@st.com>
6671
6672         * function.h (MINIMUM_METHOD_BOUNDARY): New macro.
6673         * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY.
6674         * cp/method.c (implicitly_declare_fn): Likewise.
6675         * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting.
6676         * java/class.c (add_method_1): Likewise.
6677
6678 2015-10-26  Richard Biener  <rguenther@suse.de>
6679
6680         * alloc-pool.h (base_pool_allocator): Use placement new.
6681         (base_pool_allocator::remove): Likewise.  Compute size outside of
6682         flag_checking.
6683
6684 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
6685
6686         * builtins.c (do_real_to_int_conversion): New function.
6687         (fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete.
6688         (fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l}
6689         arguments here.
6690         * match.pd: Add rules previously handled by fold_fixed_mathfn
6691         and fold_builtin_int_roundingfn.
6692
6693 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
6694
6695         * match.pd: Use macros to define built-in operator lists.
6696
6697 2015-10-20  Richard Sandiford  <richard.sandiford@arm.com>
6698             Richard Biener  <rguenther@suse.de>
6699
6700         * genmatch.c (dt_simplify::gen): Skip captures that are
6701         part of the result.
6702         (parser::parse_expr): Allow captures in results too.
6703         * builtins.c (fold_builtin_cexp): Delete.
6704         (fold_builtin_1): Handle constant cexp arguments here.
6705         * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).
6706
6707 2015-10-26  Mikhail Maltsev  <maltsevm@gmail.com>
6708
6709         * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
6710         conditional compilation.
6711         (base_pool_allocator::remove): Use flag_checking.
6712
6713 2015-10-25  John David Anglin  <danglin@gcc.gnu.org>
6714
6715         * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
6716
6717         PR middle-end/68079
6718         * dojump.c (do_compare_and_jump): Canonicalize both function and
6719         method types.
6720
6721 2015-10-25  Uros Bizjak  <ubizjak@gmail.com>
6722
6723         PR target/68084
6724         * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
6725         for =@ccae.
6726
6727 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
6728
6729         PR ipa/pr67600
6730         * ipa-polymorphic-call.c
6731         (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
6732         instance offset with offset of outer type.
6733
6734 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
6735
6736         * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
6737
6738 2015-10-23  Caroline Tice  <cmtice@google.com>
6739
6740         (from Richard Biener
6741         * tree.c (int_cst_hasher::hash):  Replace XOR with more efficient
6742         call to iterative_hash_host_wide_int.
6743
6744 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
6745
6746         * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
6747         Define as yes.
6748
6749 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
6750
6751         * tree-vect-generic.c (expand_vector_operations_1): Check
6752         optab exists before use it.
6753
6754 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
6755
6756         * tree-vect-generic.c (expand_vector_condition): Avoid
6757         uninitialized variable warning.
6758
6759 2015-10-23  Jeff Law  <law@redhat.com>
6760
6761         * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
6762         here.  Instead...
6763         (execute_todo): Call it here.
6764         * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
6765         statistics
6766         (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
6767
6768 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
6769             Szabolcs Nagy  <szabolcs.nagy@arm.com>
6770
6771         * config.gcc (enable_secureplt): Add *-linux*-musl*.
6772
6773 2015-10-23  Jeff Law  <law@redhat.com>
6774
6775         PR tree-optimization/67830
6776         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
6777         Explicitly verify the mask has no bits outside the type of
6778         the innermost operands.
6779
6780 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
6781             Szabolcs Nagy  <szabolcs.nagy@arm.com>
6782
6783         * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
6784         (MUSL_DYNAMIC_LINKER64): Define.
6785         (GNU_USER_DYNAMIC_LINKER32): Update.
6786         (GNU_USER_DYNAMIC_LINKER64): Update.
6787         (CHOOSE_DYNAMIC_LINKER): Update.
6788
6789         * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
6790         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
6791         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
6792         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
6793         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
6794         (CHOOSE_DYNAMIC_LINKER): Update.
6795         (INCLUDE_DEFAULTS): Redefine.
6796
6797         * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
6798
6799 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
6800
6801         * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
6802         comparing addresses.
6803
6804 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
6805
6806         * fold-const.c (operand_equal_p): Handle matching of vector
6807         constructors.
6808
6809 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
6810
6811         * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
6812
6813 2015-10-23  Steve Ellcey  <sellcey@imgtec.com>
6814             Andrew Pinski  <apinski@cavium.com>
6815
6816         PR rtl-optimization/67736
6817         * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
6818         of gen_lowpart.
6819
6820 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
6821
6822         PR middle-end/68066
6823         * tree.c (build_truth_vector_type): Support BLK mode
6824         returned for boolean vector.
6825
6826 2015-10-23  Alan Hayward <alan.hayward@arm.com>
6827
6828         PR tree-optimization/65947
6829         * tree-vect-loop.c
6830         (vect_is_simple_reduction_1): Find condition reductions.
6831         (vect_model_reduction_cost): Add condition reduction costs.
6832         (get_initial_def_for_reduction): Add condition reduction initial var.
6833         (vect_create_epilog_for_reduction): Add condition reduction epilog.
6834         (vectorizable_reduction): Condition reduction support.
6835         * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
6836         * doc/sourcebuild.texi (Vector-specific attributes): Document
6837         vect_max_reduc
6838
6839 2015-10-23  Richard Biener  <rguenther@suse.de>
6840
6841         * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
6842         and builtins.def.
6843
6844 2015-10-23  Richard Biener  <rguenther@suse.de>
6845             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6846
6847         * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
6848         into (A ^ B) - B to match.pd
6849         Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
6850
6851         * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
6852         New simplifier.
6853         (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
6854         New simplifier.
6855         (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
6856         New simplifier.
6857         (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
6858         New simplifier.
6859         (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
6860         INTEGER_CST@1)): New simplifier.
6861
6862 2015-10-23  Richard Sandiford  <richard.sandiford@arm.com>
6863
6864         * builtins.c (integer_valued_real_p): Move to fold-const.c.
6865         (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
6866         (fold_builtin_ceil, fold_builtin_round): Delete.
6867         (fold_builtin_1): Handle constant trunc, floor, ceil and round
6868         arguments here.
6869         * convert.c (convert_to_real): Remove narrowing of rounding
6870         functions.
6871         * fold-const.h (integer_valued_real_unary_p)
6872         (integer_valued_real_binary_p, integer_valued_real_call_p)
6873         (integer_valued_real_single_p, integer_valued_real_p): Declare.
6874         * fold-const.c (tree_single_nonnegative_warnv_p): Move
6875         name_registered_for_update_p check to SSA_NAME case statement.
6876         Don't call tree_simple_nonnegative_warnv_p for SSA names.
6877         (integer_valued_real_unary_p, integer_valued_real_binary_p)
6878         (integer_valued_real_call_p, integer_valued_real_single_p)
6879         (integer_valued_real_invalid_p): New functions.
6880         (integer_valued_real_p): Move from fold-const.c and rework
6881         to call the functions above.  Handle SSA names.
6882         * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
6883         * gimple-fold.c (gimple_assign_integer_valued_real_p)
6884         (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
6885         (gimple_stmt_integer_valued_real_p): New functions.
6886         * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
6887         Fold f(x)->x for the same f if x is known to be integer-valued.
6888         Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
6889         the result.  Canonicalize floor(x) as trunc(x) if x is
6890         nonnegative.
6891
6892 2015-10-23  Tom de Vries  <tom@codesourcery.com>
6893
6894         * tree-ssa-structalias.c (intra_create_variable_infos): Use
6895         make_constraint_from.
6896
6897 2015-10-23  Tom de Vries  <tom@codesourcery.com>
6898
6899         * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
6900         setting of is_full_var in case of a single field.
6901
6902 2015-10-22  Martin Sebor  <msebor@redhat.com>
6903
6904         PR driver/68043
6905         * config/i386/i386.opt: Add missing periods to the ends of sentences.
6906         * config/msp430/msp430.opt: Same.
6907
6908 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
6909
6910         * doc/extend.exp (Global Register Variables): Rewrite.
6911
6912 2015-10-22  Jeff Law  <law@redhat.com>
6913
6914         * genattrtab.c (main): If we do not have any annul-true or annul-false
6915         slots, then write out a dummy eligible_for_annul_true or
6916         eligible_for_annul_false as needed.
6917
6918 2015-10-22  Nick Clifton  <nickc@redhat.com>
6919
6920         * config/msp430/msp430.opt: Add -msilicon-errata and
6921         -msilicon-errata-warn.
6922         * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
6923         assembler.
6924         * doc/invoke.texi: Document new options.
6925
6926 2015-10-22  Richard Biener  <rguenther@suse.de>
6927
6928         PR tree-optimization/58497
6929         * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
6930         (expand_vector_operations_1): Use it.  Lower operations on
6931         all uniform vectors to scalar operations if the HW supports it.
6932
6933 2015-10-22  Richard Biener  <rguenther@suse.de>
6934
6935         PR tree-optimization/19049
6936         PR tree-optimization/65962
6937         * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
6938         to strided accesses if single-element interleaving doesn't work.
6939
6940 2015-10-22  Richard Biener  <rguenther@suse.de>
6941
6942         PR middle-end/68046
6943         PR middle-end/61893
6944         * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
6945         (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
6946         (expand_unop): Likewise.
6947
6948 2015-10-22  Richard Biener  <rguenther@suse.de>
6949
6950         * fold-const.c (fold_addr_of_array_ref_difference): Properly
6951         convert operands before folding a MINUS_EXPR.
6952         (fold_binary_loc): Move simplification of MINUS_EXPR on
6953         converted POINTER_PLUS_EXPRs ...
6954         * match.pd: ... here.
6955
6956 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
6957
6958         * builtins.c (fold_builtin_tan): Delete.
6959         (fold_builtin_1): Handle constant tan arguments here.
6960         * match.pd: Simplify (tan (atan x)) to x.
6961
6962 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
6963
6964         * builtins.c (fold_builtin_cproj): Delete.
6965         (fold_builtin_1): Handle constant arguments here.
6966         (build_complex_cproj): Move and rename to...
6967         * tree.c: (build_complex_inf): ...this.
6968         * tree.h (build_complex_inf): Declare.
6969         * match.pd: Fold cproj(x)->x if x has no infinity.
6970         Use build_complex_inf for existing cproj rules.
6971
6972 2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6973
6974         PR target/68015
6975         * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
6976         already have a comparison result.
6977
6978 2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6979
6980         PR target/63304
6981         * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
6982         (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
6983         (aarch64_classify_address): Likewise.
6984         (aarch64_secondary_reload): Likewise.
6985         (aarch64_override_options_after_change_1): Adjust.
6986         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
6987         Use aarch64_nopcrelative_literal_loads.
6988         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
6989         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
6990         Declare.
6991
6992 2015-10-21  Martin Sebor  <msebor@redhat.com>
6993
6994         PR driver/68043
6995         * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
6996         (print_filtered_help): Reference aliased option's name and encourage
6997         readers to use it in preference to the alias if the former is not
6998         documented.  Mention when using an option is diagnosed.
6999         * gcc.c (display_help): End each sentence with a period.
7000
7001         * common.opt: End each sentence that describes an option with
7002         a period.
7003         * config/aarch64/aarch64.opt: Same.
7004         * config/alpha/alpha.opt: Same.
7005         * config/arc/arc.opt: Same.
7006         * config/arm/arm.opt: Same.
7007         * config/avr/avr.opt: Same.
7008         * config/bfin/bfin.opt: Same.
7009         * config/c6x/c6x.opt: Same.
7010         * config/cr16/cr16.opt: Same.
7011         * config/cris/cris.opt: Same.
7012         * config/cris/linux.opt: Same.
7013         * config/darwin.opt: Same.
7014         * config/epiphany/epiphany.opt: Same.
7015         * config/fr30/fr30.opt: Same.
7016         * config/frv/frv.opt: Same.
7017         * config/ft32/ft32.opt: Same.
7018         * config/g.opt: Same.
7019         * config/h8300/h8300.opt: Same.
7020         * config/i386/cygming.opt: Same.
7021         * config/i386/djgpp.opt: Same.
7022         * config/i386/i386.opt: Same.
7023         * config/i386/interix.opt: Same.
7024         * config/i386/mingw-w64.opt: Same.
7025         * config/i386/mingw.opt: Same.
7026         * config/ia64/ia64.opt: Same.
7027         * config/ia64/ilp32.opt: Same.
7028         * config/iq2000/iq2000.opt: Same.
7029         * config/linux.opt: Same.
7030         * config/lm32/lm32.opt: Same.
7031         * config/lynx.opt: Same.
7032         * config/m32c/m32c.opt: Same.
7033         * config/m32r/m32r.opt: Same.
7034         * config/m68k/ieee.opt: Same.
7035         * config/m68k/m68k.opt: Same.
7036         * config/mcore/mcore.opt: Same.
7037         * config/mep/mep.opt: Same.
7038         * config/microblaze/microblaze.opt: Same.
7039         * config/mips/mips.opt: Same.
7040         * config/mmix/mmix.opt: Same.
7041         * config/mn10300/mn10300.opt: Same.
7042         * config/moxie/moxie.opt: Same.
7043         * config/msp430/msp430.opt: Same.
7044         * config/nios2/elf.opt: Same.
7045         * config/nios2/nios2.opt: Same.
7046         * config/nvptx/nvptx.opt: Same.
7047         * config/pa/pa-hpux.opt: Same.
7048         * config/pa/pa-hpux1010.opt: Same.
7049         * config/pa/pa-hpux1111.opt: Same.
7050         * config/pa/pa-hpux1131.opt: Same.
7051         * config/pa/pa.opt: Same.
7052         * config/pa/pa64-hpux.opt: Same.
7053         * config/pdp11/pdp11.opt: Same.
7054         * config/rl78/rl78.opt: Same.
7055         * config/rs6000/476.opt: Same.
7056         * config/rs6000/aix64.opt: Same.
7057         * config/rs6000/darwin.opt: Same.
7058         * config/rs6000/linux64.opt: Same.
7059         * config/rs6000/rs6000.opt: Same.
7060         * config/rs6000/sysv4.opt: Same.
7061         * config/s390/s390.opt: Same.
7062         * config/s390/tpf.opt: Same.
7063         * config/sh/sh.opt: Same.
7064         * config/sol2.opt: Same.
7065         * config/sparc/long-double-switch.opt: Same.
7066         * config/sparc/sparc.opt: Same.
7067         * config/spu/spu.opt: Same.
7068         * config/stormy16/stormy16.opt: Same.
7069         * config/tilegx/tilegx.opt: Same.
7070         * config/tilepro/tilepro.opt: Same.
7071         * config/v850/v850.opt: Same.
7072         * config/vax/vax.opt: Same.
7073         * config/visium/visium.opt: Same.
7074         * config/vms/vms.opt: Same.
7075         * config/vxworks.opt: Same.
7076         * config/xtensa/xtensa.opt: Same.
7077
7078 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
7079             Sebastian Pop  <s.pop@samsung.com>
7080
7081         * graphite-scop-detection.c (parameter_index_in_region): Update call to
7082         invariant_in_sese_p_rec.
7083         * graphite-sese-to-poly.c (extract_affine): Same.
7084         * sese.c (invariant_in_sese_p_rec): Pass in an extra
7085         parameter has_vdefs.
7086         (scalar_evolution_in_region): Return chrec_dont_know when the scalar
7087         variable depends on virtual definitions in the current region.
7088         * sese.h (invariant_in_sese_p_rec): Update declaration.
7089
7090 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
7091             Sebastian Pop  <s.pop@samsung.com>
7092
7093         * graphite-scop-detection.c (build_scops): Do not handle scops
7094         with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
7095         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
7096
7097 2015-10-21  Mikhail Maltsev  <maltsevm@gmail.com>
7098
7099         * config.in: Regenerate.
7100         * configure: Regenerate.
7101         * configure.ac (CHECKING_P): Define.
7102         * system.h: Use CHECKING_P.
7103
7104 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
7105
7106         PR ipa/67056
7107         * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
7108         is negative we don't know the type.
7109         (check_stmt_for_type_change): Skip constructors of non-polymorphic
7110         types as those won't help devirutalization.
7111
7112 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
7113
7114         * fold-const.c (operand_equal_p): Add code matching empty constructors.
7115
7116 2015-10-21  Eric Botcazou  <ebotcazou@adacore.com>
7117
7118         * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
7119         comments.
7120         (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
7121         Add comments on sign of the result.
7122         * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
7123         Recurse on operand #1 instead of operand #0.
7124         <CEIL_MOD_EXPR>: Do not recurse.
7125         <ROUND_MOD_EXPR>: Likewise.
7126
7127 2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7128
7129         * cfgrtl.c (pass_free_cfg::execute): Adjust.
7130         * final.c (dbr_sequence_length): Always define.
7131         (shorten_branches): Adjust.
7132         * genattr-common.c (main): Always define DELAY_SLOTS.
7133         * genattr.c (main): Unconditionally declare functions and define
7134         macros related to delay slots.
7135         * genattrtab.c (write_eligible_delay): Adjust.
7136         (main): Always write out delay slot functions.
7137         * opts.c (default_options_table): Adjust.
7138         * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
7139         (redirect_with_delay_list_safe_p): Likewise.
7140         (fill_simple_delay_slots): Likewise.
7141         (fill_slots_from_thread): Likewise.
7142         (make_return_insns): Likewise.
7143         (dbr_schedule): Likewise.
7144         (rest_of_handle_delay_slots): Likewise.
7145         (pass_delay_slots::gate): Likewise.
7146         * toplev.c (process_options): Likewise.
7147
7148 2015-10-21  Richard Henderson  <rth@redhat.com>
7149
7150         * targhooks.c (default_addr_space_pointer_mode): Remove check
7151         for generic address space.
7152         (default_addr_space_address_mode): Likewise.
7153         (default_addr_space_valid_pointer_mode): Likewise.
7154         (default_addr_space_legitimate_address_p): Likewise.
7155         (default_addr_space_legitimize_address): Likewise.
7156         * target.def (addr_space.pointer_mode): Update documentation
7157         of default behavior.
7158         (addr_space.address_mode): Likewise.
7159         * tm.texi: Update.
7160
7161         * expr.c (expand_expr_real_2): Use convert_modes on disjoint
7162         address spaces.
7163
7164 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
7165
7166         * builtins.c (fold_builtin_cabs): Delete.
7167         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
7168         * match.pd: Add rules previously handled by fold_builtin_cabs.
7169
7170 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
7171
7172         * fold-const.h (fold_strip_sign_ops): Delete.
7173         * fold-const.c (fold_strip_sign_ops): Likewise.
7174         (fold_unary_loc, fold_binary_loc): Remove calls to it.
7175         * builtins.c (fold_builtin_cos, fold_builtin_cosh)
7176         (fold_builtin_ccos): Delete.
7177         (fold_builtin_pow): Don't call fold_strip_sign_ops.
7178         (fold_builtin_hypot, fold_builtin_copysign): Likewise.
7179         Remove fndecl argument.
7180         (fold_builtin_1): Update calls accordingly.  Handle constant
7181         cos, cosh, ccos and ccosh here.
7182
7183 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
7184
7185         * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
7186         * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
7187         * common.opt (fssa-backprop): New option.
7188         * fold-const.h (negate_mathfn_p): Declare.
7189         * fold-const.c (negate_mathfn_p): Make public.
7190         * timevar.def (TV_TREE_BACKPROP): New.
7191         * tree-pass.h (make_pass_backprop): Declare.
7192         * passes.def (pass_backprop): Add.
7193         * gimple-ssa-backprop.c: New file.
7194
7195 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
7196             Sebastian Pop  <s.pop@samsung.com>
7197
7198         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
7199         Do not call create_empty_if_region_on_edge when cond_expr is true.
7200         (translate_isl_ast_node_for): Check whether a guard has been generated.
7201
7202 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
7203
7204         * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
7205         (operator=): Removed.
7206         (dr_info): Make alias_set number the last argument with default
7207         value of invalid_alias_set.
7208         * graphite-sese-to-poly.c (build_scop_drs): Update constructor
7209         of dr_info.
7210         (rewrite_reductions_out_of_ssa): Iterate only through the
7211         basic blocks which are inside region.
7212         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
7213         * sese.h (struct sese_l): Removed assignment operator.
7214         (split_region_for_bb): Removed dead code.
7215
7216 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
7217
7218         * graphite-poly.h (struct dr_info): Removed conversion constructor.
7219         (struct scop): Renamed scop::region to scop::scop_info
7220         (scop_set_region): Same.
7221         (SCOP_REGION): Removed
7222         (SCOP_CONTEXT): Removed.
7223         (POLY_SCOP_P): Removed.
7224         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
7225         Rename scop->region to scop->scop_info.
7226         (add_parameters_to_ivs_params): Same.
7227         (graphite_regenerate_ast_isl): Same.
7228         * graphite-poly.c (new_scop): Same.
7229         (free_scop): Same.
7230         (print_scop_params): Same.
7231         * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
7232         (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
7233         (dot_all_scops_1): Rename scop->region to scop->scop_info.
7234         (scop_detection::nb_pbbs_in_loops): Same.
7235         (find_scop_parameters): Same.
7236         (try_generate_gimple_bb): Same.
7237         (gather_bbs::before_dom_children): Same.
7238         (gather_bbs::after_dom_children): Same.
7239         (build_scops): Same.
7240         * graphite-sese-to-poly.c (build_scop_scattering): Same.
7241         (extract_affine_chrec): Same.
7242         (extract_affine): Same.
7243         (set_scop_parameter_dim): Same.
7244         (build_loop_iteration_domains): Same.
7245         (create_pw_aff_from_tree): Same.
7246         (add_param_constraints): Same.
7247         (build_scop_iteration_domain): Same.
7248         (build_scop_drs): Same.
7249         (analyze_drs_in_stmts): Same.
7250         (insert_out_of_ssa_copy_on_edge): Same.
7251         (rewrite_close_phi_out_of_ssa):Same.
7252         (rewrite_reductions_out_of_ssa):Same.
7253         (handle_scalar_deps_crossing_scop_limits):Same.
7254         (rewrite_cross_bb_scalar_deps):Same.
7255         (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
7256         (build_poly_scop):Same.
7257         (build_alias_set): Use pointer to dr_info.
7258         * graphite.c (print_graphite_scop_statistics):
7259         (graphite_transform_loops):
7260         * sese.h (struct sese_l): Remove conversion constructor.
7261
7262 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
7263
7264         PR middle-end/67966
7265         * tree.c (verify_type): Verify that TYPE_MODE match
7266         between TYPE_CANONICAL and type.
7267         * expr.c (store_expr_with_bounds): Revert my previous change.
7268         * expmed.c (store_bit_field_1): Revert prevoius change.
7269         * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
7270         to match for all types.
7271
7272 2015-10-21  Nathan Sidwell  <nathan@codesourcery.com>
7273
7274         * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
7275         nesting.
7276
7277 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
7278
7279         * doc/tm.texi: Regenerated.
7280         * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
7281         * stor-layout.c (layout_type): Use mode to get vector mask size.
7282         * target.def (get_mask_mode): New.
7283         * targhooks.c (default_get_mask_mode): New.
7284         * targhooks.h (default_get_mask_mode): New.
7285         * tree-vect-stmts.c (get_same_sized_vectype): Add special case
7286         for boolean vector.
7287         * tree.c (MAX_BOOL_CACHED_PREC): New.
7288         (nonstandard_boolean_type_cache): New.
7289         (build_nonstandard_boolean_type): New.
7290         (make_vector_type): Vector mask has no canonical type.
7291         (build_truth_vector_type): New.
7292         (build_same_sized_truth_vector_type): New.
7293         (truth_type_for): Support vector masks.
7294         * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
7295         (build_truth_vector_type): New.
7296         (build_same_sized_truth_vector_type): New.
7297         (build_nonstandard_boolean_type): New.
7298         * tree-cfg.c (verify_gimple_comparison) Require boolean
7299         vector type for vector comparison.
7300         (verify_gimple_assign_ternary): Likewise.
7301         * optabs.c (expand_vec_cond_expr): Accept boolean vector as
7302         condition operand.
7303         * tree-vect-stmts.c (vectorizable_condition): Use boolean
7304         vector type for vector comparison.
7305         * tree-vect-generic.c (elem_op_func): Add new operand to hold
7306         vector type.
7307         (do_unop): Adjust to modified function type.
7308         (do_binop): Likewise.
7309         (do_plus_minus): Likewise.
7310         (do_negate); Likewise.
7311         (expand_vector_piecewise): Likewise.
7312         (do_cond): Likewise.
7313         (do_compare): Use comparison instead of condition.
7314         (expand_vector_divmod): Use boolean vector type for comparison.
7315         (expand_vector_operations_1): Skip scalar mask operations.
7316
7317 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
7318
7319         * omp-low.c (simd_clone_create): Set in_other_partition
7320         for created clones.
7321
7322 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
7323
7324         * doc/extend.exp (Local Register Variables): Rewrite.
7325
7326 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
7327
7328         * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
7329         and x*x in cases where the operands are sign ops.  Extend these
7330         rules to handle copysign as a sign op (including for cos, cosh
7331         and pow, which already treated negate and abs as sign ops).
7332
7333 2015-10-21  Uros Bizjak  <ubizjak@gmail.com>
7334
7335         PR target/68018
7336         * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
7337         for 64-bit MS_ABI targets also when default incoming stack boundary
7338         is overriden.
7339
7340 2015-10-21  Richard Biener  <rguenther@suse.de>
7341
7342         * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
7343         cond stmts, enhanced and split out from ...
7344         (vn_phi_eq): ... here.
7345
7346 2015-10-21  Richard Biener  <rguenther@suse.de>
7347
7348         PR middle-end/68031
7349         * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
7350         (tree_ssa_name_nonnegative_warnv_p): Fold into ...
7351         (tree_single_nonnegative_warnv_p): ... here.  For SSA names
7352         make sure they are not registered for update.
7353
7354 2015-10-21  Richard Biener  <rguenther@suse.de>
7355
7356         PR tree-optimization/68026
7357         * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
7358         unsigned VARYING values.
7359
7360 2015-10-21  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
7361
7362         * asan.c (asan_emit_stack_protection): Don't pass local stack to
7363         asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
7364         NULL and use local stack than.
7365         (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
7366         in addition to __asan_init.
7367         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
7368         (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
7369         * asan.h (asan_intercepted_p): Handle new string builtins.
7370         * ubsan.c (ubsan_use_new_style_p): New function.
7371         (ubsan_instrument_float_cast): If location is unknown, assign
7372         input_location to loc. Propagate loc to ubsan_create_data if
7373         ubsan_use_new_style_p returned true.
7374
7375 2015-10-21  Jeff Law  <law@redhat.com>
7376
7377         * Makefile.in (OBJS): Remove sched-vis.c
7378         * sched-vis.c: Removed.  Code moved into...
7379         * print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
7380         * rtl.h: Remove prototypes for functions now living in print-rtl.c
7381         * print-rtl.h Add prototypes for new functions in print-rtl.c.
7382         * auto-inc-dec.c: Include print-rtl.h
7383         * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
7384         * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
7385
7386         * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
7387         ATTRIBUTE_UNUSED.
7388
7389 2015-10-21  Richard Biener  <rguenther@suse.de>
7390             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7391
7392         * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
7393         to match.pd.
7394         Move (a * (1 << b)) is (a << b) to match.pd.
7395         Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
7396         Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
7397         Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
7398
7399         * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
7400         New simplifier.
7401         (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
7402         (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
7403         (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
7404         : New simplifier.
7405         (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
7406         New simplifier.
7407         (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
7408
7409 2015-10-21  Gregor Richards  <gregor.richards@uwaterloo.ca>
7410             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7411             Alan Modra  <amodra@gmail.com>
7412
7413         * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
7414         * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
7415         (LINK_SPEC): Add %(link_secure_plt).
7416         (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
7417         * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
7418
7419 2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
7420             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7421
7422         * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
7423         (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
7424
7425 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7426
7427         * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
7428         New function.
7429         (fusion_load_store): Use it.
7430         * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
7431         ldp and stp in VD modes.
7432         * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
7433         (store_pair<mode>, VD): Likewise.
7434
7435 2015-10-20  Vladimir Makarov  <vmakarov@redhat.com>
7436
7437         PR rtl-optimization/67609
7438         * lra-splill.c (lra_final_code_change): Don't remove all
7439         sub-registers.
7440
7441 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7442
7443         * simplify-rtx.c (simplify_binary_operation): If either operand was
7444         a constant pool reference use them if all other simplifications failed.
7445
7446 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7447
7448         * config/aarch64/aarch64.md
7449         (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
7450         * config/aarch64/aarch64-simd.md
7451         (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
7452         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
7453         (aarch64_fpconst_pow_of_2): New function.
7454         (aarch64_vec_fpconst_pow_of_2): Likewise.
7455         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
7456         prototype.
7457         (aarch64_vec_fpconst_pow_of_2): Likewise.
7458         * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
7459         (aarch64_fp_vec_pow2): Likewise.
7460
7461 2015-10-20  Uros Bizjak  <ubizjak@gmail.com>
7462
7463         * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
7464         (ALPHA_ARG_SIZE): Ditto.  Remove unused NAMED argument.
7465         * config/alpha/alpha.c (alpha_function_arg_advance): Update
7466         ALPHA_ARG_SIZE usage.
7467         (alpha_arg_partial_bytes): Ditto.
7468
7469 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
7470
7471         PR target/66810
7472         * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
7473         error_mark_node decls.
7474
7475 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
7476
7477         PR target/67963
7478         PR target/67985
7479         * common/config/i386/i386-common.c (ix86_handle_option): Remove
7480         OPT_miamcu handling.
7481         * config/i386/i386.c (PTA_NO_80387): New macro.
7482         (processor_alias_table): Add PTA_NO_80387 to lakemont.
7483         (ix86_option_override_internal): Update MASK_80387 from
7484         PTA_NO_80387.  Don't warn x87/MMX/SSE/AVX for -miamcu.  Warn
7485         SSE math only if 80387 is supported.  Don't change
7486         MASK_FLOAT_RETURNS.
7487         (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
7488         80387 is supported.
7489         * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
7490         if TARGET_80387 is true and TARGET_IAMCU is false.
7491         (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
7492         is true and TARGET_IAMCU_P is false.
7493
7494 2015-10-20  Richard Biener  <rguenther@suse.de>
7495
7496         PR tree-optimization/68017
7497         * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
7498
7499 2015-10-20  Martin Liska  <mliska@suse.cz>
7500
7501         * cgraphclones.c (cgraph_node::create_virtual_clone):
7502         Verify cgraph_node.local.versionable instead of calling
7503         tree_versionable_function_p.
7504         * ipa-cp.c (determine_versionability): Save the information
7505         to ipa_node_params summary.
7506         (ipcp_versionable_function_p): Use it.
7507         (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
7508         (ipcp_generate_summary): Do not compute cgraph_node
7509         versionability.
7510         * ipa-inline-analysis.c (inline_generate_summary): Compute
7511         versionability for all cgraph nodes.
7512         * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
7513         ipa_node_params::versionability.
7514         * ipa-prop.h (struct ipa_node_params): Declare it.
7515
7516 2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7517
7518         PR other/67868
7519         * varasm.c (assemble_variable): Move special vtv handling to..
7520         (handle_vtv_comdat_sections): .. here. New function.
7521         (output_object_block): Handle vtv sections.
7522
7523 2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7524
7525         PR target/66912
7526         * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
7527
7528 2015-10-20  Arkadiusz Drabczyk  <arkadiusz@drabczyk.org>
7529
7530         * doc/extend.texi: Update documentation WRT inline functions.
7531
7532 2015-10-20  Alan Modra  <amodra@gmail.com>
7533
7534         PR go/66870
7535         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
7536         * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
7537         (TARGET_CAN_SPLIT_STACK_64BIT): Define.
7538
7539 2015-10-19  Pierre-Marie de Rodat  <derodat@adacore.com>
7540
7541         PR rtl-optimization/66790
7542         * df.h (DF_MIR): New macro.
7543         (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
7544         (DF_MIR_INFO_BB): New macro.
7545         (DF_MIR_IN, DF_MIR_OUT): New macros.
7546         (struct df_mir_bb_info): New.
7547         (df_mir): New macro.
7548         (df_mir_add_problem, df_mir_simulate_one_insn): New forward
7549         declarations.
7550         (df_mir_get_bb_info): New.
7551         * df-problems.c (struct df_mir_problem_data): New.
7552         (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
7553         df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
7554         df_mir_confluence_0, df_mir_confluence_n,
7555         df_mir_transfer_function, df_mir_free, df_mir_top_dump,
7556         df_mir_bottom_dump, df_mir_verify_solution_start,
7557         df_mir_verify_solution_end): New.
7558         (problem_MIR): New.
7559         (df_mir_add_problem, df_mir_simulate_one_insn): New.
7560         * timevar.def (TV_DF_MIR): New.
7561         * ree.c: Include bitmap.h
7562         (add_removable_extension): Add an INIT_REGS parameter.  Use it
7563         to skip zero-extensions that may get an uninitialized register.
7564         (find_removable_extensions): Compute must-initialized registers
7565         using the MIR dataflow problem. Update the call to
7566         add_removable_extension.
7567         (find_and_remove_re): Call df_mir_add_problem.
7568
7569 2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
7570
7571         * common/config/mn10300/mn10300-common.c
7572         (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
7573         Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
7574
7575 2015-10-19  David Wohlferd  <dw@LimeGreenSocks.com>
7576
7577         * doc/extend.texi (Explicit Register Variables): Simplify and
7578         avoid unnecessary and confusion abbreviations.  Update cross
7579         references.
7580         doc/implement-c.tex: Update cross reference.
7581
7582 2015-10-19  Jeff Law  <law@redhat.com>
7583
7584         * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
7585         that create irreducible loops unless the path elimiantes a multiway
7586         branch.
7587
7588 2015-10-19  Richard Biener  <rguenther@suse.de>
7589
7590         PR tree-optimization/67975
7591         * tree-cfg.h (extract_true_false_controlled_edges): Declare.
7592         * tree-cfg.c (extract_true_false_controlled_edges): Split out
7593         core worker from ...
7594         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
7595         * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
7596         instead of block number for PHIs with two or one args.
7597         (vn_phi_eq): Compare edge predicates of PHIs that are in different
7598         blocks.
7599
7600 2015-10-19  Richard Biener  <rguenther@suse.de>
7601
7602         * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
7603         (gimple_stmt_nonnegative_warnv_p): Use it.
7604         * match.pd (CPROJ): New operator list.
7605         (cproj (complex ...)): Move simplifications from ...
7606         * builtins.c (fold_builtin_cproj): ... here.
7607
7608 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
7609
7610         * config/i386/i386.c (ix86_expand_vector_move): Use
7611         GET_MODE_BITSIZE for IA MCU psABI to get vector natural
7612         alignment.
7613
7614 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
7615
7616         * doc/invoke.texi: Replace @optindex with @opindex.
7617
7618 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
7619
7620         PR target/67995
7621         * config/i386/i386.c (ix86_valid_target_attribute_tree): If
7622         arch= is set,  clear all bits in x_ix86_isa_flags, except for
7623         ISA_64BIT, ABI_64, ABI_X32, and CODE16.
7624
7625 2015-10-19  Joost VandeVondele  <vondele@gnu.gcc.org>
7626
7627         PR middle-end/68002
7628         * common.opt (fkeep-static-functions): New option.
7629         * doc/invoke.texi: Document it.
7630         * cgraphunit.c (cgraph_node::finalize_function): Use it.
7631
7632 2015-10-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7633
7634         * sched-int.h (struct autopref_multipass_data_): Remove offset
7635         field.  Add min_offset, max_offset, multi_mem_insn_p fields.
7636         * haifa-sched.c (analyze_set_insn_for_autopref): New function.
7637         (autopref_multipass_init): Use it.  Handle PARALLEL sets.
7638         (autopref_rank_data): New function.
7639         (autopref_rank_for_schedule): Use it.
7640         (autopref_multipass_dfa_lookahead_guard_1): Likewise.
7641
7642 2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>
7643
7644         PR other/65800
7645         * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
7646
7647 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
7648
7649         * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
7650         (HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New.
7651         (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
7652         (STANDARD_STARTFILE_PREFIX_1): New.
7653         (STANDARD_STARTFILE_PREFIX_2): New.
7654
7655 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
7656
7657         * config/darwin-driver.c (darwin_default_min_version): Refactor code.
7658         (darwin_driver_init): Note a version-min when provided on the c/l.
7659         * config/darwin.h (%darwin_minversion): Remove.
7660         * config/i386/darwin.h: Likewise.
7661         * config/rs6000/darwin.h: Likewise.
7662         * config/darwin.opt (mmacosx-version-min=): Use the configured default,
7663         rather than an arbitrary constant.
7664
7665 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
7666
7667         * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
7668         PPC, detect conflicts between -arch and multilib settings.  Detect
7669         and warn about conflicts between multiple -arch definitions.
7670
7671 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
7672
7673         * config/darwin-driver.c: Adjust includes to add diagnostic-core.
7674
7675 2015-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7676
7677         * lra-constraints.c (add_next_usage_insn): Change argument type
7678         from rtx to rtx_insn *.
7679
7680 2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>
7681
7682         * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
7683         for Lakemont.
7684
7685 2015-10-16  Andrew MacLeod  <amacleod@redhat.com>
7686
7687         * config/tilepro/gen-mul-tables.cc: Adjust include files.
7688         * config/tilegx/mul-tables.c: Regenerate.
7689         * config/tilepro/mul-tables.c: Regenerate.
7690
7691         * config/tilegx/tilegx-c.c: Adjust include files.
7692         * config/tilegx/tilegx.c: Likewise.
7693         * config/tilepro/tilepro-c.c: Likewise.
7694         * config/tilepro/tilepro.c: Likewise.
7695         * config/aarch64/aarch64-builtins.c: Likewise.
7696         * config/aarch64/aarch64.c: Likewise.
7697         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
7698         * config/alpha/alpha.c: Likewise.
7699         * config/arc/arc.c: Likewise.
7700         * config/arm/aarch-common.c: Likewise.
7701         * config/arm/arm-builtins.c: Likewise.
7702         * config/arm/arm-c.c: Likewise.
7703         * config/arm/arm.c: Likewise.
7704         * config/avr/avr-c.c: Likewise.
7705         * config/avr/avr-devices.c: Likewise.
7706         * config/avr/avr-log.c: Likewise.
7707         * config/avr/avr.c: Likewise.
7708         * config/bfin/bfin.c: Likewise.
7709         * config/c6x/c6x.c: Likewise.
7710         * config/cr16/cr16.c: Likewise.
7711         * config/cris/cris.c: Likewise.
7712         * config/darwin-c.c: Likewise.
7713         * config/darwin-driver.c: Likewise.
7714         * config/darwin.c: Likewise.
7715         * config/default-c.c: Likewise.
7716         * config/epiphany/epiphany.c: Likewise.
7717         * config/epiphany/mode-switch-use.c: Likewise.
7718         * config/epiphany/resolve-sw-modes.c: Likewise.
7719         * config/fr30/fr30.c: Likewise.
7720         * config/frv/frv.c: Likewise.
7721         * config/ft32/ft32.c: Likewise.
7722         * config/glibc-c.c: Likewise.
7723         * config/h8300/h8300.c: Likewise.
7724         * config/i386/host-cygwin.c: Likewise.
7725         * config/i386/host-mingw32.c: Likewise.
7726         * config/i386/i386-c.c: Likewise.
7727         * config/i386/i386.c: Likewise.
7728         * config/i386/msformat-c.c: Likewise.
7729         * config/i386/winnt-cxx.c: Likewise.
7730         * config/i386/winnt-stubs.c: Likewise.
7731         * config/i386/winnt.c: Likewise.
7732         * config/ia64/ia64-c.c: Likewise.
7733         * config/ia64/ia64.c: Likewise.
7734         * config/iq2000/iq2000.c: Likewise.
7735         * config/lm32/lm32.c: Likewise.
7736         * config/m32c/m32c-pragma.c: Likewise.
7737         * config/m32c/m32c.c: Likewise.
7738         * config/m32r/m32r.c: Likewise.
7739         * config/mcore/mcore.c: Likewise.
7740         * config/mep/mep-pragma.c: Likewise.
7741         * config/mep/mep.c: Likewise.
7742         * config/microblaze/microblaze-c.c: Likewise.
7743         * config/microblaze/microblaze.c: Likewise.
7744         * config/mips/mips-tables.opt
7745         * config/mips/mips.c: Likewise.
7746         * config/mmix/mmix.c: Likewise.
7747         * config/mn10300/mn10300.c: Likewise.
7748         * config/moxie/moxie.c: Likewise.
7749         * config/msp430/msp430-c.c: Likewise.
7750         * config/msp430/msp430.c: Likewise.
7751         * config/nds32/nds32-cost.c: Likewise.
7752         * config/nds32/nds32-fp-as-gp.c: Likewise.
7753         * config/nds32/nds32-intrinsic.c: Likewise.
7754         * config/nds32/nds32-isr.c: Likewise.
7755         * config/nds32/nds32-md-auxiliary.c: Likewise.
7756         * config/nds32/nds32-memory-manipulation.c: Likewise.
7757         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
7758         * config/nds32/nds32-predicates.c: Likewise.
7759         * config/nds32/nds32.c: Likewise.
7760         * config/nios2/nios2.c: Likewise.
7761         * config/nvptx/mkoffload.c: Likewise.
7762         * config/nvptx/nvptx.c: Likewise.
7763         * config/pa/pa.c: Likewise.
7764         * config/pdp11/pdp11.c: Likewise.
7765         * config/rl78/rl78-c.c: Likewise.
7766         * config/rl78/rl78.c: Likewise.
7767         * config/rs6000/host-darwin.c: Likewise.
7768         * config/rs6000/rs6000-c.c: Likewise.
7769         * config/rs6000/rs6000-linux.c: Likewise.
7770         * config/rs6000/rs6000.c: Likewise.
7771         * config/rx/rx.c: Likewise.
7772         * config/s390/s390-c.c: Likewise.
7773         * config/s390/s390.c: Likewise.
7774         * config/sh/sh-c.c: Likewise.
7775         * config/sh/sh-mem.cc: Likewise.
7776         * config/sh/sh.c: Likewise.
7777         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
7778         * config/sh/sh_treg_combine.cc: Likewise.
7779         * config/sol2-c.c: Likewise.
7780         * config/sol2-cxx.c: Likewise.
7781         * config/sol2-stubs.c: Likewise.
7782         * config/sol2.c: Likewise.
7783         * config/sparc/sparc-c.c: Likewise.
7784         * config/sparc/sparc.c: Likewise.
7785         * config/spu/spu-c.c: Likewise.
7786         * config/spu/spu.c: Likewise.
7787         * config/stormy16/stormy16.c: Likewise.
7788         * config/v850/v850-c.c: Likewise.
7789         * config/v850/v850.c: Likewise.
7790         * config/vax/vax.c: Likewise.
7791         * config/visium/visium.c: Likewise.
7792         * config/vms/vms-c.c: Likewise.
7793         * config/vms/vms.c: Likewise.
7794         * config/vxworks.c: Likewise.
7795         * config/winnt-c.c: Likewise.
7796         * config/xtensa/xtensa.c: Likewise.
7797
7798 2015-10-16  Christian Bruel  <christian.bruel@st.com>
7799
7800         PR target/67745
7801         * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
7802         (FUNCTION_BOUNDARY_P): New macro:
7803         * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
7804         New hook.
7805         * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
7806         * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
7807         * target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
7808         * function.c (allocate_struct_function): Call
7809         relayout_function hook.
7810         * passes.c (rest_of_decl_compilation): Likewise.
7811
7812 2015-10-16  Christian Bruel  <christian.bruel@st.com>
7813
7814         PR target/67745
7815         * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
7816         * config/arm/arm.c (arm_option_override_internal): Call
7817         arm_override_options_after_change_1.
7818         (arm_override_options_after_change): New function.
7819         (arm_override_options_after_change_1): Likewise.
7820         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
7821
7822 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
7823
7824         Revert:
7825         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
7826         empty constructors.
7827
7828 2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>
7829
7830         * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
7831         argument is an ADDR_EXPR.
7832
7833 2015-10-16  Richard Biener  <rguenther@suse.de>
7834
7835         * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
7836         and get rid of force_gimple_operand_gsi.
7837         (gimple_fold_builtin_memory_chk): Likewise.
7838         (gimple_fold_builtin_stxcpy_chk): Likewise.
7839         (rewrite_to_defined_overflow): Likewise.
7840         (gimple_convert_to_ptrofftype): New function.
7841         * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
7842
7843 2015-10-16  Richard Biener  <rguenther@suse.de>
7844
7845         * tree-nested.h (build_addr): Adjust prototype.
7846         * tree-nested.c (build_addr): Remove context argument and use
7847         mark_addressable.
7848         (get_static_chain): Adjust calls to build_addr.
7849         (convert_nl_goto_reference): Likewise.
7850         (convert_tramp_reference_op): Likewise.
7851         (finalize_nesting_tree_1): Likewise.
7852         * value-prof.c (gimple_ic): Likewise.
7853         * gimple-low.c (lower_builtin_setjmp): Likewise.
7854         * tree-parloops.c (take_address_of): Likewise.
7855         (create_call_for_reduction_1): Likewise.
7856         * tree-profile.c (gimple_gen_interval_profiler): Likewise.
7857         (gimple_gen_ic_func_profiler): Likewise.
7858
7859 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
7860
7861         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
7862         empty constructors.
7863
7864 2015-10-16  Michael Collison  <michael.collison@linaro.org>
7865             Andrew Pinski <andrew.pinski@caviumnetworks.com>
7866
7867         * match.pd ((x < y) && (x < z) -> x < min (y,z),
7868         (x > y) and (x > z) -> x > max (y,z))
7869
7870 2015-10-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
7871             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7872
7873         * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
7874         (DYNAMIC_LINKER): Renamed to ...
7875         (GLIBC_DYNAMIC_LINKER): This.
7876         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
7877
7878 2015-10-15  Marek Polacek  <polacek@redhat.com>
7879
7880         * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
7881         gimple_call_builtin instead of is_gimple_call.
7882
7883 2015-10-15  Richard Biener  <rguenther@suse.de>
7884
7885         * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
7886
7887 2015-10-15  Richard Biener  <rguenther@suse.de>
7888
7889         * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
7890         * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
7891         * tree-vect-loop.c (get_initial_def_for_induction): Drop
7892         use of force_gimple_operand in favor of gimple_build.
7893         Use vect_get_new_ssa_name.
7894         * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
7895         (vectorizable_mask_load_store): Likewise.
7896         (vectorizable_call): Likewise.
7897         (vectorizable_store): Likewise.
7898         (vectorizable_load): Likewise.
7899         (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
7900
7901 2015-10-15  Richard Sandiford  <richard.sandiford@arm.com>
7902
7903         PR tree-optimization/67945
7904         * tree-pass.h (PROP_gimple_opt_math): New property flag.
7905         * generic-match-head.c (canonicalize_math_p): New function.
7906         * gimple-match-head.c: Include tree-pass.h.
7907         (canonicalize_math_p): New function.
7908         * match.pd: Group math built-in rules into simplifications
7909         and canonicalizations.  Guard the latter with canonicalize_math_p.
7910         * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
7911         PROP_gimple_opt_math property.
7912
7913 2015-10-15  Marek Polacek  <polacek@redhat.com>
7914
7915         PR tree-optimization/67953
7916         * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
7917
7918 2015-10-15  Jiong Wang  <jiong.wang@arm.com>
7919
7920         * config.gcc: Recognize "." in architecture base name for AArch64.
7921
7922 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
7923
7924         * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
7925         ROUND_UP macro.
7926         * config/mips/mips.c (mips_setup_incoming_varargs): Use
7927         ROUND_DOWN to calculate off.
7928         (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
7929         (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
7930         rounded_size.
7931
7932 2015-10-14  Eric Botcazou  <ebotcazou@adacore.com>
7933
7934         * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
7935
7936 2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
7937             Torvald Riegel  <triegel@redhat.com>
7938
7939         PR target/67281
7940         * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
7941         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
7942         trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
7943         (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
7944         *trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
7945         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
7946         trechkpt, treclaim, tsr, ttest): New define_expands.
7947         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
7948         __TM_FENCE__ for htm.
7949         * doc/extend.texi: Update documentation for htm builtins.
7950
7951 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
7952
7953         PR target/67967
7954         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
7955         REG_CFA_EXPRESSION to aligned SSE stores.
7956
7957 2015-10-14  Jeff Law  <law@redhat.com>
7958
7959         * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
7960         num_threaded_edges for successful FSM threads too.
7961
7962 2015-10-14  Richard Biener  <rguenther@suse.de>
7963
7964         * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
7965         (vect_is_simple_use_1): Likewise.  Make overload of vect_is_simple_use.
7966         (vect_get_vec_def_for_operand): Remove unused parameter.
7967         * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
7968         (vect_create_epilog_for_reduction): Likewise.
7969         (vectorizable_reduction): Likewise.
7970         (vectorizable_live_operation): Likewise.
7971         * tree-vect-patterns.c (type_conversion_p): Likewise.
7972         (vect_recog_vector_vector_shift_pattern): Likewise.
7973         (check_bool_pattern): Likewise.
7974         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
7975         (vect_analyze_slp_cost_1): Likewise.
7976         * tree-vect-stmts.c (process_use): Likewise.
7977         (vect_get_vec_def_for_operand): Do not handle reductions.
7978         (vect_get_vec_defs): Adjust.
7979         (vectorizable_mask_load_store): Likewise.
7980         (vectorizable_call): Likewise.
7981         (vectorizable_simd_clone_call): Likewise.
7982         (vect_get_loop_based_defs): Likewise.
7983         (vectorizable_conversion): Likewise.
7984         (vectorizable_assignment): Likewise.
7985         (vectorizable_shift): Likewise.
7986         (vectorizable_operation): Likewise.
7987         (vectorizable_store): Likewise.
7988         (vectorizable_load): Likewise.
7989         (vect_is_simple_cond): Likewise.
7990         (vectorizable_condition): Likewise.
7991         (vect_is_simple_use): Remove unused parameters.
7992         (vect_is_simple_use_1): Adjust and rename.
7993
7994 2015-10-14  Richard Biener  <rguenther@suse.de>
7995
7996         PR tree-optimization/67915
7997         * match.pd: Handle comparisons of addresses of STRING_CSTs.
7998         * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
7999         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
8000         stmt folding in favor of GIMPLE one.
8001
8002 2015-10-14  Marek Polacek  <polacek@redhat.com>
8003
8004         PR tree-optimization/67815
8005         * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
8006         (reassociate_bb): Call it.
8007
8008 2015-10-14  Richard Biener  <rguenther@suse.de>
8009
8010         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
8011         Reset info at start.
8012         (vect_analyze_group_access_1): Add debug print.
8013         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
8014         (vect_compute_single_scalar_iteration_cost): ... to this.
8015         (vect_analyze_loop_2): Adjust.
8016         * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
8017         * tree-vectorizer.h: ... here.
8018         (add_stmt_info_to_vec): Remove.
8019         * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
8020
8021 2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8022
8023         * targhooks.c (default_target_option_pragma_parse): Do not warn if
8024         called on behalf of "#pragma GCC pop_options".
8025
8026 2015-10-14  Tom de Vries  <tom@codesourcery.com>
8027
8028         * cfganal.c (verify_no_unreachable_blocks): New function.
8029         (inverted_post_order_compute) [ENABLE_CHECKING]: Call
8030         verify_no_unreachable_blocks.
8031         cfganal.h (verify_no_unreachable_blocks): Declare.
8032
8033 2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
8034
8035         * common.opt: Add flag_checking.
8036         * system.h (CHECKING_P): Define.
8037
8038 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
8039             Aldy Hernandez  <aldyh@redhat.com>
8040             Ilya Verbin  <ilya.verbin@intel.com>
8041
8042         * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
8043         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
8044         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
8045         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
8046         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
8047         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
8048         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
8049         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
8050         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
8051         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
8052         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
8053         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
8054         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
8055         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
8056         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
8057         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
8058         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
8059         (struct cgraph_simd_clone_arg): Adjust comment.
8060         * coretypes.h (struct gomp_ordered): New forward decl.
8061         * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
8062         set critical clauses to it.
8063         (gimple_build_omp_ordered): Return gomp_ordered * instead of
8064         gimple *.  Add CLAUSES argument, set ordered clauses to it.
8065         (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
8066         GIMPLE_OMP_ORDERED.
8067         * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
8068         GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
8069         * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
8070         to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
8071         GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
8072         GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
8073         Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
8074         GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
8075         renumber
8076         GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
8077         (gomp_critical): Add clauses field.
8078         (gomp_ordered): New struct.
8079         (is_a_helper <gomp_ordered *>::test): New inline.
8080         (gimple_build_omp_critical): Add CLAUSES argument.
8081         (gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
8082         instead of gimple *.
8083         (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
8084         gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
8085         gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
8086         gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
8087         inline functions.
8088         * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
8089         (dump_gimple_omp_target): Handle enter data and exit data.
8090         (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
8091         (dump_gimple_omp_critical): Print clauses.
8092         (dump_gimple_omp_ordered): New function.
8093         (dump_gimple_omp_task): Handle taskloop.
8094         (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
8095         GIMPLE_OMP_ORDERED.
8096         * gimple-walk.c (walk_gimple_op): Walk clauses on
8097         GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
8098         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
8099         (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
8100         (struct gimplify_omp_ctx): Add loop_iter_var,
8101         target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
8102         and target_firstprivatize_array_bases fields.
8103         (delete_omp_context): Release loop_iter_var.
8104         (gimplify_bind_expr): Handle ORT_NONE.
8105         (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
8106         ORT_COMBINED_TARGET.
8107         (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
8108         OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
8109         (omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
8110         ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
8111         ctx->target_map_scalars_firstprivate.
8112         (omp_add_variable): Handle ORT_NONE.  Allow map clause together with
8113         data sharing clauses.  For data sharing clause with VLA decl
8114         on omp target/target data don't add firstprivate for the pointer.
8115         Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
8116         (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
8117         the addition of ORT_COMBINED_TARGET.
8118         (omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
8119         for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
8120         pointers as zero length array sections and
8121         ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
8122         data sharing.
8123         (omp_check_private): Handle omp_member_access_dummy_var vars.
8124         (find_decl_expr): New function.
8125         (gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
8126         complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
8127         Handle OMP_CLAUSE_GANG separately.  Handle
8128         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
8129         clauses.  Diagnose linear clause on combined
8130         distribute {, parallel for} simd construct, unless it is the loop
8131         iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
8132         Handle map clauses with COMPONENT_REF.  Initialize
8133         ctx->target_map_scalars_firstprivate,
8134         ctx->target_firstprivatize_array_bases and
8135         ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
8136         linear clause even to target region if combined.  Remove
8137         map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
8138         OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
8139         map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
8140         Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
8141         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
8142         For linear clause on worksharing loop combined with parallel add
8143         shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
8144         with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
8145         omp_member_access_dummy_var vars.  Add lastprivate clause to outer
8146         taskloop if needed.
8147         (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
8148         If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
8149         GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
8150         GOMP_MAP_POINTER.
8151         (gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
8152         of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
8153         in target body.  Handle removal of struct mapping if struct is not
8154         seen in target body.  Remove GOMP_MAP_STRUCT map clause on
8155         OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
8156         addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
8157         instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
8158         for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
8159         clause appear together.  Handle
8160         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
8161         clause if it has map-type-modifier always.  Handle
8162         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
8163         clauses.
8164         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
8165         Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
8166         callers.
8167         (gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
8168         loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
8169         iterators in doacross loops.
8170         (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
8171         gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
8172         for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
8173         for the addition of ORT_COMBINED_TARGET.
8174         (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
8175         gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
8176         and OMP_TARGET_EXIT_DATA.
8177         (gimplify_omp_ordered): New function.
8178         (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
8179         OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
8180         Gimplify clauses on OMP_CRITICAL.
8181         * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
8182         expand_GOMP_SIMD_ORDERED_END): New functions.
8183         * internal-fn.def (GOMP_SIMD_ORDERED_START,
8184         GOMP_SIMD_ORDERED_END): New internal functions.
8185         * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
8186         BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
8187         BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
8188         BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
8189         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
8190         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
8191         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
8192         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
8193         BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
8194         BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
8195         BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
8196         BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
8197         (BUILT_IN_GOMP_TASK): Add INT argument to the end.
8198         (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
8199         adjust type.
8200         (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
8201         GOMP_target_data_41, adjust type.
8202         (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
8203         GOMP_target_update_41, adjust type.
8204         * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
8205         field.
8206         (struct omp_for_data): Add ordered and simd_schedule fields.
8207         (omp_member_access_dummy_var, unshare_and_remap_1,
8208         unshare_and_remap, is_taskloop_ctx): New functions.
8209         (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
8210         (extract_omp_for_data): Handle taskloops and doacross loops
8211         and simd schedule modifier.
8212         (omp_adjust_chunk_size): New function.
8213         (get_ws_args_for): Use it.
8214         (lookup_sfield): Change first argument to splay_tree_key,
8215         add overload with first argument tree.
8216         (maybe_lookup_field): Likewise.
8217         (use_pointer_for_field): Handle omp_member_access_dummy_var.
8218         (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
8219         task_shared_vars, clear TREE_ADDRESSABLE on the copy.
8220         (build_outer_var_ref): Add LASTPRIVATE argument, handle
8221         taskloops and omp_member_access_dummy_var vars.
8222         (build_sender_ref): Change first argument to splay_tree_key,
8223         add overload with first argument tree.
8224         (install_var_field): For mask & 8 use &DECL_UID as key instead
8225         of the tree itself.
8226         (fixup_child_record_type): Const qualify *.omp_data_i.
8227         (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
8228         C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
8229         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
8230         OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
8231         on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
8232         (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
8233         (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
8234         kinds.
8235         (add_taskreg_looptemp_clauses): New function.
8236         (scan_omp_parallel): Use it.
8237         (scan_omp_task): Likewise.
8238         (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
8239         For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
8240         (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
8241         and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
8242         sandwiched taskloop constructs.  Type check
8243         OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
8244         region.  Diagnose depend(source) or depend(sink:...) on
8245         target constructs or task/taskloop.
8246         (handle_simd_reference): Use get_name.
8247         (lower_rec_input_clauses): Likewise.  Ignore all
8248         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
8249         Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
8250         before passing it to omp_clause_{default,copy}_ctor.  Handle
8251         OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
8252         lastprivate_firstprivate flag for linear that needs copyin and
8253         copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
8254         (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
8255         on taskloop lookup decl in outer context.  Pass true to
8256         build_outer_var_ref lastprivate argument.  Handle
8257         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
8258         outside of outer taskloop for.
8259         (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
8260         OMP_CLAUSE_DECL.
8261         (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
8262         GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
8263         omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
8264         with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
8265         (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
8266         abstract origin.  Handle omp_member_access_dummy_var vars.
8267         (expand_parallel_call): Use expand_omp_build_assign.
8268         (expand_task_call): Handle taskloop construct expansion.  Add
8269         REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
8270         integers.  Add priority argument to GOMP_task* calls.  Or in
8271         GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
8272         GOMP_task call.
8273         (expand_omp_build_assign): Add prototype.  Add AFTER
8274         argument, if true emit statements after *GSI_P and continue linking.
8275         (expand_omp_taskreg): Adjust expand_task_call caller.
8276         (expand_omp_for_init_counts): Rename zero_iter_bb argument to
8277         zero_iter1_bb and first_zero_iter to first_zero_iter1, add
8278         zero_iter2_bb and first_zero_iter2 arguments, handle computation
8279         of counts even for ordered loops.
8280         (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
8281         (expand_omp_ordered_source, expand_omp_ordered_sink,
8282         expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
8283         functions.
8284         (expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
8285         clauses on worksharing loop.  Handle DOACROSS loop expansion.
8286         (expand_omp_for_static_nochunk): Handle linear clauses on
8287         worksharing loop.  Adjust expand_omp_for_init_counts
8288         callers.
8289         (expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
8290         (expand_omp_simd): Handle addressable fd->loop.v.  Adjust
8291         expand_omp_for_init_counts callers.
8292         (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
8293         functions.
8294         (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
8295         Handle doacross loops.
8296         (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
8297         GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
8298         GOMP_target_{41,update_41,enter_exit_data} libcalls.
8299         (expand_omp): Don't expand ordered depend constructs here, record
8300         ord_stmt instead for later expand_omp_for_generic.
8301         (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
8302         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
8303         clause as stand-alone directive.
8304         (lower_omp_ordered_clauses): New function.
8305         (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
8306         don't lower anything.
8307         (lower_omp_for_lastprivate): Use last _looptemp_ clause
8308         on taskloop for comparison.
8309         (lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
8310         and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
8311         expansion for linear adjustments.
8312         (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
8313         (lower_depend_clauses): Assert not seeing sink/source depend kinds.
8314         Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
8315         to tree * pointing to the stmt's clauses.
8316         (lower_omp_taskreg): Adjust lower_depend_clauses caller.
8317         (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
8318         and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
8319         GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
8320         map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
8321         clauses.  Always use short kind and 8-bit align shift.
8322         (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
8323         (struct lower_omp_regimplify_operands_data): New type.
8324         (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
8325         New functions.
8326         (lower_omp_1): Use lower_omp_regimplify_operands instead of
8327         gimple_regimplify_operands.
8328         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
8329         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
8330         clause as stand-alone directive.
8331         (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
8332         (simd_clone_mangle): Mangle the various linear kinds
8333         per the new ABI.
8334         (simd_clone_adjust_argument_types): Handle
8335         SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
8336         (simd_clone_init_simd_arrays): Don't do anything for uval.
8337         (simd_clone_adjust): Handle
8338         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
8339         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
8340         Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
8341         * omp-low.h (omp_member_access_dummy_var): New prototype.
8342         * passes.def (pass_simduid_cleanup): Schedule another copy of the
8343         pass after all optimizations.
8344         * tree.c (omp_clause_code_name): Add entries for
8345         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
8346         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
8347         (omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
8348         arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
8349         (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
8350         OMP_CLAUSE_REDUCTION 5 arguments.  Handle
8351         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
8352         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
8353         clauses.
8354         * tree-core.h (enum omp_clause_linear_kind): New.
8355         (struct tree_omp_clause): Change type of map_kind
8356         from unsigned char to unsigned int.  Add subcode.if_modifier
8357         and subcode.linear_kind fields.
8358         (enum omp_clause_code): Add
8359         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
8360         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
8361         (OMP_CLAUSE_REDUCTION): Document
8362         OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
8363         (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
8364         * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
8365         (OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
8366         operand.
8367         (OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
8368         operand.
8369         (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
8370         codes.
8371         * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
8372         (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
8373         char.
8374         (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
8375         (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
8376         (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
8377         (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
8378         OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
8379         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
8380         OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
8381         OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
8382         OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
8383         OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
8384         OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
8385         OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
8386         OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
8387         * tree-inline.c (remap_gimple_stmt): Handle clauses on
8388         GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
8389         IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
8390         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
8391         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
8392         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
8393         clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
8394         (convert_local_omp_clauses): Likewise.
8395         * tree-pretty-print.c (dump_omp_clause): Handle
8396         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
8397         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
8398         clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
8399         OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
8400         OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
8401         GOMP_MAP_FORCE_DEALLOC.  Handle
8402         GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
8403         (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
8404         and clauses on OMP_ORDERED and OMP_CRITICAL.
8405         * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
8406         Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
8407         (vectorize_loops): Adjust comments.
8408         (pass_simduid_cleanup::execute): Likewise.
8409         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
8410         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
8411         * wide-int.h (wi::gcd): New.
8412
8413 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
8414
8415         * config/i386/i386.c (classify_argument): Use CEIL where applicable.
8416         (ix86_function_arg_advance): Ditto.
8417         (ix86_function_arg): Ditto.
8418         (ix86_gimplify_va_arg): Ditto.
8419         (ix86_class_max_nregs): Ditto.
8420         (inline_memory_move_cost): Ditto.
8421         (ix86_set_reg_reg_cost): Ditto.
8422         * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
8423
8424 2015-10-13  Alexandre Oliva <aoliva@redhat.com>
8425
8426         PR middle-end/67912
8427         * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
8428
8429 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
8430
8431         * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
8432         ROUND_UP macro and UNITS_PER_WORD * 2.
8433         * config/sparc/sparc.c (sparc_compute_frame_size):
8434         Use ROUND_UP and ROUND_DOWN macros where applicable.
8435         (function_arg_record_value, function_arg_record_value_1)
8436         (function_arg_record_value_1): Ditto.
8437         (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
8438         alignment to double-word.
8439         (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
8440         (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
8441         rounded_size.
8442
8443 2015-10-13  Nikolai Bozhenov  <n.bozhenov@samsung.com>
8444
8445         * rtl.h (print_insn): Fix prototype.
8446
8447 2015-10-13  Tom de Vries  <tom@codesourcery.com>
8448
8449         * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
8450         -1.  Add assert that returned entry matches phi argument.
8451         (parallelize_loops): Move calls to init_stmt_vec_info_vec and
8452         free_stmt_vec_info_vec ...
8453         (gather_scalar_reductions): ... here.  Initialize gimple_uids of phis
8454         with -1.
8455
8456 2014-10-13  Yuri Rumyantsev  <ysrumyan@gmail.com>
8457
8458         PR tree-optimization/67909, 67947
8459         * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
8460         really skip the inner loop.
8461
8462 2015-10-13  Jeff Law  <law@redhat.com>
8463
8464         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8465         Allow single block jump threading paths.
8466
8467 2015-10-13  Tom de Vries  <tom@codesourcery.com>
8468
8469         PR tree-optimization/67476
8470         * doc/invoke.texi (@item parloops-schedule): New item.
8471         * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
8472         * tree-parloops.c: Include params-enum.h.
8473         (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
8474
8475 2015-10-13  Tom de Vries  <tom@codesourcery.com>
8476
8477         * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
8478         * params-enum.h: New file.
8479         * opts.c (handle_param): Handle case that param arg is a string.
8480         * params-list.h: Handle DEFPARAMENUM5 in params.def.
8481         * params.c (find_param): New function, factored out of ...
8482         (set_param_value): ... here.
8483         (param_string_value_p): New function.
8484         * params.h (struct param_info): Add value_names field.
8485         (find_param, param_string_value_p): Declare.
8486
8487 2015-10-13  Tom de Vries  <tom@codesourcery.com>
8488
8489         PR tree-optimization/67476
8490         * omp-low.c (expand_omp_for_generic): Handle original loop tree.
8491
8492 2015-10-13  Richard Biener  <rguenther@suse.de>
8493
8494         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
8495         the data dependence vector.
8496         (vect_peeling_hash_insert): Get the peeling hash table as argument.
8497         (vect_peeling_hash_get_lowest_cost): Likewise.
8498         (vect_enhance_data_refs_alignment): Adjust.
8499         (struct _vect_peel_info, struct _vect_peel_extended_info,
8500         struct peel_info_hasher): Move from ...
8501         * tree-vectorizer.h: ... here.
8502         (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
8503         (LOOP_VINFO_PEELING_HTAB): Likewise.
8504         (struct _loop_vec_info): Remove min_profitable_iters and
8505         peeling_htab members.
8506         * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
8507         here.
8508         (destroy_loop_vec_info): Adjust.
8509         (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
8510         (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
8511         to estimate alias versioning cost.
8512         * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
8513
8514 2015-10-13  Richard Sandiford  <richard.sandiford@arm.com>
8515
8516         * real.h (real_isinteger): Declare.
8517         * real.c (real_isinteger): New function.
8518         * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
8519         if y is an even integer.
8520
8521 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8522
8523         revert:
8524         2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8525         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
8526         counts when these are more informative.
8527
8528 2015-10-12  Jeff Law  <law@redhat.com>
8529
8530         * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
8531         (fsm_find_control_stmt_paths): Change name of first argument to
8532         more accurately relfect what it really is.  Handle simplification
8533         of GIMPLE_COND after finding a thread path for NAME.
8534         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
8535         nontrivial conditions to be handled by FSM threader.
8536         (thread_through_normal_block): Extract the name to looup via
8537         FSM threader from COND_EXPR.
8538
8539         * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
8540         restriction that traced SSA_NAME is a user variable.
8541
8542 2015-10-12  Tom de Vries  <tom@codesourcery.com>
8543
8544         PR tree-optimization/67476
8545         * omp-low.c (expand_omp_for_generic): Add missing phis.
8546
8547 2015-10-12  Tom de Vries  <tom@codesourcery.com>
8548
8549         PR tree-optimization/67476
8550         * omp-low.c (expand_omp_for_generic): Handle simple latch.
8551
8552 2015-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
8553
8554         * config/aarch64/aarch64-simd-builtins.def: Update builtins
8555         tables: add tbl3 and tbx4.
8556         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
8557         (aarch64_tbx4v8qi): New.
8558         * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
8559         (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
8560         Rewrite using builtin functions.
8561         * config/aarch64/iterators.md (UNSPEC_TBX): New.
8562
8563 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
8564
8565         * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
8566         ROUND_UP macro.
8567         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
8568         Use ROUND_UP and ROUND_DOWN macros where applicable.
8569         (rs6000_darwin64_record_arg_flush): Ditto.
8570         (rs6000_function_arg): Use ROUND_UP to calculate align_words.
8571         (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
8572         rounded_size.
8573
8574 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
8575
8576         * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
8577         (AARCH64_ROUND_DOWN): Ditto.
8578         * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
8579
8580 2015-10-12  Richard Biener  <rguenther@suse.de>
8581
8582         PR ipa/67783
8583         * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
8584         code that analyzes IVs on each stmt but in a cheaper way avoiding
8585         quadratic behavior.
8586
8587 2015-10-12  Nick Clifton  <nickc@redhat.com>
8588
8589         * config/msp430/msp430.c (msp430_mcu_names): Rename to
8590         msp430_mcu_data, add fields for ISA and hardware multiply
8591         support.  Import latest data from the devices.csv file.
8592         (msp430_override_option): Use the data from the new array.
8593         (msp430_use_f5_series_hwmult): Likewise.
8594         (use_32bit_hwmult): Likewise.
8595         (msp430_no_hwmult): Likewise.
8596         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
8597         MCU names.
8598         * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
8599         not recognised then no hardware multiply support is assumed and
8600         that only the MSP430 ISA is allowed.
8601
8602 2015-10-12  Richard Biener  <rguenther@suse.de>
8603
8604         * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
8605         related code ...
8606         (vect_analyze_loop_2): ... here.
8607
8608 2015-10-11  Jason Merrill  <jason@redhat.com>
8609
8610         PR c++/67557
8611         * expr.c (store_field): Call store_constructor directly when
8612         storing a CONSTRUCTOR into a target smaller than its type.
8613         Guard against unsafe bitwise copy.
8614
8615 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8616
8617         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
8618         counts when these are more informative.
8619
8620 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8621
8622         * tree-profile.c (tree_profiling): Do not clear
8623         pure/const when not instrumenting.
8624         (pass tree_profile): Add dump of symtab.
8625
8626 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
8627
8628         * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
8629         addresses.
8630         (fold_addr_of_array_ref_difference): Likewise.
8631
8632 2015-10-11  Jeff Law  <law@redhat.com>
8633
8634         * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
8635         tree-ssa-threadbackward.c.
8636         (fsm_find_control_statement_thread_paths): Likewise.
8637         (thread_through_normal_block): Break out FSM bits and move them
8638         into a new function in tree-ssa-threadbackward.c.  Call new function
8639         instead.
8640         Minimize header file usage.
8641         * tree-ssa-threadbackward.h: New file.
8642         * tree-ssa-threadbackward.c: Likewise.
8643         * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
8644
8645 2015-10-11  Uros Bizjak  <ubizjak@gmail.com>
8646
8647         * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
8648
8649 2015-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
8650
8651         PR rtl-optimization/67864
8652         * bb-reorder (reorder_basic_blocks_simple): Prefer existing
8653         fallthrough edges for conditional jumps.  Don't sort candidate
8654         edges if not optimizing for speed.
8655
8656 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8657
8658         * defaults.h (REVERSE_CONDITION): New default definition.
8659         * jump.c (reversed_comparison_code_parts): Adjust.
8660
8661 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8662
8663         * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
8664         check HARD_FRAME_POINTER_IS_ARG_POINTER.
8665
8666 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8667
8668         * defaults.h (FRAME_ADDR_RTX): New default definition.
8669         * builtins.c (expand_builtin_return_addr): Adjust.
8670
8671 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8672
8673         * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
8674         * builtins.c (expand_builtin_return_addr): Adjust.
8675
8676 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8677
8678         * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
8679         * builtins.c (expand_builtin_return_addr): Adjust.
8680         * doc/tm.texi: Likewise.
8681         * doc/tm.texi.in: Likewise.
8682         * except.c (expand_builtin_unwind_init): Likewise.
8683
8684 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8685
8686         * builtins.c (expand_builtin_return_addr): Adjust.
8687         * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
8688
8689 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
8690
8691         * tree.c (type_with_interoperable_signedness): New.
8692         (gimple_canonical_types_compatible_p): Use it.
8693         * tree.h (type_with_interoperable_signedness): Declare
8694
8695 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
8696
8697         * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
8698         and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
8699         when OEP_ADDRESS_OF is se.
8700
8701 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
8702             Sebastian Pop  <s.pop@samsung.com>
8703
8704         * graphite-dependences.c (scop_get_dependences): Add dump of the
8705         data dependence graph.
8706         * graphite-poly.c (print_isl_union_map): New.
8707         (debug_isl_union_map): New.
8708         * graphite-poly.h (print_isl_union_map): Declare.
8709         (debug_isl_union_map): Declare.
8710
8711 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
8712             Sebastian Pop  <s.pop@samsung.com>
8713
8714         * graphite-poly.c (print_iteration_domain): Remove verbosity.
8715         Remove OpenScop formatting.
8716         (print_iteration_domains): Same.
8717         (debug_iteration_domain): Same.
8718         (debug_iteration_domains): Same.
8719         (print_pdr): Same.
8720         (debug_pdr): Same.
8721         (dump_gbb_cases): Same.
8722         (dump_gbb_conditions): Same.
8723         (print_pdrs): Same.
8724         (debug_pdrs): Same.
8725         (print_pbb_body): Same.
8726         (print_pbb): Same.
8727         (print_scop_params): Same.
8728         (print_scop_context): Same.
8729         (print_scop): Same.
8730         (debug_pbb_domain): Same.
8731         (debug_pbb): Same.
8732         (debug_scop_context): Same.
8733         (debug_scop): Same.
8734         (debug_scop_params): Same.
8735         * graphite-poly.h: Same.
8736         * graphite.c (graphite_transform_loops): Same.
8737
8738 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8739
8740         * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
8741         call that isn't needed.
8742
8743 2015-10-09  Jeff Law  <law@redhat.com>
8744
8745         * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
8746         rather than moving each name to the freelist individually.
8747
8748 2015-10-09  Steve Ellcey  <sellcey@imgtec.com>
8749
8750         * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
8751         * frame-header-opt.c: New file.
8752         * config/mips/mips-proto.h (mips_register_frame_header_opt):
8753         Add prototype.
8754         * config/mips/mips.c (mips_compute_frame_info): Check
8755         optimize_call_stack flag.
8756         (mips_option_override): Register new frame_header_opt pass.
8757         (mips_frame_info, mips_int_mask, mips_shadow_set,
8758         machine_function): Move these types to...
8759         * config/mips/mips.h: here.
8760         (machine_function): Add does_not_use_frame_header and
8761         optimize_call_stack fields.
8762         * config/mips/t-mips (frame-header-opt.o): Add new make rule.
8763         * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
8764         Document new flags.
8765         * config/mips/mips.opt (mframe-header-opt): Add new option.
8766
8767 2015-10-09  Uros Bizjak  <ubizjak@gmail.com>
8768
8769         * config/i386/i386.c
8770         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
8771         ROUND_DOWN where applicable.
8772
8773 2015-10-09  Jeff Law  <law@redhat.com>
8774
8775         * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
8776         correct statement.
8777
8778 2015-10-09  Renlin Li  <renlin.li@arm.com>
8779
8780         * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
8781         operands[0] and operands[2].
8782         (neon_vtrn<mode>_insn): Likewise.
8783         (neon_vzip<mode>_insn): Likewise.
8784
8785 2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
8786
8787         * match.pd: ((X inner_op C0) outer_op C1) New pattern.
8788         ((X & C2) << C1): Expand to...
8789         (X {&,^,|} C2 << C1): ...This.
8790         ((X & C2) >> C1): Expand to...
8791         (X {&,^,|} C2 >> C1): ...This.
8792
8793 2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>
8794
8795         PR target/67895
8796         * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
8797         Adjust embedded rounding/SAE specifier position.
8798         (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
8799         (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
8800         (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
8801         (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
8802         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
8803         Likewise.
8804         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
8805
8806 2015-10-09  Martin Jambor  <mjambor@suse.cz>
8807
8808         tree-optimization/67794
8809         * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
8810         between types of state,ents but accept original definitions as a
8811         parameter.
8812         (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
8813         iterate over definitions.
8814
8815 2015-10-09  James Norris  <jnorris@codesourcery.com>
8816
8817         * config/rs6000/rs6000.c (rs6000_offload_options): New.
8818         (TARGET_OFFLOAD_OPTIONS): New.
8819
8820 2015-10-09  Alexandre Oliva <aoliva@redhat.com>
8821
8822         PR middle-end/67891
8823         * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
8824
8825         PR middle-end/67766
8826         * function.c (expand_function_end): Move return value
8827         promotion past the handling of PARALLELs and CONCATs.
8828
8829         PR rtl-optimization/67828
8830         * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
8831         (tree_may_unswitch_on): Don't unswitch on expressions
8832         involving undefined values.
8833
8834 2015-10-09  Richard Biener  <rguenther@suse.de>
8835
8836         * genmatch.c (print_operand): Fix formatting.
8837         (dt_node::append_simplify): Warn for multiple simplifiers
8838         that match the same pattern.
8839         * match.pd (log (exp @0)): Remove duplicates.
8840
8841 2015-10-09  Richard Biener  <rguenth@suse.de>
8842
8843         PR target/67366
8844         * gimple-fold.c (optabs-query.h): Include
8845         (gimple_fold_builtin_memory_op): Allow unaligned stores
8846         when movmisalign_optabs are available.
8847
8848 2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8849
8850         PR target/67366
8851         * config/arm/arm.md (movmisalign<mode>): New.
8852         * config/arm/iterators.md (HSI): New.
8853
8854 2015-10-09  Richard Biener  <rguenther@suse.de>
8855
8856         PR tree-optimization/67891
8857         * gimple-match.h (gimple_simplified_result_is_gimple_val):
8858         New helper.
8859         (gimple_resimplify1): Declare.
8860         (gimple_resimplify2): Likewise.
8861         (gimple_resimplify3): Likewise.
8862         * gimple-match-head.c (gimple_resimplify1): Export.
8863         (gimple_resimplify2): Likewise.
8864         (gimple_resimplify3): Likewise.
8865         (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
8866         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
8867         * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
8868         to avoid creating stmts without VN info.
8869
8870 2015-10-08  Jan Hubicka  <hubicka@ucw.cz>
8871
8872         * ipa-icf.c (sem_item::compare_symbol_references): Fix use
8873         of availability.
8874
8875 2015-10-08  Jeff Law  <law@redhat.com>
8876
8877         * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
8878         and release_ssa_name in two places.
8879         (gimple_stringop_fixed_value): Similarly.
8880
8881         * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
8882         release_defs.
8883
8884         * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
8885         unlink_stmt_vdef and release_ssa_name_fn.
8886
8887         * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
8888         release_defs.
8889
8890 2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>
8891
8892         * config/i386/i386.c (ix86_compute_frame_layout): Round up the
8893         SSE register save area to 16 bytes only if the incoming stack
8894         boundary is no less than 16 bytes.
8895
8896 2015-10-08  Jeff Law  <law@redhat.com>
8897
8898         * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
8899         release_ssa_name.  Fix typo in comment.
8900
8901 2015-10-08  Nathan Sidwell  <nathan@acm.org>
8902
8903         * config/nvptx/nvptx.h (struct machine_function): Add comment.
8904         * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
8905         may return pointer as well as in memory.
8906         (nvptx_output_return): Likewise.
8907
8908 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
8909
8910         * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
8911         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
8912         * match.pd: Add rules previously handled by fold_builtin_sqrt
8913         and fold_builtin_cbrt.
8914
8915 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
8916
8917         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
8918         * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
8919         * fold-const.h (tree_unary_nonnegative_warnv_p)
8920         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
8921         (tree_expr_nonnegative_warnv_p): Add depth parameters.
8922         * fold-const.c: Include gimple-fold.h and params.h.
8923         (tree_ssa_name_nonnegative_warnv_p): New function.
8924         (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
8925         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
8926         (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
8927         Add a depth parameter and increment it for recursive calls to
8928         tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
8929         to handle SSA names.
8930         * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
8931         (gimple_stmt_nonnegative_warnv_p): Declare.
8932         * tree-vrp.c (remove_range_assertions): Remove assert that condition
8933         cannot be proven false.
8934         (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
8935         (gimple_stmt_nonnegative_warnv_p): Move to...
8936         * gimple-fold.c: ...here.  Add depth parameters and pass them
8937         down to the tree routines.  Accept statements that aren't
8938         assignments or calls but just return false for them.
8939         (gimple_val_nonnegative_real_p): Delete.
8940         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
8941         tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
8942         Check HONOR_NANs first.
8943
8944 2015-10-08  Martin Jambor  <mjambor@suse.cz>
8945
8946         * ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
8947         unnecessary MIN.
8948
8949 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
8950
8951         * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
8952         in the tail of outer-loop.
8953
8954 2015-10-08  David Edelsohn  <dje.gcc@gmail.com>
8955
8956         * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
8957         return UI_NONE.
8958
8959 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
8960
8961         * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
8962         "cfghooks.h", add prototypes for introduced new functions.
8963         (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
8964         checks on ability of loop unswitching to tree_unswitch_single_loop;
8965         invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
8966         on innermost loop check.
8967         (tree_unswitch_single_loop): Add all required checks on ability of
8968         loop unswitching under zero recursive level guard.
8969         (tree_unswitch_outer_loop): New function.
8970         (find_loop_guard): Likewise.
8971         (empty_bb_without_guard_p): Likewise.
8972         (used_outside_loop_p): Likewise.
8973         (get_vop_from_header): Likewise.
8974         (hoist_guard): Likewise.
8975         (check_exit_phi): Likewise.
8976
8977 2015-10-08  Marek Polacek  <polacek@redhat.com>
8978
8979         * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
8980         ops element.
8981
8982 2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8983
8984         PR c/65345
8985         * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
8986         create_tmp_var_raw instead of create_tmp_var.
8987
8988 2015-10-07  Jan Hubicka  <hubicka@ucw.cz>
8989
8990         * expr.c (store_expr_with_bounds): Handle aggregate moves from
8991         BLKmode.
8992         * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
8993         to define gimple type system; compare aggregates only by size.
8994
8995 2015-10-07  Jeff Law  <law@redhat.com>
8996
8997         * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
8998         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
8999         here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
9000         unnecessarily.
9001
9002 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
9003             Sebastian Pop  <s.pop@samsung.com>
9004
9005         * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
9006         * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
9007         (generate_isl_schedule): Same.
9008         * graphite-optimize-isl.c (scop_get_domains): Same.
9009         (apply_schedule_map_to_scop): Same.
9010         * graphite-poly.c (print_iteration_domains): Same.
9011         (remove_gbbs_in_scop): Same.
9012         (new_scop): Same.
9013         (free_scop): Same.
9014         (print_scop): Same.
9015         * graphite-poly.h (struct scop): Rename bbs to pbbs.
9016         (SCOP_BBS): Remove.
9017         * graphite-scop-detection.c (compare_bb_depths): Remove.
9018         (graphite_sort_dominated_info): Remove.
9019         (try_generate_gimple_bb): Move out of scop_detection.
9020         (all_non_dominated_preds_marked_p): Remove.
9021         (build_scop_bbs_1): Remove.
9022         (build_scop_bbs): Remove.
9023         (nb_pbbs_in_loops): Do not use SCOP_BBS.
9024         (find_scop_parameters): Same.
9025         (sese_dom_walker): Rename gather_bbs.
9026         (before_dom_children): Call try_generate_gimple_bb and collect gbb
9027         and pbb.
9028         (build_scops): Call gather_bbs.
9029         * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
9030         (add_conditions_to_constraints): Same.
9031         (build_scop_iteration_domain): Same.
9032         (build_scop_drs): Same.
9033         (new_pbb_from_pbb): Same.
9034         * sese.c (new_sese_info): Create bbs.
9035         * sese.h (struct sese_info_t): Add bbs.
9036
9037 2015-10-07  David Edelsohn  <dje.gcc@gmail.com>
9038
9039         * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
9040         encoding in 64-bit mode.
9041
9042 2015-10-07  Uros Bizjak  <ubizjak@gmail.com>
9043
9044         PR target/66697
9045         * config/i386/i386.c (ix86_option_override_internal): Always use
9046         8-byte minimum stack boundary in 64-bit mode.
9047         (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
9048         (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
9049         Add a REG_CFA_EXPRESSION note if needed.
9050         (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
9051         (ix86_handle_force_align_arg_pointer_attribute): New.
9052         (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
9053         (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
9054         with ix86_handle_force_align_arg_pointer_attribute.
9055         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
9056
9057 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
9058             Sebastian Pop  <s.pop@samsung.com>
9059
9060         * graphite-scop-detection.c (parameter_index_in_region): Remove
9061         use of SESE_ADD_PARAMS.
9062         (find_scop_parameters): Same.
9063         * sese.c (new_sese_info): Same.
9064         * sese.h (struct sese_info_t): Remove add_params.
9065         (SESE_ADD_PARAMS): Remove.
9066
9067 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
9068             Sebastian Pop  <s.pop@samsung.com>
9069
9070         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
9071         an sese_info_p.
9072         (copy_def): Same.
9073         (copy_internal_parameters): Same.
9074         (translate_isl_ast_to_gimple): Use an sese_l.
9075         (build_iv_mapping): Same.
9076         * graphite-poly.c (new_sese): Rename new_sese_info.
9077         (free_sese): Rename free_sese_info.
9078         * graphite-poly.h (struct scop): Use an sese_info_p.
9079         (scop_set_region): Same.
9080         * graphite-scop-detection.c (struct sese_l): Moved...
9081         (get_entry_bb): Moved...
9082         (get_exit_bb): Moved...
9083         (parameter_index_in_region_1): Use an sese_info_p.
9084         (parameter_index_in_region): Same.
9085         (scan_tree_for_params): Same.
9086         (find_params_in_bb): Same.
9087         (sese_dom_walker): Use an sese_l.
9088         * graphite-sese-to-poly.c (remove_invariant_phi): Same.
9089         (reduction_phi_p): Same.
9090         (parameter_index_in_region_1): Use an sese_info_p.
9091         (propagate_expr_outside_region): Use an sese_l.
9092         * graphite.c: Replace uses of SCOP_REGION.
9093         * sese.c (sese_record_loop): Use an sese_info_p.
9094         (build_sese_loop_nests): Same.
9095         (sese_build_liveouts_use): Same.
9096         (sese_build_liveouts_bb): Same.
9097         (sese_build_liveouts_bb): Same.
9098         (sese_bad_liveouts_use): Same.
9099         (sese_reset_debug_liveouts_bb): Same.
9100         (sese_build_liveouts): Same.
9101         (new_sese): Renamed new_sese_info.
9102         (free_sese): Renamed free_sese_info.
9103         (set_rename): Use an sese_info_p.
9104         (graphite_copy_stmts_from_block): Same.
9105         (copy_bb_and_scalar_dependences): Same.
9106         (outermost_loop_in_sese_1): Use an sese_l.
9107         (outermost_loop_in_sese): Same.
9108         (if_region_set_false_region): Use an sese_info_p.
9109         (move_sese_in_condition): Same.
9110         (scalar_evolution_in_region): Use an sese_l.
9111         * sese.h (struct sese_l): ... here.
9112         (SESE_ENTRY): Remove.
9113         (SESE_ENTRY_BB): Remove.
9114         (SESE_EXIT): Remove.
9115         (SESE_EXIT_BB): Remove.
9116         (sese_contains_loop): Use an sese_info_p.
9117         (sese_nb_params): Same.
9118         (bb_in_sese_p): Use an sese_l.
9119         (stmt_in_sese_p): Same.
9120         (defined_in_sese_p): Same.
9121         (loop_in_sese_p): Same.
9122         (sese_loop_depth): Same.
9123         (struct ifsese_s): Use an sese_info_p.
9124         (gbb_loop_at_index): Use an sese_l.
9125         (nb_common_loops): Same.
9126         (scev_analyzable_p): Same.
9127
9128 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
9129
9130         * config/i386/i386.c (ix86_conditional_register_usage): Use
9131         CALL_USED_REGISTERS_MASK.
9132         * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
9133
9134 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
9135
9136         PR bootstrap/67385
9137         * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
9138         * configure: Regenerated.
9139
9140 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
9141
9142         PR target/67850
9143         * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
9144         (ix86_set_current_function): This.
9145         (TARGET_EXPAND_TO_RTL_HOOK): Removed.
9146
9147 2015-10-07  Richard Biener  <rguenther@suse.de>
9148
9149         * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
9150         (vinfo_for_stmt): Adjust.
9151         (set_vinfo_for_stmt): Likewise.
9152         * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
9153         * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
9154         * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
9155         of inner loop.
9156         (vect_analyze_loop_1): Remove.
9157         (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
9158         inner loop when vectorizing an outer loop by splitting out from ...
9159         (vect_analyze_loop_form): ... here.
9160
9161 2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9162
9163         PR c/65345
9164         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
9165         Use create_tmp_var_raw instead of create_tmp_var.
9166
9167 2015-10-07  Richard Sandiford  <richard.sandiford@arm.com>
9168
9169         * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
9170         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
9171         * real.c (CACHED_FRACTION): New helper macro.
9172         (dconst_third_ptr): Use it.
9173         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
9174         * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
9175         dconst_sixth.
9176         (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
9177
9178 2015-10-06  Jeff Law  <law@redhat.com>
9179
9180         PR tree-optimization/67816
9181         * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
9182         from remove_jump_threads_starting_at.  Accept an edge rather than
9183         a basic block.
9184         * tree-ssa-threadupdate.c (removed_edges): New hash table.
9185         (remove_jump_threads_including): Note edges that get removed from
9186         the CFG for later pruning of jump threading paths including them.
9187         (thread_through_all_blocks): Remove paths which include edges that
9188         have been removed.
9189         * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
9190         on each outgoing edges when optimizing away a control statement.
9191
9192 2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9193
9194         * reorg.c (emit_delay_sequence): Store list of delay slot insns
9195         in a vector instead of rtx_insn_list.
9196         (add_to_delay_list): Likewise.
9197         (delete_from_delay_slot): Likewise.
9198         (optimize_skip): Likewise.
9199         (redirect_with_delay_list_safe_p): Likewise.
9200         (check_annul_list_true_false): Likewise.
9201         (steal_delay_list_from_target): Likewise.
9202         (steal_delay_list_from_fallthrough): Likewise.
9203         (redundant_insn): Likewise.
9204         (fill_simple_delay_slots): Likewise.
9205         (fill_slots_from_thread): Likewise.
9206         (fill_eager_delay_slots): Likewise.
9207         (relax_delay_slots): Likewise.
9208
9209 2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>
9210
9211         * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
9212         For -mgpopt=local, also exclude unintialized common symbols.
9213         * doc/invoke.texi (Nios II Options): Document the change.
9214
9215 2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
9216
9217         * config/aarch64/iterators.md (vwcore): Add missing cases for
9218          V4HF/V8HF modes.
9219
9220 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
9221             Sebastian Pop  <s.pop@samsung.com>
9222
9223         * graphite-poly.c (new_scop): Initialize drs.
9224         * graphite-poly.h (struct dr_info): New.
9225         (struct scop): Add drs.
9226         * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
9227         (pdr_add_memory_accesses): Same.
9228         (build_poly_dr): Same.
9229         (build_alias_set): Same.
9230         (build_scop_drs): Same.
9231         (build_pbb_drs): Remove.
9232         * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
9233         * tree-data-ref.h (data_reference): Remove alias_set.
9234
9235 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
9236             Sebastian Pop  <s.pop@samsung.com>
9237
9238         * graphite-poly.c (free_data_refs_aux): Remove.
9239         (free_gimple_poly_bb): Do not call free_data_refs_aux.
9240         * graphite-poly.h (struct base_alias_pair): Remove.
9241         * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
9242         base_alias_pair and dr->aux.
9243         (build_alias_set): Same.
9244         * tree-data-ref.c (create_data_ref): Initialize alias_set.
9245         * tree-data-ref.h (data_reference): Add alias_set.
9246
9247 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
9248             Sebastian Pop  <s.pop@samsung.com>
9249
9250         * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
9251         Do not set PDR_BASE_OBJECT_SET.
9252         * graphite-poly.h (poly_dr): Same.
9253         (PDR_BASE_OBJECT_SET): Remove.
9254         (new_poly_dr): Update decl.
9255         * graphite-sese-to-poly.c (build_poly_dr): Update call to
9256         new_poly_dr.
9257         (write_alias_graph_to_ascii_dimacs): Remove.
9258         (write_alias_graph_to_ascii_dot): Remove.
9259         (write_alias_graph_to_ascii_ecc): Remove.
9260         (dr_same_base_object_p): Remove.
9261         (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
9262         code.
9263         (build_base_obj_set_for_drs): Remove.
9264         (dump_alias_graphs): Remove.
9265         (build_scop_drs): Remove dead code.
9266
9267 2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
9268             Peter Bergner  <bergner@vnet.ibm.com>
9269
9270         PR target/67808
9271         * config/rs6000/rs6000.md (extenddftf2): In the expander, only
9272         allow registers, but provide insns for the combiner to create for
9273         loads from memory. Separate VSX code from non-VSX code. For
9274         non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
9275         externaldftf2_internal to externaldftf2_fprs. Reorder constraints
9276         so that registers come before memory operations. Drop support from
9277         converting DFmode to TFmode, if the DFmode value is in a GPR
9278         register.
9279         (extenddftf2_fprs): Likewise.
9280         (extenddftf2_internal): Likewise.
9281         (extenddftf2_vsx): Likewise.
9282         (extendsftf2): In the expander, only allow registers, but provide
9283         insns for the combiner to create for stores and loads.
9284
9285 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9286
9287         * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
9288         from the decl parameter.
9289
9290 2015-10-06  Nathan Sidwell  <nathan@codesourcery.com>
9291
9292         PR 67861
9293         * gimple-fold.c (gimple_fold_builtin): Add break after
9294         BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
9295
9296 2015-10-06  H.J. Lu  <hongjiu.lu@intel.com>
9297
9298         * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
9299         to scop->isl_context.
9300
9301 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
9302
9303         * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
9304         (output_probe_stack_range): Rotate the loop and simplify.
9305         (thumb1_expand_prologue): Tweak sorry message.
9306         * config/arm/arm.md (probe_stack): Use bare string.
9307
9308 2015-10-06  Nick Clifton  <nickc@redhat.com>
9309
9310         * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
9311
9312 2015-10-06  Nick Clifton  <nickc@redhat.com>
9313
9314         * config/msp430/msp430.c (ATTR_NOINIT): New constant.
9315         (ATTR_PERSIST): New constant.
9316         (msp430_data_attr): New function - verifies an attribute that only
9317         applies to variables.
9318         (msp430_attributes): Add noinit and persistent attributes.
9319         (noinit_section): New variable.
9320         (presis_section): New variable.
9321         (TARGET_ASM_INIT_SECTIONS): Define.
9322         (msp430_init_sections): New function - initialises the noinit and
9323         persist section variables.
9324         (msp430_select_section): Add support for noinit and persist
9325         attributes.
9326         (msp430_section_type_flags): Likewise.
9327         * doc/extend.texi:  Document the reent, critical, wakeup, noinit
9328         and persistent attributes.
9329
9330 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
9331             Sebastian Pop  <s.pop@samsung.com>
9332
9333         * graphite-dependences.c (scop_get_transformed_schedule): Remove.
9334         (no_violations): Remove.
9335         (subtract_commutative_associative_deps): Remove.
9336         (compute_deps): Do not call subtract_commutative_associative_deps.
9337         (transform_is_safe): Remove.
9338         (graphite_legal_transform): Remove.
9339         * graphite-poly.h (graphite_legal_transform): Remove.
9340
9341 2015-10-05  Aditya Kumar  <hiraditya@msn.com>
9342
9343         * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
9344         which are in this region are passed so gcc_assert and remove redundant
9345         computation.
9346         * sese.c (sese_build_liveouts): Pass only those bbs which are not
9347         in region.
9348         (sese_bad_liveouts_use): Only BBs which are not in region are passed so
9349         gcc_assert on that and remove unnecessary computation.
9350         (sese_build_liveouts_use): Same.
9351
9352 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
9353
9354         * graphite-dependences.c (scop_get_reads): Renamed scop->context
9355         to scop->param_context.
9356         (scop_get_must_writes): Same.
9357         (scop_get_may_writes): Same.
9358         (scop_get_original_schedule): Same.
9359         (scop_get_transformed_schedule): Same.
9360         (subtract_commutative_associative_deps): Same.
9361         * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
9362         (generate_isl_context): Same.
9363         (generate_isl_schedule): Same.
9364         (scop_to_isl_ast): Same.
9365         (graphite_regenerate_ast_isl): Same.
9366         * graphite-optimize-isl.c (scop_get_domains): Same.
9367         (optimize_isl): Renamed scop->context to scop->param_context.
9368         * graphite-poly.c (new_poly_bb): Change the type of argument to
9369         gimple_poly_bb_p.
9370         (new_scop): Renamed scop->context to scop->param_context.
9371         (free_scop): Same.
9372         (print_scop_context): Same.
9373         * graphite-poly.h (new_poly_dr): Change the type of argument from
9374         void* to data_reference_p.
9375         (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
9376         (new_poly_bb): Change the type of argument from void* to
9377         gimple_poly_bb_p.
9378         (pbb_set_black_box): Same.
9379         (struct scop): Rename context to param_context, ctx to isl_context.
9380         * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
9381         Move declarations closer to assignment.
9382         (find_params_in_bb): Same.
9383         (find_scop_parameters): Same.
9384         * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
9385         Global to be used for statement IDs.
9386         (isl_id_for_pbb): Use ssa_name_version_typesize.
9387         (simple_copy_phi_p): Move declarations closer to assignment.
9388         (build_pbb_scattering_polyhedrons): Same.
9389         (build_scop_scattering): Same.
9390         (isl_id_for_ssa_name): Same.
9391         (extract_affine_name): Same.
9392         (extract_affine_int): Same.
9393         (extract_affine): Same.
9394         (set_scop_parameter_dim): Use renamed member.
9395         (build_loop_iteration_domains): Same.
9396         (add_param_constraints): Same.
9397         (build_scop_iteration_domain): Same.
9398         (pdr_add_data_dimensions): Same.
9399         (build_poly_dr): Same.
9400         (build_scop_drs): Move declarations closer to assignment.
9401         (analyze_drs_in_stmts): Same.
9402         (insert_out_of_ssa_copy): Same.
9403         (insert_out_of_ssa_copy_on_edge): Same.
9404         (propagate_expr_outside_region): Same.
9405         (rewrite_phi_out_of_ssa): Same.
9406         (rewrite_degenerate_phi): Same.
9407         (rewrite_reductions_out_of_ssa): Same.
9408         (rewrite_cross_bb_scalar_dependence): Same.
9409         (handle_scalar_deps_crossing_scop_limits): Same.
9410         (rewrite_cross_bb_scalar_deps): Same.
9411         * graphite.c (graphite_transform_loops): Use renamed member.
9412
9413 2015-10-06  Uros Bizjak  <ubizjak@gmail.com>
9414
9415         PR c/65345
9416         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
9417         create_tmp_var_raw instead of create_tmp_var.
9418
9419 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9420
9421         PR c/65345
9422         * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
9423         Use create_tmp_var_raw instead of create_tmp_var.
9424
9425 2015-10-06  Alexander Fomin  <alexander.fomin@intel.com>
9426
9427         PR target/67849
9428         * config/i386/sse.md (define_split vec_select/V8FI): Restrict
9429         split for upper-bank registers when target does not support
9430         AVX512VL.
9431         (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
9432         split when target does not support AVX512VL.
9433
9434 2015-10-06  David Edelsohn  <dje.gcc@gmail.com>
9435
9436         PR c/65345
9437         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
9438         Adjust to use create_tmp_var_raw instead of create_tmp_var.
9439
9440 2015-10-06  Nick Clifton  <nickc@redhat.com>
9441
9442         * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
9443         multiplication.
9444
9445 2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
9446
9447         * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
9448         (case ${target}): Add znver1.
9449         * config/i386/cpuid.h(bit_CLZERO):  Define.
9450         * config/i386/driver-i386.c: (host_detect_local_cpu): Let
9451         -march=native recognize znver1 processors.
9452         * config/i386/i386-c.c (ix86_target_macros_internal): Add
9453         znver1, clzero def_and_undef.
9454         * config/i386/i386.c (struct processor_costs znver1_cost): New.
9455         (m_znver1): New definition.
9456         (m_AMD_MULTIPLE): Includes m_znver1.
9457         (processor_target_table): Add znver1 entry.
9458         (ix86_target_string) : Add clzero entry.
9459         (static const char *const cpu_names): Add znver1 entry.
9460         (ix86_option_override_internal): Add znver1 instruction sets.
9461         (PTA_CLZERO) :  New definition.
9462         (ix86_option_override_internal): Handle new clzerooption.
9463         (ix86_issue_rate): Add znver1.
9464         (ix86_adjust_cost): Add znver1.
9465         (ia32_multipass_dfa_lookahead): Add znver1.
9466         (has_dispatch): Add znver1.
9467         * config/i386/i386.h (TARGET_znver1): New definition.
9468         (TARGET_CLZERO): Define.
9469         (TARGET_CLZERO_P): Define.
9470         (struct ix86_size_cost): Add TARGET_ZNVER1.
9471         (enum processor_type): Add PROCESSOR_znver1.
9472         * config/i386/i386.md (define_attr "cpu"): Add znver1.
9473         (set_attr znver1_decode): New definitions for znver1.
9474         * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
9475         (mclzero): New.
9476         * config/i386/mmx.md (set_attr znver1_decode): New definitions
9477         for znver1.
9478         * config/i386/sse.md (set_attr znver1_decode): Likewise.
9479         * config/i386/x86-tune.def:  Add znver1 tunings.
9480         * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
9481         * doc/invoke.texi: Add details about znver1
9482
9483 2015-10-06  Richard Biener  <rguenther@suse.de>
9484
9485         PR tree-optimization/67859
9486         * tree-ssa-pre.c (create_expression_by_pieces): Properly
9487         discard not inserted stmts.
9488
9489 2015-10-06  Jonathan Wakely  <jwakely@redhat.com>
9490
9491         * doc/extend.texi (Template Instantiation): Reorder options and
9492         de-emphasize -frepo.
9493         * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
9494         example instead of -frepo.
9495
9496 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
9497
9498         PR c/65345
9499         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
9500         use create_tmp_var_raw rather than create_tmp_var.
9501
9502 2015-10-06  Richard Biener  <rguenther@suse.de>
9503
9504         * tree-vectorizer.h (vec_info): New base class for...
9505         (_loop_vec_info): ... this and ...
9506         (_bb_vec_info): ... this.
9507         (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
9508         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
9509         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
9510         vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
9511         vect_destroy_datarefs): Adjust interface to take a vec_info *
9512         rather than both a loop_vec_info and a bb_vec_info argument.
9513         * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
9514         vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
9515         vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
9516         vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
9517         accordingly.
9518         * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
9519         (destroy_loop_vec_info, vect_analyze_loop_2,
9520         vect_is_simple_reduction_1, get_initial_def_for_induction,
9521         vect_create_epilog_for_reduction, vectorizable_reduction,
9522         vectorizable_live_operation, vect_transform_loop): Adjust.
9523         * tree-vect-patterns.c (type_conversion_p,
9524         vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
9525         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
9526         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
9527         check_bool_pattern, vect_recog_bool_pattern,
9528         vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
9529         * tree-vect-slp.c (vect_get_and_check_slp_defs,
9530         vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
9531         vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
9532         vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
9533         (new_bb_vec_info): Initialize base classs.
9534         * tree-vect-stmts.c (record_stmt_cost, process_use,
9535         vect_get_vec_def_for_operand, vect_finish_stmt_generation,
9536         vectorizable_mask_load_store, vectorizable_call,
9537         vectorizable_simd_clone_call, vectorizable_conversion,
9538         vectorizable_assignment, vectorizable_shift,
9539         vectorizable_operation, vectorizable_store,
9540         vectorizable_load, vect_is_simple_cond, vectorizable_condition,
9541         new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
9542         * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
9543
9544 2015-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
9545
9546         PR c/65345
9547         * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
9548         create_tmp_var_raw rather than create_tmp_var.
9549
9550 2015-10-05  Marek Polacek  <polacek@redhat.com>
9551
9552         * tree-ssa-loop-im.c
9553         (move_computations_dom_walker::before_dom_children): Don't set
9554         SSA_NAME_ANTI_RANGE_P.
9555         * tree-ssa-phiopt.c (value_replacement): Likewise.
9556
9557 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
9558             Sebastian Pop  <s.pop@samsung.com>
9559
9560         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
9561
9562 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
9563             Sebastian Pop  <s.pop@samsung.com>
9564
9565         * graphite-poly.c (new_gimple_poly_bb): ... here.
9566         (free_data_refs_aux): ... here.
9567         (free_gimple_poly_bb): ... here.
9568         (remove_gbbs_in_scop): ... here.
9569         (new_scop): Call new_sese.
9570         (free_scop): Call remove_gbbs_in_scop and free_sese.
9571         * graphite-poly.h (base_alias_pair): ... here.
9572         (new_gimple_poly_bb): Declare.
9573         (free_gimple_poly_bb): Declare.
9574         * graphite-scop-detection.c (parameter_index_in_region_1):
9575         (parameter_index_in_region): ... here.
9576         (scan_tree_for_params): ... here.
9577         (find_params_in_bb): ... here.
9578         (find_scop_parameters): ... here.
9579         (build_scops): Call find_scop_parameters.
9580         * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
9581         (free_scops): Move...
9582         (single_pred_cond_non_loop_exit): Move...
9583         (sese_dom_walker::before_dom_children): Move...
9584         (sese_dom_walker::after_dom_children): Move...
9585         (build_poly_scop): Move...
9586         * graphite-sese-to-poly.h (base_alias_pair): Move...
9587         * graphite.c (free_scops): ... here.
9588
9589 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
9590             Sebastian Pop  <s.pop@samsung.com>
9591
9592         * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
9593         (trivially_empty_bb_p): Move...
9594         (same_close_phi_node): Move...
9595         (new_gimple_poly_bb): Move...
9596         (compare_bb_depths): Move...
9597         (graphite_sort_dominated_info): Move...
9598         (remove_duplicate_close_phi): Move...
9599         (make_close_phi_nodes_unique): Move...
9600         (canonicalize_loop_closed_ssa): Move...
9601         (canonicalize_loop_closed_ssa_form): Move...
9602         (loop_ivs_can_be_represented): Move...
9603         (single_pred_cond_non_loop_exit): Move...
9604         (graphite_can_represent_init): Move...
9605         (graphite_can_represent_scev): Move...
9606         (stmt_has_simple_data_refs_p): Move...
9607         (stmt_has_side_effects):  Move...
9608         (graphite_can_represent_stmt): Move...
9609         (scop_detection): ... here.
9610         (sese_dom_walker): ... and here.
9611         (build_scops): Call all moved functions.
9612         * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
9613         (all_non_dominated_preds_marked_p): Move...
9614         (build_scop_bbs_1): Move...
9615         (build_scop_bbs): Move...
9616         (set_scop_parameter_dim): Move...
9617         (nb_pbbs_in_loops): Move...
9618         (build_poly_scop): Do not call all the moved functions.
9619
9620 2015-10-05  Martin Jambor  <mjambor@suse.cz>
9621             Jan Hubicka  <hubicka@ucw.cz>
9622
9623         * ipa-cp.c (ipcp_alignment_lattice): New type.
9624         (ipcp_param_lattices): Use the above to represent alignment.
9625         (ipcp_alignment_lattice::print): New function.
9626         (print_all_lattices): Use it to print alignment information.
9627         (ipcp_alignment_lattice::top_p): New function.
9628         (ipcp_alignment_lattice::bottom_p): Likewise.
9629         (ipcp_alignment_lattice::set_to_bottom): Likewise.
9630         (ipcp_alignment_lattice::meet_with_1): Likewise.
9631         (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
9632         (set_all_contains_variable): Use set_to_bottom of alignment lattice.
9633         (initialize_node_lattices): Likewise.
9634         (propagate_alignment_accross_jump_function): Work with the new class
9635         for alignment lattices.
9636         (propagate_constants_accross_call): Pass only the alignment lattice to
9637         propagate_alignment_accross_jump_function.
9638         (ipcp_store_alignment_results): Work with the new class for alignment
9639         lattices.
9640
9641 2015-10-05  Marek Polacek  <polacek@redhat.com>
9642
9643         PR tree-optimization/67821
9644         * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
9645
9646 2015-10-05  Thomas Schwinge  <thomas@codesourcery.com>
9647
9648         PR other/65021
9649         * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
9650         function to...
9651         (mkoffload_cleanup): ... this.  Adjust all users.
9652         (maybe_unlink): Look at save_temps and verbose flags instead of
9653         debug flag.
9654         (main): Parse "-save-temps" flag.
9655         (generate_target_descr_file, generate_target_offloadend_file)
9656         (generate_host_descr_file, prepare_target_image): Pass it on.
9657         * config/nvptx/mkoffload.c (tool_cleanup): Implement.
9658         (mkoffload_cleanup): New function.
9659         (maybe_unlink): Look at save_temps and verbose flags instead of
9660         debug flag.
9661         (main): Instead of calling utils_cleanup, register atexit handler
9662         for mkoffload_cleanup.
9663         (main): Parse "-save-temps" flag.
9664         (compile_native, main): Pass it on.
9665         * lto-wrapper.c (compile_offload_image): Likewise.
9666
9667 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9668
9669         * gimple.h (gimple_op_ptr): Require a non const gimple *.
9670         (gimple_assign_lhs_ptr): Likewise.
9671         (gimple_assign_rhs1_ptr): Likewise.
9672         (gimple_assign_rhs2_ptr): Likewise.
9673         (gimple_assign_rhs3_ptr): Likewise.
9674         (gimple_call_lhs_ptr): Likewise.
9675         (gimple_call_fn_ptr): Likewise.
9676         (gimple_call_chain_ptr): Likewise.
9677                 (gimple_call_arg_ptr): Likewise.
9678                 (gimple_cond_lhs_ptr): Likewise.
9679         (gimple_cond_rhs_ptr): Likewise.
9680         (gimple_switch_index_ptr): Likewise.
9681         (gimple_return_retval_ptr): Likewise.
9682
9683 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9684
9685         * gimple.h (gimple_asm_input_op_ptr): Remove.
9686         (gimple_asm_output_op_ptr): Likewise.
9687
9688 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9689
9690         * gimple.h (gimple_location_ptr): Remove.
9691         * tree-vrp.c (check_all_array_refs): Adjust.
9692
9693 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9694
9695         * tree-ssa-operands.c (build_uses): store tree * instead of
9696         tree.
9697         (finalize_ssa_uses): Adjust.
9698         (append_use): Likewise.
9699         (verify_ssa_operands): Likewise.
9700
9701 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
9702
9703         * real.h (build_real_truncate): Declare.
9704         * tree.c (build_real_truncate): New function.
9705         (strip_float_extensions): Use it.
9706         * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
9707         (fold_builtin_hypot, fold_builtin_pow): Likewise.
9708         * match.pd: Likewise.
9709
9710 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
9711            Jiong Wang  <jiong.wang@arm.com>
9712
9713         * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
9714
9715 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
9716
9717         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
9718         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
9719         (aarch64_print_operand, aarch64_float_const_representable_p)
9720         (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
9721         instead of REAL_VALUE_FROM_CONST_DOUBLE.
9722         * config/arc/arc.c (arc_print_operand): Likewise.
9723         * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
9724         (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
9725         (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
9726         Likewise.
9727         * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
9728         (consttable_16): Likewise.
9729         * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
9730         * config/avr/avr.c (avr_print_operand): Likewise.
9731         * config/bfin/bfin.md: Likewise (in a define_split).
9732         * config/c6x/c6x.md: Likewise (in a define_split).
9733         * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
9734         (cr16_print_operand): Likewise.
9735         * config/cris/cris.c (cris_print_operand): Likewise.
9736         * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
9737         * config/fr30/fr30.c (fr30_print_operand): Likewise.
9738         (fr30_const_double_is_zero): Likewise.
9739         * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
9740         * config/frv/frv.md: Likewise (in a define_split).
9741         * config/frv/predicates.md (int_2word_operand): Likewise.
9742         * config/h8300/h8300.c (h8300_print_operand): Likewise.
9743         * config/i386/i386.c (standard_80387_constant_p): Likewise.
9744         (ix86_print_operand, ix86_split_to_parts): Likewise.
9745         * config/i386/i386.md: Likewise (in a define_split).
9746         * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
9747         * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
9748         * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
9749         * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
9750         (print_operand): Likewise.
9751         * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
9752         * config/mep/mep.md: Likewise (in define_split).
9753         * config/microblaze/microblaze.c (microblaze_const_double_ok)
9754         (print_operand): Likewise.
9755         * config/mips/mips.md (consttable_float): Likewise.
9756         * config/mmix/mmix.c (mmix_intval): Likewise.
9757         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
9758         * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
9759         * config/pa/pa.c (pa_singlemove_string): Likewise.
9760         * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
9761         (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
9762         * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
9763         (output_toc): Likewise.
9764         * config/rs6000/rs6000.md: Likewise (in define_splits).
9765         * config/rx/rx.c (rx_print_operand): Likewise.
9766         * config/s390/s390.c (s390_output_pool_entry): Likewise.
9767         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
9768         * config/sh/sh.md (consttable_sf, consttable_df): Likewise
9769         (and also in define_splits).
9770         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
9771         (fp_high_losum_p): Likewise.
9772         * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
9773         (*movsf_high): Likewise.
9774         * config/spu/spu.c (const_double_to_hwint): Likewise.
9775         * config/v850/v850.c (const_double_split): Likewise.
9776         * config/vax/vax.c (vax_float_literal): Likewise.
9777         * config/visium/visium.c (visium_expand_copysign): Likewise.
9778         * config/visium/visium.md: Likewise (in define_split).
9779         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
9780         * config/xtensa/xtensa.c (print_operand): Likewise.
9781         (xtensa_output_literal): Likewise.
9782         * cprop.c (implicit_set_cond_p): Likewise.
9783         * dwarf2out.c (insert_float): Likewise.
9784         * expmed.c (expand_mult, make_tree): Likewise.
9785         * expr.c (compress_float_constant): Likewise.
9786         * rtlanal.c (split_double): Likewise.
9787         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
9788         (simplify_const_unary_operation, simplify_binary_operation_1)
9789         (simplify_const_binary_operation): Likewise.
9790         (simplify_const_relational_operation): Likewise.
9791         * varasm.c (output_constant_pool_2): Likewise.
9792
9793 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
9794
9795         * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
9796         instead of CONST_DOUBLE_FROM_REAL_VALUE.
9797         (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
9798         * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
9799         instead of CONST_DOUBLE_FROM_REAL_VALUE.
9800         * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
9801         * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
9802         (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
9803         (ix86_emit_swsqrtsf): Likewise.
9804         * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
9805         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
9806         (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
9807         * config/pa/pa.c (pa_expand_builtin): Likewise.
9808         * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
9809         (rs6000_scale_v2df): Likewise.
9810         * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
9811         * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
9812         (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
9813         * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
9814         (vec_ctul): Likewise.
9815         * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
9816         * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
9817         * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
9818         * cse.c (fold_rtx): Likewise.
9819         * emit-rtl.c (immed_double_const): Likewise (in comments).
9820         (init_emit_once): Likewise.
9821         * expr.c (compress_float_constant, expand_expr_real_1)
9822         (const_vector_from_tree): Likewise.
9823         * optabs.c (expand_float, expand_fix): Likewise.
9824         * reg-stack.c (reg_to_stack): Likewise.
9825         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
9826         (simplify_const_unary_operation, simplify_binary_operation_1)
9827         (simplify_const_binary_operation, simplify_relational_operation)
9828         (simplify_immed_subreg): Likewise.
9829
9830 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
9831
9832         * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
9833         * doc/tm.texi: Regenerate.
9834         * real.h (REAL_ARITHMETIC): Delete.
9835         * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
9836         (ix86_expand_round_sse4): Use real_arithmetic instead of
9837         REAL_ARITHMETIC.
9838         * config/i386/sse.md (round<mode>2): Likewise.
9839         * rtl.h (rtx_to_tree_code): Likewise (in comment).
9840         * explow.c (rtx_to_tree_code): Likewise (in comment).
9841         * match.pd: Likewise.
9842         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
9843         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
9844         (expand_pow_as_sqrts): Likewise.
9845         * tree-pretty-print.c (dump_generic_node): Remove code that
9846         was conditional on REAL_ARITHMETIC being undefined.
9847
9848 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
9849
9850         * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
9851         * doc/tm.texi: Regenerate.
9852         * real.h (real_less): Declare.
9853         (REAL_VALUES_LESS): Delete.
9854         * real.c (real_less): New function.
9855         (real_compare): Use it.
9856         * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
9857         of REAL_VALUES_LESS.
9858         * config/microblaze/microblaze.c (microblaze_const_double_ok):
9859         Likewise.
9860         * fold-const.c (fold_convert_const_int_from_real): Likewise.
9861         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
9862         (simplify_const_relational_operation): Likewise.
9863         * tree-call-cdce.c (check_pow): Likewise.
9864         (gen_conditions_for_pow_cst_base): Likewise.
9865
9866 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
9867
9868         * real.h (REAL_VALUES_IDENTICAL): Delete.
9869         * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
9870         instead of REAL_VALUES_IDENTICAL.
9871         * fold-const.c (operand_equal_p): Likewise.
9872         * ipa-icf.c (sem_variable::equals): Likewise.
9873         * tree-complex.c (some_nonzerop): Likewise.
9874         (expand_complex_multiplication): Likewise.
9875         * tree.c (simple_cst_equal): Likewise.
9876         * varasm.c (compare_constant): Likewise.
9877
9878 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
9879
9880         * real.h (real_equal): Declare.
9881         (REAL_VALUES_EQUAL): Delete.
9882         * real.c (real_equal): New function.
9883         (real_compare): Use it.
9884         * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
9885         * doc/tm.texi: Regenerate.
9886         * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
9887         real_equal instead of REAL_VALUES_EQUAL.
9888         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
9889         * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
9890         (fp_const_from_val): Likewise.
9891         * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
9892         * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
9893         (floating_exact_log2): Likewise.
9894         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
9895         * config/vax/vax.c (vax_float_literal): Likewise.
9896         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
9897         * cprop.c (implicit_set_cond_p): Likewise.
9898         * expmed.c (expand_mult): Likewise.
9899         * fold-const.c (const_binop): Likewise.
9900         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
9901         (simplify_const_binary_operation): Likewise.
9902         (simplify_const_relational_operation): Likewise.
9903         * tree-call-cdce.c (check_pow): Likewise.
9904         (gen_conditions_for_pow_cst_base): Likewise.
9905         * tree-inline.c (estimate_num_insns): Likewise.
9906         * tree-ssa-dom.c (record_equality): Likewise.
9907         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
9908         (gimple_expand_builtin_pow): Likewise.
9909         (pass_optimize_widening_mul::execute): Likewise.
9910         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
9911         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
9912         * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
9913
9914 2015-10-05  Richard Biener  <rguenther@suse.de>
9915
9916         PR ipa/67783
9917         * ipa-inline-analysis.c (estimate_function_body_sizes): Only
9918         consider loop header PHI defs as IVs.
9919
9920 2015-10-05  Richard Biener  <rguenther@suse.de>
9921
9922         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
9923         call handling ...
9924         (create_expression_by_pieces): ... here and build GIMPLE
9925         calls directly.  Use gimple_build API and avoid force_gimple_operand.
9926         (insert_into_preds_of_block): Simplify.
9927         (do_regular_insertion): Add comment.
9928
9929 2015-10-04  Jason Merrill  <jason@redhat.com>
9930
9931         * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
9932
9933 2015-10-04  Uros Bizjak  <ubizjak@gmail.com>
9934
9935         * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
9936         check for general register.
9937         (ix86_emit_save_regs): Ditto.
9938         (ix86_emit_save_regs_using_mov): Ditto.
9939         (ix86_emit_restore_regs_using_pop): Ditto.
9940         (ix86_emit_restore_regs_using_mov): Ditto.
9941
9942 2015-10-03  Marek Polacek  <polacek@redhat.com>
9943
9944         * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
9945         (insn-dfatab.o): Likewise.
9946
9947 2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
9948
9949         * config.gcc (xtensa*-*-uclinux*): New configuration.
9950         * config/xtensa/uclinux.h: New file.
9951         * config/xtensa/uclinux.opt: New file.
9952
9953 2015-10-03  Jonathan Wakely  <jwakely@redhat.com>
9954
9955         * doc/cpp.texi (Standard Predefined Macros): Document value of
9956         __cplusplus for C++14.
9957
9958 2015-10-02  Bernd Schmidt  <bernds@codesourcery.com>
9959
9960         * gcc.c (process_command): Use spec_machine rather than
9961         spec_host_machine to build tooldir_prefix2.
9962
9963 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
9964             Bernd Schmidt  <bernds@codesourcery.com>
9965
9966         * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
9967         (Token, Stmt): Remove structs.
9968         (decls, vars, fns): Remove variables.
9969         (alloc_comment, append_stmt, is_keyword): Remove macros.
9970         (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
9971         (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
9972         (parse_init, parse_file): Remove functions.
9973         (read_file): Accept a pointer to a length and store into it.
9974         (process): Don't try to parse the input file, just write it out as
9975         a string, but looking for maps.  Also write out the length.
9976         (main): Don't use "-S" to compile PTX code.
9977
9978 2015-10-02  Jeff Law  <law@redhat.com>
9979
9980         * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
9981         fixups.
9982
9983 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
9984
9985         PR target/67822
9986         * config/nvptx/mkoffload.c (main): Scan the argument vector for
9987         -fopenmp, and skip generating an offloading image if specified.
9988
9989 2015-10-02  Uros Bizjak  <ubizjak@gmail.com>
9990
9991         * system.h (ROUND_UP): New macro definition.
9992         (ROUND_DOWN): Ditto.
9993         * ggc-page.c (ROUND_UP): Remove local macro definition.
9994         (PAGE_ALIGN): Implement using ROUND_UP macro.
9995
9996         * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
9997         * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
9998         to align values.
9999         (ix86_compute_frame_layout): Ditto.
10000         (ix86_expand_prologue): Ditto.
10001         (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
10002         to round down values.
10003         (expand_set_or_movmem_via_rep): Ditto.
10004
10005 2015-10-02  Marek Polacek  <polacek@redhat.com>
10006
10007         * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
10008
10009 2015-10-02  Aditya Kumar  <aditya.k7@samsung.com>
10010
10011         * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
10012         (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
10013         * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
10014         (free_gimple_bb): Renamed free_gimple_poly_bb.
10015         (try_generate_gimple_bb): Hoist loop invariant code.
10016         (analyze_drs_in_stmts): Same.
10017         (build_scop_drs): Call renamed functions.
10018         (new_pbb_from_pbb): Same.
10019         (scop_ivs_can_be_represented): Delete as functionality now moved to
10020         graphite-scop-detection.c
10021         (build_poly_scop): Remove call to scop_ivs_can_be_represented.
10022
10023 2015-10-02  Aditya Kumar  <hiraditya@msn.com>
10024
10025         * graphite-scop-detection.c (stmt_has_side_effects): New function
10026           outlined from stmt_simple_for_scop_p.
10027         (graphite_can_represent_stmt): Same.
10028         (stmt_simple_for_scop_p): Moved code out of this function for better
10029         readability.
10030
10031 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
10032
10033         * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
10034         F_AVX512IFMA.
10035         (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
10036
10037 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10038
10039         * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
10040
10041 2015-10-02  Vladimir Makarov  <vmakarov@redhat.com>
10042
10043         PR rtl-optimization/67756
10044         * lra-constraints.c (match_reload): Add a new parameter.  Use it
10045         for creating a pseudo with the same value.
10046         (curr_insn_transform): Pass a new argument to match_reload.
10047
10048 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
10049
10050         * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
10051         (expand_vec_perm_even_odd_1): Handle V64QImode.
10052         (ix86_expand_vec_perm_const_1): Try expansion with
10053         expand_vec_perm_even_odd_trunc as well.
10054         * config/i386/sse.md (VI124_AVX512F): Rename to ...
10055         (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
10056         to V54QI.
10057         (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
10058         (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
10059         to V32HI and V16SI.
10060         (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
10061         (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
10062         (define_expand "vec_unpacks_lo_<mode>"): Ditto.
10063         (define_expand "vec_unpacks_hi_<mode>"): Ditto.
10064         (define_expand "vec_unpacku_lo_<mode>"): Ditto.
10065         (define_expand "vec_unpacku_hi_<mode>"): Ditto.
10066
10067 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
10068
10069         * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
10070         -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
10071
10072 2015-10-02  Jason Merrill  <jason@redhat.com>
10073
10074         PR c/59218
10075         * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
10076         (diagnose_tm_1_op): Also diagnose volatile accesses in
10077         transaction_safe function.
10078
10079 2015-10-02  Jonathan Wakely  <jwakely@redhat.com>
10080
10081         * system.h (malloc.h): Don't include obsolete header.
10082
10083 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10084
10085         * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
10086         (TLS_SECTION_ASM_FLAG): Delete.
10087
10088 2015-10-02  Marek Polacek  <polacek@redhat.com>
10089
10090         PR c/64249
10091         * doc/invoke.texi: Document -Wduplicated-cond.
10092         * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
10093         (insn-dfatab.o): Likewise.
10094         * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
10095         warning.
10096
10097 2015-10-02  Oleg Endo  <olegendo@gcc.gnu.org>
10098
10099         * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
10100         sequences.
10101
10102 2015-10-02  Renlin Li  <renlin.li@arm.com>
10103
10104         * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
10105
10106 2015-10-02  Renlin Li  <renlin.li@arm.com>
10107
10108         PR target/66776
10109         * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
10110
10111 2015-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10112
10113         PR rtl-optimization/67786
10114         PR rtl-optimization/67787
10115         * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
10116         it modifies a reg used in the condition calculation.
10117
10118 2015-10-02  James Greenhalgh  <james.greenhalgh@arm.com>
10119
10120         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
10121         alternatives for reads from memory and moves from general-purpose
10122         registers.
10123         (*aarch64_combinez_be<mode>): Likewise.
10124
10125 2015-10-02  Kai Tietz  <ktietz70@googlemail.com>
10126
10127         PR target/51726
10128         * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
10129         selectany within this function without need to keep attribute.
10130         (i386_pe_encode_section_info): Remove selectany-code.
10131
10132 2015-10-02  Richard Biener  <rguenther@suse.de>
10133
10134         * tree-ssa-sccvn.c (has_VN_INFO): New function.
10135         (free_scc_vn): Use it.
10136         (visit_use): Remove dead code and refactor to use gassign
10137         and use less indentation.
10138
10139 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
10140
10141         PR target/67788
10142         PR target/67789
10143         * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
10144         (rs6000_cannot_copy_insn_p): New function.
10145         * config/rs6000/rs6000.md (cannot_copy): New attribute.
10146         (load_toc_v4_PIC_1_normal): Set cannot_copy.
10147         (load_toc_v4_PIC_1_476): Ditto.
10148
10149 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
10150
10151         * graphite-scop-detection.c (struct sese_l): New conversion constructor
10152         so that this type can be pushed into a vec.
10153         (class scop_builder): use sese_l to collect scops.
10154         (get_scops): New getter function.
10155         (remove_intersecting_scops): Use sese_l instead of scops_p.
10156         (intersects): Same.
10157         (add_scop): Same.
10158         (subsumes): Same.
10159         (remove_subscops): Same.
10160         (build_scops): Add scops to vec<scops_p> once all the scops have been
10161         detected.
10162
10163 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
10164
10165         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
10166         Renamed type from gimple_bb_p to gimple_poly_bb_p.
10167         (translate_isl_ast_node_user): Same.
10168         * graphite-poly.c (new_poly_bb): Same.
10169         * graphite-poly.h (gbb_from_bb): Same.
10170         * sese.h: Same.
10171         * graphite-sese-to-poly.c (new_gimple_bb):
10172         gimple_bb_p -> gimple_poly_bb_p
10173         (build_scop_scattering): Same.
10174         (find_params_in_bb): Same.
10175         (add_conditions_to_domain): Same.
10176         (sese_dom_walker::before_dom_children): Same.
10177         (analyze_drs_in_stmts): Same.
10178         (new_pbb_from_pbb): Same.
10179         (free_data_refs_aux): New pointer to type base_alias_pair.
10180         * graphite-sese-to-poly.h: Same.
10181         * sese.c (if_region_set_false_region): Fixed Indentation.
10182         (move_sese_in_condition): Same.
10183
10184 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
10185             Aditya Kumar  <aditya.k7@samsung.com>
10186
10187         PR tree-optimization/66980
10188         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
10189         when data reference analysis has failed.
10190
10191 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
10192             Aditya Kumar  <aditya.k7@samsung.com>
10193
10194         PR tree-optimization/67754
10195         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
10196         scev analysis on the same loop nest as analyze_drs_in_stmts.
10197         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
10198         renamed...
10199         (try_generate_gimple_bb): Call outermost_loop_in_sese.
10200         (analyze_drs_in_stmts): Same.
10201         * sese.c (outermost_loop_in_sese): ...here.
10202
10203 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
10204             Aditya Kumar  <aditya.k7@samsung.com>
10205
10206         PR tree-optimization/67754
10207         * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
10208         recursion on the inner loops.
10209
10210 2015-10-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10211
10212         * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
10213         function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
10214         tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
10215         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
10216         tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
10217
10218 2015-10-01  Marek Polacek  <polacek@redhat.com>
10219
10220         PR c/65345
10221         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
10222         create_tmp_var_raw rather than create_tmp_var.
10223
10224 2015-10-01  Marek Polacek  <polacek@redhat.com>
10225
10226         PR tree-optimization/67769
10227         * tree-ssa-phiopt.c (conditional_replacement): Call
10228         reset_flow_sensitive_info_in_bb.
10229         (minmax_replacement): Likewise.
10230         (abs_replacement): Likewise.
10231
10232 2015-10-01  Nathan Sidwell  <nathan@codesourcery.com>
10233
10234         * builtins.c: Don't include gomp-constants.h.
10235         (fold_builtin_1): Don't fold acc_on_device here.
10236         * gimple-fold.c: Include gomp-constants.h.
10237         (gimple_fold_builtin_acc_on_device): New.
10238         (gimple_fold_builtin): Call it.
10239
10240 2015-10-01  H.J. Lu  <hongjiu.lu@intel.com>
10241
10242         * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
10243         (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
10244
10245 2015-10-01  James Greenhalgh  <james.greenhalgh@arm.com>
10246
10247         * config/arm/aarch-common-protos.h
10248         (aarch_accumulator_forwarding): New.
10249         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
10250         * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
10251         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
10252         * config/arm/cortex-a53.md: Rewrite.
10253
10254 2015-10-01  Richard Biener  <rguenther@suse.de>
10255
10256         * gimple-match.h (mprts_hook): Declare.
10257         * gimple-match.head.c (mprts_hook): Define.
10258         (maybe_push_res_to_seq): Use new hook.
10259         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
10260         * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
10261         (vn_ssa_aux::has_constants): Remove.
10262         * tree-ssa-sccvn.c: Include gimple-match.h.
10263         (VN_INFO_GET): Assert we don't re-use SSA names.
10264         (vn_get_expr_for): Remove.
10265         (expr_has_constants): Likewise.
10266         (stmt_has_constants): Likewise.
10267         (simplify_binary_expression): Likewise.
10268         (simplify_unary_expression): Likewise.
10269         (vn_lookup_simplify_result): New hook.
10270         (visit_copy): Adjust.
10271         (visit_reference_op_call): Likewise.
10272         (visit_phi): Likewise.
10273         (visit_use): Likewise.
10274         (process_scc): Likewise.
10275         (init_scc_vn): Likewise.
10276         (visit_reference_op_load): Likewise.  Use match-and-simplify and
10277         a gimple seq for inserted expressions.
10278         (try_to_simplify): Remove GENERIC stmt combining code.
10279         (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
10280         * tree-ssa-pre.c (eliminate_insert): Adjust.
10281         (eliminate_dom_walker::before_dom_children): Likewise.
10282
10283 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
10284
10285         * doc/invoke.texi (Optimization Options): Add
10286         -freorder-blocks-algorithm=.
10287         (Optimize Options) <-O>: Add -freorder-blocks.
10288         <-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
10289         <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
10290         <-freorder-blocks>: Also enabled at levels -O and -Os.
10291         <-freorder-blocks-algorithm=>: Document new option.
10292
10293 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
10294
10295         * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
10296         with flag_reorder_blocks_algorithm.
10297         * common.opt (freorder-blocks-algorithm=): New flag.
10298         (reorder_blocks_algorithm): New enum.
10299         * flag-types.h (reorder_blocks_algorithm): New enum.
10300         * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
10301         and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
10302
10303 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
10304
10305         * bb-reorder.c: Add intro comment.
10306         (reorder_basic_blocks_software_trace_cache): Print a header to
10307         the dump file.
10308         (edge_order): New function.
10309         (reorder_basic_blocks_simple): New function.
10310         (reorder_basic_blocks): Choose between the STC and the simple
10311         algorithms (always choose the former).
10312
10313 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
10314
10315         * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
10316         function, factored out from ...
10317         (reorder_basic_blocks): ... here.
10318
10319 2015-10-01  Tom de Vries  <tom@codesourcery.com>
10320
10321         * tree-cfg.c (dump_function_to_file): Dump function attributes using
10322         __attribute__(()) string.  Move dumping of function attributes to before
10323         function name.
10324
10325 2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>
10326
10327         PR target/66870
10328         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
10329         * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
10330         based on gold linker version.
10331         * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
10332         HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
10333         * configure, config.in: Regenerate.
10334
10335 2015-10-01  Alan Modra  <amodra@gmail.com>
10336
10337         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
10338         r2_setup_needed when TARGET_SINGLE_PIC_BASE.
10339         (rs6000_output_mi_thunk): Likewise.
10340
10341 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
10342
10343         * config/nvptx/mkoffload.c (process): Change offload data format.
10344
10345 2015-09-30  Jeff Law  <law@redhat.com>
10346
10347         * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
10348         with constant conditions.
10349         * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
10350         (remove_ctrl_stmt_and_useless_edges): No longer static.
10351         * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
10352         (remove_ctrl_stmt_and_useless_edges): Likewise.
10353
10354 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
10355             Cesar Philippidis  <cesar@codesourcery.com>
10356
10357         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
10358         (TARGET_GOACC_VALIDATE_DIMS): Override.
10359         * target.def (TARGET_GOACC): New target hook prefix.
10360         (validate_dims): New hook.
10361         * targhooks.h (default_goacc_validate_dims): New.
10362         * omp-low.c (oacc_validate_dims): New.
10363         (execute_oacc_device_lower): New.
10364         (default_goacc_validate_dims): New.
10365         (pass_data_oacc_device_lower): New.
10366         (pass_oacc_device_lower): New pass.
10367         (make_pass_oacc_device_lower): New.
10368         * tree-pass.h (make_pass_oacc_device_lower): Declare.
10369         * passes.def (pass_oacc_device_lower): Add it.
10370         * doc/tm.texi: Rebuilt.
10371         * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
10372         * doc/invoke.texi (oaccdevlow): Document tree dump flag.
10373
10374 2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10375
10376         PR rtl-optimization/67037
10377         * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
10378
10379 2015-09-30  Bernd Schmidt  <bernds@redhat.com>
10380
10381         * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
10382         * passes.c: Include tree-ssanames.h.
10383         (execute_function_todo): Flush the pending free SSA_NAMEs after
10384         eliminating unreachable basic blocks.
10385         * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
10386         (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
10387         (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
10388         (flush_ssanames_freelist): New function.
10389         (release_ssaname_fn): Put released names on the queue.
10390         (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
10391         * tree-ssanames.h (flush_ssanames_freelist): Declare.
10392
10393 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
10394
10395         * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
10396         (generate_target_descr_file, generate_target_offloadend_file)
10397         (generate_host_descr_file, prepare_target_image): Pass it on.
10398         * config/nvptx/mkoffload.c (main): Parse "-v" flag.
10399         (compile_native, main): Pass it on.
10400         * lto-wrapper.c (compile_offload_image): Likewise.
10401
10402 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
10403             Ilya Verbin  <ilya.verbin@intel.com>
10404             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10405
10406         * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
10407         (prepare_target_image, main): Refactor argv building to use
10408         obstacks.
10409
10410 2015-09-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10411
10412         * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
10413         * config/spu/spu.c (spu_expand_atomic_op): New function.
10414         * config/spu/spu.md (AINT): New mode iterator.
10415         (ATOMIC): New code iterator.
10416         (atomic_name, atomic_pred): New code predicates.
10417         ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
10418         ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
10419         (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
10420         "atomic_<atomic_name>_fetch<mode>"): Likewise.
10421
10422 2015-09-30  Ilya Enkovich  <enkovich.gnu@gmail.com>
10423
10424         * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
10425         debug insns.
10426         (scalar_chain::convert_reg): Likewise.
10427
10428 2015-09-30  Richard Biener  <rguenther@suse.de>
10429
10430         * builtins.c: Add comment that no new simplifications should
10431         be added here.
10432
10433 2015-09-30  Marek Polacek  <polacek@redhat.com>
10434
10435         PR tree-optimization/67690
10436         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
10437         reset_flow_sensitive_info_in_bb.
10438         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
10439         * tree-ssanames.c: Include "gimple-iterator.h".
10440         (reset_flow_sensitive_info_in_bb): New function.
10441         * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
10442
10443 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
10444
10445         * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
10446         variable, replacing it with...
10447         (offload_abi): ... this new variable.  Adjust all users.
10448         * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
10449
10450 2015-09-30  Matthias Klose  <doko@ubuntu.com>
10451
10452         * configure.ac: Remove extraneous ;;.
10453         * configure: Regenerate.
10454
10455 2015-09-29  James Bowman  <james.bowman@ftdichip.com>
10456
10457         * config/ft32/predicates.md (ft32_imm_operand): New predicate.
10458         * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
10459         predicate, disallow register for operand 2.
10460
10461 2015-09-29  Aditya Kumar  <aditya.k7@samsung.com>
10462
10463         * graphite-dependences.c (scop_get_dependences): Moved in down
10464         in order to be visible to its caller.
10465         * graphite-poly.h: Removed compute_deps, and extend_schedule.
10466
10467 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
10468             Aditya Kumar  <aditya.k7@samsung.com>
10469
10470         PR tree-optimization/67754
10471         * graphite-optimize-isl.c (optimize_isl): Call
10472         isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
10473
10474 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
10475
10476         * builtins.c (expand_builtin_acc_on_device): Delete.
10477         (expand_builtin): Don't call it.
10478         (fold_builtin_1): Fold acc_on_device.
10479
10480 2015-09-29  H.J. Lu  <hongjiu.lu@intel.com>
10481
10482         * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
10483         (ix86_nsaved_sseregs): Likewise.
10484
10485 2015-09-29  Jeff Law  <law@redhat.com>
10486
10487         * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
10488         computation of unused value.
10489
10490         * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
10491         * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
10492         inline macro expansion.
10493
10494         * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
10495
10496         * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
10497         (gen_shl_sext): Likewise.
10498         * config/sh/sh.md (divsi3): Likewise.
10499         (imm->ext_dest_operand splitter): Likewise.
10500
10501 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
10502             Aditya Kumar  <aditya.k7@samsung.com>
10503
10504         * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
10505         (nb_data_writes_in_bb): Remove.
10506         (split_pbb): Remove.
10507         (split_reduction_stmt): Remove.
10508         (is_reduction_operation_p): Remove.
10509         (phi_contains_arg): Remove.
10510         (follow_ssa_with_commutative_ops): Remove.
10511         (detect_commutative_reduction_arg): Remove.
10512         (detect_commutative_reduction_assign): Remove.
10513         (follow_inital_value_to_phi): Remove.
10514         (edge_initial_value_for_loop_phi): Remove.
10515         (initial_value_for_loop_phi): Remove.
10516         (used_outside_reduction): Remove.
10517         (detect_commutative_reduction): Remove.
10518         (translate_scalar_reduction_to_array_for_stmt): Remove.
10519         (remove_phi): Remove.
10520         (dr_indices_valid_in_loop): Remove.
10521         (close_phi_written_to_memory): Remove.
10522         (translate_scalar_reduction_to_array): Remove.
10523         (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
10524         (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
10525         (rewrite_commutative_reductions_out_of_ssa): Remove.
10526         (build_poly_scop): Remove call to
10527         rewrite_commutative_reductions_out_of_ssa.
10528
10529 2015-09-29  Evandro Menezes  <e.menezes@samsung.com>
10530
10531         * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
10532         Add new insn types for vector load and store pairs.
10533         * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
10534         types "neon_ldp{,_q}".
10535         * config/arm/cortex-a57.md (neon_load_c): Add insn types
10536         "neon_ldp{,_q}".
10537         (neon_store_complex): Add insn types "neon_stp{,_q}".
10538         * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
10539         "neon_{ldp,stp}_q".
10540
10541 2015-09-29  Jeff Law  <law@redhat.com>
10542
10543         * config/rx/constraints.md (Int08): Fix undefined left shift
10544         behaviour.
10545         (Sint08, Sint16, Sint24): Likewise.
10546         * config/rx/rx.c (rx_get_stack_layout): Likewise.
10547
10548         * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
10549         behaviour.
10550
10551         * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
10552         left shift behaviour.
10553         * config/msp430/constraints.md ('L' constraint): Similarly.
10554         ('Ys' constraint): Similarly.
10555
10556 2015-09-29  Richard Biener  <rguenther@suse.de>
10557
10558         PR tree-optimization/67170
10559         * tree-ssa-alias.h (get_continuation_for_phi): Adjust
10560         the translate function pointer parameter to get the
10561         bool whether to disambiguate only by reference.
10562         (walk_non_aliased_vuses): Likewise.
10563         * tree-ssa-alias.c (maybe_skip_until): Adjust.
10564         (get_continuation_for_phi_1): Likewise.
10565         (get_continuation_for_phi): Likewise.
10566         (walk_non_aliased_vuses): Likewise.
10567         * tree-ssa-sccvn.c (const_parms): New bitmap.
10568         (vn_reference_lookup_3): Adjust for interface change.
10569         Disambiguate parameters pointing to readonly memory.
10570         (free_scc_vn): Free const_parms.
10571         (run_scc_vn): Initialize const_parms from a fn spec attribute.
10572
10573 2015-09-29  Richard Biener  <rguenther@suse.de>
10574
10575         PR tree-optimization/67741
10576         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
10577         builtin calls with correct signature.
10578
10579 2015-09-29  Ilya Enkovich  <enkovich.gnu@gmail.com>
10580
10581         PR target/65105
10582         * config/i386/i386.c: Include dbgcnt.h.
10583         (has_non_address_hard_reg): New.
10584         (convertible_comparison_p): New.
10585         (scalar_to_vector_candidate_p): New.
10586         (remove_non_convertible_regs): New.
10587         (scalar_chain): New.
10588         (scalar_chain::scalar_chain): New.
10589         (scalar_chain::~scalar_chain): New.
10590         (scalar_chain::add_to_queue): New.
10591         (scalar_chain::mark_dual_mode_def): New.
10592         (scalar_chain::analyze_register_chain): New.
10593         (scalar_chain::add_insn): New.
10594         (scalar_chain::build): New.
10595         (scalar_chain::compute_convert_gain): New.
10596         (scalar_chain::replace_with_subreg): New.
10597         (scalar_chain::replace_with_subreg_in_insn): New.
10598         (scalar_chain::emit_conversion_insns): New.
10599         (scalar_chain::make_vector_copies): New.
10600         (scalar_chain::convert_reg): New.
10601         (scalar_chain::convert_op): New.
10602         (scalar_chain::convert_insn): New.
10603         (scalar_chain::convert): New.
10604         (convert_scalars_to_vector): New.
10605         (pass_data_stv): New.
10606         (pass_stv): New.
10607         (make_pass_stv): New.
10608         (ix86_option_override): Created and register stv pass.
10609         (flag_opts): Add -mstv.
10610         (ix86_option_override_internal): Likewise.
10611         * config/i386/i386.md (SWIM1248x): New.
10612         (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
10613         (and<mode>3): Use SWIM1248x iterator instead of SWIM.
10614         (*anddi3_doubleword): New.
10615         (*zext<mode>_doubleword): New.
10616         (*zextsi_doubleword): New.
10617         (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
10618         (*<code>di3_doubleword): New.
10619         * config/i386/i386.opt (mstv): New.
10620         * dbgcnt.def (stv_conversion): New.
10621
10622 2015-09-29  Tom de Vries  <tom@codesourcery.com>
10623
10624         * tree-cfg.c (dump_function_to_file): Dump function attributes.
10625
10626 2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
10627
10628         PR target/67716
10629         * config/sh/sh.c (sh_override_options_after_change): New.
10630         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
10631         (sh_option_override): Move align_loops, align_jumps and
10632         align_functions handling into sh_override_options_after_change.
10633
10634 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
10635
10636         * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
10637         (nvptx_record_offload_symbol): Record function execution geometry.
10638         * config/nvptx/mkoffload.c (process): Include launch geometry in
10639         function data.
10640         * omp-low.c (oacc_launch_pack): New.
10641         (replace_oacc_fn_attrib): New.
10642         (set_oacc_fn_attrib): New.
10643         (get_oacc_fn_attrib): New.
10644         (expand_omp_target): Create keyed varargs for GOACC_parallel call
10645         generation.
10646         * omp-low.h (get_oacc_fn_attrib): Declare.
10647         * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
10648         (DEF_FUNCTION_TYPE_VAR_11): Delete.
10649         * tree.h (OMP_CLAUSE_EXPR): New.
10650         * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
10651
10652 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
10653             Sebastian Pop  <s.pop@samsung.com>
10654
10655         * sese.c (invariant_in_sese_p_rec): Remove unused variable.
10656
10657 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
10658             Sebastian Pop  <s.pop@samsung.com>
10659
10660         * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
10661         * graphite-scop-detection.c (struct sese_l): New type.
10662         (get_entry_bb): API for getting entry bb of SESE.
10663         (get_exit_bb): API for getting exit bb of SESE.
10664         (class debug_printer): New type.  Simple printer in debug mode.
10665         (trivially_empty_bb_p): New.  Return true when BB is empty or
10666         contains only debug instructions.
10667         (graphite_can_represent_expr): Call scalar_evoution_in_region
10668         instead of analyze_scalar_evolution.  Pass in scop instead of only
10669         the scop entry.
10670         (stmt_has_simple_data_refs_p): Pass in scop instead of only the
10671         scop entry.
10672         (stmt_simple_for_scop_p): Same.
10673         (harmful_stmt_in_bb): Same.
10674         (graphite_can_represent_loop): Deleted.
10675         (struct scopdet_info): Deleted.
10676         (scopdet_basic_block_info): Deleted.
10677         (build_scops_1): Deleted.
10678         (bb_in_sd_region): Deleted.
10679         (find_single_entry_edge): Deleted.
10680         (find_single_exit_edge): Deleted.
10681         (create_single_entry_edge): Deleted.
10682         (sd_region_without_exit): Deleted.
10683         (create_single_exit_edge): Deleted.
10684         (unmark_exit_edges): Deleted.
10685         (mark_exit_edges): Deleted.
10686         (create_sese_edges): Deleted.
10687         (build_graphite_scops): Deleted.
10688         (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
10689         (build_scops): Use the new scop_builder to build scops.
10690         (dot_all_scops_1): Use the new pretty printer.  Print loop father
10691         as well.
10692         (loop_body_is_valid_scop): New.  Return true if loop body is a
10693         valid scop.
10694         (class scop_builder): New.  Builds SCoPs for polyhedral
10695         optimizations.
10696         (scop_builder): New constructor.
10697         (static sese_l invalid_sese): sese_l with invalid edges.
10698         (get_sese): Get an sese (from a loop) if possible, invalid_sese
10699         otherwise.
10700         (get_nearest_dom_with_single_entry): Get nearest dominator of a
10701         basic_block with single entry.  Return NULL if we get to the
10702         beginning of a function.
10703         (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
10704         a basic_block with single exit.  Return NULL if we get to the
10705         beginning of a function.
10706         (print_sese): Pretty-print SESE.
10707         (merge_sese): Merge two SESEs if possible and return the new SESE.
10708         (build_scop_depth): Start building the SCoP within a loop nest.
10709         (build_scop_breadth): Start building the SCoP at a single loop
10710         depth.  Merge adjacent SESEs if valid.
10711         (can_represent_loop_1): Returns true if Graphite can represent
10712         loop inside SCoP.  Helper for can_represent_loop.
10713         (can_represent_loop): Returns true if Graphite can represent LOOP
10714         and all its nested loops in SCoP.
10715         (loop_is_valid_scop): Returns true if LOOP and all its nests
10716         constitute a valid SCoP.
10717         (region_has_one_loop): Returns true of a region has only one loop.
10718         (add_scop): Add SCoP to the list of valid scops.  Removes an
10719         already existing scop if it intersects with or subsumed by this one.
10720         (harmful_stmt_in_region): Returns true if SCoP has any statment
10721         which cannot be represented by Graphite.
10722         (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
10723         (remove_subscops): Remove any SCoP from the list of already found
10724         SCoPs, if subsumed by S1.
10725         (intersects): Return true if region bounded by SCoPs S1 and S2
10726         intersect.
10727         (remove_intersecting_scops): Remove any SCoP which intersects with S1.
10728         * graphite.c (print_graphite_scop_statistics):
10729         (print_graphite_statistics): Print SCoP info while debugging.
10730         (graphite_initialize): Early exit in case number of loops in a
10731         function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
10732         basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
10733         (graphite_finalize):
10734         * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
10735         * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
10736         (recompute_all_dominators): Recalculate POST_DOMINATORS.
10737         * tree-cfg.c (print_loops): Print the function name while printing
10738         loops.
10739
10740 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
10741             Sebastian Pop  <s.pop@samsung.com>
10742
10743         PR tree-optimization/67700
10744         * graphite-sese-to-poly.c (parameter_index_in_region): Call
10745         invariant_in_sese_p_rec.
10746         (extract_affine): Same.
10747         (rewrite_cross_bb_scalar_deps): Call update_ssa.
10748         * sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
10749         * sese.h (invariant_in_sese_p_rec): Declare.
10750
10751 2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>
10752
10753         * doc/extend.texi (Asm Labels): Break out text for data vs functions.
10754
10755 2015-09-28  Jiong Wang  <jiong.wang@arm.com>
10756
10757         Revert:
10758         2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10759                     Jiong Wang  <jiong.wang@arm.com>
10760
10761         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
10762         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
10763         (REG_CLASS_NAMES): Likewise.
10764         (REG_CLASS_CONTENTS): Likewise.
10765         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
10766         (aarch64_register_move_cost): Likewise.
10767         (aarch64_load_symref_appropriately): Invoke the new added pattern if
10768         possible.
10769         * config/aarch64/constraints.md (Uc0): New constraint.
10770
10771 2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>
10772
10773         * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
10774
10775 2015-09-28  David Edelsohn  <dje.gcc@gmail.com>
10776
10777         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
10778         SECTION_EXCLUDE in XO mapping class.
10779
10780 2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
10781
10782         PR target/54236
10783         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
10784         and handle ne and eq codes.
10785         * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
10786         (sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
10787         CONST_INT_P.  Use reverse_condition.
10788         (sh_split_treg_set_expr): Likewise.
10789
10790 2015-09-28  James Greenhalgh  <james.greenhalgh@arm.com>
10791
10792         * config/arm/types.md (type): Add rotate_imm.
10793         * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
10794         ROR immediate case.
10795         (*rorsi3_insn_uxtw): Likewise.
10796         * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
10797         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
10798         * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
10799
10800 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10801
10802         PR rtl-optimization/67481
10803         * ifcvt.c (contains_ccmode_rtx_p): New function.
10804         (insn_valid_noce_process_p): Use it.
10805
10806 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10807
10808         PR rtl-optimization/67456
10809         PR rtl-optimization/67464
10810         PR rtl-optimization/67465
10811         * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
10812         move in the mode of x.  Handle combination of complex and simple
10813         block pairs as well as the case when one is empty.
10814
10815 2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10816
10817         * doc/gimple.texi: Update references to gimple_statement_base.
10818         * gdbhooks.py: Likewise.
10819         * gimple.h: Likewise.
10820
10821 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
10822
10823         * config/sparc/driver-sparc.c: map LEON to leon3
10824
10825 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
10826
10827         * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
10828           and make it inverse to change default
10829         * config/sparc/sync.md: Only use supervisor ASI for CASA when in
10830           supervisor mode
10831         * doc/invoke.texi: Document change of default
10832
10833 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
10834
10835         * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
10836         true on %f0 for a target without FPU.
10837         * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
10838         without FPU.
10839         (untyped_return): Do not load %f0 for a target without FPU.
10840
10841 2015-09-28  Andrew Pinski  <apinski@cavium.com>
10842
10843         * config/aarch64/aarch64.md (prefetch):
10844         Change the predicate of operand 0 to register_operand.
10845
10846 2015-09-27  Uros Bizjak  <ubizjak@gmail.com>
10847
10848         * config/i386/predicates.md (register_sse4nonimm_operand): New
10849         predicate.
10850         * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
10851         (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
10852         Use register_sse4nonimm_operand as operand 0 predicate.
10853         (*vec_extractv8hi_sse2): Remove insn pattern.
10854         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
10855         *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
10856
10857 2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
10858             Kaz Kojima  <kkojima@gcc.gnu.org>
10859
10860         PR target/67391
10861         * config/sh/sh-protos.h (sh_lra_p): Declare.
10862         * config/sh/sh.c (sh_lra_p): Make non-static.
10863         * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
10864         arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
10865         Expand into addsi3_scr if operands[2] if needed.
10866         (*addsi3_compact): Rename to *addsi3_compact_lra.  Use
10867         arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
10868         (addsi3_scr, *addsi3): New insn_and_split patterns.
10869
10870 2015-09-27  Alexandre Oliva <aoliva@redhat.com>
10871
10872         PR rtl-optimization/64164
10873         PR tree-optimization/67312
10874         PR middle-end/67340
10875         PR middle-end/67490
10876         PR bootstrap/67597
10877         * cfgexpand.c (parm_in_stack_slot_p): Remove.
10878         (ssa_default_def_partition): Remove.
10879         (get_rtl_for_parm_ssa_default_def): Remove.
10880         (set_rtl): Check that RTL assignments match expectations.
10881         Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
10882         default def location for params and results.  Record SSA names
10883         or types in REG and MEM attrs, respectively.
10884         (set_parm_rtl): New.
10885         (expand_one_ssa_partition): Drop logic that assigned MEMs with
10886         unassigned addresses.
10887         (adjust_one_expanded_partition_var): Don't accept NULL RTL on
10888         deferred stack alloc vars.
10889         (expand_used_vars): Skip partitions holding parm default defs.
10890         Move adjust_one_expanded_partition_var loop...
10891         (pass_expand::execute): ... here.  Drop redundant assert.
10892         Adjust comments before the final loop over all ssa names.
10893         Require assigned rtl of parms and results to match exactly.
10894         Reset its attributes to match them, not any other variables in
10895         the same partition.
10896         (expand_debug_expr): Use entry value for PARM's default defs
10897         only iff they have zero nondebug uses.
10898         * cfgexpand.h (parm_in_stack_slot_p): Remove.
10899         (get_rtl_for_parm_ssa_default_def): Remove.
10900         (set_parm_rtl): Declare.
10901         * doc/invoke.texi: Improve wording.
10902         * explow.c (promote_decl_mode): Fix promote_function_mode for
10903         result decls not by reference.
10904         (promote_ssa_mode): Disregard BLKmode from promote_decl, and
10905         bypass TYPE_MODE to get the actual vector mode.
10906         * function.c: Include tree-dfa.h.  Revert 2015-08-14's and
10907         2015-08-19's changes as follows.  Drop include of
10908         basic-block.h and df.h.
10909         (rtl_for_parm): Remove.
10910         (maybe_reset_rtl_for_parm): Remove.
10911         (parm_in_unassigned_mem_p): Remove.
10912         (use_register_for_decl): Add logic for RESULT_DECLs matching
10913         assign_parms' behavior.
10914         (split_complex_args): Revert.
10915         (assign_parms_augmented_arg_list): Revert.  Add comment
10916         referencing the logic above.
10917         (assign_parm_adjust_stack_rtl): Revert.
10918         (assign_parm_setup_block): Revert.  Use set_parm_rtl instead
10919         of SET_DECL_RTL.  Set up a REG if the parm demands so.
10920         (assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
10921         calls into a single set_parm_rtl.  Set up a temporary RTL
10922         temporarily for expand_assignment.
10923         (assign_parm_setup_stack): Revert.  Use set_parm_rtl.
10924         (assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
10925         (assign_bounds): Revert.
10926         (assign_parms): Revert.  Use set_parm_rtl.
10927         (allocate_struct_function): Relayout result and parms of
10928         non-abstruct functions.
10929         (expand_function_start): Revert.  Use set_parm_rtl.  If the
10930         result is not a hard reg, create a pseudo from the promoted
10931         mode of the default def.  Promote static chain mode.
10932         * tree-outof-ssa.c (remove_ssa_form): Drop unused
10933         partition_has_default_def.  Set up
10934         partitions_for_parm_default_defs.
10935         (finish_out_of_ssa): Remove partition_has_default_def.
10936         Release partitions_for_parm_default_defs.
10937         * tree-outof-ssa.h (struct ssaexpand): Remove
10938         partition_has_default_def.  Add
10939         partitions_for_parm_default_defs.
10940         * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
10941         stor-layout.h.
10942         (build_ssa_conflict_graph): Fix conflict-detection of default
10943         defs of even unused default defs of params and results.
10944         (for_all_parms): New.
10945         (create_default_def): New.
10946         (register_default_def): New.
10947         (coalesce_with_default): New.
10948         (create_outofssa_var_map): Create default defs for all parms
10949         and results, and register their partitions.  Add GIMPLE_RETURN
10950         operands as coalesce candidates with results.  Add default
10951         defs of each parm or result as coalesce candidates with its
10952         other defs.  Mark each result def, and each default def of
10953         parms, as used_in_copy.
10954         (gimple_can_coalesce_p): Call it.  Call use_register_for_decl
10955         with the ssa names, even anonymous ones.  Drop
10956         parm_in_stack_slot_p calls.  Require same signedness and
10957         alignment.
10958         (coalesce_ssa_name): Add coalesce candidates for all defs of
10959         each parm and result, even unused ones.
10960         (parm_default_def_partition_arg): New type.
10961         (set_parm_default_def_partition): New.
10962         (get_parm_default_def_partitions): New.
10963         * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
10964         * tree-ssa-live.c (partition_view_init): Regard unused defs of
10965         parms and results as used.
10966         (verify_live_on_entry): Don't error out just because they're
10967         not live.
10968
10969 2015-09-26  David Edelsohn  <dje.gcc@gmail.com>
10970
10971         * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
10972         (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
10973         (output_fde): Don't output length for debug_frame on AIX.
10974         (output_call_frame_info): Don't output length for debug_frame on AIX.
10975         (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
10976         HAVE_XCOFF_DWARF_EXTRAS.
10977         (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
10978         HAVE_XCOFF_DWARF_EXTRAS.
10979         (output_compilation_unit_header): Don't output length on AIX.
10980         (output_pubnames): Don't output length on AIX.
10981         (output_aranges): Delete argument. Compute length locally. Don't
10982         output length on AIX.
10983         (output_line_info): Don't output length on AIX.
10984         (dwarf2out_finish): Don't compute aranges_length.
10985         * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
10986         (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
10987         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
10988         symbol decoration for AIX.
10989         (rs6000_xcoff_debug_unwind_info): New.
10990         (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
10991         for SECTION_DEBUG.
10992         (rs6000_xcoff_declare_function_name): Emit different
10993         .function pseudo-op when DWARF2_DEBUG. Don't call
10994         xcoffout_declare_function for DWARF2_DEBUG.
10995         * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
10996         Redefine.
10997         * config/rs6000/aix71.h: New.
10998         * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
10999         locations support.
11000         * configure: Regenerate.
11001         * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
11002         DWARF support.
11003
11004 2015-09-26  Jeff Law  <law@redhat.com>
11005
11006         * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
11007         behaviour.
11008         * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
11009         behaviour.
11010
11011         * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
11012         behaviour
11013
11014         * config/mips/mips.c (mips_compute_frame_info): Fix left shift
11015         undefined behaviour.
11016
11017         * config/cris/cris.md (asrandb): Fix left shift undefined
11018         behaviour.
11019         (asrandw): Likewise.
11020
11021 2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>
11022
11023         PR target/61578
11024         * lra-constarints.c (match_reload): Check presence of the input pseudo
11025         in the output operand.
11026
11027 2015-09-25  Tobias Burnus  <burnus@net-b.de>
11028
11029         * doc/invoke.texi (-fsanitize): Minor wording tweak.
11030
11031 2015-09-25  Tobias Burnus  <burnus@net-b.de>
11032
11033         * doc/invoke.texi (-fsanitize): Update URLs.
11034
11035 2015-09-25  Teresa Johnson  <tejohnson@google.com>
11036
11037         * opts.c (finish_options): Unset -freorder-blocks-and-partition
11038         if not using profile.
11039
11040 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11041
11042         PR pretty-print/67567
11043         * pretty-print.c (pp_string): Add gcc_checking_assert.
11044         * pretty-print.h (output_buffer_append_r): Likewise.
11045
11046 2015-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
11047
11048         PR target/67675
11049         * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
11050         addr2 individually.  Don't emit logical or insn if one is known to
11051         be aligned approriately.
11052         (sh_expand_cmpnstr): Likewise.
11053
11054 2015-09-25  Richard Sandiford  <richard.sandiford@arm.com>
11055
11056         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
11057         __builtin_aarch64_fp[sc]r arguments into a register.
11058
11059 2015-09-25  H.J. Lu  <hongjiu.lu@intel.com>
11060
11061         * config.gcc (x86_archs): Replace lakemount with lakemont.
11062         (with_cpu): Likewise.
11063         (with_arch): Likewise.
11064         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
11065         PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
11066         __tune_lakemount__ with __tune_lakemont__.
11067         * config/i386/i386.c (lakemount_cost): Renamed to ...
11068         (lakemont_cost): This.
11069         (m_LAKEMOUNT): Renamed to ...
11070         (m_LAKEMONT): This.
11071         (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
11072         (processor_target_table): Replace "lakemount" with "lakemont".
11073         (processor_alias_table): Likewise.
11074         (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
11075         PROCESSOR_LAKEMONT.
11076         (ix86_adjust_cost): Likewise.
11077         (ia32_multipass_dfa_lookahead): Likewise.
11078         * config/i386/i386.h (processor_type): Likewise.
11079         * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
11080         * doc/invoke.texi: Replace lakemount with lakemont.  Replace
11081         Lakemount with Lakemont.
11082
11083 2015-09-24  H.J. Lu  <hongjiu.lu@intel.com>
11084
11085         * config.gcc (x86_archs): Replace iamcu with lakemount.
11086         (with_cpu): Likewise.
11087         (with_arch): Likewise.
11088         * doc/invoke.texi: Likewise.
11089         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
11090         PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
11091         __tune_iamcu__ with __tune_lakemount__.
11092         * config/i386/i386.c (iamcu_cost): Renamed to ...
11093         (lakemount_cost): This.
11094         (m_IAMCU): Renamed to ...
11095         (m_LAKEMOUNT): This.
11096         (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
11097         (processor_target_table): Replace "iamcu" with "lakemount".
11098         (processor_alias_table): Likewise.
11099         (ix86_issue_rate): Replace PROCESSOR_IAMCU with
11100         PROCESSOR_LAKEMOUNT.
11101         (ix86_adjust_cost): Likewise.
11102         (ia32_multipass_dfa_lookahead): Likewise.
11103         * config/i386/i386.h (processor_type): Likewise.
11104         * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
11105
11106 2015-09-24  John David Anglin  <danglin@gcc.gnu.org>
11107
11108         * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
11109         * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
11110         Declare.
11111         * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
11112         (pa_expand_compare_and_swap_loop): New.
11113         (pa_maybe_emit_compare_and_swap_exchange_loop): New.
11114         * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
11115         atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
11116         (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
11117         (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
11118         Revise.
11119
11120 2015-09-24  Michael Collison  <michael.collison@linaro.org>
11121
11122         PR other/57195
11123         * read-md.c (read_name): Allow mode iterators inside angle
11124         brackets in rtl expressions.
11125
11126 2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>
11127
11128         PR target/61578
11129         * ira-color.c (update_allocno_cost): Add parameter.
11130         (update_costs_from_allocno): Decrease conflict cost.  Pass the new
11131         parameter.
11132
11133 2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11134
11135         PR driver/67640
11136         * opts-common.c (prune_options): Discard all -fdiagnostics-color
11137         but the last one, which is moved to the front to be processed
11138         first.
11139         * opts.c (enable_warning_as_error): Reject options that do not
11140         control warnings.
11141
11142 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
11143
11144         * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
11145
11146 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
11147
11148         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
11149         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
11150         (aarch64_cannot_force_const_mem): Likewise.
11151         (aarch64_classify_address): Likewise.
11152         (aarch64_classify_symbolic_expression): Likewise.
11153         (aarch64_print_operand): Likewise.
11154         (aarch64_classify_symbol): Likewise.
11155         (aarch64_mov_operand_p): Likewise.
11156         * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
11157         (aarch64_mov_operand): Likewise.
11158
11159 2015-09-24  Segher Boessenkool  <segher@kernel.crashing.org>
11160
11161         * config/rs6000/rs6000.c (debug_stack_info): Invert the test
11162         for info->spe_gp_size.
11163
11164 2015-09-24  Richard Biener  <rguenther@suse.de>
11165
11166         PR lto/67699
11167         * lto-cgraph.c (compute_ltrans_boundary): Do not stream
11168         abstract origins.
11169
11170 2015-09-24  Thomas Schwinge  <thomas@codesourcery.com>
11171
11172         * tree-object-size.c (plus_stmt_object_size)
11173         (cond_expr_object_size): Change the formal parameters from gimple
11174         to gimple *.
11175         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
11176         * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
11177         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
11178
11179 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11180
11181         * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
11182         Check for ld -type pie on Solaris 11.x and 12.
11183         * configure: Regenerate.
11184         * config.in: Regenerate.
11185
11186         * gcc.c (LD_PIE_SPEC): Allow redefinition.
11187
11188         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
11189         (STARTFILE_SPEC): Use it.
11190         (ENDFILE_CRTEND_SPEC): Define.
11191         (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
11192         (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
11193         ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
11194         [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
11195         (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
11196         * config/i386/sol2.h (ENDFILE_SPEC): Remove.
11197         (ENDFILE_ARCH_SPEC): Define.
11198         * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
11199
11200 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11201
11202         * configure.ac (gcc_cv_solaris_crts): New test.
11203         * configure. Regenerate.
11204         * config.in: Regenerate.
11205         * config/sol2.h (STARTFILE_SPEC): Simplify, provide
11206         HAVE_SOLARIS_CRTS variant.
11207
11208 2015-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11209
11210         * tree-inline.h (count_insns_seq): Delete prototype.
11211         (estimate_num_insns_seq): Define prototype.
11212         * tree-inline.c (count_insns_seq): Delete.
11213         (estimate_num_insns_seq): Remove static qualifier.
11214         * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
11215         with estimate_num_insns_seq.
11216
11217 2015-09-24  Richard Biener  <rguenther@suse.de>
11218
11219         * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
11220         members.
11221         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
11222         and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
11223         offset.
11224         (ao_ref_init_from_vn_reference): Record clique and base in the
11225         built base.
11226         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
11227
11228 2015-09-24  Richard Biener  <rguenther@suse.de>
11229
11230         PR tree-optimization/48885
11231         * tree-ssa-structalias.c (visit_loadstore): Handle default defs
11232         as not including any restrict tags from other pointers.
11233
11234 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
11235
11236         * gcc.c (handle_foffload_option): Don't lose the trailing NUL
11237         character when appending to offload_targets.
11238
11239         * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
11240         offload targets by commas, not colons.
11241         * config.in: Regenerate.
11242         * configure: Likewise.
11243         * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
11244         instead of setting up the default offload targets here...
11245         (process_command): ..., do it here.
11246         libgomp/
11247         * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
11248         targets are separated by commas.
11249         * config.h.in: Regenerate.
11250
11251 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
11252             Nathan Sidwell  <nathan@codesourcery.com>
11253
11254         * omp-low.h (omp_reduction_init_op): Declare.
11255         * omp-low.c (omp_reduction_init_op): New, broken out of ...
11256         (omp_reduction_init): ... here.  Call it.
11257         * tree-parloops.c (initialize_reductions): Use
11258         omp_reduction_init_op.
11259
11260 2015-09-23   Richard Biener  <rguenther@suse.de>
11261
11262         PR middle-end/67662
11263         * fold-const.c (fold_binary_loc): Do not reassociate two vars with
11264         undefined overflow unless they will cancel out.
11265
11266 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
11267
11268         * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
11269         insn emit.
11270
11271 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11272
11273         PR c/49655
11274         * opts.h (write_langs): Declare.
11275         * opts-global.c (write_langs): Make it extern.
11276
11277 2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>
11278
11279         PR target/67391
11280         * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
11281         overlapping regs when matching the pattern.
11282
11283 2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
11284
11285         * config/aarch64/aarch64-simd.md
11286         (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
11287         (aarch64_float_truncate_hi_v4sf_le): New.
11288         (aarch64_float_truncate_hi_v4sf_be): Likewise.
11289
11290 2015-09-23  Richard Biener  <rguenther@suse.de>
11291
11292         * tree-ssa-structalias.c (intra_create_variable_infos): Build
11293         representatives for all restrict qualified pointer destinations.
11294
11295 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
11296
11297         * config/i386/i386.md (define_code_attr mshift): New.
11298         (define_mode_iterator SWI1248_AVX512BW): Rename ...
11299         (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
11300         only.
11301         (define_insn "*k<logic><mode>"): Use new iterator name.
11302         (define_insn "*<mshift><mode>3"): New.
11303
11304 2015-09-23  Mikhail Maltsev  <maltsevm@gmail.com>
11305
11306         PR middle-end/67649
11307         * memory-block.h (memory_block_pool::allocate): Use valgrind API to
11308         mark the block as accessible.
11309
11310 2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>
11311
11312         * function.c (thread_prologue_and_epilogue_insns): Delete
11313         orig_entry_edge argument to try_shrink_wrapping.
11314         * shrink-wrap.c (can_get_prologue): New function.
11315         (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
11316         (try_shrink_wrapping): Delete orig_entry_edge argument.  Use
11317         can_get_prologue where needed.  Remove code that finds a single
11318         edge for the prologue.  Remove code that tests if any reg clobbered
11319         by the prologue is live on the prologue edge.  Remove code that finds
11320         the new prologue edge after duplicating blocks.  Make a new prologue
11321         block and edge.
11322         * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
11323
11324 2015-09-22  Jeff Law  <law@redhat.com>
11325
11326         * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
11327         behavior.
11328
11329 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
11330
11331         * doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
11332         -Wtemplates, -Wnamespaces): Document.
11333
11334 2015-09-22  Tom de Vries  <tom@codesourcery.com>
11335
11336         PR tree-optimization/67671
11337         * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
11338         pointer references as restrict.
11339
11340 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
11341
11342         * config/nios2/nios2.c (nios2_legitimize_address): When handling
11343         'reg + reloc' cases, allow first operand to be non-REG, and use
11344         force_reg() to enforce address pattern.
11345
11346 2015-09-22  Alexander Fomin <alexander.fomin@intel.com>
11347
11348         PR target/67480
11349         * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
11350         (define_mode_iterator VI12_AVX_AVX512F): New.
11351         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
11352         all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
11353         (define_insn "*<code><mode>3"): ... Into new pattern using
11354         VI12_AVX_AVX512F iterators without masking.
11355
11356 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
11357
11358         * config.gcc: Support "skylake-avx512".
11359         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11360         PROCESSOR_SKYLAKE_AVX512.
11361         * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
11362         (processor_target_table): Add "skylake-avx512".
11363         (PTA_SKYLAKE_AVX512): Define.
11364         (ix86_option_override_internal): Add "skylake_avx512".
11365         (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
11366         F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
11367         * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
11368         (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
11369         * doc/invoke.texi (skylake-avx512): New.
11370
11371 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
11372
11373         * config/i386/i386.md (define_insn "kunpckhi"): Fix
11374         operand in pattern.
11375         (define_insn "kunpcksi"): Ditto.
11376         (define_insn "kunpckdi"): Ditto.
11377
11378 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
11379
11380         * config/i386/i386.md (define_split not/xor SWI1248x): Use
11381         iterator instead of fixed modes.
11382
11383 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
11384
11385         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
11386         Adjust declaration.
11387         * config/aarch64/aarch64.c (aarch64_emit_bic): New.
11388         (aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
11389         out_result.  Update to support update-fetch operations.
11390         * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
11391         Adjust for change to aarch64_gen_atomic_ldop.
11392         (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
11393         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
11394         (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
11395         (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
11396         (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
11397
11398 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
11399
11400         * config/aarch64/aarch64-protos.h
11401         (aarch64_atomic_ldop_supported_p): Declare.
11402         * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
11403         (enum aarch64_atomic_load_op_code): New.
11404         (aarch64_emit_atomic_load_op): New.
11405         (aarch64_gen_atomic_ldop): Update to support load-operate
11406         patterns.
11407         * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
11408         to an expander.
11409         (aarch64_atomic_<atomic_optab><mode>): New.
11410         (aarch64_atomic_<atomic_optab><mode>_lse): New.
11411         (atomic_fetch_<atomic_optab><mode>): Change to an expander.
11412         (aarch64_atomic_fetch_<atomic_optab><mode>): New.
11413         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
11414
11415 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
11416
11417         * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
11418         (UNSPECV_ATOMIC_LDOP_OR): New.
11419         (UNSPECV_ATOMIC_LDOP_BIC): New.
11420         (UNSPECV_ATOMIC_LDOP_XOR): New.
11421         (UNSPECV_ATOMIC_LDOP_PLUS): New.
11422         (ATOMIC_LDOP): New.
11423         (atomic_ldop): New.
11424         (aarch64_atomic_load<atomic_ldop><mode>): New.
11425
11426 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
11427
11428         * config/aarch64/aarch64.md
11429         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
11430         pattern.
11431
11432 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
11433
11434         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
11435         Declare.
11436         * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
11437         (aarch64_gen_atomic_ldop): New.
11438         (aarch64_split_atomic_op): Fix whitespace and add a comment.
11439         * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
11440         (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
11441         (atomic_exchange<mode>): Replace with an expander.
11442         (aarch64_atomic_exchange<mode>): New.
11443         (aarch64_atomic_exchange<mode>_lse): New.
11444         (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
11445         (aarch64_atomic_swp<mode>): New.
11446
11447 2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11448
11449         * tree-inline.c (expand_call_inline): Use inform for extra note.
11450         Do not give a note with UNKNOWN_LOCATION.
11451         Replace input_location with gimple_location (stmt).
11452         Use true/false instead of TRUE/FALSE.
11453
11454 2015-09-22  Tom de Vries  <tom@codesourcery.com>
11455
11456         PR tree-optimization/67666
11457         * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
11458         with single field non-conservative.
11459
11460 2015-09-21  David S. Miller  <davem@davemloft.net>
11461
11462         PR/67622
11463         Revert:
11464         2015-09-11  David S. Miller  <davem@davemloft.net>
11465
11466         * config/sparc/constraints.md: Make "U" constraint a real register
11467         constraint.
11468         * config/sparc/sparc.c (TARGET_LRA_P): Define.
11469         (D_MODES, DF_MODES): Add missing cast.
11470         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
11471         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
11472         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
11473         cost to 8.
11474         * config/sparc/sparc.h (PROMOTE_MODE): Define.
11475         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
11476         provide these insn when flag_pic.
11477
11478         2015-09-17  David S. Miller  <davem@davemloft.net>
11479
11480         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
11481         Declare.
11482         * config/sparc/sparc.c (sparc_secondary_memory_needed): New
11483         function.
11484         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
11485         (HARD_REGNO_CALLER_SAVE_MODE): Define.
11486         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
11487         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
11488         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
11489         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
11490         provide when flag_pic.
11491
11492 2015-09-21  Jeff Law  <law@redhat.com>
11493
11494         * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
11495         behavior.
11496
11497 2015-09-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11498
11499         * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
11500
11501 2015-09-21  Richard Biener  <rguenther@suse.de>
11502
11503         * passes.c (rest_of_decl_compilation): Do not call
11504         dwarf2out_early_global_decl for aliases.
11505
11506 2015-09-21  Richard Biener  <rguenther@suse.de>
11507
11508         PR debug/67664
11509         * dwarf2out.c (add_location_or_const_value_attribute): Remove
11510         attribute parameter.  Early exit if either DW_AT_const_value
11511         or DW_AT_location are present already.
11512         (gen_variable_die): Adjust caller.
11513         (dwarf2out_late_global_decl): Likewise.
11514
11515 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
11516
11517         PR target/67657
11518         * config/sh/sh.c (sh_remove_overlapping_post_inc,
11519         sh_peephole_emit_move_insn): Add new functions.
11520         * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
11521         sh_peephole_emit_move_insn): Declere them.
11522         * config/sh/sh.md: Use them in various peephole2 patterns.
11523
11524 2015-09-21  Richard Biener  <rguenther@suse.de>
11525
11526         PR middle-end/67651
11527         * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
11528         address with -fno-delete-null-pointer-checks.
11529
11530 2015-09-21  Alan Lawrence  <alan.lawrence@arm.com>
11531
11532         * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
11533         (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
11534         (reduc_uplus_v16qi): Remove.
11535
11536         * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
11537         (reduc_<VEC_reduc_name>_v2df): Remove.
11538         (reduc_<VEC_reduc_name>_v4sf): Remove.
11539         (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
11540
11541         * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
11542         gen_ function by removing * prefix.
11543         (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
11544
11545 2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11546
11547         PR middle-end/60832
11548         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
11549         Print i_bound without converting it to a tree.
11550
11551 2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>
11552
11553         * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
11554         operands[4] operands[5] swap with std::swap, removed tmp variable.
11555         (arm_evpc_neon_vzip): Replaced in0/in1 and
11556         out0/out1 swaps with std::swap, removed x variable.
11557         (arm_evpc_neon_vtrn): Replaced in0/int1 and
11558         out0/out1 swaos with std::swap, removed x variable.
11559         (arm_expand_vec_perm_const_1): Replaced
11560         d->op0/d->op1 swap with std::swap, removed x variable.
11561         (arm_evpc_neon_vuzp): Replaced in0/in1 and
11562         out0/out1 swaps with std::swap, removed x variable.
11563
11564 2015-09-21  Jonathan Yong  <10walls@gmail.com>
11565
11566         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
11567         sysroot/usr/lib/32api for additional win32 libraries,
11568         fixes failing Cygwin bootstrapping.
11569
11570 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
11571
11572         * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
11573
11574 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
11575
11576         PR target/67126
11577         * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
11578         (*mov_t_msb_neg): Rewrite negc pattern.
11579
11580 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
11581
11582         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
11583         immediate generation code.
11584
11585 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
11586
11587         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
11588         redundant immediate generation code.
11589
11590 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
11591
11592         * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
11593         (AARCH64_NUM_BITMASKS): Remove.
11594         (aarch64_bitmasks_cmp): Remove.
11595         (aarch64_build_bitmask_table): Remove.
11596
11597 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
11598
11599         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
11600         slow immediate matching loops with a faster algorithm.
11601
11602 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
11603
11604         * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
11605         faster algorithm.
11606
11607 2015-09-20  Jeff Law  <law@redhat.com>
11608
11609         PR tree-optimization/47679
11610         * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
11611         * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
11612         * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
11613         (thread_through_normal_block): Use record_temporary_equivalences.
11614
11615 2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
11616
11617         * coretypes.h (gimple): Change typedef to be a forward declaration.
11618         * gimple.h (gimple_statement_base): rename to gimple.
11619         * (all functions and types using gimple): Adjust.
11620         * *.[ch]: Likewise.
11621
11622 2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
11623             David Edelsohn  <dje.gcc@gmail.com>
11624
11625         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
11626         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
11627         (EH_FRAME_THROUGH_COLLECT2): Define.
11628         (EH_TABLES_CAN_BE_READ_ONLY): Define.
11629         (ASM_OUTPUT_DWARF_PCREL): Define.
11630         (ASM_OUTPUT_DWARF_DATAREL): Define.
11631
11632 2015-09-19  John David Anglin  <danglin@gcc.gnu.org>
11633
11634         * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
11635         of TARGET_ELF32.
11636
11637 2015-09-18  Jeff Law  <law@redhat.com>
11638
11639         PR tree-optimization/47679
11640         * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
11641         it here ...
11642         (dom_opt_dom_walker): New private member holding the avail_exprs_stack
11643         object.  Update constructor.
11644         (pass_dominator::execute):  Corresponding chagnes to declaration
11645         and initialization of avail_exprs_stack.  Update constructor call
11646         for dom_opt_dom_walker object.
11647         (lookup_avail_expr, record_cond): Accept additional argument.  Pass
11648         it down to children as needed.
11649         (record_equivalences_from_incoming_edge): Likewise.
11650         (eliminate_redundant_computations): Likewise.
11651         (record_equivalences_from_stmt): Likewise.
11652         (simplify_stmt_for_jump_threading): Likewise.
11653         (record_temporary_equivalences): Likewise.
11654         (optimize_stmt): Likewise.
11655         (dom_opt_dom_walker::thread_across_edge): Update access to
11656         avail_exprs_stack object and pass it to children as needed.
11657         (dom_opt_dom_walker::before_dom_children): Similarly.
11658         (dom_opt_dom_walker::after_dom_children): Similarly.
11659         * tree-ssa-threadedge.c (pfn_simplify): New typedef.
11660         (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
11661         Add avail_expr_stack argument.  Pass it to children as needed.
11662         (dummy_simplify): Likewise.
11663         (simplify_control_stmt_condition): Likewise.
11664         (thread_around_empty_blocks): Likewise.
11665         (thread_through_normal_block): Likewise.
11666         (thread_across_edge): Likewise.
11667         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
11668         * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
11669
11670         PR tree-optimization/47679
11671         * tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
11672         it here ...
11673         (dom_opt_dom_walker): New private member holding the const_and_copies
11674         object.  Update constructor.
11675         (pass_dominator::execute): Corresponding changes to declaration
11676         and initialization of const_and_copies.  Update constructor call
11677         for the dom_opt_dom_walker object.
11678         (record_temporary_equivalences): Accept const_and_copies argument
11679         pass it down to children as needed.
11680         (record_equality): Likewise.
11681         (record_equivalences_from_incoming_edge): Likewise.
11682         (cprop_into_successor_phis, optimize_stmt): Likewise.
11683         (eliminate_redundant_computations): Likewise.
11684         (dom_opt_dom_walker::thread_across_edge): Update access to
11685         const_and_copies object and pass it to children as needed.
11686         (dom_opt_dom_walker::before_dom_children): Similarly.
11687         (dom_opt_dom_walker::after_dom_children): Similarly.
11688
11689         PR tree-optimization/47679
11690         * tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
11691         it into the avail_exprs_stack class.
11692         (pass_dominator::execute): Corresponding changes to declaration
11693         and initialization of avail_exprs.  Pass avail_exprs to
11694         dump_dominator_optimization_stats.
11695         (record_cond): Extract avail_exprs from avail_exprs_stack.
11696         (lookup_avail_expr): Similarly.
11697         (htab_staticstics): Remove unnecessary prototype.  Move to earlier
11698         position in file.
11699         (dump_dominator_optimization_stats): Make static and prototype.
11700         Add argument for the hash table to dump.
11701         (debug_dominator_optimization_stats): Remove.
11702         * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
11703         prototype.
11704         (debug_dominator_optimization_stats): Similarly.
11705         * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
11706         "void" in prototype for pop_to_marker method.  Add accessor method
11707         for the underlying avail_exprs table.
11708
11709         * tree-ssa-threadedge.c: Remove trailing whitespace.
11710
11711 2014-09-18  John David Anglin  <danglin@gcc.gnu.org>
11712
11713         * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
11714         unsigned.
11715         (pa_ldil_cint_p): Likewise.
11716         * config/pa/pa.c (pa_cint_ok_for_move): likewise.
11717         (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
11718         Update callers.
11719         * config/pa/pa.md: Likewise.
11720
11721 2015-09-18  David Malcolm  <dmalcolm@redhat.com>
11722
11723         * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
11724         * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
11725         (diagnostic_show_locus): Likewise.
11726         (diagnostic_print_caret_line): Likewise.
11727         * diagnostic-show-locus.c: New file.
11728
11729 2015-09-18  David Edelsohn  <dje.gcc@gmail.com>
11730
11731         * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
11732         "back" parameter. Declare label in #if block.
11733
11734 2015-09-18  Uros Bizjak  <ubizjak@gmail.com>
11735
11736         PR middle-end/67619
11737         * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
11738         the address to a register.
11739
11740 2015-09-18  Jeff Law  <law@redhat.com>
11741
11742         PR tree-optimization/47679
11743         * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
11744         * tree-ssa-dom.c: Remove unnecessary header includes.
11745         (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
11746         (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
11747         (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
11748         (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
11749         (pass_phi_only_cprop::execute): Likewise.
11750         (make_pass_phi_only_cprop): Likewise.
11751         * tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
11752         uses of file scoped statics by passing the required objects
11753         as parameters wherever needed.
11754
11755 2015-09-18  Andrew Dixie  <andrewd@gentrack.com>
11756             David Edelsohn  <dje.gcc@gmail.com>
11757
11758         * defaults.h (EH_FRAME_SECTION_NAME): Depend on
11759         EH_FRAME_THROUGH_COLLECT2.
11760         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
11761         DW_EH_PE_datarel.
11762         * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
11763         even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
11764         collect2 labels to EH_FRAME_THROUGH_COLLECT2.
11765         * except.c (switch_to_exception_section): Use a read-only section
11766         even if EH_FRAME_SECTION_NAME is undefined.
11767         * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
11768         * collect2.c (write_c_file_stat): Provide dbase on AIX.
11769         (scan_prog_file): Don't export __dso_handle nor
11770         __gcc_unwind_dbase.
11771         * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
11772         (EH_TABLES_CAN_BE_READ_ONLY): Define.
11773         (ASM_OUTPUT_DWARF_PCREL): Define.
11774         (ASM_OUTPUT_DWARF_DATAREL): Define.
11775         (EH_FRAME_THROUGH_COLLECT2): Define.
11776         (EH_FRAME_IN_DATA_SECTION): Delete.
11777         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
11778         * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
11779         Declare.
11780         (rs6000_asm_output_dwarf_datarel): Declare.
11781         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
11782         (rs6000_aix_asm_output_dwarf_datarel): New.
11783         (rs6000_xcoff_asm_init_sections): Don't set exception_section.
11784         * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
11785         (EH_FRAME_THROUGH_COLLECT2): Define.
11786         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
11787         (EH_FRAME_THROUGH_COLLECT2): Define.
11788         (EH_TABLES_CAN_BE_READ_ONLY): Define.
11789         * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
11790         (EH_FRAME_THROUGH_COLLECT2): New.
11791         (ASM_OUTPUT_DWARF_DATAREL): New.
11792         * doc/tm.texi: Regenerate.
11793
11794 2015-09-18  Richard Biener  <rguenther@suse.de>
11795
11796         * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
11797         we're in early phase.
11798         (schedule_generic_params_dies_gen): Likewise.
11799         (gen_remaining_tmpl_value_param_die_attribute): Do only as much
11800         work as possible, retaining unhandled cases.
11801         (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
11802         clear out generic_type_instances at the end.
11803         (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
11804         (dwarf2out_early_finish): ... here.  Do most of
11805         gen_remaining_tmpl_value_param_die_attribute here.
11806
11807 2015-09-18  Alan Lawrence  <alan.lawrence@arm.com>
11808
11809         PR tree-optimization/67283
11810         * tree-sra.c (type_consists_of_records_p): Rename to...
11811         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
11812         (completely_scalarize_record): Rename to...
11813         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
11814         (scalarize_elem): New.
11815         (analyze_all_variable_accesses): Follow renamings.
11816
11817 2015-09-18  Richard Biener  <rguenther@suse.de>
11818
11819         * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
11820         in early-dwarf.
11821
11822 2015-09-18  Richard Biener  <rguenther@suse.de>
11823
11824         PR tree-optimization/66142
11825         * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
11826         treat MEM[&x] and x the same.
11827         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
11828         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
11829         when we simplified sth.
11830         (vn_reference_maybe_forwprop_address): Likewise.
11831         (valueize_refs_1): When we simplified through
11832         vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
11833         set valueized_anything to true.
11834         (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
11835         one ref kills the other instead of just a offset-based test.
11836         * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
11837         for the operand_equal_p test to compare bases and also compare
11838         sizes.
11839
11840 2015-09-17  Christian Bruel  <christian.bruel@st.com>
11841
11842         * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
11843
11844 2015-09-17  Richard Henderson  <rth@redhat.com>
11845
11846         PR libstdc++/65913
11847         * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
11848         pointers that encode the alignment of the object.
11849
11850 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
11851
11852         PR rtl-optimization/66790
11853         * df-problems.c (LIVE): Amend documentation.
11854
11855 2015-09-17  Richard Sandiford  <richard.sandiford@arm.com>
11856
11857         * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
11858         and optabs-tree.o.
11859         (GTFILES): Replace optabs.c with optabs-libfunc.c.
11860         * genopinit.c (main): Add an include guard to insn-opinit.h.
11861         Protect the rtx_code parts with NUM_RTX_CODE.
11862         * optabs.h: Split parts out to...
11863         * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
11864         * optabs.c: Split parts out to...
11865         * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
11866         * cilk-common.c: Include optabs-query.h rather than optabs.h.
11867         * fold-const.c: Likewise.
11868         * target-globals.c: Likewise.
11869         * tree-if-conv.c: Likewise.
11870         * tree-ssa-forwprop.c: Likewise.
11871         * tree-ssa-loop-prefetch.c: Likewise.
11872         * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
11873         Remove unncessary include files.
11874         * tree-ssa-phiopt.c: Likewise.
11875         * tree-ssa-reassoc.c: Likewise.
11876         * tree-switch-conversion.c: Likewise.
11877         * tree-vect-data-refs.c: Likewise.
11878         * tree-vect-generic.c: Likewise.
11879         * tree-vect-loop.c: Likewise.
11880         * tree-vect-patterns.c: Likewise.
11881         * tree-vect-slp.c: Likewise.
11882         * tree-vect-stmts.c: Likewise.
11883         * tree-vrp.c: Likewise.
11884         * toplev.c: Include optabs-query.h and optabs-libfuncs.h
11885         rather than optabs.h.
11886         * expr.c: Include optabs-tree.h.
11887         * function.c: Likewise.
11888
11889 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
11890
11891         PR middle-end/65958
11892         * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
11893         * config/arm/arm-protos.h (output_probe_stack_range): Declare.
11894         * config/arm/arm.c: Include common/common-target.h.
11895         (use_return_insn): Return 0 if the static chain register was saved
11896         above a non-APCS frame.
11897         (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
11898         (struct scratch_reg): New.
11899         (get_scratch_register_on_entry): New function.
11900         (release_scratch_register_on_entry): Likewise.
11901         (arm_emit_probe_stack_range): Likewise.
11902         (output_probe_stack_range): Likewise.
11903         (arm_expand_prologue): Factor out code dealing with the IP register
11904         for nested function and adjust it for stack checking.
11905         Invoke arm_emit_probe_stack_range if static builtin stack checking
11906         is enabled.
11907         (thumb1_expand_prologue): Sorry out if static builtin stack checking
11908         is enabled.
11909         (arm_expand_epilogue): Add the saved static chain register, if any, to
11910         the amount of pre-pushed registers to pop.
11911         (arm_frame_pointer_required): Return true if static stack checking is
11912         enabled and we want to catch the exception with the EABI unwinder.
11913         * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
11914         (UNSPEC_PROBE_STACK_RANGE): Likewise.
11915         * config/arm/arm.md (probe_stack): New insn.
11916         (probe_stack_range): Likewise.
11917
11918 2015-09-17  Richard Biener  <rguenther@suse.de>
11919
11920         * genmatch.c (parser::parse_expr): Improve error message
11921         for mis-placed flags.
11922
11923 2015-09-17  Richard Biener  <rguenther@suse.de>
11924
11925         * passes.c (rest_of_decl_compilation): Always call early_global_decl
11926         debug hook when we created a varpool node.
11927         * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
11928         dwarf2out_early_global_decl, when not just add location or
11929         value attributes to existing DIEs.
11930
11931 2015-09-17  James Greenhalgh  <james.greenhalgh@arm.com>
11932
11933         * config/aarch64/aarch64.md (copysigndf3): New.
11934         (copysignsf3): Likewise.
11935
11936 2015-09-17  David S. Miller  <davem@davemloft.net>
11937
11938         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
11939         * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
11940         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
11941         (HARD_REGNO_CALLER_SAVE_MODE): Define.
11942         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
11943         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
11944         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
11945         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
11946         provide when flag_pic.
11947
11948 2015-09-17  Kaz Kojima  <kkojima@gcc.gnu.org>
11949
11950         * config/sh/sh.c (label_ref_list_d_pool): Adjust to
11951         object_allocator change.
11952
11953 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
11954
11955         PR tree-optimization/66388
11956         * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
11957         (dump_iv): Dump no_overflow information.
11958         (alloc_iv): Initialize new field for struct iv.
11959         (mark_bivs): Count number of no_overflow bivs.
11960         (find_deriving_biv_for_expr, record_biv_for_address_use): New
11961         functions.
11962         (idx_find_step): Call new functions above.
11963         (add_candidate_1, add_candidate): New paramter.
11964         (add_iv_candidate_for_biv): Add sizetype cand for BIV.
11965         (get_computation_aff): Simplify convertion of cand for BIV.
11966         (get_computation_cost_at): Step cand's base if necessary.
11967
11968 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
11969
11970         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
11971         parameter.
11972         (tree_simplify_using_condition): Ditto.
11973         (simplify_using_initial_conditions): Ditto.
11974         (loop_exits_before_overflow): Pass new argument to function
11975         simplify_using_initial_conditions.  Remove case for type conversions
11976         simplification.
11977         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
11978         parameter.
11979         * tree-scalar-evolution.c (simple_iv): Simplify type conversions
11980         in iv base using loop initial conditions.
11981
11982 2015-09-16  Jeff Law  <law@redhat.com>
11983
11984         PR tree-optimization/47679
11985         * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
11986         (free_all_edge_infos): Use it.
11987         (allocate_edge_info): Free preexisting edge info data.
11988         (pass_dominator::execute): Set up initial edge info structures.
11989         (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
11990         thread_across_edge.
11991         * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
11992         If non-null, then push/pop markers appropriately.
11993         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
11994         * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
11995         thread-across_edge.
11996
11997 2015-09-16  James Bowman  <james.bowman@ftdichip.com>
11998
11999         * config/ft32/ft32.c: Fix the memory address space predicate.
12000
12001 2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
12002
12003         PR target/67573
12004         * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
12005         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
12006
12007 2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12008
12009         * toplev.h (check_global_declaration): Remove declaration.
12010         * toplev.c (check_global_declaration): Move to ...
12011         * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
12012         (analyze_functions): Update call.
12013
12014 2015-09-16  David S. Miller  <davem@davemloft.net>
12015
12016         * lra-constraints.c (simplify_operand_subreg): Do not assume that
12017         lowpart of a SUBREG has offset zero.
12018
12019 2015-09-16  Jeff Law  <law@redhat.com>
12020
12021         PR tree-optimization/47679
12022         * tree-ssa-dom.c (enum expr_kind): Moved from here to
12023         tree-ssa-scopedtables.h.
12024         (struct hashable_expr, class expr_hash_elt): Likewise.
12025         (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
12026         Move associated methods into tree-ssa-scopedtables.c.
12027         (avail_expr_hash, initialize_expr_from_cond): Similarly.
12028         (hashable_expr_equal_p, add_expr_commutative): Likewise.
12029         (add_hashable_expr): Likewise.
12030         (record_cond): Delete element directly.
12031         * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
12032         private copy ctor and assignment operator methods.
12033         (expr_elt_hasher): Inline trivial methods.
12034         (initialize_expr_from_cond): Prototype.
12035         * tree-ssa-scopedtables.c: Add necessary includes, functions and
12036         methods that were previously in tree-ssa-dom.c.  Improve various
12037         comments.
12038
12039 2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>
12040
12041         * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
12042
12043 2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>
12044
12045         PR bootstrap/67587
12046         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
12047         fixup_partitions.
12048
12049 2015-09-16  Richard Biener  <rguenther@suse.de>
12050
12051         PR middle-end/67253
12052         * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
12053         location of possibly shared trees.
12054
12055 2015-09-16  Richard Biener  <rguenther@suse.de>
12056
12057         PR middle-end/67271
12058         * fold-const.c (native_encode_expr): Bail out on bogus offsets.
12059
12060 2015-09-16  Eric Botcazou  <ebotcazou@adacore.com>
12061
12062         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
12063         offset and size computations instead of HOST_WIDE_INT.
12064
12065 2015-09-16  Richard Biener  <rguenther@suse.de>
12066
12067         PR middle-end/67442
12068         * fold-const.c (extract_muldiv_1): Properly extend multiplication
12069         result before builting a tree via wide_int_to_tree.
12070
12071 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
12072
12073         * Makefile.in: Add memory-block.cc
12074         (pool_allocator::initialize): Use fixed block size.
12075         (pool_allocator::release): Use memory_block_pool.
12076         (pool_allocator::allocate): Likewise.
12077         * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
12078         object pools.
12079         * cfg.c (initialize_original_copy_tables): Likewise.
12080         * cselib.c (elt_list_pool, elt_loc_list_pool,
12081         cselib_val_pool): Likewise.
12082         * df-problems.c (df_chain_alloc): Likewise.
12083         * df-scan.c (df_scan_alloc): Likewise.
12084         * dse.c (cse_store_info_pool, rtx_store_info_pool,
12085         read_info_type_pool, insn_info_type_pool, bb_info_pool,
12086         group_info_pool, deferred_change_pool): Likewise.
12087         * et-forest.c (et_nodes, et_occurrences): Likewise.
12088         * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
12089         ipcp_agg_lattice_pool): Likewise.
12090         * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
12091         * ipa-profile.c (histogram_pool): Likewise.
12092         * ipa-prop.c (ipa_refdesc_pool): Likewise.
12093         * ira-build.c (live_range_pool, allocno_pool, object_pool,
12094         initiate_cost_vectors, pref_pool, copy_pool): Likewise.
12095         * ira-color.c (update_cost_record_pool): Likewise.
12096         * lra-lives.c (lra_live_range_pool): Likewise.
12097         * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
12098         * memory-block.cc: New file.
12099         * memory-block.h: New file.
12100         * regcprop.c (queued_debug_insn_change_pool): Use common block size.
12101         * sched-deps.c (sched_deps_init): Likewise.
12102         * sel-sched-ir.c (sched_lists_pool): Likewise.
12103         * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
12104         * tree-sra.c (access_pool): Likewise.
12105         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
12106         * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
12107         * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
12108         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
12109         * tree-ssa-strlen.c (strinfo_pool): Likewise.
12110         * tree-ssa-structalias.c (variable_info_pool): Likewise.
12111         * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
12112         location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
12113
12114 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
12115
12116         * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
12117         definition.
12118         (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
12119         call0 ABI.
12120
12121 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
12122
12123         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
12124         to pass TLS call argument, according to current ABI.
12125         * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
12126         callx0 for TLS call, according to current ABI.
12127
12128 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12129
12130         * tree-eh.c (lower_try_finally_dup_block): Clear location information
12131         on stack restore statements.
12132         (decide_copy_try_finally): Do not consider a stack restore statement as
12133         coming from sources.
12134
12135 2015-09-15  Uros Bizjak  <ubizjak@gmail.com>
12136
12137         * config/alpha/alpha.c (alpha_expand_block_clear): Use
12138         HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
12139
12140 2015-09-15  Jeff Law  <law@redhat.com>
12141
12142         PR tree-optimization/47679
12143         * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
12144         methods and private members.
12145         (avail_exprs_stack): Similarly.  Change type of global
12146         from a pair of expr_hash_elt_t to the new class.
12147         (expr_elt_hasher::hash): Corresponding changes.
12148         (expr_elt_hasher::equal): Similarly.
12149         (avail_expr_hash): Similarly.
12150         (pass_dominator::execute): Similarly.
12151         (dom_opt_dom_walker::thread_across_edge): Similarly.
12152         (record_cond): Similarly.
12153         (dom_opt_dom_walker::before_dom_children): Similarly.
12154         (dom_opt_dom_walker::after_dom_children): Similarly.
12155         (lookup_avail_expr): Likewise.
12156         (initialize_hash_element): Now a expr_hash_elt constructor.
12157         (initialize_hash_element_from_expr): Similarly.
12158         (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
12159         (free_expr_hash_elt): Call dtor for the element.
12160         (remove_local_expressions_from_table): Now the "pop_to_marker"
12161         method in the available_exprs_stack class.
12162         (avail_expr_stack::record_expr): Method factored out.
12163         (print_expr_hash_elt): Now a method in the expr_hash_elt class.
12164         Fix formatting.
12165         (hashable_expr_equal_p): Fix formatting.
12166
12167 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
12168
12169         * input.h (location_get_source_line): Drop "expanded_location"
12170         param in favor of a file and line number.
12171         * input.c (location_get_source_line): Likewise.
12172         (dump_location_info): Update for change in signature of
12173         location_get_source_line.
12174         * diagnostic.c (diagnostic_print_caret_line): Likewise.
12175
12176 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
12177
12178         * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
12179         Bump to 4KB for SJLJ exceptions.
12180         (STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
12181         * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
12182         * doc/tm.texi: Regenerate.
12183
12184 2015-09-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12185
12186         * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
12187         of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
12188         Update prototype.
12189
12190 2015-09-15  Richard Biener  <rguenther@suse.de>
12191
12192         PR tree-optimization/67470
12193         * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
12194         structure for PHI hoisting by inserting a forwarder block
12195         if appropriate.
12196
12197 2015-09-15  Christian Bruel  <christian.bruel@st.com>
12198
12199         * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
12200         (arm_option_print): New function.
12201
12202 2015-09-15  Christian Bruel  <christian.bruel@st.com>
12203
12204         PR target/52144
12205         * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
12206         * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
12207         Remove flags parameter.
12208         * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
12209         (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
12210         (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
12211         (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
12212         (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
12213         (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
12214         (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
12215         * config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
12216
12217 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12218
12219         * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
12220
12221         * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
12222         AARCH64_VALID_SIMD_DREG_MODE.
12223
12224 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12225
12226         * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
12227         aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
12228         (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
12229         (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
12230         aarch64_ld4_lane<mode>): Combine together, making...
12231         (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
12232         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
12233         aarch64_st4_lane<mode>): Combine together, making...
12234         (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
12235         * config/aarch64/iterators.md (nregs): Add comment.
12236
12237 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12238
12239         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
12240         Change operand mode from <V_TWO_ELEM> to BLK.
12241         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
12242         (aarch64_vec_store_lanesoi_lane<mode): Likewise
12243         (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
12244         (aarch64_ld2_lane<mode>): Likewise.
12245         (aarch64_st2_lane<VQ:mode>): Likewise.
12246         * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
12247
12248 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12249
12250         * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
12251         Change operand mode from <V_FOUR_ELEM> to BLK.
12252         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
12253         (aarch64_vec_store_lanesxi_lane<mode): Likewise.
12254         (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
12255         (aarch64_ld4_lane<mode>): Likewise.
12256         (aarch64_st4_lane<mode>): Likewise.
12257         * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
12258
12259 2015-09-15  Richard Biener  <rguenther@suse.de>
12260
12261         PR middle-end/67563
12262         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
12263         transfer EH info from old to new stmt.
12264         (replace_call_with_value): Likewise.
12265         (replace_call_with_call_and_fold): Likewise.
12266         (gimple_fold_builtin_memory_op): Likewise.
12267         (gimple_fold_builtin_memset): Likewise.
12268         (gimple_fold_builtin_stpcpy): Likewise.
12269         (gimple_fold_call): Likewise.
12270
12271 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12272
12273         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
12274         comment.
12275         * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
12276         (aarch64_simd_intEI_type_node): Likewise.
12277         (aarch64_simd_builtin_std_type): Remove EImode case.
12278         (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
12279         * config/aarch64/aarch64-modes.def: Remove EImode.
12280
12281 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12282
12283         * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
12284         Change operand mode from <V_THREE_ELEM> to BLK.
12285         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
12286         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
12287         (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
12288         (aarch64_ld3_lane<mode>): Likewise.
12289         (aarch64_st3_lane<mode>): Likewise.
12290         * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
12291
12292 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12293
12294         * config/aarch64/aarch64-simd.md
12295         (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
12296         Change all TImode operands to BLKmode.
12297         (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
12298         Change all EImode operands to BLKmode.
12299         (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
12300         Change all OImode operands to BLKmode.
12301
12302         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
12303         and call set_mem_size.
12304         (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
12305
12306         * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
12307
12308 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
12309
12310         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
12311         to...
12312         (aarch64_vec_store_lanesoi_lane<mode>): ...this.
12313
12314         (vec_store_lanesci_lane<mode>): Rename to...
12315         (aarch64_vec_store_lanesci_lane<mode>): ...this.
12316
12317         (vec_store_lanesxi_lane<mode>): Rename to...
12318         (aarch64_vec_store_lanesxi_lane<mode>): ...this.
12319
12320         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
12321         aarch64_st4_lane<mode>): Follow renaming.
12322
12323 2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12324
12325         * config/s390/s390.c (s390_const_operand_ok): Add missing
12326         brackets.
12327
12328 2015-09-15  Richard Biener  <rguenther@suse.de>
12329
12330         PR lto/67568
12331         * lto-streamer.h (lto_location_cache::current_sysp): Properly
12332         initialize.
12333         * lto-streamer-out.c (clear_line_info): Likewise.
12334
12335 2015-09-15  Richard Biener  <rguenther@suse.de>
12336
12337         * doc/match-and-simplify.texi: Fix wording.
12338
12339 2015-09-15  Bin Cheng  <bin.cheng@arm.com>
12340
12341         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
12342         unnecessary type conversion in op1.
12343
12344 2015-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
12345
12346         * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
12347         (dup_block_and_redirect): Delete function.
12348         (can_dup_for_shrink_wrapping): New function.
12349         (fix_fake_fallthrough_edge): New function.
12350         (try_shrink_wrapping): Rewrite function.
12351         (convert_to_simple_return): Call fix_fake_fallthrough_edge.
12352
12353 2015-09-14  Rich Felker  <dalias@libc.org>
12354
12355         * configure.ac: Change target pattern for sh TLS support
12356         test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
12357         * configure: Regenerate.
12358
12359 2015-09-14  Jeff Law  <law@redhat.com>
12360
12361         PR tree-optimization/47679
12362         * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
12363         type rather than void *.
12364
12365 2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12366
12367         PR fortran/67460
12368         * diagnostic.c (diagnostic_initialize): Do not set
12369         some_warnings_are_errors.
12370         (diagnostic_finish): Use DK_WERROR count instead.
12371         (diagnostic_report_diagnostic): Do not set
12372         some_warnings_are_errors.
12373         * diagnostic.h (struct diagnostic_context): Remove
12374         some_warnings_are_errors.
12375
12376 2015-09-14  Richard Sandiford  <richard.sandiford@arm.com>
12377
12378         * config/sparc/predicates.md (const_all_ones_operand): Use
12379         CONSTM1_RTX to simplify definition.
12380
12381 2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>
12382
12383         PR target/67061
12384         * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
12385         Handle call insns.
12386
12387 2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>
12388
12389         * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
12390         OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
12391         OPT_fshow_column to handled saved option cases.
12392         (append_compiler_options): Do not skip the above added options.
12393
12394 2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12395
12396         PR target/63304
12397         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
12398         nopcrelative_literal_loads.
12399         (aarch64_classify_address): Likewise.
12400         (aarch64_constant_pool_reload_icode): Define.
12401         (aarch64_secondary_reload): Handle secondary reloads for
12402         literal pools.
12403         (aarch64_override_options): Handle nopcrelative_literal_loads.
12404         (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
12405         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
12406         Define.
12407         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
12408         * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
12409         * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
12410         predicate.
12411         * doc/invoke.texi (mpc-relative-literal-loads): Document.
12412
12413 2015-09-14  John David Anglin  <danglin@gcc.gnu.org>
12414
12415         PR middle-end/67401
12416         * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
12417         sync_compare_and_swap_optab libcall to target_oval.
12418
12419 2015-09-14  Marek Polacek  <polacek@redhat.com>
12420
12421         * rtlanal.c (split_double): Cast to unsigned when shifting a negative
12422         value.
12423         * sched-int.h (UNKNOWN_DEP_COST): Likewise.
12424
12425 2015-09-11  Mark Wielaard  <mjw@redhat.com>
12426
12427         PR c/28901
12428         * toplev.c (check_global_declaration): Check and use
12429         warn_unused_const_variable.
12430         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
12431         (-Wunused-variable): Remove non-constant. For C implies
12432         -Wunused-const-variable.
12433         (-Wunused-const-variable): New.
12434
12435 2015-09-14  Richard Biener  <rguenther@suse.de>
12436
12437         * doc/match-and-simplify.texi: Update for changed syntax
12438         of inner ifs and the new switch expression.
12439
12440 2015-09-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
12441
12442         * config/i386/haswell.md: New file describing Haswell pipeline.
12443         * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
12444         haswell-like processors.
12445         (ix86_reassociation_width): Increase reassociation width for 64-bit
12446         Haswell processor family.
12447         * config/i386/i386.md: Introduce haswell cpu and include new md file.
12448
12449 2015-09-14  Richard Biener  <rguenther@suse.de>
12450
12451         * doc/match-and-simplify.texi: Fixup some formatting issues
12452         and document the 's' flag.
12453
12454 2015-09-13  Olivier Hainque  <hainque@adacore.com>
12455             Eric Botcazou  <ebotcazou@adacore.com>
12456
12457         * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
12458         gr6 as possible values, defaulting to gr5.  Set target_cpu_default2.
12459         * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
12460         (TARGET_CPU_gr5): Likewise.
12461         (TARGET_CPU_gr6): Likewise.
12462         (MULTILIB_DEFAULTS): Likewise.
12463         * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
12464         for mcpu=gr5 and mcpu=gr6.
12465         (MULTILIB_DIRNAMES): Adjust accordingly.
12466
12467 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12468
12469         * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
12470         (mem_ref_p): Likewise.
12471         (outermost_indep_loop): Adjust.
12472         (mem_ref_in_stmt): Likewise.
12473         (determine_max_movement): Likewise.
12474         (mem_ref_alloc): Likewise.
12475         (record_mem_ref_loc): Likewise.
12476         (set_ref_stored_in_loop): Likewise.
12477         (mark_ref_stored): Likewise.
12478         (gather_mem_refs_stmt): Likewise.
12479         (mem_refs_may_alias_p): Likewise.
12480         (for_all_locs_in_loop): Likewise.
12481         (struct rewrite_mem_ref_loc): Likewise.
12482         (rewrite_mem_refs): Likewise.
12483         (struct first_mem_ref_loc_1): Likewise.
12484         (first_mem_ref_loc): Likewise.
12485         (struct sm_set_flag_if_changed): Likewise.
12486         (execute_sm_if_changed_flag_set): Likewise.
12487         (execute_sm): Likewise.
12488         (hoist_memory_references):
12489         (struct ref_always_accessed): Likewise.
12490         (ref_always_accessed_p): Likewise.
12491         (refs_independent_p): Likewise.
12492         (record_dep_loop): Likewise.
12493         (ref_indep_loop_p_1): Likewise.
12494         (ref_indep_loop_p_2): Likewise.
12495         (ref_indep_loop_p): Likewise.
12496         (can_sm_ref_p): Likewise.
12497         (find_refs_for_sm): Likewise.
12498         (tree_ssa_lim_finalize): Likewise.
12499
12500 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12501
12502         * dwarf2out.c (dw_attr_ref): Remove typedef.
12503         (dw_line_info_ref): Likewise.
12504         (pubname_ref): Likewise.
12505         (dw_ranges_ref): Likewise.
12506         (dw_ranges_by_label_ref): Likewise.
12507         (comdat_type_node_ref): Likewise.
12508         (get_AT): Adjust.
12509         (get_AT_low_pc): Likewise.
12510         (get_AT_hi_pc): Likewise.
12511         (get_AT_string): Likewise.
12512         (get_AT_flag): Likewise.
12513         (get_AT_unsigned): Likewise.
12514         (get_AT_ref): Likewise.
12515         (get_AT_file): Likewise.
12516         (remove_AT): Likewise.
12517         (print_die): Likewise.
12518         (check_die): Likewise.
12519         (die_checksum): Likewise.
12520         (attr_checksum_ordered): Likewise.
12521         (struct checksum_attributes): Likewise.
12522         (collect_checksum_attributes): Likewise.
12523         (die_checksum_ordered): Likewise.
12524         (same_die_p): Likewise.
12525         (is_declaration_die): Likewise.
12526         (clone_die): Likewise.
12527         (clone_as_declaration): Likewise.
12528         (copy_declaration_context): Likewise.
12529         (break_out_comdat_types): Likewise.
12530         (copy_decls_walk): Likewise.
12531         (output_location_lists): Likewise.
12532         (external_ref_hasher::hash): Likewise.
12533         (optimize_external_refs_1): Likewise.
12534         (build_abbrev_table): Likewise.
12535         (size_of_die): Likewise.
12536         (unmark_all_dies): Likewise.
12537         (size_of_pubnames): Likewise.
12538         (output_die_abbrevs): Likewise.
12539         (output_die): Likewise.
12540         (output_pubnames): Likewise.
12541         (add_ranges_num): Likewise.
12542         (add_ranges_by_labels): Likewise.
12543         (add_high_low_attributes): Likewise.
12544         (gen_producer_string): Likewise.
12545         (dwarf2out_set_name): Likewise.
12546         (new_line_info_table): Likewise.
12547         (prune_unused_types_walk_attribs): Likewise.
12548         (prune_unused_types_update_strings): Likewise.
12549         (prune_unused_types): Likewise.
12550         (resolve_addr): Likewise.
12551         (optimize_location_lists_1): Likewise.
12552         (index_location_lists): Likewise.
12553         (dwarf2out_finish): Likewise.
12554
12555 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12556
12557         * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
12558
12559 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12560
12561         * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
12562         (dump_asserts_for): Adjust.
12563         (register_new_assert_for): Likewise.
12564         (process_assert_insertions): Likewise.
12565         (insert_range_assertions): Likewise.
12566
12567 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12568
12569         * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
12570         and remove typedef.
12571         (new_temp_expr_table): Adjust.
12572         (free_temp_expr_table): Likewise.
12573         (version_to_be_replaced_p): Likewise.
12574         (make_dependent_on_partition): Likewise.
12575         (add_to_partition_kill_list): Likewise.
12576         (remove_from_partition_kill_list): Likewise.
12577         (add_dependence): Likewise.
12578         (finished_with_expr): Likewise.
12579         (process_replaceable): Likewise.
12580         (kill_expr): Likewise.
12581         (kill_virtual_exprs): Likewise.
12582         (mark_replaceable): Likewise.
12583         (find_replaceable_in_bb): Likewise.
12584         (find_replaceable_exprs): Likewise.
12585         (debug_ter): Likewise.
12586
12587 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12588
12589         * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
12590         (struct btr_user): Rename from btr_user_s.
12591         (struct btr_def): Rename from btr_def_s.
12592         (find_btr_def_group): Adjust.
12593         (add_btr_def): Likewise.
12594         (new_btr_user): Likewise.
12595         (note_other_use_this_block): Likewise.
12596         (compute_defs_uses_and_gen): Likewise.
12597         (link_btr_uses): Likewise.
12598         (build_btr_def_use_webs): Likewise.
12599         (block_at_edge_of_live_range_p): Likewise.
12600         (btr_def_live_range): Likewise.
12601         (combine_btr_defs): Likewise.
12602         (move_btr_def): Likewise.
12603         (migrate_btr_def): Likewise.
12604         (migrate_btr_defs): Likewise.
12605
12606 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12607
12608         * var-tracking.c (shared_hash_def): Rename to shared_hash.
12609         (shared_hash): Remove typedef.
12610         (struct dataflow_set): Adjust.
12611         (shared_hash_unshare): Likewise.
12612         (dataflow_set_merge): Likewise.
12613         (vt_initialize): Likewise.
12614         (vt_finalize): Likewise.
12615
12616 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12617
12618         * var-tracking.c (struct location_chain): Rename from
12619         location_chain_def.
12620         (struct variable_part): Adjust.
12621         (variable_htab_free): Likewise.
12622         (unshare_variable): Likewise.
12623         (get_init_value): Likewise.
12624         (get_addr_from_local_cache): Likewise.
12625         (drop_overlapping_mem_locs): Likewise.
12626         (val_reset): Likewise.
12627         (struct variable_union_info): Likewise.
12628         (variable_union): Likewise.
12629         (find_loc_in_1pdv): Likewise.
12630         (insert_into_intersection): Likewise.
12631         (intersect_loc_chains): Likewise.
12632         (canonicalize_loc_order_check): Likewise.
12633         (canonicalize_values_mark): Likewise.
12634         (canonicalize_values_star): Likewise.
12635         (canonicalize_vars_star): Likewise.
12636         (variable_merge_over_cur): Likewise.
12637         (remove_duplicate_values): Likewise.
12638         (variable_post_merge_new_vals): Likewise.
12639         (variable_post_merge_perm_vals): Likewise.
12640         (find_mem_expr_in_1pdv): Likewise.
12641         (dataflow_set_preserve_mem_locs): Likewise.
12642         (dataflow_set_remove_mem_locs): Likewise.
12643         (variable_part_different_p): Likewise.
12644         (onepart_variable_different_p): Likewise.
12645         (find_src_set_src): Likewise.
12646         (dump_var): Likewise.
12647         (set_slot_part): Likewise.
12648         (clobber_slot_part): Likewise.
12649         (delete_slot_part): Likewise.
12650         (vt_expand_var_loc_chain): Likewise.
12651         (emit_note_insn_var_location): Likewise.
12652         (vt_finalize): Likewise.
12653
12654 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12655
12656         * dse.c (store_info_t): Remove typedef.
12657         (group_info_t): Likewise.
12658         (const_group_info_t): Likewise.
12659         (deferred_change_t): Likewise.
12660         (get_group_info): Adjust.
12661         (free_store_info): Likewise.
12662         (canon_address): Likewise.
12663         (clear_rhs_from_active_local_stores): Likewise.
12664         (record_store): Likewise.
12665         (replace_read): Likewise.
12666         (check_mem_read_rtx): Likewise.
12667         (scan_insn): Likewise.
12668         (remove_useless_values): Likewise.
12669         (dse_step1): Likewise.
12670         (dse_step2_init): Likewise.
12671         (dse_step2_nospill): Likewise.
12672         (scan_stores_nospill): Likewise.
12673         (scan_reads_nospill): Likewise.
12674         (dse_step3_exit_block_scan): Likewise.
12675         (dse_step3): Likewise.
12676         (dse_step5_nospill): Likewise.
12677         (dse_step6): Likewise.
12678
12679 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12680
12681         * alias.c (alias_set_entry_d): Rename to alias_set_entry.
12682         (alias_set_entry): Remove typedef.
12683         (alias_set_subset_of): Adjust.
12684         (alias_sets_conflict_p): Likewise.
12685         (init_alias_set_entry): Likewise.
12686         (get_alias_set): Likewise.
12687         (new_alias_set): Likewise.
12688         (record_alias_subset): Likewise.
12689
12690 2015-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
12691
12692         * doc/install.texi (Downloading the source): Mark up
12693         contrib/download_prerequisites properly and drop leading "./".
12694
12695 2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12696
12697         * config/arc/arc.h: Remove define of STRUCT_VALUE.
12698         * config/lm32/lm32.h: Likewise.
12699         * config/mep/mep.h: Likewise.
12700         * config/visium/visium.h: Likewise.
12701         * system.h: Poison STRUCT_VALUE macro.
12702
12703 2015-09-12  John David Anglin  <danglin@gcc.gnu.org>
12704
12705         * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
12706         CONSTANT_P operands.
12707
12708 2015-09-11  David S. Miller  <davem@davemloft.net>
12709
12710         * config/sparc/constraints.md: Make "U" constraint a real register
12711         constraint.
12712         * config/sparc/sparc.c (TARGET_LRA_P): Define.
12713         (D_MODES, DF_MODES): Add missing cast.
12714         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
12715         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
12716         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
12717         cost to 8.
12718         * config/sparc/sparc.h (PROMOTE_MODE): Define.
12719         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
12720         provide these insn when flag_pic.
12721
12722 2015-09-11  Jeff Law  <law@redhat.com>
12723
12724         PR tree-optimization/47679
12725         * tree-ssa-dom.c (struct cond_equivalence): Update comment.
12726         * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
12727         member with m_.  Update inline member functions as necessary.  Add
12728         toplevel comment.
12729         * tree-ssa-scopedtables.c: Update const_and_copies's member
12730         functions to use m_ prefix to access the stack.
12731
12732 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
12733
12734         * graphite-optimize-isl.c (disable_tiling): Remove.
12735         (get_schedule_for_band): Do not use disable_tiling.
12736         (get_prevector_map): Delete function.
12737         (enable_polly_vector): Remove.
12738         (get_schedule_for_band_list): Remove dead code.
12739
12740 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
12741
12742         * graphite-optimize-isl.c (get_tile_map): Refactor.
12743         (get_schedule_for_band): Same.
12744         (getScheduleForBand): Same.
12745         (get_prevector_map): Same.
12746         (get_schedule_for_band_list): Same.
12747         (get_schedule_map): Same.
12748         (get_single_map): Same.
12749         (apply_schedule_map_to_scop): Same.
12750         (optimize_isl): Same.
12751
12752 2015-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12753
12754         PR target/63304
12755         * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
12756         (movtf): Delete.
12757         * config/aarch64/iterators.md (GPF_TF_F16): New.
12758         (GPF_F16): Delete.
12759
12760 2015-09-10  Nathan Sidwell  <nathan@acm.org>
12761
12762         * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
12763         (nvptx_reorg): Adjust comments.
12764
12765 2015-09-15  John David Anglin  <danglin@gcc.gnu.org>
12766
12767         PR bootstrap/67363
12768         * configure.ac: Check if setenv and unsetenv are declared.
12769         * configure: Rebuild.
12770         * config.in: Rebuild.
12771         * system.h: Declare setenv and unsetenv if not declared.
12772
12773 2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12774
12775         * config/rs6000/rs6000.c (swap_web_entry): Update preceding
12776         commentary to simplify permute mask adjustment equation.
12777         (special_handling_values): Add SH_VPERM.
12778         (const_load_sequence_p): New function.
12779         (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
12780         the mask loaded from the constant pool.
12781         (adjust_vperm): New function.
12782         (handle_special_swappables): Call adjust_vperm.
12783         (dump_swap_insn_table): Handle SH_VPERM.
12784
12785 2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>
12786
12787         * shrink-wrap.c (requires_stack_frame_p): Remove static.
12788         * shrink-wrap.h (requires_stack_frame_p): Put back.
12789
12790 2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>
12791
12792         * reload1.c (elimination_costs_in_insn): Locally turn
12793         -Wmaybe-uninitialized into a warning.
12794
12795 2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>
12796
12797         * shrink-wrap.c (requires_stack_frame_p): Make static.
12798         (prepare_shrink_wrap): Likewise.
12799         (dup_block_and_redirect): Likewise.
12800         * shrink-wrap.h: Remove declarations of those functions.
12801
12802 2015-09-10  Mark Wielaard  <mjw@redhat.com>
12803
12804         * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
12805
12806 2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
12807
12808         PR target/67506
12809         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
12810         missing simplify_gen_subreg.
12811
12812 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12813
12814         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
12815         the vector element is bigger than 64 bit.
12816
12817 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12818
12819         * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
12820         ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
12821
12822 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12823
12824         * config/s390/s390.c: Add V1TImode to constant pool modes.
12825
12826 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12827
12828         PR target/67439
12829         * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
12830         predicate.  Set predicable_short_it attr to "no".
12831
12832 2015-09-10  Jiong Wang  <jiong.wang@arm.com>
12833
12834         PR rtl-optimization/67421
12835         * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
12836         left wide shift tranformation.
12837
12838 2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>
12839
12840         * common/config/arc/arc-common.c: Remove references to A5.
12841         * config/arc/arc-opts.h: Likewise.
12842         * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
12843         * config/arc/arc.opt, config/arc/constraints.md: Likewise.
12844         * config/arc/t-arc-newlib: Likewise.
12845
12846 2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>
12847
12848         * config/arc/arc.md (length): Fix attribute length for conditional
12849         executed instructions with long immediate.
12850
12851 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12852
12853         * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
12854         type for second alternative.
12855
12856 2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
12857
12858         * doc/invoke.texi (Downloading GCC): Mention
12859         contrib/download_prerequisites script.
12860
12861 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
12862
12863         PR c++/67523
12864         * gimplify.c (gimplify_omp_for): If inner stmt is not found
12865         for combined loop, assert seen_error () and return GS_ERROR.
12866
12867         PR middle-end/67521
12868         * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
12869         if decl is already in outer->variables.
12870
12871         PR middle-end/67517
12872         * gimplify.c (gimplify_scan_omp_clauses): Instead of
12873         asserting that decl is not specified in octx->variables,
12874         break out of the loop if it is.
12875
12876         PR c++/67514
12877         * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
12878         iterator is not explicitly determined, but is defined inside
12879         of the combined workshare region, handle it like if it has
12880         DECL_EXPR in OMP_FOR_PRE_BODY.
12881
12882 2015-09-09  Nathan Sidwell  <nathan@acm.org>
12883
12884         * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
12885         (*cmp<mode>): Add assembler spacing.
12886         (setcc_int<mode>, set_cc_float<mode>): Likewise.
12887         * config/nvptx/nvptx.c (nvptx_option_override): Override debug
12888         level.
12889         (write_func_decl_from_insn): Refactor argument loops & comma emission.
12890         (nvptx_expand_call): Likewise.
12891         (nvptx_output_call_insn): Likewise.
12892         (nvptx_reorg_subreg): Add spacing.
12893
12894 2015-09-09  Marek Polacek  <polacek@redhat.com>
12895
12896         PR middle-end/67512
12897         * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
12898         for comparisons.
12899
12900 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
12901
12902         PR c++/53184
12903         * doc/invoke.texi ([Wsubobject-linkage]): Document.
12904
12905 2015-09-09  Tom de Vries  <tom@codesourcery.com>
12906
12907         * params-list.h: Add missing copyright notice.
12908
12909 2015-09-09  Nathan Sidwell  <nathan@acm.org>
12910
12911         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
12912         sel_truesi, not andsi.
12913
12914 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12915
12916         * config/arm/arm.md (*subsi3_compare0): Rename to...
12917         (subsi3_compare0): ... This.
12918         (modsi3): New define_expand.
12919         * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
12920         when operand is power of 2.
12921
12922 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12923
12924         * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
12925         (*neg<mode>2_compare0): Rename to...
12926         (neg<mode>2_compare0): ... This.
12927         * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
12928         Move check for speed inside the if-then-elses.  Reflect
12929         CSNEG sequence in MOD by power of 2 case.
12930
12931 2015-09-09  Alan Modra  <amodra@gmail.com>
12932
12933         PR target/67378
12934         * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
12935         reload replacement for PRE_MODIFY address reg.
12936
12937 2015-09-09  Sebastian Pop  <s.pop@samsung.com>
12938
12939         PR tree-optimization/53852
12940         * config.in: Regenerate.
12941         * configure: Regenerate.
12942         * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
12943         * graphite-optimize-isl.c (optimize_isl): Stop computation when
12944         PARAM_MAX_ISL_OPERATIONS is reached.
12945         * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
12946         * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
12947         result equal to isl_stat_ok as the status now can be isl_error_quota.
12948         (subtract_commutative_associative_deps): Same.
12949         (compute_deps): Same.
12950
12951 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
12952             Sebastian Pop  <s.pop@samsung.com>
12953
12954         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
12955         Return the parameter if it was saved in corresponding
12956         parameter_rename_map of the region.
12957         (copy_def): Copy def from sese region to the newly created region.
12958         (copy_internal_parameters): Copy all the internal parameters defined
12959         within a region to the newly created region.
12960         (graphite_regenerate_ast_isl): Copy parameters to the new region before
12961         translating isl to gimple.
12962         * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
12963         the loop-nest does not have any data-references.
12964         (build_graphite_scops): Create a scop only when there is at least one
12965         loop inside it.
12966         (contains_only_close_phi_nodes): Deleted.
12967         (print_graphite_scop_statistics): Deleted
12968         (print_graphite_statistics): Deleted
12969         (limit_scops): Deleted.
12970         (build_scops): Removed call to limit_scops.
12971         * sese.c (new_sese): Construct.
12972         (free_sese): Destruct.
12973         (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
12974         added.
12975         (set_rename): Pass sese region so that parameters inside the region can
12976         be added to its parameter_rename_map.
12977         (rename_uses): Pass sese region.
12978         (graphite_copy_stmts_from_block): Do not copy parameters that have been
12979         generated in the header of the scop. For each SSA_NAME in the
12980         parameter_rename_map rename its usage.
12981         (invariant_in_sese_p_rec): Return false if tree t is defined outside
12982         sese region.
12983         (scalar_evolution_in_region): If the tree t is invariant just return t.
12984         * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
12985         struct sese to keep track of all the parameters which need renaming.
12986         * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
12987         any data-refs.
12988         * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
12989
12990 2015-09-08  Tom de Vries  <tom@codesourcery.com>
12991
12992         * Makefile.in (generated_files): Add params.list.
12993         (params.list, s-params.list): Add rule.
12994         * params.h (enum compiler_param): Include params-list.h.  Move define
12995         DEFPARAM, include params.def and undef DEFPARAM ...
12996         * params-list.h: ... here.  New file.
12997
12998 2015-09-08  David Malcolm  <dmalcolm@redhat.com>
12999
13000         * pretty-print.h (printer_fn): Fix typo in comment.
13001
13002 2015-09-07  Jeff Law  <law@redhat.com>
13003
13004         * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
13005
13006 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13007
13008         * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
13009         (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
13010         (arm_neon_fp16_hw): New.
13011
13012 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13013
13014         * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
13015         UNITS_PER_WORD >= 4.
13016
13017 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13018
13019         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
13020         aarch64_simd_vec_unpacks_hi_<mode>): New insn.
13021         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
13022         (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
13023         (aarch64_float_extend_lo_v2df): Rename to...
13024         (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
13025
13026         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
13027         (float_extend_lo): Add v4sf.
13028
13029         * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
13030         * config/aarch64/iterators.md (VQ_HSF): New iterator.
13031         (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
13032         (Vwide): New mode_attr.
13033
13034 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13035
13036         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
13037         aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
13038         aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
13039         vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
13040         V4HF and V8HF variants to iterator.
13041
13042         * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
13043
13044         * config/aarch64/iterators.md (VDQF_F16): New.
13045         (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
13046
13047 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13048
13049         * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
13050         vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
13051         vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
13052         vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
13053         vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
13054         vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
13055         vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
13056         vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
13057         vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
13058         vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
13059         vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
13060         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
13061         vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
13062         vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
13063         vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
13064         vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
13065         vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
13066         vld1q_dup_f16): New.
13067
13068 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13069
13070         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
13071         Reparameterize to...
13072         (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
13073         (aarch64_float_truncate_hi_v4sf): Reparameterize to...
13074         (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
13075
13076         * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
13077         v8hf variant.
13078         (float_truncate_lo_): Use BUILTIN_VDF iterator.
13079
13080         * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
13081
13082         * config/aarch64/iterators.md (VDF, Vdtype): New.
13083         (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
13084
13085 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13086
13087         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
13088         * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
13089         (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
13090         Add __builtin_aarch64_simd_hf.
13091         * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
13092         float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
13093         vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
13094         vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
13095         vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
13096         vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
13097         vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
13098         vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
13099         vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
13100
13101         * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
13102         V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
13103         (VDC, Vdbl): Add V4HF.
13104
13105 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13106
13107         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
13108         V4HFmode and V8HFmode.
13109         (aarch64_split_simd_move): Add case for V8HFmode.
13110         * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
13111         (aarch64_simd_builtin_std_type): Handle HFmode.
13112         (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
13113
13114         * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
13115         aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
13116         (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
13117
13118         * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
13119         Float16x8_t.
13120
13121         * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
13122         * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
13123         New typedefs.
13124         (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
13125         vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
13126         vst1q_lane_f16): New.
13127         * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
13128         (VALLDI_F16, VALL_F16): New.
13129         (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
13130         Add cases for V4HF and V8HF.
13131         (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
13132
13133 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13134
13135         * config/arm/arm-builtins.c (VAR11, VAR12): New.
13136         * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
13137         vld4_dup): Add v4hf variant.
13138         (vget_high, vget_low): Add v8hf variant.
13139         (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
13140         vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
13141         v4hf and v8hf variants.
13142
13143         * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
13144         (VDX): Add V4HF.
13145         (V_DOUBLE): Add case for V4HF.
13146         (VQX): Add V8HF.
13147         (V_HALF): Add case for V8HF.
13148         (VDQX): Add V4HF, V8HF.
13149         (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
13150         V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
13151
13152         * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
13153         neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
13154         vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
13155         neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
13156         neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
13157         neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
13158         vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
13159         neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
13160         neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
13161
13162         (neon_vcreate, neon_vreinterpretv8qi<mode>,
13163         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
13164         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
13165         Change VDX to VD_RE.
13166
13167         (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
13168         neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
13169         Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
13170
13171         * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
13172         float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
13173         vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
13174         vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
13175         vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
13176         vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
13177         vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
13178         vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
13179         vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
13180
13181 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13182
13183         * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
13184         vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
13185         vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
13186         vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
13187         vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
13188         vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
13189         vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
13190         vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
13191         vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
13192         vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
13193         New.
13194
13195 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13196
13197         * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
13198
13199         * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
13200
13201         * config/arm/arm-builtins.c (v8hf_UP): New.
13202         (arm_init_simd_builtin_types): Initialise Float16x8_t.
13203
13204         * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
13205
13206         * config/arm/arm_neon.h (float16x8_t): New typedef.
13207
13208 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
13209
13210         * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
13211         vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
13212         vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
13213         vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
13214         vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
13215         vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
13216         vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
13217         vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
13218         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
13219         vreinterpret_u16_f16, vreinterpret_u32_f16): New.
13220
13221 2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
13222
13223         * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
13224         non-alphanumeric characters in the symbol name.
13225
13226 2015-09-07  Marek Polacek  <polacek@redhat.com>
13227
13228         PR inline-asm/67448
13229         * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
13230         a memory input.
13231
13232 2015-09-07  Marek Polacek  <polacek@redhat.com>
13233
13234         * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
13235
13236 2015-09-04  Paolo Bonzini  <bonzini@gnu.org>
13237
13238         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
13239         not warn.
13240
13241 2015-09-04  Jakub Jelinek  <jakub@redhat.com>
13242
13243         PR middle-end/67452
13244         * tree-ssa-live.c: Include cfgloop.h.
13245         (remove_unused_locals): Clear loop->simduid if simduid is about
13246         to be removed from cfun->local_decls.
13247
13248 2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
13249
13250         PR target/65210
13251         * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
13252         attribute as well.
13253
13254 2015-09-04  Tom de Vries  <tom@codesourcery.com>
13255
13256         * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
13257
13258 2015-09-04  Jeff Law  <law@redhat.com>
13259
13260         * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
13261         unnecessary constructor.  It's now trivial and implemented inside...
13262         * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
13263         constructor.  Add comments to various methods.  Remove unused
13264         private fields.
13265         * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
13266         * tree-vrp.c (identify_jump_threads): Likewise.
13267         * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
13268         indentation issues.
13269         (thread_across_edge): Similarly.
13270         (record_temporary_equivalences_from_stmts_at_dest): Remove unused
13271         arguments in constructor call.
13272
13273 2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
13274
13275         * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
13276         temp path contains a '-'.
13277
13278 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
13279             Petr Murzin  <petr.murzin@intel.com>
13280             Kirill Yukhin  <kirill.yukhin@intel.com>
13281
13282         * config/i386/i386-builtin-types.def
13283         (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
13284         (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
13285         (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
13286         (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
13287         * config/i386/i386.c
13288         (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
13289         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
13290         IX86_BUILTIN_SCATTERALTDIV16SI.
13291         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
13292         __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
13293         __builtin_ia32_scatteraltdiv8si.
13294         (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
13295         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
13296         IX86_BUILTIN_SCATTERALTDIV16SI.
13297         (ix86_vectorize_builtin_scatter): New.
13298         (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
13299         ix86_vectorize_builtin_scatter.
13300
13301 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
13302             Petr Murzin  <petr.murzin@intel.com>
13303             Kirill Yukhin  <kirill.yukhin@intel.com>
13304
13305         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
13306         * doc/tm.texi: Regenerate.
13307         * target.def: Add scatter builtin.
13308         * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
13309         for loads/stores in case of gather/scatter accordingly.
13310         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
13311         STMT_VINFO_GATHER_P(S).
13312         (vect_check_gather): Rename to ...
13313         (vect_check_gather_scatter): this.
13314         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
13315         STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
13316         (vect_check_gather_scatter): Use it instead of vect_check_gather.
13317         (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
13318         variable and new checkings for it accordingly.
13319         * tree-vect-stmts.c
13320         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
13321         STMT_VINFO_GATHER_P(S).
13322         (vect_check_gather_scatter): Use it instead of vect_check_gather.
13323         (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
13324
13325 2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
13326
13327         * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
13328         define_insn.
13329         (mulv16qi3): New define_expand.
13330
13331 2015-09-03  Martin Sebor  <msebor@redhat.com>
13332
13333         PR c/66516
13334         * doc/extend.texi (Other Builtins): Document when the address
13335         of a built-in function can be taken.
13336
13337 2015-09-03  Richard Biener  <rguenther@suse.de>
13338
13339         * dwarf2out.c (flush_limbo_die_list): Split out from ...
13340         (dwarf2out_early_finish): ... here.
13341         (dwarf2out_finish): Do not call dwarf2out_early_finish but
13342         flush_limbo_die_list.  Assert we have no deferred asm names.
13343
13344 2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13345
13346         * optabs.c (expand_binop): Don't create a broadcast vector with a
13347         source element wider than the inner mode.
13348
13349 2015-09-03  Richard Biener  <rguenther@suse.de>
13350
13351         * varasm.c (output_constant): Use fold_convert instead of
13352         wide_int_to_tree.
13353
13354 2015-09-03  Tom de Vries  <tom@codesourcery.com>
13355
13356         PR tree-optimization/65637
13357         * omp-low.c (expand_omp_for_static_chunk): Handle case that
13358         fin_bb has 2 predecessors.
13359
13360 2015-09-03  Tom de Vries  <tom@codesourcery.com>
13361
13362         PR tree-optimization/65637
13363         * omp-low.c (find_phi_with_arg_on_edge): New function.
13364         (expand_omp_for_static_chunk): Fix inner loop phi.
13365
13366 2015-09-03  Tom de Vries  <tom@codesourcery.com>
13367
13368         PR tree-optimization/65637
13369         * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
13370         that head is NULL.
13371
13372 2015-09-03  Tom de Vries  <tom@codesourcery.com>
13373
13374         * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
13375
13376 2015-09-03  Tom de Vries  <tom@codesourcery.com>
13377
13378         * doc/invoke.texi (parloops-chunk-size): Add item.
13379         * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
13380         * tree-parloops.c: Include params.h.
13381         (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
13382         param parloops-chunk-size is used.
13383
13384 2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
13385
13386         PR middle-end/67351
13387         * fold-const.c (fold_binary_loc) : Move
13388         Transform (x >> c) << c into x & (-1<<c) or
13389         transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
13390         types using simplify and match.
13391         * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
13392         (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
13393
13394 2015-09-03  Richard Biener  <rguenther@suse.de>
13395
13396         PR ipa/66705
13397         * tree-ssa-structalias.c (ctor_for_analysis): New function.
13398         (create_variable_info_for_1): Use ctor_for_analysis instead
13399         of get_constructor.
13400         (create_variable_info_for): Likewise.
13401
13402 2015-09-02  Charles Baylis  <charles.baylis@linaro.org>
13403
13404         PR ipa/67280
13405         * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
13406         in new callgraph edge.
13407
13408 2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>
13409
13410         PR target/59810
13411         PR target/63652
13412         PR target/63653
13413         * config/aarch64/aarch64-simd.md
13414         (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
13415         gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
13416         (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
13417         gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
13418
13419 2015-09-02  Alan Modra  <amodra@gmail.com>
13420
13421         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
13422         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
13423         (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
13424
13425 2015-09-02  Alan Modra  <amodra@gmail.com>
13426
13427         PR target/67417
13428         * config/rs6000/predicates.md (current_file_function_operand): Don't
13429         return true for weak symbols.
13430         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
13431
13432 2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
13433             Andrew Bennett  <andrew.bennett@imgtec.com>
13434
13435         * config/mips/mips-opts.h (mips_cb_setting): New enum.
13436         * config/mips/mips-protos.h: Add definitions for
13437         mips_output_jump and mips_output_equal_conditional_branch
13438         * config/mips/mips.c (MIPS_JR): Change to support the
13439         JIC instruction.
13440         (mips_emit_compare): Add support for the MIPS R6 conditional
13441         compact branches.
13442         (mips_process_sync_loop): Likewise.
13443         (mips_output_order_conditional_branch): Likewise.
13444         (mips16_build_call_stub): Change MIPS_CALL to
13445         mips_output_jump.
13446         (mips_print_operand_punctuation): Update 's' case to only
13447         apply to micromips r2.
13448         (mips_adjust_insn_length): Add support for forbidden slot
13449         hazards.
13450         (mips_avoid_hazard): Likewise.
13451         (mips_reorg_process_insns): Likewise.
13452         (mips_output_jump): New function.
13453         (mips_output_equal_conditional_branch): Likewise.
13454         (mips_output_conditional_branch): Use jrc/bc if compact
13455         branch support is enabled.  Ensure the forbidden slots
13456         between the two branch instructions is filled with a nop.
13457         (mips_option_override): Add support to process the compact
13458         branch option and set the correct defaults.  Prevent
13459         non-explict relocs being using for MIPS R6.
13460         (mips_trampoline_init): Add compact branch support.
13461         (mips_mult_zero_zero_cost): Allow zero initialisation of
13462         accumulators with TARGET_DSP.
13463         * config/mips/mips.h (TARGET_CB_NEVER): New define.
13464         (TARGET_CB_MAYBE): New define.
13465         (TARGET_CB_ALWAYS): New define.
13466         (ISA_HAS_DELAY_SLOTS): New define.
13467         (ISA_HAS_COMPACT_BRANCHES): New define.
13468         (ISA_HAS_JRC): New define.
13469         (MIPS_BRANCH_C): New define.
13470         (MIPS_CALL): Removed.
13471         (MICROMIPS_J): Removed.
13472         * config/mips/mips.md (compact_form): New attr.
13473         (hazard): Add support for forbidden slots.
13474         (define_delay): Add support for compact branches.
13475         (*branch_order<mode>): Likewise.
13476         (*branch_order<mode>_inverted): Likewise.
13477         (*branch_equality<mode>): Likewise.
13478         (*branch_equality<mode>_inverted): Likewise.
13479         (*jump_absolute): Likewise.
13480         (*jump_pic): Likewise.
13481         (indirect_jump): Use mips_output_jump to produce assembly output.
13482         (tablejump_<mode>"): Likewise.
13483         (*<optab>"): Likewise.
13484         (<optab>_internal): Likewise.
13485         (sibcall_internal): Likewise.
13486         (sibcall_value_internal): Likewise.
13487         (sibcall_value_multiple_internal): Likewise.
13488         (call_internal): Likewise.
13489         (call_split): Likewise.
13490         (call_internal_direct): Likewise.
13491         (call_direct_split): Likewise.
13492         (call_value_internal): Likewise.
13493         (call_value_split): Likewise.
13494         (call_value_internal_direct): Likewise.
13495         (call_value_direct_split): Likewise.
13496         (call_value_multiple_internal): Likewise.
13497         (call_value_multiple_split): Likewise.
13498         (mips_get_fcsr_mips16_<mode>): Likewise.
13499         (mips_set_fcsr_mips16_<mode>): Likewise.
13500         (tls_get_tp_mips16_<mode>): Likewise.
13501         * config/mips/mips.opt: Add -mcompact-branches option.
13502         * config/mips/predicates.md (order_operator): Ensure the
13503         conditional compact branches are only used if the ISA them.
13504         * doc/invoke.texi: Document -mcompact-branches option.
13505
13506 2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>
13507
13508         PR target/61578
13509         * lra-lives.c (process_bb_lives): Process move pseudos with the
13510         same value for copies and preferences
13511         * lra-constraints.c (match_reload): Create match reload pseudo
13512         with the same value from single dying input pseudo.
13513
13514 2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
13515
13516         PR target/67405
13517         * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
13518
13519 2015-09-01  Aldy Hernandez  <aldyh@redhat.com>
13520
13521         * trans-mem.c: Add contributed-by.
13522         * trans-mem.h: Same.
13523
13524 2015-09-01  Richard Biener  <rguenther@suse.de>
13525
13526         * expr.c (expand_expr_real_1): For expanding TERed defs
13527         set the current location to that of the def if not UNKNOWN.
13528
13529 2015-09-01  David Sherwood  <david.sherwood@arm.com>
13530
13531         * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
13532
13533 2015-09-01  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13534
13535         * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
13536         then_cost, else_cost fields.  Change branch_cost field to unsigned int.
13537         (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
13538         Include rtl-iter.h.
13539         (noce_simple_bbs): New function.
13540         (noce_try_move): Bail if basic blocks are not simple.
13541         (noce_try_store_flag): Likewise.
13542         (noce_try_store_flag_constants): Likewise.
13543         (noce_try_addcc): Likewise.
13544         (noce_try_store_flag_mask): Likewise.
13545         (noce_try_cmove): Likewise.
13546         (noce_try_minmax): Likewise.
13547         (noce_try_abs): Likewise.
13548         (noce_try_sign_mask): Likewise.
13549         (noce_try_bitop): Likewise.
13550         (bbs_ok_for_cmove_arith): New function.
13551         (noce_emit_all_but_last): Likewise.
13552         (noce_emit_insn): Likewise.
13553         (noce_emit_bb): Likewise.
13554         (noce_try_cmove_arith): Handle non-simple basic blocks.
13555         (insn_valid_noce_process_p): New function.
13556         (contains_mem_rtx_p): Likewise.
13557         (bb_valid_for_noce_process_p): Likewise.
13558         (noce_process_if_block): Allow non-simple basic blocks
13559         where appropriate.
13560
13561 2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>
13562
13563         * tree-ssa-dom.c (record_equivalences_from_phis,
13564         record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
13565         (lookup_avail_expr): Likewise, and remove comment and unused temp.
13566
13567 2015-09-01  Nick Clifton  <nickc@redhat.com>
13568
13569         * config/msp430/msp430.opt (mcpu): Fix typo.
13570
13571 2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13572
13573         * config/aarch64/aarch64.c (aarch64_set_current_function):
13574         Re-layout any vector parameters have non-simd layout.
13575         * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
13576         Delete.
13577         (aarch64_simd_expand_args): Delete call to the above.
13578
13579 2015-08-31  Mike Frysinger  <vapier@gentoo.org>
13580
13581         * doc/invoke.texi (asan-stack): Add space before option.
13582
13583 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
13584
13585         * tree.h (zerop): New function.
13586         * tree.c (zerop): Likewise.
13587         (element_precision): Handle expressions.
13588         * match.pd (define_predicates): Add zerop.
13589         (x <= +Inf): Fix comment.
13590         (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
13591         * fold-const.c (fold_binary_loc): ... here. Remove.
13592
13593 2015-08-31  Richard Biener  <rguenther@suse.de>
13594
13595         PR middle-end/67381
13596         * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
13597
13598 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
13599
13600         * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
13601         (CEXPI): New operator list.
13602         (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
13603         imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
13604         Converted from ...
13605         * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
13606
13607 2015-08-31  Tom de Vries  <tom@codesourcery.com>
13608
13609         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
13610         (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
13611         parameter.
13612         (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
13613         (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
13614         (rewrite_into_loop_closed_ssa): ... here.
13615         (replace_uses_in_dominated_bbs): Remove function.
13616         (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
13617         rewrite_into_loop_closed_ssa_1.
13618
13619 2015-08-31  Michael Matz  <matz@suse.de>
13620
13621         * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
13622         enter entry and exit blocks for reverse post order.
13623
13624 2015-08-31  Richard Biener  <rguenther@suse.de>
13625
13626         * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
13627         (lto_location_cache::current_sysp): Likewise.
13628         (output_block::current_sysp): Likewise.
13629         * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
13630         (lto_location_cache::apply_location_cache): Properly record
13631         system header locations.
13632         (lto_location_cache::input_location): Input whether a file
13633         is a system header.
13634         * lto-streamer-out.c (lto_output_location): Stream whether a file
13635         is a system header.
13636
13637 2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13638
13639         PR bootstrap/67363
13640         * gcc.c (env_manager::xput): Replace strndup by xstrndup.
13641
13642 2015-08-31  Tom de Vries  <tom@codesourcery.com>
13643
13644         * tree-ssa-loop-manip.c (find_uses_to_rename_use)
13645         (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
13646         Improve function header comments.
13647
13648 2015-08-30  Michael Collison  <michael.collison@linaro.org>
13649
13650         PR other/67320
13651         * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
13652         standard names
13653
13654 2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13655
13656         * config/rs6000/rs6000.c (swap_web_entry): Enlarge
13657         special_handling bitfield.
13658         (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
13659         (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
13660         that represents a general xxpermdi.
13661         (insn_is_swappable_p): Add handling for vec_concat of two
13662         doublewords, which maps to a specific xxpermdi.
13663         (adjust_xxpermdi): New function.
13664         (adjust_concat): Likewise.
13665         (handle_special_swappables): Call adjust_xxpermdi and
13666         adjust_concat.
13667         (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
13668
13669 2015-08-30  Rich Felker <dalias@libc.org>
13670
13671         * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
13672         case instead of sh[123456ble]-*-*.
13673
13674 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
13675
13676         * ira.c (print_unform_and_important_classes,
13677         print_translated_classes): Remove reg_class_names static array.
13678         (print_unform_and_important_classes): Rename to ...
13679         (print_uniform_and_important_classes): ... this.
13680         (ira_debug_allocno_classes): Update accordingly.
13681
13682 2015-08-29  Tom de Vries  <tom@codesourcery.com>
13683
13684         PR tree-optimization/46193
13685         * omp-low.c (omp_reduction_init): Handle pointer type for min or max
13686         clause.
13687
13688 2015-08-28  Jeff Law  <law@redhat.com>
13689
13690         PR lto/66752
13691         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
13692         unable to find X NE 0 in the tables, return X as the simplified
13693         condition.
13694         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
13695         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
13696         to VISISTED_BBS.
13697         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
13698         after removing the control flow statement and unnecessary edges.
13699
13700 2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>
13701
13702         Revert:
13703         2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
13704
13705         PR tree-optimization/67283
13706         * tree-sra.c (type_consists_of_records_p): Rename to...
13707         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
13708
13709         (completely_scalarize_record): Rename to...
13710         (completely_scalarize): ...this, add ARRAY_TYPE case, move some
13711         code to:
13712         (scalarize_elem): New.
13713
13714 2015-08-28  Jiong Wang  <jiong.wang@arm.com>
13715
13716         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
13717         SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
13718         (aarch64_symbol_type): Likewise.
13719         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
13720         Likewise.
13721         (aarch64_expand_mov_immediate): Likewise.
13722         (aarch64_print_operand): Likewise.
13723         (aarch64_classify_tls_symbol): Likewise.
13724
13725 2015-08-28  Richard Biener  <rguenther@suse.de>
13726
13727         * cgraphunit.c (symbol_table::compile): Move early debug generation
13728         and finish...
13729         (symbol_table::finalize_compilation_unit): ... back here and
13730         add a !seen_error () guard.
13731
13732 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
13733
13734         * toplev.c (process_options): Do not use flag_loop_block,
13735         flag_loop_interchange, and flag_loop_strip_mine.  Add check for
13736         flag_loop_optimize_isl.
13737
13738 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
13739
13740         * Makefile.in (OBJS): Remove graphite-blocking.o and
13741         graphite-interchange.o.
13742         * common.opt (floop-strip-mine, floop-interchange, floop-block):
13743         Alias of floop-nest-optimize.
13744         * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
13745         Document as alias of -floop-nest-optimize.
13746         * graphite-blocking.c: Remove.
13747         * graphite-interchange.c: Remove.
13748         * graphite-optimize-isl.c: Include dumpfile.h.
13749         (getScheduleForBand): Add dump for tiled loops.  Use
13750         PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
13751         * graphite-poly.c (scop_max_loop_depth): Remove.
13752         (print_scattering_function_1): Remove.
13753         (print_scattering_function): Remove.
13754         (print_scattering_functions): Remove.
13755         (debug_scattering_function): Remove.
13756         (debug_scattering_functions): Remove.
13757         (apply_poly_transforms): Remove use of flag_loop_block,
13758         flag_loop_strip_mine, and flag_loop_interchange.
13759         (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
13760         PBB_ORIGINAL.
13761         (print_pdr_access_layout): Remove.
13762         (print_pdr): Print ISL representation.
13763         (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
13764         SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
13765         (free_scop): Same.
13766         (openscop_print_pbb_domain): Remove.
13767         (print_pbb): Remove call to print_scattering_function.
13768         (openscop_print_scop_context): Remove.
13769         (print_scop_context): Do not print matrices anymore.
13770         (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
13771         SCOP_TRANSFORMED_SCHEDULE.
13772         (print_isl_set): Add printing of a new line.
13773         (print_isl_map): Same.
13774         (print_isl_aff): Same.
13775         (print_isl_constraint): Same.
13776         (loop_to_lst): Remove.
13777         (scop_to_lst): Remove.
13778         (lst_indent_to): Remove.
13779         (print_lst): Remove.
13780         (debug_lst): Remove.
13781         (dot_lst_1): Remove.
13782         (dot_lst): Remove.
13783         (reverse_loop_at_level): Remove.
13784         (reverse_loop_for_pbbs): Remove.
13785         * graphite-poly.h (pdr_dim_iter_domain): Remove.
13786         (pdr_nb_params): Remove.
13787         (pdr_alias_set_dim): Remove.
13788         (pdr_subscript_dim): Remove.
13789         (pdr_iterator_dim): Remove.
13790         (pdr_parameter_dim): Remove.
13791         (same_pdr_p): Remove.
13792         (struct poly_scattering): Remove.
13793         (struct poly_bb): Remove _original, _transformed, _saved.
13794         (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
13795         (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
13796         (PBB_NB_LOCAL_VARIABLES): Remove.
13797         (PBB_NB_SCATTERING_TRANSFORM): Remove.
13798         (schedule_to_scattering): Remove.
13799         (number_of_write_pdrs): Remove.
13800         (pbb_dim_iter_domain): Remove.
13801         (pbb_nb_params): Remove.
13802         (pbb_nb_scattering_orig): Remove.
13803         (pbb_nb_scattering_transform): Remove.
13804         (pbb_nb_dynamic_scattering_transform): Remove.
13805         (pbb_nb_local_vars): Remove.
13806         (pbb_iterator_dim): Remove.
13807         (pbb_parameter_dim): Remove.
13808         (psco_scattering_dim): Remove.
13809         (psct_scattering_dim): Remove.
13810         (psct_local_var_dim): Remove.
13811         (psco_iterator_dim): Remove.
13812         (psct_iterator_dim): Remove.
13813         (psco_parameter_dim): Remove.
13814         (psct_parameter_dim): Remove.
13815         (psct_dynamic_dim): Remove.
13816         (psct_static_dim): Remove.
13817         (psct_add_local_variable): Remove.
13818         (new_lst_loop): Remove.
13819         (new_lst_stmt): Remove.
13820         (free_lst): Remove.
13821         (copy_lst): Remove.
13822         (lst_add_loop_under_loop): Remove.
13823         (lst_depth): Remove.
13824         (lst_dewey_number): Remove.
13825         (lst_dewey_number_at_depth): Remove.
13826         (lst_pred): Remove.
13827         (lst_succ): Remove.
13828         (lst_find_pbb): Remove.
13829         (find_lst_loop): Remove.
13830         (lst_find_first_pbb): Remove.
13831         (lst_empty_p): Remove.
13832         (lst_find_last_pbb): Remove.
13833         (lst_contains_p): Remove.
13834         (lst_contains_pbb): Remove.
13835         (lst_create_nest): Remove.
13836         (lst_remove_from_sequence): Remove.
13837         (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
13838         (lst_niter_for_loop): Remove.
13839         (pbb_update_scattering): Remove.
13840         (lst_update_scattering_under): Remove.
13841         (lst_update_scattering): Remove.
13842         (lst_insert_in_sequence): Remove.
13843         (lst_replace): Remove.
13844         (lst_substitute_3): Remove.
13845         (lst_distribute_lst): Remove.
13846         (lst_remove_all_before_including_pbb): Remove.
13847         (lst_remove_all_before_excluding_pbb): Remove.
13848         (struct scop): Remove original_schedule, transformed_schedule, and
13849         saved_schedule.
13850         (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
13851         (SCOP_SAVED_SCHEDULE): Remove.
13852         (poly_scattering_new): Remove.
13853         (poly_scattering_free): Remove.
13854         (poly_scattering_copy): Remove.
13855         (store_scattering_pbb): Remove.
13856         (store_lst_schedule): Remove.
13857         (restore_lst_schedule): Remove.
13858         (store_scattering): Remove.
13859         (restore_scattering_pbb): Remove.
13860         (restore_scattering): Remove.
13861         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
13862         Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
13863         compute the scattering polyhedron dimension from the dimension of
13864         pbb->domain.
13865         (build_scop_scattering): Update call to
13866         build_pbb_scattering_polyhedrons.
13867         (build_poly_scop): Remove call to scop_to_lst.
13868         * graphite.c (graphite_transform_loops): Add call to print_scop.
13869         (gate_graphite_transforms): Remove use of flag_loop_block,
13870         flag_loop_interchange, and flag_loop_strip_mine.
13871
13872 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
13873
13874         * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
13875         * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
13876         -floop-nest-optimize.
13877         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
13878         (generate_luj_sepclass): Remove.
13879         (generate_luj_options): Remove.
13880         (set_options): Remove opt_luj.
13881         (scop_to_isl_ast): Remove opt_luj.
13882         * graphite-optimize-isl.c (getScheduleForBand): Remove check for
13883         flag_loop_unroll_jam.
13884         (getPrevectorMap_full): Remove.
13885         (getScheduleForBandList): Remove map_sepcl.
13886         (getScheduleMap): Same.
13887         (apply_schedule_map_to_scop): Remove sepcl.
13888         (optimize_isl): Same.
13889         * graphite-poly.c (apply_poly_transforms): Remove check for
13890         flag_loop_unroll_jam.
13891         (new_poly_bb): Remove map_sepclass.
13892         * graphite-poly.h (struct poly_bb): Same.
13893         * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
13894         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
13895         (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
13896         * toplev.c (process_options): Remove flag_loop_unroll_jam.
13897
13898 2015-08-27  Uros Bizjak  <ubizjak@gmail.com>
13899
13900         PR target/67317
13901         * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
13902         (addqi3_cc): Ditto.
13903         (UNSPEC_ADD_CARRY): Remove.
13904         (addqi3_cconly_overflow): New expander.
13905         (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
13906         Adjust for changed add<mode>3_carry.
13907         (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
13908         (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
13909         (<plusminus_insn><mode>3_carry): Remove expander.
13910         (*<plusminus_insn><mode>3_carry): Split insn pattern to
13911         add<mode>3_carry and sub<mode>3_carry.
13912         (plusminus_carry_mnemonic): Remove code attribute.
13913         (add<mode>3_carry): Canonicalize insn pattern.
13914         (*addsi3_carry_zext): Ditto.
13915         (sub<mode>3_carry): Ditto.
13916         (*subsi3_carry_zext): Ditto.
13917         (adcx<mode>3): Remove insn pattern.
13918         (addcarry<mode>): New insn pattern.
13919         (subborrow<mode>): Ditto.
13920         * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
13921         gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
13922         (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
13923         case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
13924         case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
13925         CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
13926         Rewrite expander to not clobber carry flag chains.
13927
13928 2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>
13929
13930         * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
13931         instead of a rotate.
13932
13933 2015-08-27  Marek Polacek  <polacek@redhat.com>
13934
13935         PR middle-end/67005
13936         * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
13937         an entry into an irreducible region.
13938
13939 2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
13940
13941         * configure: Regenerate.
13942
13943 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
13944
13945         PR tree-optimization/67283
13946         * tree-sra.c (type_consists_of_records_p): Rename to...
13947         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
13948
13949         (completely_scalarize_record): Rename to...
13950         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
13951         (scalarize_elem): New.
13952
13953 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
13954
13955         * tree-sra.c (completely_scalarize_var): Rename to...
13956         (create_total_scalarization_access): ... Here. Drop call to
13957         completely_scalarize_record.
13958
13959         (analyze_all_variable_accesses): Replace completely_scalarize_var
13960         with create_total_scalarization_access and completely_scalarize_record.
13961
13962 2015-08-27  Alan Modra  <amodra@gmail.com>
13963
13964         PR target/67356
13965         * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
13966         for operand 1.
13967
13968 2015-08-27  Richard Biener  <rguenther@suse.de>
13969
13970         * passes.c (rest_of_decl_compilation): Guard early_global_decl
13971         call with !seen_error ().
13972         * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
13973         early debug generation and finish...
13974         (symbol_table::compile): ... here to put it after a !seen_error ()
13975         guard.
13976
13977 2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13978
13979         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
13980         Solaris 12+.
13981
13982 2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13983             Andre Vieira  <andre.simoesdiasvieira@arm.com>
13984
13985         * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
13986         (*cb<optab><mode>1): Likewise.
13987         (*tb<optab><mode>1): Likewise.
13988         (*cb<optab><mode>1): Likewise.
13989         * config/aarch64/iterators.md (inv_cb): New code attribute.
13990         (inv_tb): Likewise.
13991         * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
13992         * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
13993
13994 2015-08-27  Richard Biener  <rguenther@suse.de>
13995
13996         * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
13997
13998 2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13999
14000         * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
14001         trap to fix ICE.
14002
14003 2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
14004
14005         * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
14006         Add declaration.
14007
14008         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
14009         comment.
14010         (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
14011         floating point in VSX registers.
14012         (rs6000_output_move_128bit): Always print out the set insn if we
14013         can't generate an appropriate 128-bit move.
14014         (rs6000_generate_compare): Add support for IEEE 128-bit floating
14015         point in VSX registers comparisons.
14016         (rs6000_expand_float128_convert): Likewise.
14017
14018         * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
14019         predicate for only GPR hard registers.
14020
14021         * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
14022         modes to iterators. Add new iterators for moving 128-bit values in
14023         scalar FPR registers and VSX registers.
14024         (FMOVE128): Likewise.
14025         (FMOVE128_FPR): Likewise.
14026         (FMOVE128_GPR): Likewise.
14027         (FMOVE128_VSX): Likewise.
14028         (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
14029         in VSX registers.
14030         (IFKF): Likewise.
14031         (IBM128): Likewise.
14032         (TFIFKF): Likewise.
14033         (RELOAD): Add IEEE 128-bit floating point modes.
14034         (signbittf2): Convert TF insns to add support for new IEEE 128-bit
14035         floating point in VSX registers modes.
14036         (signbit<mode>2, IBM128 iterator): Likewise.
14037         (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
14038         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
14039         (negtf2): Likewise.
14040         (neg<mode>2, TFIFKF iterator): Likewise.
14041         (negtf2_internal): Likewise.
14042         (abstf2): Likewise.
14043         (abs<mode>2, TFIFKF iterator): Likewise.
14044         (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
14045         VSX insn support for negate, absolute value, and negative absolute
14046         value.
14047         (ieee_128bit_vsx_neg<mode>2): Likewise.
14048         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
14049         (ieee_128bit_vsx_abs<mode>2): Likewise.
14050         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
14051         (ieee_128bit_vsx_nabs<mode>2): Likewise.
14052         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
14053         (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
14054         floating point in VSX registers.
14055         (unpack<mode>_dm): Likewise.
14056         (unpack<mode>_nodm): Likewise.
14057         (pack<mode>): Likewise.
14058         (unpackv1ti): Likewise.
14059         (unpack<mode>, FMOVE128_VSX iterator): Likewise.
14060         (packv1ti): Likewise.
14061         (pack<mode>, FMOVE128_VSX iterator): Likewise.
14062         (extenddftf2): Add support for IEEE 128-bit floating point in VSX
14063         registers.
14064         (extenddftf2_internal): Likewise.
14065         (trunctfdf2): Likewise.
14066         (trunctfdf2_internal2): Likewise.
14067         (fix_trunc_helper): Likewise.
14068         (fix_trunctfdi2"): Likewise.
14069         (floatditf2): Likewise.
14070         (floatuns<mode>tf2): Likewise.
14071         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
14072         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
14073         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
14074         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
14075         (float<SDI:mode><IFKF:mode>2): Likewise.
14076         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
14077
14078 2015-08-26  Renlin Li  <renlin.li@arm.com>
14079
14080         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
14081
14082 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14083             Jiong Wang  <jiong.wang@arm.com>
14084
14085         * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
14086         (tlsie_tiny_<mode>): New define_insn.
14087         (tlsie_tiny_sidi): Likewise.
14088         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
14089         SYMBOL_TINY_TLSIE.
14090         (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
14091         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
14092         SYMBOL_TINY_TLSIE.
14093         (aarch64_expand_mov_immediate): Likewise.
14094         (aarch64_print_operand): Likewise.
14095         (arch64_classify_tls_symbol): Likewise.
14096
14097 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
14098
14099         * config/arm/arm-arches.def: Replace single value flags with
14100         an initializer built from ARM_FSET_MAKE_CPU1.
14101         * config/arm/arm-cores.def: Likewise.
14102         * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
14103         derivation from the ARM_CORE macro definition, use the given value
14104         instead.
14105         (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
14106         ARM_ARCH macro definition, use the given value instead.
14107
14108 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
14109
14110         * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
14111         feature set.
14112         (struct builtin_description): Replace field mask with field
14113         features.
14114         (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
14115         (IWMMXT2_BUILTIN): Likewise.
14116         (IWMMXT2_BUILTIN2): Likewise.
14117         (FP_BUILTIN): Likewise.
14118         (CRC32_BUILTIN): Likewise.
14119         (CRYPTO_BUILTIN): Likewise.
14120         (iwmmx_mbuiltin): Likewise.
14121         (iwmmx2_mbuiltin): Likewise.
14122         (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
14123         struct builtin_description.
14124
14125 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
14126
14127         * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
14128         (struct builtin_description): Change type of mask to unsigned
14129         long.
14130         * config/arm/arm-protos.h (insn_flags): Declare as type
14131         arm_feature_set.
14132         (tune_flags): Likewise.
14133         * config/arm/arm.c (feature_count): New.
14134         (insn_flags): Define as type arm_feature_set.
14135         (tune_flags): Likewise.
14136         (struct processors): Define field flags as type arm_feature_set.
14137         (all_cores): Update for change to struct processors.
14138         (all_architectures): Likewise.
14139         (arm_option_check_internal): Use arm_feature_set and ARM_FSET
14140         macros.
14141         (arm_option_override_internal): Likewise.
14142         (arm_option_override): Likewise.
14143
14144 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
14145             Jiong Wang  <jiong.wang@arm.com>
14146
14147         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
14148         tls size for tiny, small, large memory model.
14149         (aarch64_load_symref_appropriately): Support new symbol types.
14150         (aarch64_expand_mov_immediate): Likewise.
14151         (aarch64_print_operand): Likewise.
14152         (aarch64_classify_tls_symbol): Likewise.
14153         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
14154         (aarch64_symbol_type): Likewise.
14155         * config/aarch64/aarch64.md (tlsle): Deleted.
14156         (tlsle12_<mode>): New define_insn.
14157         (tlsle24_<mode>): Likewise.
14158         (tlsle32_<mode>): Likewise.
14159         (tlsle48_<mode>): Likewise.
14160         * doc/sourcebuild.texi (AArch64-specific attributes): Document
14161         "aarch64_tlsle32".
14162
14163 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
14164
14165         * config/arm/arm-protos.h (FL_NONE): New.
14166         (FL_ANY): New.
14167         (arm_feature_set): New.
14168         (ARM_FSET_MAKE): New.
14169         (ARM_FSET_MAKE_CPU1): New.
14170         (ARM_FSET_MAKE_CPU2): New.
14171         (ARM_FSET_CPU1): New.
14172         (ARM_FSET_CPU2): New.
14173         (ARM_FSET_EMPTY): New.
14174         (ARM_FSET_ANY): New.
14175         (ARM_FSET_HAS_CPU1): New.
14176         (ARM_FSET_HAS_CPU2): New.
14177         (ARM_FSET_HAS_CPU): New.
14178         (ARM_FSET_ADD_CPU1): New.
14179         (ARM_FSET_ADD_CPU2): New.
14180         (ARM_FSET_DEL_CPU1): New.
14181         (ARM_FSET_DEL_CPU2): New.
14182         (ARM_FSET_UNION): New.
14183         (ARM_FSET_INTER): New.
14184         (ARM_FSET_XOR): New.
14185         (ARM_FSET_EXCLUDE): New.
14186         (AFM_FSET_IS_EMPTY): New.
14187         (ARM_FSET_CPU_SUBSET): New.
14188
14189 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
14190
14191         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
14192         SYMBOL_TLSLE to SYMBOL_TLSLE24.
14193         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
14194         Likewise.
14195         (aarch64_expand_mov_immediate): Likewise.
14196         (aarch64_print_operand): Likewise.
14197         (aarch64_classify_symbol): Likewise.
14198
14199 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
14200
14201         * config/aarch64/aarch64.opt (mtls-size): New entry.
14202         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
14203         (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
14204         * doc/invoke.texi (AArch64 Options): Document -mtls-size.
14205
14206 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
14207
14208         * config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
14209         ARM_CORE entry.  Fix some white-space.
14210         * config/arm/arm.c: Remove FL_FOR_ARCH derivation from
14211         ARM_CORE definition.
14212
14213 2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
14214
14215         * fold-const.c (fold_binary_loc) : Move Optimize
14216         root(x)*root(y) as root(x*y) to match.pd.
14217         Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
14218         Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
14219         Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
14220         Move Optimize x/expN(y) into x*expN(-y) to match.pd.
14221         * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
14222         (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
14223         (mult (exps:s @0) (exps:s @1)) : New simplifier.
14224         (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
14225         (rdiv @0 (exps:s @1)) : New simplifier.
14226
14227 2015-08-25  Joseph Myers  <joseph@codesourcery.com>
14228
14229         * gcc.c (driver::finalize): Only assign to extra_specs if
14230         [EXTRA_SPECS].
14231
14232 2015-08-25  Marek Polacek  <polacek@redhat.com>
14233
14234         PR middle-end/67330
14235         * varasm.c (declare_weak): Return after giving an error.
14236
14237 2015-08-25  David Malcolm  <dmalcolm@redhat.com>
14238
14239         * gcc-main.c (main): Add params to driver ctor.
14240         * gcc.c (class env_manager): New.
14241         (env): New global.
14242         (env_manager::init): New.
14243         (env_manager::get): New.
14244         (env_manager::xput): New.
14245         (env_manager::restore): New.
14246         Poison getenv and putenv.
14247         (DEFAULT_TARGET_SYSTEM_ROOT): New.
14248         (target_system_root): Update initialization to use
14249         DEFAULT_TARGET_SYSTEM_ROOT.
14250         (struct spec_list): Add field "default_ptr".
14251         (INIT_STATIC_SPEC): Initialize new field "default_ptr".
14252         (init_spec): Likewise.
14253         (set_spec): Clear field "default_ptr".
14254         (read_specs): Free "spec" and "buffer".
14255         (xputenv): Reimplement in terms of env_manager.
14256         (process_command): Replace ::getenv calls with calls to the
14257         env_manager singleton.
14258         (process_brace_body): Free string in three places.
14259         (driver::driver): New.
14260         (driver::~driver): New.
14261         (used_arg): Convert from a function to...
14262         (class used_arg_t): ...this class, and...
14263         (used_arg): ...this new global instance.
14264         (used_arg_t::finalize): New function.
14265         (getenv_spec_function): Add "const" to local "value".  Replace
14266         ::getenv call with call to the env_manager singleton.
14267         (path_prefix_reset): New function.
14268         (driver::finalize): New function.
14269         * gcc.h (driver::driver): New.
14270         (driver::~driver): New.
14271         (driver::finalize): New.
14272
14273 2015-08-25  Nathan Sidwell  <nathan@acm.org>
14274
14275         * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
14276         target doesn't have one.
14277
14278 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
14279
14280         PR target/67346
14281         * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
14282
14283 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
14284
14285         PR target/67344
14286         * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
14287         a define_insn, remove second alternative.
14288
14289 2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
14290             Joseph Myers  <joseph@codesourcery.com>
14291
14292         * gcc.c (struct switchstr): Expand comment.
14293
14294 2015-08-25  Nathan Sidwell  <nathan@acm.org>
14295
14296         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
14297         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
14298
14299 2015-08-25  Richard Biener  <rguenther@suse.de>
14300
14301         PR middle-end/67306
14302         * genmatch.c (expr::gen_transform): Verify the result of
14303         builtin_decl_implicit.
14304         (dt_simplify::gen_1): Likewise.
14305
14306 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14307
14308         * config/arm/constraints.md: Also list Cs and US ARM-specific
14309         constraints as used.
14310
14311 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
14312
14313         PR target/66609
14314         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
14315         UNSPEC_PCREL.
14316         (nonpic_symbol_mentioned_p): Likewise.
14317         (sh_delegitimize_address): Likewise.
14318         (sh_function_ok_for_sibcall): Take into account weak symbols.
14319         (sh_expand_sym_label2reg): New.
14320         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
14321         * config/sh/sh.md (UNSPEC_PCREL): New enum.
14322         (call_pcrel): Use sh_expand_sym_label2reg.
14323         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
14324         (symPCREL_label2reg) New expand.
14325
14326 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
14327
14328         * graphite-poly.c: Change type of region from void* to sese.
14329         * graphite-poly.h (struct scop): Changing the type of scop::region
14330         from void* to sese. Change accessor macro accordingly.
14331         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
14332
14333 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
14334
14335         * graphite-scop-detection.c (stmt_simple_for_scop_p):
14336         Constrain only on INTEGER_TYPE.
14337
14338 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
14339
14340         PR target/67211
14341         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
14342         -mefficient-unaligned-vsx on ISA 2.7.
14343
14344         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
14345         option to a masked option.
14346
14347         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
14348         logic for -mefficient-unaligned-vsx so that it is set via an arch
14349         ISA option, instead of being set if -mtune=power8 is set. Move
14350         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
14351         near other default option handling.
14352
14353 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
14354
14355         * genflags.c (gen_macro): Delete.
14356         (gen_proto): Don't create GEN.*CALL.* macros.
14357         * gensupport.h (get_file_location): Declare.
14358         * gensupport.c (rtx_locs): New variable.
14359         (read_md_rtx): Record rtx locations.
14360         (get_file_location): New function.
14361         * target-insns.def (call, call_pop, call_value, call_value_pop)
14362         (sibcall, sibcall_value): New patterns.
14363         * gentarget-def.c (parse_argument): New function.
14364         (def_target_insn): Use it.  Handle optional operands.  Raise an
14365         error if an .md pattern has the wrong number of operands for the
14366         pattern name.  Remove the names of unused operands from the prototype.
14367         * builtins.c (expand_builtin_apply): Use targetm functions
14368         instead of HAVE_call_value and GEN_CALL_VALUE.
14369         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
14370         and sibcall_value_pop.
14371         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
14372         of GEN_CALL.
14373         * config/alpha/alpha.md (untyped_call): Likewise.
14374         * config/iq2000/iq2000.md (untyped_call): Likewise.
14375         * config/m68k/m68k.md (untyped_call): Likewise.
14376         * config/mips/mips.md (untyped_call): Likewise.
14377         * config/pa/pa.md (untyped_call): Likewise.
14378         * config/rs6000/rs6000.md (untyped_call): Likewise.
14379         * config/sparc/sparc.md (untyped_call): Likewise.
14380         * config/tilegx/tilegx.md (untyped_call): Likewise.
14381         * config/tilepro/tilepro.md (untyped_call): Likewise.
14382         * config/visium/visium.md (untyped_call): Likewise.
14383         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
14384         gen_call_value instead of GEN_CALL_VALUE.
14385         * config/arm/arm.md (untyped_call): Likewise.
14386         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
14387         GEN_CALL.
14388
14389 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
14390
14391         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
14392         (have_cbranchcc4): New variable.
14393         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
14394         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
14395         (if_convert): Initialize have_cbranchcc4.
14396
14397 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
14398
14399         * builtins.c (expand_cmpstrn): Rename to...
14400         (expand_cmpstrn_or_cmpmem): ...this.
14401         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
14402         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
14403         Remove mode argument.
14404         (expand_builtin): Update accordingly.
14405
14406 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
14407
14408         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
14409         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
14410         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
14411         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
14412         Add predicates for operands 0 and 3.
14413         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
14414         operand.
14415         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
14416         immediate_operand to nonmemory_operand.
14417
14418 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
14419
14420         * df-scan.c (df_insn_info_init_fields): New function, split out
14421         from...
14422         (df_insn_create_insn_record): ...here.
14423         (df_insn_info_free_fields): New function, split out from...
14424         (df_insn_info_delete): ...here.
14425         (df_insn_rescan): Use the new functions instead of freeing and
14426         reallocating the df_insn_info.
14427
14428 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14429
14430         * doc/install.texi (Binaries): Remove links no longer valid.
14431
14432 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
14433
14434         * config/nvptx/mkoffload.c (process): Replace
14435         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
14436
14437 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
14438
14439         PR target/67329
14440         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
14441
14442 2015-08-24  Renlin Li  <renlin.li@arm.com>
14443
14444         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
14445         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
14446         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
14447         * config/arm/constraints.md ("j"): Add check for high code.
14448
14449 2015-08-24  Tom de Vries  <tom@codesourcery.com>
14450
14451         PR tree-optimization/65468
14452         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
14453         chunk_size is one.
14454
14455 2015-08-24  Nathan Sidwell  <nathan@acm.org>
14456
14457         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
14458         change to nvptx_type_from_mode call. Use arg_promotion for both
14459         split and non-split args.
14460
14461 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
14462
14463         * target-insns.def (movstr): New pattern.
14464         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
14465         (expand_movstr): Use targetm rather than HAVE_movstr/
14466         CODE_FOR_movstr.
14467
14468 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
14469
14470         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
14471         cast syntax.
14472
14473 2015-08-24  Andrew Pinski  <apinski@cavium.com>
14474
14475         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
14476         AARCH64_EXTRA_TUNING_OPTION.
14477         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
14478         New enum.
14479         (aarch64_extra_tuning_flags): Base the shifted value on the index
14480         instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
14481         * config/aarch64/aarch64.c: Remove the last argument to
14482         AARCH64_EXTRA_TUNING_OPTION.
14483
14484 2015-08-23  Nathan Sidwell  <nathan@acm.org>
14485
14486         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
14487         decls.
14488         (nvptx_declare_function_name): Insert formatting tabs for
14489         consistency.
14490
14491 2015-08-23  Tom de Vries  <tom@codesourcery.com>
14492
14493         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
14494         parm_decl, rather than generating a dummy default def in cfun.
14495         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
14496         ssa_name from cfun and child_fn do not share a stmt as def stmt.
14497         (move_stmt_op): Handle PARM_DECl.
14498         (gather_ssa_name_hash_map_from): New function.
14499         (move_sese_region_to_fn): Add default defs for function params, and add
14500         them to vars_map.  Release copied ssa names.
14501         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
14502
14503 2015-08-23  Tom de Vries  <tom@codesourcery.com>
14504
14505         * doc/sourcebuild.texi: Rename vect_no_int_max with
14506         vect_no_int_min_max.  Update description.
14507
14508 2015-08-22  Andrew Pinski  <apinski@cavium.com>
14509
14510          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
14511         * config/aarch64/aarch64-protos.h
14512         (aarch64_fusion_pairs_index): New enum.
14513         (aarch64_fusion_pairs): Base the shifted value on the index instead
14514         Rewrite AARCH64_FUSE_ALL to be based on the end index.
14515         of the argument to AARCH64_FUSION_PAIR.
14516         * config/aarch64/aarch64.c: Remove the last argument to
14517         AARCH64_FUSION_PAIR.
14518
14519 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
14520
14521         * dominance.c (new_zero_array): Define.
14522         (dom_info): Redefine as class with proper encapsulation.
14523         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
14524         Add new members.
14525         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
14526         allocations/deallocations.  Pass function as parameter (instead of
14527         using cfun).
14528         (dom_info::get_idom): Define accessor method.
14529         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
14530         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
14531         (calculate_dominance_info): Adjust to use dom_info class.
14532         (verify_dominators): Likewise.
14533
14534 2015-08-21  Alexandre Oliva  <aoliva@redhat.com>
14535
14536         * print-rtl.c (print_rtx): Check the correct range for
14537         flag_dump_unnumbered_links to behave as documented.
14538
14539         PR rtl-optimization/67227
14540         PR rtl-optimization/64164
14541         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
14542         (nonoverlapping_memrefs_p): Test offsets and sizes when given
14543         identical gimple_reg exprs.
14544
14545 2015-08-21  Nathan Sidwell  <nathan@acm.org>
14546
14547         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
14548         expansion.
14549         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
14550         crtl->stack_alignment_needed to determine alignment.
14551         (nvptx_get_drap_rtx): New.
14552         (TARGET_GET_DRAP_RTX): Override.
14553         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
14554
14555 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14556
14557         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
14558
14559 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14560
14561         * configure.ac: Remove uwin* cases.
14562         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
14563         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
14564         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
14565         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
14566         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
14567         i[34567]86-*-uwin*, powerpc-*-beos*.
14568
14569 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
14570
14571         * gencodes.c (gencodes): Print the comma for the preceding
14572         enum value rather than the current one.  Use aliased enum values
14573         rather than #defines for compiled-out patterns.
14574         (main): Update accordingly.  Replace LAST_INSN_CODE with
14575         NUM_INSN_CODES.
14576         * lra.c (insn_code_data): Update accordingly.
14577         (finish_insn_code_data_once, get_static_insn_data): Likewise.
14578         * recog.h (target_recog): Likewise.
14579         (preprocess_insn_constraints): Change parameter to unsigned int.
14580         * recog.c (preprocess_insn_constraints): Likewise.
14581         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
14582         * tree-vect-stmts.c (vectorizable_operation): Simplify.
14583
14584 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
14585
14586         PR rtl-optimization/61657
14587         * loop-iv.c (iv_number_of_iterations): Declare up and down as
14588         unsigned.  Remove superflous uint64_t cast.
14589
14590 2014-08-21  Felix Yang  <felix.yang@huawei.com>
14591             Jiji Jiang  <jiangjiji@huawei.com>
14592
14593         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
14594         argument and get builtin function code directly from CALL.
14595         (gimple_stringop_fixed_value): Modified accordingly.
14596         (gimple_stringops_transform, gimple_stringops_values_to_profile):
14597         Modified accordingly and only accept BUILT_IN_NORMAL string operations.
14598
14599 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14600
14601         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
14602
14603 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
14604
14605         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
14606         to match.pd.
14607         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
14608         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
14609         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
14610         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
14611         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
14612         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
14613         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
14614         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
14615         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
14616         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
14617
14618         * match.pd (SIN ) : New Operator.
14619         (TAN) : New Operator.
14620         (mult (SQRT@1 @0) @1) : New simplifier.
14621         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
14622         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
14623         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
14624         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
14625         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
14626         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
14627         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
14628         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
14629         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
14630         (rdiv @0 (POW:s @1 @2)) : New simplifier.
14631
14632 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
14633
14634         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
14635         loop if EXPR is simplified to const value.
14636
14637 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
14638
14639         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
14640         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
14641
14642 2015-08-21  Richard Biener  <rguenther@suse.de>
14643
14644         PR middle-end/67285
14645         * gimple-fold.c (replace_stmt_with_simplification): Assert
14646         seq is empty when replacing a call with itself but different
14647         arguments.
14648         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
14649         a call require that it is const.
14650
14651 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14652
14653         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
14654         * builtins.c (get_object_alignment_2): Adjust.
14655         * varasm.c (align_variable): Likewise.
14656         (get_variable_align): Likewise.
14657         (build_constant_desc): Likewise.
14658         (force_const_mem): Likewise.
14659         * doc/tm.texi.in: Likewise.
14660         * doc/tm.texi: Regenerate.
14661
14662 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14663
14664         * genconfig.c (main): Always define HAVE_cc0.
14665         * recog.c (rest_of_handle_peephole2): Adjust.
14666
14667 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14668
14669         * reorg.c (relax_delay_slots): Don't use #if to check value of
14670         HAVE_cc0.
14671
14672 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14673
14674         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
14675         * targhooks.c (default_have_conditional_execution): Adjust.
14676
14677 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
14678
14679         * rtl.h (rtvec_all_equal_p): Declare.
14680         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
14681         * rtl.c (rtvec_all_equal_p): New function.
14682         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
14683         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
14684         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
14685         * config/arm/arm.c (neon_vdup_constant): Likewise.
14686         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
14687         * config/tilegx/constraints.md (W, Y): Likewise.
14688         * config/tilepro/constraints.md (W, Y): Likewise.
14689         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
14690         (classify_immediate): Use unwrap_const_vec_duplicate.
14691         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
14692         (reg_or_v2s8bit_operand): Likewise.
14693         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
14694         (reg_or_v4s8bit_operand): Likewise.
14695
14696 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14697
14698         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
14699         (vec_shasigma_be): New #define.
14700         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
14701         (VPMSUMH): Likewise.
14702         (VPMSUMW): Likewise.
14703         (VPMSUMD): Likewise.
14704         (VPMSUM): New BU_P8V_OVERLOAD_2.
14705         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
14706         entries for VEC_MADD and VEC_VPMSUM.
14707
14708 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
14709
14710         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
14711         Multiply argument avr_n_flash by 64 to match unit of "KiB".
14712         (avr_pgm_check_var_decl): Same.
14713
14714 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
14715
14716         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
14717         initialization of HFmode scalar type (float16_t) to...
14718         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
14719         code.
14720
14721         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
14722
14723         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
14724         having an -mfp16-format.
14725
14726 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
14727
14728         * config/i386/predicates.md (vector_all_ones_operand): Use
14729         CONSTM1_RTX to simplify definition.
14730
14731 2015-08-20  Richard Biener  <rguenther@suse.de>
14732
14733         * toplev.c (compile_file): Remove loop calling late_global_decl
14734         on all symbols.
14735         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
14736         on decls we assembled.
14737
14738 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
14739
14740         * common/config/aarch64/aarch64-common.c
14741         (AARCH64_CPU_NAME_LENGTH): Delete.
14742         (aarch64_option_extension): New.
14743         (all_extensions): Likewise.
14744         (processor_name_to_arch): Likewise.
14745         (arch_to_arch_name): Likewise.
14746         (all_cores): New.
14747         (all_architectures): Likewise.
14748         (aarch64_get_extension_string_for_isa_flags): Likewise.
14749         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
14750         architecture names.
14751         * config/aarch64/aarch64-protos.h
14752         (aarch64_get_extension_string_for_isa_flags): New.
14753         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
14754         (aarch64_option_print): Get the string to print from
14755         aarch64_get_extension_string_for_isa_flags.
14756         (aarch64_declare_function_name): Likewise.
14757         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
14758         (MCPU_TO_MARCH_SPEC): This.
14759         (ASM_CPU_SPEC): Use it.
14760         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
14761         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
14762         (EXTRA_SPEC_FUNCTIONS): Use it.
14763
14764 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
14765
14766         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
14767         expansion when !ISA_HAS_LWL_LWR.
14768         (mips_block_move_straight): Update the size of elements copied to
14769         account for alignment when !ISA_HAS_LWL_LWR.
14770         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
14771
14772 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
14773
14774         * expr.c (expand_expr_real_2): Check gimple statement during
14775         LSHIFT_EXPR expand.
14776
14777 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
14778
14779         * common.opt (fstack-protector): Initialize to -1.
14780         (fstack-protector-all): Likewise.
14781         (fstack-protector-strong): Likewise.
14782         (fstack-protector-explicit): Likewise.
14783         * configure.ac: Add --enable-default-ssp.
14784         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
14785         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
14786         -1.
14787         * doc/install.texi: Document --enable-default-ssp.
14788         * config.in: Regenerated.
14789         * configure: Likewise.
14790
14791 2015-08-19  Alexandre Oliva  <aoliva@redhat.com>
14792
14793         PR rtl-optimization/64164
14794         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
14795         (parm_in_stack_slot_p): ... this.  Disregard mode, what
14796         matters is whether the parm will live in a pseudo or a stack
14797         slot.
14798         (expand_one_ssa_partition): Deal with params without a default
14799         def.  Disregard mode.
14800         * cfgexpand.h: Renamed function declaration.
14801         * tree-ssa-coalesce.c: Adjust.
14802         * function.c (split_complex_args): Allocate stack slot for
14803         unassigned parms before splitting.
14804         (parm_in_unassigned_mem_p): New.  Use it instead of
14805         parm_maybe_byref_p throughout this file.
14806         (assign_parm_setup_block): Use it.  Accept pseudos in the
14807         expand-assigned rtl.
14808         (assign_parm_setup_reg): Drop BLKmode requirement.
14809         (assign_parm_setup_stack): Allocate and fill in the address of
14810         unassigned MEM parms.
14811
14812 2015-08-19  David Sherwood  <david.sherwood@arm.com>
14813
14814         * genmodes.c (emit_mode_unit_size_inline): New function.
14815         (emit_mode_unit_precision_inline): New function.
14816         (emit_insn_modes_h): Emit new #define.  Emit new functions.
14817         (emit_mode_unit_size): New function.
14818         (emit_mode_unit_precision): New function.
14819         (emit_mode_adjustments): Add mode_unit_size adjustments.
14820         (emit_insn_modes_c): Emit new arrays.
14821         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
14822         use new inline methods.
14823
14824 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14825
14826         * config/aarch64/aarch64.c (bit_count): Delete prototype
14827         and definition.
14828         (aarch64_print_operand): Use popcount_hwi instead of the above.
14829
14830 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14831
14832         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
14833         comment.
14834
14835 2015-08-19  Marek Polacek  <polacek@redhat.com>
14836
14837         PR middle-end/67133
14838         * gimple-ssa-isolate-paths.c
14839         (insert_trap_and_remove_trailing_statements): Rename to ...
14840         (insert_trap): ... this.  Don't remove trailing statements; split
14841         block instead.
14842         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
14843
14844 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
14845
14846         PR other/67042
14847         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
14848         conditionalize the whole on __GNUC__.  Add fallback code
14849         depending neither on undefined nor implementation-defined behaviour.
14850
14851 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
14852
14853         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
14854         whitespaces with tab.
14855
14856 2015-08-19  Florian Weimer  <fweimer@redhat.com>
14857
14858         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
14859         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
14860         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
14861         Move Name_Ids instantiation to the Prj.Proc package, to avoid
14862         trampolines.
14863
14864 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14865
14866         * config/arm/arm.c (bounds_check): Use %wd print format
14867         for HOST_WIDE_INT arguments.
14868
14869 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
14870
14871         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
14872         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
14873         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
14874         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
14875         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
14876         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
14877         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
14878         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
14879         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
14880         typedefs.
14881
14882 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
14883
14884         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
14885         function.c, graphite-scop-detection.c, haifa-sched.c,
14886         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
14887         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
14888         varasm.c: Remove typedefs of structs.
14889
14890 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
14891
14892         * config/rs6000/altivec.h (vec_adde): New define.
14893         (vec_addec): Likewise.
14894         (vec_double): Likewise.
14895         (vec_bperm): Likewise.
14896         (vec_gb): Likewise.
14897         * config/rs6000/rs6000-builtin.def (ADDE): New
14898         BU_ALTIVEC_OVERLOAD_3.
14899         (ADDEC): Likewise.
14900         (DOUBLE): New BU_VSX_OVERLOAD_1.
14901         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
14902         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
14903         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
14904         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
14905         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
14906         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
14907         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
14908         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
14909         and P8V_BUILTIN_VEC_VBPERMQ.
14910
14911 2015-08-18  Jason Merrill  <jason@redhat.com>
14912
14913         * print-tree.c (print_node): Handle TREE_BINFO.
14914
14915 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
14916
14917         PR middle-end/36757
14918         * builtins.c (expand_builtin_signbit): Add asserts to make sure
14919         we can expand BUILT_IN_SIGNBIT inline.
14920         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
14921         * doc/extend.texi: Document the type-generic __builtin_signbit.
14922
14923 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
14924
14925         PR rtl-optimization/67218
14926         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
14927         (simplify_unary_operation_1): Use it.
14928
14929 2015-08-18  Marek Polacek  <polacek@redhat.com>
14930
14931         PR middle-end/67222
14932         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
14933         if the call isn't valid.
14934         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
14935         gimple_call_builtin_p.
14936         (call_may_clobber_ref_p_1): Likewise.
14937         (stmt_kills_ref_p): Likewise.
14938
14939 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
14940
14941         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
14942         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
14943         (mips_hard_regno_scratch_ok): Likewise.
14944         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
14945         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
14946
14947 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
14948
14949         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
14950         (determine_value_range): Call refine_value_range_using_guard for
14951         each loop initial condition to improve value range.
14952
14953 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
14954
14955         * config/i386/i386.c: Remove include of fibheap.h.
14956
14957 2015-08-17  Richard Biener  <rguenther@suse.de>
14958
14959         PR tree-optimization/67221
14960         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
14961         (sccvn_dom_walker::before_dom_children): Mark backedges of
14962         non-executable blocks as not executable.
14963
14964 2015-08-17  David Sherwood  <david.sherwood@arm.com>
14965
14966         * config/arm/arm.c (neon_element_bits): Replace call to
14967         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
14968         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
14969         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
14970         (neon_vdup_lane<mode>): Likewise.
14971         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
14972         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
14973         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
14974         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
14975         * config/spu/spu.c (arith_immediate_p): Likewise.
14976         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
14977         * expr.c (expand_expr_real_2): Likewise.
14978         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
14979         * simplify-rtx.c (simplify_immed_subreg): Likewise.
14980         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
14981         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
14982         New variable.
14983         * fold-const.c (fold_binary_loc): Replace call to
14984         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
14985         GET_MODE_UNIT_PRECISION (m).
14986
14987 2015-08-17  Mike Stump  <mikestump@comcast.net>
14988
14989         * config/arm/arm.c (arm_block_move_unaligned_straight):
14990         Emit normal move instead of unaligned load when source or destination
14991         are appropriately aligned.
14992
14993 2015-08-17  Richard Biener  <rguenther@suse.de>
14994             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
14995
14996         PR middle-end/16107
14997         * match.pd (div (coss (op @0) : New simplifier.
14998
14999 2015-08-14  Alexandre Oliva  <aoliva@redhat.com>
15000
15001         PR rtl-optimization/64164
15002         PR bootstrap/66978
15003         PR middle-end/66983
15004         PR rtl-optimization/67000
15005         PR middle-end/67034
15006         PR middle-end/67035
15007         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
15008         * tree-ssa-copyrename.c: Removed.
15009         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
15010         -ftree-coalesce-vars.
15011         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
15012         * common.opt (ftree-copyrename): Ignore.
15013         (ftree-coalesce-inlined-vars): Likewise.
15014         * doc/invoke.texi: Remove the ignored options above.
15015         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
15016         * tree-ssa-coalesce.h: ... here.
15017         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
15018         headers required by it.
15019         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
15020         across variables when flag_tree_coalesce_vars.  Check register
15021         use and promoted modes to allow coalescing.  Do not coalesce
15022         maybe-byref parms with SSA_NAMEs of other variables, or
15023         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
15024         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
15025         with its member functions to tree-ssa-coalesce.c.
15026         (var_map_base_init): Likewise.  Renamed to
15027         compute_samebase_partition_bases.
15028         (partition_view_normal): Drop want_bases parameter.
15029         (partition_view_bitmap): Likewise.
15030         * tree-ssa-live.h: Adjust declarations.
15031         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
15032         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
15033         default defs at the entry point.
15034         (dump_part_var_map): New.
15035         (compute_optimized_partition_bases): New, called by...
15036         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
15037         of compute_samebase_partition_bases.  Adjust.
15038         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
15039         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
15040         (ssa_default_def_partition): New.
15041         (get_rtl_for_parm_ssa_default_def): New.
15042         (align_local_variable, add_stack_var): Support anonymous SSA
15043         names.
15044         (defer_stack_allocation): Likewise.  Declare earlier.
15045         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
15046         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
15047         Do no record deferred-allocation marker in
15048         SA.partition_to_pseudo.
15049         (expand_stack_vars): Adjust check for the marker in it.
15050         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
15051         redundant MEM attr setting.
15052         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
15053         from...
15054         (expand_one_stack_var): ... this.  New wrapper to check and
15055         skip already expanded SSA partitions.
15056         (record_alignment_for_reg_var): New, factored out of...
15057         (expand_one_var): ... this.
15058         (expand_one_ssa_partition): New.
15059         (adjust_one_expanded_partition_var): New.
15060         (expand_one_register_var): Check and skip already expanded SSA
15061         partitions.
15062         (expand_used_vars): Don't create DECLs for anonymous SSA
15063         names.  Expand all SSA partitions, then adjust all SSA names.
15064         (pass::execute): Replace the loops that set
15065         SA.partition_to_pseudo from partition leaders and cleared
15066         DECL_RTL for multi-location variables, and that which used to
15067         rename vars and set attrs, with one that clears DECL_RTL and
15068         checks that PARMs and RESULTs default_defs match DECL_RTL.
15069         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
15070         * emit-rtl.c: Include stor-layout.h.
15071         (set_reg_attrs_for_parm): Handle NULL decl.
15072         (set_reg_attrs_for_decl_rtl): Take mode from expression if
15073         it's not a DECL.
15074         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
15075         rather than its possibly-NULL DECL.
15076         * explow.c (promote_ssa_mode): New.
15077         * explow.h (promote_ssa_mode): Declare.
15078         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
15079         (read_complex_part): Export.
15080         * expr.h (read_complex_part): Declare.
15081         * cfgexpand.h (parm_maybe_byref_p): Declare.
15082         * function.c: Include cfgexpand.h.
15083         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
15084         (use_register_for_parm_decl): Wrapper for the above to
15085         special-case the result_ptr.
15086         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
15087         (split_complex_args): Take assign_parm_data_all argument.
15088         Pass it to rtl_for_parm.  Set up rtl and context for split
15089         args.  Reset complex parm before fetching its default decl
15090         rtl.
15091         (assign_parms_unsplit_complex): Use the default-def complex
15092         parm rtl if it matches the components.
15093         (assign_parms_augmented_arg_list): Adjust.
15094         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
15095         multiple locations.  Recognize split complex args.
15096         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
15097         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
15098         (assign_parm_setup_block): Prefer SSA-assigned location, and
15099         fill in its address if the memory location of a maybe-byref
15100         parm was not assigned by cfgexpand.
15101         (assign_parm_setup_reg): Likewise.  Adjust its mode as
15102         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
15103         sure passed_pointer parms don't need conversion.  Copy address
15104         or value as needed.
15105         (assign_parm_setup_stack): Prefer SSA-assigned location.
15106         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
15107         rtl before testing for pointer bounds.  Special-case result_ptr.
15108         (expand_function_start): Maybe reset DECL_RTL of result.
15109         Prefer SSA-assigned location for result and static chain.
15110         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
15111         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
15112         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
15113         anonymous SSA names.  Use promote_ssa_mode.
15114         (get_temp_reg): Likewise.
15115         (remove_ssa_form): Adjust.
15116         * stor-layout.c (layout_decl): Don't set mem attributes of
15117         non-MEMs.
15118         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
15119         and get its reg_usage for reg invalidation.
15120         (compute_bb_dataflow): Pass it insn.
15121         (emit_notes_in_bb): Likewise.
15122
15123 2015-08-14  Marek Polacek  <polacek@redhat.com>
15124
15125         * tree-core.h (tree_base): Fix typo.
15126
15127 2015-08-14  Marek Polacek  <polacek@redhat.com>
15128
15129         PR middle-end/67133
15130         * gimple.c (infer_nonnull_range_by_attribute): Check that the
15131         nonnull argument position is not outside function arguments.
15132
15133 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
15134
15135         PR target/67143
15136         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
15137         'lconst_atomic' with 'const_atomic'.
15138         (atomic_fetch_<optab><mode>): Likewise.
15139         (atomic_<optab>_fetch<mode>): Likewise.
15140         * config/aarch64/iterators.md (lconst-atomic): Move below
15141         'const_atomic'.
15142         (const_atomic): New.
15143
15144 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
15145             Bernd Schmidt  <bernds@codesourcery.com>
15146
15147         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
15148         debug options.
15149         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
15150         (DWARF2_DEBUGGING_INFO): Don't define.
15151         * debug.h (dwarf2_lineno_debug_hooks): Declare.
15152         * toplev.c (process_options): Add a case for it.
15153         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
15154         (dwarf2out_init): Skip most initializations if
15155         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
15156         case.
15157         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
15158         DWARF2_LINENO_DEBUGGING_INFO.
15159         * opts.c (set_debug_level): Likewise.
15160
15161 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
15162
15163         * config/arm/types.md (is_neon_type): Add missing types.
15164
15165 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
15166
15167         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
15168         for skylake.
15169         * config/i386/i386.c (PTA_SKYLAKE): New macros.
15170         (processor_alias_table): Add skylake description.
15171         (enum processor_model): Add skylake processor.
15172         (arch_names_table): Add skylake record.
15173         * doc/invoke.texi: Add skylake item.
15174
15175 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
15176
15177         * ira-int.h: Include recog.h.
15178         * ira-build.c: Don't include recog.h.
15179         * ira-color.c: Likewise.
15180         * ira-conflicts.c: Likewise.
15181         * ira-costs.c: Likewise.
15182         * ira-emit.c: Likewise.
15183         * ira-lives.c: Likewise.
15184         * ira.c: Likewise.
15185         * sched-deps.c: Likewise.
15186         * sel-sched.c: Likewise.
15187         * target-globals.c: Likewise.
15188
15189 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
15190
15191         PR bootstrap/55035
15192         * reload1.c (elimination_costs_in_insn): Make it obvious to the
15193         compiler that the n_dups and n_operands loop bounds are invariant.
15194
15195 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15196
15197         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
15198         expressions in A and B.
15199
15200 2015-08-13  Richard Biener  <rguenther@suse.de>
15201
15202         * tree.c (nonnull_arg_p): Move from ...
15203         * tree-vrp.c (nonnull_arg_p): ... here.
15204         * tree.h (nonnull_arg_p): Declare.
15205         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
15206         here, register ptr != 0 for nonnull_arg_p pointer arguments.
15207         Properly initialize static chain and by-reference result pointer.
15208         (run_scc_vn): Adjust.
15209
15210 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
15211
15212         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
15213         TUNE_I6400.
15214
15215 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
15216
15217         * config/aarch64/aarch64-protos.h
15218         (aarch64_gen_atomic_cas): Declare.
15219         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
15220         Choose appropriate instruction pattern for the target.
15221         (aarch64_gen_atomic_cas): New.
15222         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
15223         (atomic_compare_and_swap<mode>_1): Rename to
15224         aarch64_compare_and_swap<mode>.  Fix some indentation.
15225         (aarch64_compare_and_swap<mode>_lse): New.
15226         (aarch64_atomic_cas<mode>): New.
15227
15228 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
15229
15230         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
15231         (TARGET_LSE): New.
15232
15233 2015-08-13  Richard Biener  <rguenther@suse.de>
15234
15235         PR tree-optimization/67191
15236         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
15237         assert we value-numbered last stmts operand because it can validly
15238         trigger for unreachable code.
15239
15240 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15241
15242         PR rtl-optimization/67103
15243         * ifcvt.c (noce_try_store_flag_constants): Move
15244         x = (-(test != 0) & (b - a)) + a transformation to...
15245         (noce_try_cmove): ... Here.  Try it if normal conditional
15246         move fails.
15247
15248 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
15249
15250         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
15251         pseudo-processors.
15252         * config/mips/mips.md (processor): Remove w32 and w64.
15253
15254 2015-08-13  Richard Biener  <rguenther@suse.de>
15255
15256         PR tree-optimization/66502
15257         PR tree-optimization/67167
15258         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
15259         backedge arguments.
15260         (vn_phi_lookup): Adjust.
15261         (vn_phi_insert): Likewise.
15262         (visit_phi): Prefer to value-number to another PHI node
15263         over value-numbering to a PHI argument.
15264         (init_scc_vn): Mark DFS back edges.
15265
15266 2015-08-13  Richard Biener  <rguenther@suse.de>
15267
15268         * gimple.h (gcall::code_): New constant static member.
15269         (gcond::code_): Likewise.
15270         * gimple.c (gcall::code_): Define.
15271         (gcond::code_): Likewise.
15272         (is_a_helper <const gcond *>): Add.
15273         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
15274         and forward to a new gcall overload with less checking and a
15275         cheaper way to access the operand.
15276         (gimple_call_lhs_ptr): Likewise.
15277         (gimple_call_set_lhs): Likewise.
15278         (gimple_call_internal_p): Likewise.
15279         (gimple_call_with_bounds_p): Likewise.
15280         (gimple_call_set_with_bounds): Likewise.
15281         (gimple_call_internal_fn): Likewise.
15282         (gimple_call_set_ctrl_altering): Likewise.
15283         (gimple_call_ctrl_altering_p): Likewise.
15284         (gimple_call_fntype): Likewise.
15285         (gimple_call_fn): Likewise.
15286         (gimple_call_fn_ptr): Likewise.
15287         (gimple_call_set_fndecl): Likewise.
15288         (gimple_call_fndecl): Likewise.
15289         (gimple_call_chain): Likewise.
15290         (gimple_call_num_args): Likewise.
15291         (gimple_call_arg): Likewise.
15292         (gimple_call_arg_ptr): Likewise.
15293         (gimple_call_set_arg): Likewise.
15294         (gimple_call_noreturn_p): Likewise.
15295         (gimple_cond_code): Likewise.
15296         (gimple_cond_lhs): Likewise.
15297         (gimple_cond_rhs): Likewise.
15298         (gimple_has_lhs): Reduce checking.
15299
15300 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
15301
15302         PR middle-end/25529
15303         * match.pd (div (mult @0 @1) @1) : New simplifier.
15304
15305 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
15306
15307         PR target/67071
15308         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
15309         predicate to allow construction of vector constants using the
15310         VSLDOI vector shift instruction.
15311
15312         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
15313         declaration.
15314
15315         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
15316         the number of bytes to be shifted left and filled in with either
15317         all zero or all one bits.
15318         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
15319         methods exist.
15320         (output_vec_const_move): On power8, generate XXLORC to generate
15321         a vector constant with all 1's. Do a split if we need to use a
15322         VSLDOI instruction.
15323
15324         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
15325         properly test for the MSB.
15326
15327         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
15328         vector constants that can be created with VSLDOI.
15329
15330 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
15331
15332         revert:
15333         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
15334         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
15335         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
15336         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
15337         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
15338         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
15339         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
15340         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
15341         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
15342
15343 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
15344
15345         * config/xtensa/constraints.md (define_constraint "Y"): New
15346         constraint.
15347         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
15348         * config/xtensa/linux.h (ASM_SPEC): Likewise.
15349         * config/xtensa/predicates.md (move_operand): Match constants
15350         and symbols in the presence of TARGET_AUTO_LITPOOLS.
15351         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
15352         immediate references to TLS data.
15353         (xtensa_emit_move_sequence): Don't force constants to memory in
15354         the presence of TARGET_AUTO_LITPOOLS.
15355         (print_operand): Add 'y' format, same as default, but capable of
15356         printing SF mode constants as well.
15357         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
15358         (movsf_internal): Add movi pattern that loads literal.
15359         (movsf, movdf): Don't force constants to memory in the presence
15360         of TARGET_AUTO_LITPOOLS.
15361         (movdf_internal): Add 'Y' constraint.
15362         * config/xtensa/xtensa.opt (mauto-litpools): New option.
15363         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
15364
15365 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
15366
15367         * config/arm/arm-fpus.def: Replace booleans with feature flags.
15368         Update comment.
15369         * config/arm/arm.c (ARM_FPU): Update macro.
15370         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
15371         (TARGET_FP16): Likewise.
15372         (TARGET_CRYPTO): Likewise.
15373         (TARGET_NEON): Likewise.
15374         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
15375         field features.
15376
15377 2015-08-12  Tom de Vries  <tom@codesourcery.com>
15378
15379         PR other/67092
15380         PR other/67098
15381         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
15382         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
15383         accordingly.  Mention default for --with-stage1-ldflags.
15384
15385 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
15386
15387         * config/arm/arm.h (arm_fpu_feature_set): New.
15388         (ARM_FPU_FSET_HAS): New.
15389         (FPU_FL_NONE): New.
15390         (FPU_FL_NEON): New.
15391         (FPU_FL_FP16): New.
15392         (FPU_FL_CRYPTO): New.
15393
15394 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15395
15396         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
15397         after -mcmodel=large -fPIC sorry.
15398
15399 2015-08-12  Richard Biener  <rguenther@suse.de>
15400
15401         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
15402         comparison operand order and commutative ternary op operand order.
15403         (sccvn_dom_walker::cond_stack): New state to track temporary
15404         expressions.
15405         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
15406         no longer valid.
15407         (sccvn_dom_walker::record_cond): Add a single temporary conditional
15408         expression.
15409         (sccvn_dom_walker::record_conds): Add a temporary conditional
15410         expressions and all related expressions also true/false.
15411         (sccvn_dom_walker::before_dom_children): Record temporary
15412         expressions based on the controlling condition of a single
15413         predecessor.  When trying to simplify a conditional statement
15414         lookup expressions we might have inserted earlier.
15415
15416 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
15417
15418         PR target/67127
15419         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
15420         to ARM core registers.
15421
15422 2015-08-12  Nathan Sidwell  <nathan@acm.org>
15423
15424         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
15425         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
15426
15427 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
15428
15429         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
15430         line with comments.
15431         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
15432
15433 2015-08-12  Richard Biener  <rguenther@suse.de>
15434
15435         * gimple.h (remove_pointer): New trait.
15436         (GIMPLE_CHECK2): New inline template function.
15437         (gassign::code_): New constant static member.
15438         (is_a_helper<const gassign *>): Add.
15439         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
15440         and forward to a new gassign overload with less checking and a
15441         cheaper way to access the operand.
15442         (gimple_assign_lhs_ptr): Likewise.
15443         (gimple_assign_set_lhs): Likewise.
15444         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
15445         Likewise.
15446         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
15447         Likewise.
15448         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
15449         Likewise.
15450         (gimple_assign_rhs_code): Likewise.
15451         * gimple.c (gassign::code_): Define.
15452
15453 2015-08-12  Richard Biener  <rguenther@suse.de>
15454
15455         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
15456         Eliminate edges marked as not executable by SCCVN.
15457         * tree-ssa-sccvn.c: Include gimple-iterator.h.
15458         (cond_dom_walker): Rename to sccvn_dom_walker.
15459         (sccvn_dom_walker::before_dom_children): Value-number defs
15460         of all stmts.
15461         (run_scc_vn): Remove loop value-numbering all SSA names.
15462         Drop not visited SSA names to varying.
15463
15464 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
15465
15466         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
15467         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
15468         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
15469         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
15470         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
15471         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
15472         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
15473         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
15474         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
15475
15476 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
15477
15478         PR target/66954
15479         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
15480         to enum feature_priority and feature_list.
15481         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
15482         and isa_names_table.
15483
15484 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
15485
15486         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
15487         vect_induction_def.
15488
15489 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15490
15491         PR c/66098
15492         PR c/66711
15493         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
15494         account when deciding what was the command-line status.
15495
15496 2015-08-11  Nathan Sidwell  <nathan@acm.org>
15497
15498         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
15499
15500         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
15501         we're not the only contributor to target phi.
15502
15503 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
15504
15505         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
15506         FIXED_REG0.
15507
15508 2015-08-11  Tom de Vries  <tom@codesourcery.com>
15509
15510         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
15511
15512 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
15513
15514         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
15515         with CPU_SLM.
15516         * config/i386/i386.md (cpu): Remove knl.
15517
15518 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
15519
15520         PR libgomp/65742
15521         PR middle-end/66332
15522         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
15523         open-coded sequence.
15524         * omp-low.c (oacc_process_reduction_data): Remove handline of
15525         GOMP_DEVICE_HOST_NONSHM.
15526
15527         * lto-streamer-in.c (lto_input_mode_table): Adjust to
15528         GET_MODE_INNER changes.
15529
15530 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
15531             Ilya Verbin  <ilya.verbin@intel.com>
15532
15533         * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
15534
15535 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15536
15537         * doc/options.texi (EnabledBy): Document that the argument must be
15538         a Common option.
15539         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
15540         Not enabled by -Wall.
15541         * optc-gen.awk: Give nicer error messages. Detect if the argument
15542         of EnabledBy is not a Common option.
15543         * common.opt (Wnull-dereference): Not enabled by -Wall.
15544         * opt-functions.awk (lang_enabled_by): Nicer error messages.
15545
15546 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
15547
15548         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
15549         model == 0x4f as Broadwell.
15550
15551 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
15552
15553         PR rtl-optimization/67028
15554         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
15555         Add test to see if a const_int fits in the new mode.
15556
15557 2015-08-07  DJ Delorie  <dj@redhat.com>
15558
15559         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
15560
15561 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
15562
15563         PR rtl-optimization/67029
15564         * ira-color.c: Include "recog.h" before including "ira-int.h".
15565         * target-globals.c: Likewise.
15566         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
15567         adds an alternative_mask argument and use it instead of
15568         preferred_alternatives.
15569         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
15570         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
15571         * sched-deps.c: Include "ira-int.h" after including "ira.h".
15572         (sched_analyze_insn): Update call to
15573         ira_implicitly_set_insn_hard_regs.
15574         * sel-sched.c: Include "ira-int.h" after including "ira.h".
15575         (implicit_clobber_conflict_p): Update call to
15576         ira_implicitly_set_insn_hard_regs.
15577
15578 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
15579
15580         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
15581
15582 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
15583
15584         PR target/67002
15585         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
15586         currently_expanding_to_rtl is set.
15587
15588 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
15589
15590         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
15591         * configure: Regenerate.
15592
15593 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15594             Jiong Wang  <jiong.wang@arm.com>
15595
15596         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
15597         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
15598         (REG_CLASS_NAMES): Likewise.
15599         (REG_CLASS_CONTENTS): Likewise.
15600         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
15601         (aarch64_register_move_cost): Likewise.
15602         (aarch64_load_symref_appropriately): Invoke the new added pattern if
15603         possible.
15604         * config/aarch64/constraints.md (Uc0): New constraint.
15605
15606 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
15607
15608         * config/aarch64/constraints.md (Usf): Add the test of
15609         aarch64_is_noplt_call_p.
15610
15611 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
15612
15613         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
15614         declaration.
15615         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
15616         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
15617         (call_symbol): Likewise.
15618
15619 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
15620
15621         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
15622         for vectorizing multiplication patterns.
15623         * tree-vectorizer.h: Adjust the number of patterns.
15624
15625 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
15626
15627         * config/i386/sse.md (*vec_concatv2df): Declare added
15628         alternatives as sselog type.
15629
15630 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15631
15632         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
15633         all GPRs.
15634
15635 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15636
15637         * config/s390/s390.c (s390_expand_tbegin): Expand either
15638         tbegin_1_z13 or tbegin_1 depending on VX flag.
15639         * config/s390/s390.md ("tbegin_1_z13"): New expander.
15640
15641 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15642
15643         * config/s390/s390.opt: Clarify description for -mzvector
15644         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
15645         -mzvector.
15646
15647 2015-08-06  Richard Biener  <rguenther@suse.de>
15648
15649         * gimple.h (gimple_call_set_fn): Access op member directly.
15650         (gimple_call_chain_ptr): Likewise.
15651         (gimple_call_set_chain): Likewise.
15652         (gimple_cond_lhs_ptr): Likewise.
15653         (gimple_cond_set_lhs): Likewise.
15654         (gimple_cond_rhs_ptr): Likewise.
15655         (gimple_cond_set_rhs): Likewise.
15656         (gimple_cond_true_label): Likewise.
15657         (gimple_cond_set_true_label): Likewise.
15658         (gimple_cond_set_false_label): Likewise.
15659         (gimple_cond_false_label): Likewise.
15660         (gimple_label_label): Likewise.
15661         (gimple_label_set_label): Likewise.
15662         (gimple_goto_set_dest): Likewise.
15663         (gimple_asm_input_op): Likewise.
15664         (gimple_asm_input_op_ptr): Likewise.
15665         (gimple_asm_set_input_op): Likewise.
15666         (gimple_asm_output_op): Likewise.
15667         (gimple_asm_output_op_ptr): Likewise.
15668         (gimple_asm_set_output_op): Likewise.
15669         (gimple_asm_clobber_op): Likewise.
15670         (gimple_asm_set_clobber_op): Likewise.
15671         (gimple_asm_label_op): Likewise.
15672         (gimple_asm_set_label_op): Likewise.
15673         (gimple_switch_index): Likewise.
15674         (gimple_switch_index_ptr): Likewise.
15675         (gimple_return_retval_ptr): Likewise.
15676         (gimple_return_retval): Likewise.
15677         (gimple_return_set_retval): Likewise.
15678         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
15679         (gimple_switch_label): Likewise.
15680         (gimple_switch_set_label): Likewise.
15681
15682 2015-08-06  Richard Biener  <rguenther@suse.de>
15683
15684         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
15685         bool comparison canonicalization and restrict to integers.
15686
15687 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
15688
15689         * coretypes.h (enum symbol_visibility): Relocate here.
15690         * flag-types.h (enum symbol_visibility): Remove.
15691         * tree-core.h (enum symbol_visibility): Remove.
15692
15693 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
15694
15695         PR target/66870
15696         * config/rs6000/rs6000.c (rs6000_emit_prologue): Check
15697         for no_split_stack function attribute along with
15698         flag_split_stack.
15699         (rs6000_expand_split_stack_prologue): Likewise.
15700
15701 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15702             Jeff Law  <law@redhat.com>
15703
15704         PR c/16351
15705         * doc/invoke.texi (Wnull-dereference): New.
15706         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
15707         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
15708         Warn for potential NULL dereferences.
15709         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
15710         * ubsan.c (instrument_nonnull_arg): Call
15711         infer_nonnull_range_by_attribute.
15712         (instrument_nonnull_return): Likewise.
15713         * common.opt (Wnull-dereference); New.
15714         * gimple.c (infer_nonnull_range): Remove bool arguments.
15715         (infer_nonnull_range_by_dereference): New.
15716         (infer_nonnull_range_by_attribute): New.
15717         * gimple.h: Update declarations.
15718
15719 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
15720
15721         * gensupport.c (sequence_num): Replace with...
15722         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
15723         ...these new variables.
15724         (init_rtx_reader_args_cb): Update accordingly.
15725         (get_num_code_insns): Likewise.
15726         (read_md_rtx): Rework to use a while loop and get_c_test.
15727         Use the new counters.  Remove redundant DEFINE_SUBST case.
15728         * genoutput.c (gen_split): Delete.
15729         (main): Don't call it.
15730
15731 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
15732
15733         * gensupport.h (get_c_test): Declare.
15734         * gensupport.c (get_c_test): New function.
15735         * genconditions.c (main): Use it.
15736         * genrecog.c (validate_pattern): Likewise.
15737         (match_pattern_1): Likewise.  Remove c_test argument.
15738         (match_pattern): Update accordingly and remove c_test argument.
15739         (main): Update accordingly.
15740
15741 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
15742
15743         * gensupport.h (get_num_insn_codes): Declare.
15744         * gensupport.c (get_num_insn_codes): New function.
15745         * genattrtab.c (optimize_attrs): Rename max_insn_code to
15746         num_insn_codes.
15747         (main): Likewise.  Use get_num_insn_codes.
15748         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
15749
15750 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
15751
15752         PR middle-end/66311
15753         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
15754         is zero- rather than sign-extended.
15755
15756 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
15757
15758         * target-insns.def (can_extend): Delete.
15759
15760 2015-08-05  Richard Biener  <rguenther@suse.de>
15761
15762         PR tree-optimization/67121
15763         * tree-if-conv.c (combine_blocks): Clear range-info produced
15764         by stmts no longer executed conditionally.
15765
15766 2015-08-05  Nick Clifton  <nickc@redhat.com>
15767
15768         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
15769         to allow identical far pointers to remain.
15770
15771 2015-08-05  Richard Biener  <rguenther@suse.de>
15772
15773         PR middle-end/67120
15774         * match.pd: Compare address bases with == if they are decls
15775         or SSA names, not operand_equal_p.  Otherwise fail.
15776
15777 2015-08-05  Richard Biener  <rguenther@suse.de>
15778
15779         PR tree-optimization/67055
15780         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
15781         NULL gimple_block.
15782
15783         * g++.dg/torture/pr67055.C: New testcase.
15784
15785 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
15786
15787         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
15788         noavx512vl.
15789         (define_attr "enabled"): Handle avx521vl and noavx512vl.
15790         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
15791         AVX-512 alternative out of SSE.
15792         (define_insn "*vec_concatv2df"): Ditto.
15793
15794 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
15795
15796         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
15797         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
15798         CODE_FOR_avx_ptestv4di.
15799         * config/i386/sse.md (define_mode_iterator V_AVX): New.
15800         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
15801         (define_insn "avx_ptest256"): Merge this ...
15802         (define_insn "sse4_1_ptest"): And this ...
15803         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
15804
15805 2015-08-05  Richard Biener  <rguenther@suse.de>
15806
15807         PR tree-optimization/67109
15808         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
15809         against too big groups.  Print whether this is a load or store
15810         group.  Rename from ...
15811         (vect_analyze_group_access): ... this which is now a wrapper
15812         dissolving an invalid group.
15813         (vect_analyze_data_ref_accesses): Print whether this is a load
15814         or store group.
15815
15816 2015-08-05  Richard Biener  <rguenther@suse.de>
15817
15818         PR middle-end/67107
15819         * match.pd: Guard const_binop result checking against NULL_TREE
15820         result.
15821
15822 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
15823
15824         * cse.c (cse_insn): Restoring old behaviour for src_eqv
15825          when dest and value in the REG_EQUAL are same and dest
15826          is STRICT_LOW_PART.
15827
15828 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
15829
15830         * config/moxie/moxie.h (PRINT_OPERAND,
15831           PRINT_OPERAND_ADDRESS): Remove macros.
15832         * config/moxie/moxie-protos.h (moxie_print_operand,
15833           moxie_print_operand_address): Remove declaration.
15834         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
15835           TARGET_PRINT_OPERAND_ADDRESS): Define.
15836           (moxie_print_operand, moxie_print_operand_address): Make static.
15837
15838 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
15839
15840         PR target/66731
15841         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
15842         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
15843
15844 2015-08-04  Richard Biener  <rguenther@suse.de>
15845
15846         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
15847         generated code.
15848         (dt_operand::gen_gimple_expr): Adjust.
15849
15850 2015-08-04  Richard Biener  <rguenther@suse.de>
15851
15852         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
15853         bool compares on RHS.
15854         * match.pd: Add X ==/!= !X is false/true pattern.
15855
15856 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
15857
15858         * config/aarch64/aarch64.c: Change inner loop statement cost
15859         to be consistent with other targets.
15860
15861 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
15862
15863         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
15864         targets.
15865
15866 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
15867
15868         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
15869         (machine_function): Remove pseudos field.
15870
15871 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15872
15873         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
15874         Exit early and use target_option_current_node if processing current
15875         pragma.
15876
15877 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15878
15879         * doc/extend.texi (AArch64 Function Attributes): New node.
15880         (AArch64 Pragmas): Likewise.
15881
15882 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15883
15884         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
15885         Initialize simd builtins if TARGET_SIMD.
15886         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
15887         Make sure that the builtins are initialized only once no matter how
15888         many times the function is called.
15889         (aarch64_init_builtins): Unconditionally initialize crc builtins.
15890         (aarch64_relayout_simd_param): New function.
15891         (aarch64_simd_expand_args): Use above during argument expansion.
15892         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
15893         simd builtins if TARGET_SIMD.
15894         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
15895         prototype.
15896         (aarch64_relayout_simd_types): Likewise.
15897
15898 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15899
15900         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
15901         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
15902         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
15903         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
15904         static keyword.
15905         (aarch64_reset_previous_fndecl): New function.
15906         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
15907         the string.
15908         * config/aarch64/aarch64-c.c: New file.
15909         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
15910         Push and pop options at beginning and end.  Remove ifdef
15911         __ARM_FEATURE_CRC32.
15912         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
15913         Add pragma +nothing+simd and +nothing+crypto where appropriate.
15914         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
15915         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
15916         Define prototype.
15917         (aarch64_register_pragmas): Likewise.
15918         (aarch64_reset_previous_fndecl): Likewise.
15919         (aarch64_process_target_attr): Likewise.
15920         (aarch64_override_options_internal): Likewise.
15921
15922 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15923
15924         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
15925         New function.
15926         (aarch64_can_inline_p): Likewise.
15927         (TARGET_CAN_INLINE_P): Define.
15928
15929 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15930
15931         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
15932         Remove static.  Handle OPT_mgeneral_regs_only,
15933         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
15934         OPT_momit_leaf_frame_pointer.
15935         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
15936         (aarch64_attr_opt_type): New enum.
15937         (aarch64_attribute_info): New struct.
15938         (aarch64_handle_attr_arch): New function.
15939         (aarch64_handle_attr_cpu): Likewise.
15940         (aarch64_handle_attr_tune): Likewise.
15941         (aarch64_handle_attr_isa_flags): Likewise.
15942         (aarch64_attributes): New table.
15943         (aarch64_process_one_target_attr): New function.
15944         (num_occurences_in_str): Likewise.
15945         (aarch64_process_target_attr): Likewise.
15946         (aarch64_option_valid_attribute_p): Likewise.
15947         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
15948         * config/aarch64/aarch64-protos.h: Include input.h
15949         (aarch64_handle_option): Declare prototype.
15950
15951 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15952
15953         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
15954         * config/aarch64/aarch64.c: Include target-globals.h
15955         (aarch64_previous_fndecl): New variable.
15956         (aarch64_set_current_function): New function.
15957         (TARGET_SET_CURRENT_FUNCTION): Define.
15958
15959 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15960
15961         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
15962         (explicit_arch): Likewise.
15963         (x_aarch64_isa_flags): Likewise.
15964         (mgeneral-regs-only): Mark as Save.
15965         (mfix-cortex-a53-835769): Likewise.
15966         (mcmodel=): Likewise.
15967         (mstrict-align): Likewise.
15968         (momit-leaf-frame-pointer): Likewise.
15969         (mtls-dialect): Likewise.
15970         (master=): Likewise.
15971         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
15972         (aarch64_isa_flags): Remove extern declaration.
15973         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
15974         to indicate success or failure.
15975         (aarch64_validate_march): Likewise.
15976         (aarch64_validate_mtune): Likewise.
15977         (aarch64_isa_flags): Delete.
15978         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
15979         instead of aarch64_isa_flags.
15980         (aarch64_get_tune_cpu): New function.
15981         (aarch64_get_arch): Likewise.
15982         (aarch64_override_options): Use above and set up explicit_tune_core
15983         and explicit_arch.
15984         (aarch64_print_extension): Move earlier in file.  Add isa_flags
15985         argument and use that instead of the global aarch64_isa_flags.
15986         (aarch64_option_save): New function.
15987         (aarch64_option_restore): Likewise.
15988         (aarch64_option_print): Likewise.
15989         (aarch64_declare_function_name): Likewise.
15990         (aarch64_start_file): Delete.
15991         (TARGET_ASM_FILE_START): Do not define.
15992         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
15993         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
15994         Declare prototype.
15995
15996 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15997
15998         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
15999         flag_omit_leaf_frame_pointer to 2.
16000
16001 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16002
16003         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
16004         define to 0 or 1.
16005         (TARGET_FIX_ERR_A53_835769): New macro.
16006         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
16007         handling of opts->x_aarch64_fix_a53_err835769.
16008         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
16009         than aarch64_fix_a53_err835769.
16010         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
16011         * config/aarch64/aarch64-linux.h: Likewise.
16012
16013 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
16014
16015         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
16016         ix86_expand_int_movcc as boolean.
16017
16018 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16019
16020         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
16021         (aarch64_cpu_string): Likewise.
16022         (aarch64_tune_string): Likewise.
16023         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
16024         (aarch64_parse_extension): Return aarch64_parse_opt_result.
16025         Add extra argument to put result into.
16026         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
16027         (aarch64_parse_cpu): Add arguments to put results into. Return
16028         aarch64_parse_opt_result.
16029         (aarch64_parse_tune): Likewise.
16030         (aarch64_override_options_after_change_1): New function.
16031         (aarch64_override_options_internal): New function.
16032         (aarch64_validate_mcpu): Likewise.
16033         (aarch64_validate_march): Likewise.
16034         (aarch64_validate_mtune): Likewise.
16035         (aarch64_override_options): Update to reflect above changes.
16036         Move some logic into aarch64_override_options_internal.
16037         Initialize target_option_default_node and target_option_current_node.
16038         (aarch64_override_options_after_change): Move logic into
16039         aarch64_override_options_after_change_1 and call it with global_options.
16040         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
16041         flag values from that.
16042
16043 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16044
16045         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
16046         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
16047         * config/aarch64/aarch64.c (struct processor): Add arch field.
16048         (all_architectures): Handle above, move above all_cores.
16049         (all_cores): Handle above.
16050         (aarch64_parse_arch): Handle above changes.
16051         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
16052         above.  Update comments.
16053         (armv8.1-a): Likewise.
16054         * config/aarch64/aarch64-cores.def: Update according to above.
16055         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
16056         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
16057         aarch64_arch_driver_info.
16058
16059 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16060
16061         * config/aarch64/aarch64.c (struct processor): Add ident field.
16062         Rename core sched_core.
16063         (all_cores): Handle above changes.
16064         (all_architectures): Likewise.
16065         (aarch64_parse_arch): Likewise.
16066         (aarch64_override_options): Likewise.
16067
16068 2015-08-04  Richard Biener  <rguenther@suse.de>
16069
16070         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
16071         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
16072         comparisons embedded in [VEC_]COND_EXPRs.
16073
16074 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
16075
16076         * tree-if-conv.c: Fix various typos in comments.
16077         * tree-vect-stmts.c: Likewise.
16078
16079 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16080
16081         PR tree-optimization/67043
16082         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
16083         preheader after hoisting invariant in it.
16084         (find_defs): Force recomputation of all luids.
16085
16086 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
16087
16088         * config/rs6000/htm.md (tabort.): Restrict the source operand to
16089         using a base register.
16090
16091 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
16092
16093         * main.c (main): Pass in NULL for toplev's external_timer.
16094         * timevar.c: Include coretypes.h.
16095         (class timer::named_items): New.
16096         (timer::named_items::named_items): New.
16097         (timer::named_items::~named_items): New.
16098         (timer::named_items::push): New.
16099         (timer::named_items::pop): New.
16100         (timer::named_items::print): New.
16101         (timer::timer): Initialize field "m_jit_client_items".
16102         (timer::~timer): New.
16103         (timer::push): Move bulk of implementation to...
16104         (timer::push_internal): ...here.  New function.
16105         (timer::pop): Move bulk of implementation to...
16106         (timer::pop_internal): ...here.  New function.
16107         (timer::push_client_item): New.
16108         (timer::pop_client_item): New.
16109         (timer::print_row): New function, taken from timer::print.
16110         (timer::print): Print "GCC items" header if we also have client
16111         items.  Move row-printing to timer::print_row.  Print any client
16112         items.
16113         (timer::get_topmost_item_name): New method.
16114         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
16115         (TV_JIT_CLIENT_CODE): New.
16116         * timevar.h (timer::push_client_item): New declaration.
16117         (timer::pop_client_item): New declaration.
16118         (timer::get_topmost_item_name): New method.
16119         (timer::push_internal): New declaration.
16120         (timer::pop_internal): New declaration.
16121         (timer::print_row): New declaration.
16122         (timer::named_items): New declaration.
16123         (timer::m_jit_client_items): New field.
16124         (timer): Add friend class named_items.
16125         (auto_timevar::auto_timevar): Add timer param.
16126         (auto_timevar::~auto_timevar): Use field "m_timer".
16127         (auto_timevar::m_timer): New field.
16128         * toplev.c (initialize_rtl): Add g_timer as param when
16129         constructing auto_timevar instance.
16130         (toplev::toplev): Add "external_timer" param, and use it to
16131         initialize the "g_timer" global if non-NULL.
16132         (toplev::~toplev): If this created "g_timer", delete it.
16133         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
16134         with "external_timer" timer *.
16135
16136 2015-08-03  Alexander Basov <coohpt@gmail.com>
16137
16138         PR middle-end/64744
16139         PR middle-end/48470
16140         PR middle-end/43404
16141         * cfgexpand.c (expand_one_var): Add check if stack is going to
16142         be used in naked function.
16143         * expr.c (expand_expr_addr_expr_1): Remove excess checking
16144         whether expression should not reside in MEM.
16145         * function.c (use_register_for_decl): Do not use registers for
16146         non-register things (volatile, float, BLKMode) in naked functions.
16147
16148 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
16149
16150         PR target/67060
16151         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
16152         Adjust splits to match new pattern.
16153
16154 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
16155
16156         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
16157         (VEC_M): Likewise.
16158         (VEC_N): Likewise.
16159         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
16160         point in VSX registers.
16161
16162         * config/rs6000/constraints.md (wb constraint): Document unused
16163         w<x> constraint.
16164         (we constraint): Likewise.
16165         (wo constraint): Likewise.
16166         (wp constraint): New constraint for IEEE 128-bit floating point in
16167         VSX registers.
16168         (wq constraint): Likewise.
16169
16170         * config/rs6000/predicates.md (easy_fp_constant): Add support for
16171         IEEE 128-bit floating point in VSX registers.
16172         (easy_scalar_constant): Likewise.
16173
16174         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
16175         constraints (wp, wq) for IEEE 128-bit floating point in VSX
16176         registers.
16177         (rs6000_init_hard_regno_mode_ok): Likewise.
16178
16179         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
16180         floating point in VSX registers.
16181         (VSX_L): Likewise.
16182         (VSX_M): Likewise.
16183         (VSX_M2): Likewise.
16184         (VSm): Likewise.
16185         (VSs): Likewise.
16186         (VSr): Likewise.
16187         (VSa): Likewise.
16188         (VSv): Likewise.
16189         (vsx_le_permute_<mode>): Add support to properly swap bytes for
16190         IEEE 128-bit floating point in VSX registers on little endian.
16191         (vsx_le_undo_permute_<mode>): Likewise.
16192         (vsx_le_perm_load_<mode>): Likewise.
16193         (vsx_le_perm_store_<mode>): Likewise.
16194         (splitters for IEEE 128-bit fp moves): Likewise.
16195
16196         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
16197         wq constraints.
16198
16199         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
16200         floating point in VSX registers.
16201         (VM2): Likewise.
16202
16203         * doc/md.text (Machine Constraints): Document wp and wq
16204         constraints on PowerPC.
16205
16206 2015-08-03  Jeff Law  <law@redhat.com>
16207
16208         PR middle-end/66314
16209         PR gcov-profile/66899
16210         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
16211         iterate over the jump threading paths when an element in the
16212         jump threading paths array is eliminated.
16213
16214 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
16215
16216         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
16217
16218 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
16219
16220         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
16221         is_use_properly_guarded the variable def_preds.  Free its
16222         contents before returning.
16223         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
16224         (is_use_properly_guarded): Replace local variable def_preds with
16225         a parameter.  Adjust accordingly.  Only update *def_preds if it's
16226         the empty vector.
16227
16228 2015-08-03  Richard Biener  <rguenther@suse.de>
16229
16230         * genmatch.c (simplify::for_subst_vec): New member.
16231         (binary_ok): New helper for for lowering.
16232         (lower_for): Delay substituting operators into result expressions
16233         if we can merge the results eventually again.
16234         (capture_info::walk_result): Adjust for user_id appearing as
16235         result expression operator.
16236         (expr::gen_transform): Likewise.
16237         (dt_simplify::gen_1): Likewise.
16238         (dt_simplify::gen): Pass not substituted operators to tail
16239         functions or initialize local variable with it.
16240         (decision_tree::gen): Adjust function signature.
16241         * match.pd: Fix tests against global code and add default
16242         cases to switch stmts.
16243
16244 2015-08-03  Richard Biener  <rguenther@suse.de>
16245
16246         * genmatch.c (dt_simplify::gen): Create captures array
16247         with an initializer.
16248
16249 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16250
16251         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
16252         the host compiler is affected by placement new aliasing bug.
16253         * configure: Regenerate.
16254         * Makefile.in (ALIASING_FLAGS): New variable.
16255         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
16256
16257 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
16258
16259         PR target/66731
16260         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
16261         (negmulsf3_vfp): Likewise.
16262         (muldf3negdf_vfp): Disable for -frounding-math.
16263         (mulsf3negsf_vfp): Likewise.
16264         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
16265         fix MULT cost with -frounding-math.
16266
16267 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16268
16269         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
16270         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
16271         explicit.  Prefer to add the flag whenever possible.
16272         (noce_process_if_block): Try noce_try_store_flag_constants before
16273         noce_try_cmove.
16274
16275 2015-08-03  Richard Biener  <rguenther@suse.de>
16276
16277         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
16278         New hash-map to record equivalent transforms.
16279         (dt_node::analyze): Populate the equivalent transforms hash-map.
16280         (dt_simplify::info): Add reference to hash-map entry.
16281         (dt_simplify::gen): If we have split out a function for the
16282         transform, generate a call to it.
16283         (sinfo_hashmap_traits::hash): New function.
16284         (compare_op): New helper function for ...
16285         (sinfo_hashmap_traits::equal_keys): ... this new function.
16286         (decision_tree::gen): Split out common equivalent transforms
16287         into functions.
16288
16289 2015-08-03  Richard Biener  <rguenther@suse.de>
16290
16291         * gimple-fold.c (fold_gimple_assign): Remove folding of
16292         the comparison in COND_EXPRs.
16293
16294 2015-08-03  Richard Biener  <rguenther@suse.de>
16295
16296         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
16297         on the rhs of assignments first simplify the embedded
16298         GENERIC condition.
16299
16300 2015-08-03  Richard Biener  <rguenther@suse.de>
16301
16302         PR tree-optimization/66917
16303         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
16304         field.
16305         (DR_VECT_AUX): New macro.
16306         (set_dr_misalignment): Adjust.
16307         (dr_misalignment): Likewise.
16308         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
16309         Compute whether the base is at least element aligned.
16310         * tree-vect-stmts.c (ensure_base_align): Adjust.
16311         (vectorizable_store): If the base is not element aligned
16312         preserve alignment of the original access if misalignment is unknown.
16313         (vectorizable_load): Likewise.
16314
16315 2015-08-02  Martin Sebor  <msebor@redhat.com>
16316
16317         * c-family/c.opt (-Wframe-address): New warning option.
16318         * doc/invoke.texi (Wframe-address): Document it.
16319         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
16320         Clarify possible effects of calling the functions with non-zero
16321         arguments and mention -Wframe-address.
16322         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
16323
16324 2015-08-01  Michael Collison  <michael.collison@linaro.org
16325             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
16326
16327         * config/arm/arm.md (*arm_smin_cmp): New pattern.
16328         (*arm_umin_cmp): Likewise.
16329
16330 2015-08-01  Caroline Tice  <cmtice@google.com>
16331
16332         PR 66521
16333         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
16334         global variables.
16335         (vtbl_find_mangled_name):  New function.
16336         (vtbl_register_mangled_name):  New function.
16337         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
16338         mangled name in mangled name vectors.
16339         (find_or_create_vtbl_map_node):  Ditto.
16340         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
16341         update recursion_depth on function entry; pass it to every recursive
16342         call; automatically exit if depth > 25 (give up looking at that point).
16343         (verify_bb_vtables):  Initialize recursion_depth and pass it to
16344         var_is_used_for_virtual_call_p.
16345         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
16346         global variable decls.
16347         (vtbl_register_mangled_name): New extern function decl.
16348
16349 2015-08-01  Tom de Vries  <tom@codesourcery.com>
16350
16351         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
16352         function.
16353         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
16354         Declare.
16355         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
16356         operation_no_trapping_overflow.  Allow non-overflow operations.
16357         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
16358         operations.
16359
16360 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
16361
16362         PR target/67049
16363         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
16364
16365 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16366
16367         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
16368         Enable for TARGET_32BIT.
16369         (*if_move_neg): Likewise.
16370
16371 2015-07-31  Nick Clifton  <nickc@redhat.com>
16372
16373         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
16374         Returns true for __model__.
16375         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
16376
16377 2015-07-31  Alan Modra  <amodra@gmail.com>
16378
16379         PR target/66870
16380         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
16381         (rs6000_emit_prologue): Set it.
16382         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
16383
16384 2015-07-31  Richard Biener  <rguenther@suse.de>
16385
16386         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
16387         -> X == (C1 ^ C2) which is already implemented in match.pd.
16388         Remove redundant dispatching to fold_relational_const.
16389         Move unordered self and NaN compares ...
16390         * match.pd: ... as patterns here.  Remove some stray captures
16391         and add a comment.
16392
16393 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
16394
16395         * config/i386/i386.c
16396         (bdesc_special_args): Convert mask type from signed to unsigned for
16397         masked builtins.
16398         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
16399         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
16400         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
16401         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
16402         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
16403         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
16404         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
16405         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
16406         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
16407         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
16408         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
16409         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
16410         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
16411         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
16412         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
16413         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
16414         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
16415         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
16416         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
16417         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
16418         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
16419         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
16420         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
16421         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
16422         * config/i386/i386-builtin-types.def
16423         (V16QI_FTYPE_V16SI): Remove.
16424         (V8DF_FTYPE_V8SI): Ditto.
16425         (V8HI_FTYPE_V8DI): Ditto.
16426         (V8SI_FTYPE_V8DI): Ditto.
16427         (V8SF_FTYPE_V8DF): Ditto.
16428         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
16429         (V16HI_FTYPE_V16SI): Ditto.
16430         (V16SF_FTYPE_V16HI): Ditto.
16431         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
16432         (V16SF_FTYPE_V16SI): Ditto.
16433         (V4DI_FTYPE_V4DI): Ditto.
16434         (V16SI_FTYPE_V16SF): Ditto.
16435         (V16SF_FTYPE_FLOAT): Ditto.
16436         (V8DF_FTYPE_DOUBLE): Ditto.
16437         (V8DI_FTYPE_INT64): Ditto.
16438         (V8DI_FTYPE_V4DI): Ditto.
16439         (V16QI_FTYPE_V8DI): Ditto.
16440         (UINT_FTYPE_V4SF): Ditto.
16441         (UINT64_FTYPE_V4SF): Ditto.
16442         (UINT_FTYPE_V2DF): Ditto.
16443         (UINT64_FTYPE_V2DF): Ditto.
16444         (V16SI_FTYPE_V16SI): Ditto.
16445         (V8DI_FTYPE_V8DI): Ditto.
16446         (V16SI_FTYPE_PV4SI): Ditto.
16447         (V16SF_FTYPE_PV4SF): Ditto.
16448         (V8DI_FTYPE_PV2DI): Ditto.
16449         (V8DF_FTYPE_PV2DF): Ditto.
16450         (V4DI_FTYPE_PV2DI): Ditto.
16451         (V4DF_FTYPE_PV2DF): Ditto.
16452         (V16SI_FTYPE_PV2SI): Ditto.
16453         (V16SF_FTYPE_PV2SF): Ditto.
16454         (V8DI_FTYPE_PV4DI): Ditto.
16455         (V8DF_FTYPE_PV4DF): Ditto.
16456         (V8SF_FTYPE_FLOAT): Ditto.
16457         (V4SF_FTYPE_FLOAT): Ditto.
16458         (V4DF_FTYPE_DOUBLE): Ditto.
16459         (V8SF_FTYPE_PV4SF): Ditto.
16460         (V8SI_FTYPE_PV4SI): Ditto.
16461         (V4SI_FTYPE_PV2SI): Ditto.
16462         (V8SF_FTYPE_PV2SF): Ditto.
16463         (V8SI_FTYPE_PV2SI): Ditto.
16464         (V16SF_FTYPE_PV8SF): Ditto.
16465         (V16SI_FTYPE_PV8SI): Ditto.
16466         (V8DI_FTYPE_V8SF): Ditto.
16467         (V4DI_FTYPE_V4SF): Ditto.
16468         (V2DI_FTYPE_V4SF): Ditto.
16469         (V64QI_FTYPE_QI): Ditto.
16470         (V32HI_FTYPE_HI): Ditto.
16471         (V8UHI_FTYPE_V8UHI): Ditto.
16472         (V16UHI_FTYPE_V16UHI): Ditto.
16473         (V32UHI_FTYPE_V32UHI): Ditto.
16474         (V2UDI_FTYPE_V2UDI): Ditto.
16475         (V4UDI_FTYPE_V4UDI): Ditto.
16476         (V8UDI_FTYPE_V8UDI): Ditto.
16477         (V4USI_FTYPE_V4USI): Ditto.
16478         (V8USI_FTYPE_V8USI): Ditto.
16479         (V16USI_FTYPE_V16USI): Ditto.
16480         (V2DF_FTYPE_V2DF_UINT64): Ditto.
16481         (V2DI_FTYPE_V2DF_V2DF): Ditto.
16482         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
16483         (V8DF_FTYPE_V8DF_V8DI): Ditto.
16484         (V4SF_FTYPE_V4SF_UINT64): Ditto.
16485         (V4SI_FTYPE_V4SF_V4SF): Ditto.
16486         (V16SF_FTYPE_V16SF_V16SI): Ditto.
16487         (V64QI_FTYPE_V32HI_V32HI): Ditto.
16488         (V32HI_FTYPE_V16SI_V16SI): Ditto.
16489         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
16490         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
16491         (V32HI_FTYPE_V64QI_V64QI): Ditto.
16492         (V32HI_FTYPE_V32HI_V32HI): Ditto.
16493         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
16494         (V16SI_FTYPE_V16SI_V4SI): Ditto.
16495         (V16SI_FTYPE_V16SI_V16SI): Ditto.
16496         (V16SI_FTYPE_V32HI_V32HI): Ditto.
16497         (V16SI_FTYPE_V16SI_SI): Ditto.
16498         (V8DI_FTYPE_V8DI_V8DI): Ditto.
16499         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
16500         (V8DI_FTYPE_V16SI_V16SI): Ditto.
16501         (V8DI_FTYPE_V8DI_V2DI): Ditto.
16502         (QI_FTYPE_QI): Ditto.
16503         (SI_FTYPE_SI): Ditto.
16504         (DI_FTYPE_DI): Ditto.
16505         (QI_FTYPE_QI_QI): Ditto.
16506         (QI_FTYPE_QI_INT): Ditto.
16507         (HI_FTYPE_HI_INT): Ditto.
16508         (SI_FTYPE_SI_INT): Ditto.
16509         (DI_FTYPE_DI_INT): Ditto.
16510         (HI_FTYPE_V16QI_V16QI): Ditto.
16511         (SI_FTYPE_V32QI_V32QI): Ditto.
16512         (DI_FTYPE_V64QI_V64QI): Ditto.
16513         (QI_FTYPE_V8HI_V8HI): Ditto.
16514         (HI_FTYPE_V16HI_V16HI): Ditto.
16515         (SI_FTYPE_V32HI_V32HI): Ditto.
16516         (QI_FTYPE_V4SI_V4SI): Ditto.
16517         (QI_FTYPE_V8SI_V8SI): Ditto.
16518         (QI_FTYPE_V2DI_V2DI): Ditto.
16519         (QI_FTYPE_V4DI_V4DI): Ditto.
16520         (QI_FTYPE_V8DI_V8DI): Ditto.
16521         (HI_FTYPE_V16SI_V16SI): Ditto.
16522         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
16523         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
16524         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
16525         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
16526         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
16527         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
16528         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
16529         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
16530         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
16531         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
16532         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
16533         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
16534         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
16535         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
16536         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
16537         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
16538         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
16539         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
16540         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
16541         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
16542         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
16543         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
16544         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
16545         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
16546         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
16547         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
16548         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
16549         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
16550         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
16551         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
16552         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
16553         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
16554         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
16555         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
16556         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
16557         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
16558         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
16559         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
16560         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
16561         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
16562         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
16563         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
16564         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
16565         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
16566         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
16567         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
16568         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
16569         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
16570         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
16571         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
16572         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
16573         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
16574         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
16575         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
16576         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
16577         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
16578         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
16579         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
16580         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
16581         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
16582         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
16583         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
16584         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
16585         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
16586         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
16587         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
16588         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
16589         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
16590         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
16591         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
16592         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
16593         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
16594         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
16595         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
16596         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
16597         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
16598         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
16599         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
16600         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
16601         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
16602         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
16603         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
16604         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
16605         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
16606         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
16607         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
16608         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
16609         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
16610         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
16611         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
16612         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
16613         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
16614         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
16615         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
16616         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
16617         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
16618         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
16619         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
16620         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
16621         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
16622         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
16623         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
16624         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
16625         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
16626         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
16627         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
16628         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
16629         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
16630         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
16631         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
16632         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
16633         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
16634         (HI_FTYPE_HI): Ditto.
16635         (HI_FTYPE_V16QI): Ditto.
16636         (SI_FTYPE_V32QI): Ditto.
16637         (DI_FTYPE_V64QI): Ditto.
16638         (QI_FTYPE_V8HI): Ditto.
16639         (HI_FTYPE_V16HI): Ditto.
16640         (SI_FTYPE_V32HI): Ditto.
16641         (QI_FTYPE_V4SI): Ditto.
16642         (QI_FTYPE_V8SI): Ditto.
16643         (HI_FTYPE_V16SI): Ditto.
16644         (QI_FTYPE_V2DI): Ditto.
16645         (QI_FTYPE_V4DI): Ditto.
16646         (QI_FTYPE_V8DI): Ditto.
16647         (V16QI_FTYPE_HI): Ditto.
16648         (V32QI_FTYPE_SI): Ditto.
16649         (V64QI_FTYPE_DI): Ditto.
16650         (V8HI_FTYPE_QI): Ditto.
16651         (V16HI_FTYPE_HI): Ditto.
16652         (V32HI_FTYPE_SI): Ditto.
16653         (V4SI_FTYPE_QI): Ditto.
16654         (V4SI_FTYPE_HI): Ditto.
16655         (V8SI_FTYPE_QI): Ditto.
16656         (V8SI_FTYPE_HI): Ditto.
16657         (V2DI_FTYPE_QI): Ditto.
16658         (V4DI_FTYPE_QI): Ditto.
16659         (HI_FTYPE_HI_HI): Ditto.
16660         (SI_FTYPE_SI_SI): Ditto.
16661         (DI_FTYPE_DI_DI): Ditto.
16662         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
16663         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
16664         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
16665         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
16666         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
16667         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
16668         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
16669         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
16670         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
16671         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
16672         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
16673         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
16674         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
16675         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
16676         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
16677         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
16678         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
16679         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
16680         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
16681         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
16682         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
16683         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
16684         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
16685         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
16686         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
16687         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
16688         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
16689         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
16690         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
16691         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
16692         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
16693         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
16694         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
16695         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
16696         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
16697         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
16698         (V16SI_FTYPE_HI): Ditto.
16699         (V8DI_FTYPE_QI): Ditto.
16700         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
16701         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
16702         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
16703         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
16704         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
16705         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
16706         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
16707         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
16708         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
16709         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
16710         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
16711         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
16712         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
16713         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
16714         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
16715         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
16716         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
16717         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
16718         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
16719         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
16720         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
16721         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
16722         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
16723         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
16724         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
16725         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
16726         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
16727         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
16728         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
16729         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
16730         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
16731         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
16732         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
16733         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
16734         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
16735         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
16736         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
16737         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
16738         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
16739         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
16740         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
16741         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
16742         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
16743         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
16744         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
16745         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
16746         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
16747         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
16748         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
16749         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
16750         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
16751         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
16752         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
16753         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
16754         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
16755         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
16756         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
16757         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
16758         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
16759         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
16760         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
16761         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
16762         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
16763         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
16764         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
16765         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
16766         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
16767         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
16768         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
16769         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
16770         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
16771         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
16772         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
16773         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
16774         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
16775         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
16776         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
16777         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
16778         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
16779         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
16780         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
16781         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
16782         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
16783         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
16784         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
16785         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
16786         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
16787         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
16788         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
16789         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
16790         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
16791         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
16792         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
16793         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
16794         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
16795         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
16796         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
16797         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
16798         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
16799         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
16800         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
16801         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
16802         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
16803         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
16804         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
16805         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
16806         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
16807         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
16808         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
16809         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
16810         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
16811         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
16812         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
16813         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
16814         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
16815         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
16816         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
16817         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
16818         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
16819         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
16820         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
16821         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
16822         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
16823         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
16824         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
16825         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
16826         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
16827         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
16828         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
16829         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
16830         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
16831         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
16832         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
16833         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
16834         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
16835         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
16836         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
16837         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
16838         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
16839         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
16840         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
16841         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
16842         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
16843         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
16844         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
16845         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
16846         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
16847         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
16848         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
16849         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
16850         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
16851         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
16852         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
16853         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
16854         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
16855         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
16856         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
16857         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
16858         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
16859         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
16860         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
16861         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
16862         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
16863         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
16864         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
16865         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
16866         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
16867         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
16868         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
16869         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
16870         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
16871         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
16872         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
16873         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
16874         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
16875         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
16876         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
16877         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
16878         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
16879         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
16880         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
16881         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
16882         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
16883         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
16884         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
16885         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
16886         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
16887         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
16888         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
16889         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
16890         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
16891         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
16892         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
16893         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
16894         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
16895         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
16896         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
16897         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
16898         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
16899         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
16900         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
16901         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
16902         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
16903         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
16904         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
16905         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
16906         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
16907         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
16908         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
16909         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
16910         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
16911         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
16912         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
16913         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
16914         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
16915         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
16916         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
16917         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
16918         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
16919         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
16920         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
16921         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
16922         (QI_FTYPE_V8DF_INT_QI): Ditto.
16923         (QI_FTYPE_V4DF_INT_QI): Ditto.
16924         (QI_FTYPE_V2DF_INT_QI): Ditto.
16925         (HI_FTYPE_V16SF_INT_HI): Ditto.
16926         (QI_FTYPE_V8SF_INT_QI): Ditto.
16927         (QI_FTYPE_V4SF_INT_QI): Ditto.
16928         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
16929
16930 2015-07-31  Richard Biener  <rguenther@suse.de>
16931
16932         * gimple-fold.c (fold_gimple_assign): Remove folding of
16933         GIMPLE_BINARY_RHS.
16934
16935 2015-07-31  Tom de Vries  <tom@codesourcery.com>
16936
16937         PR tree-optimization/66846
16938         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
16939         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
16940         (expand_omp_target) [ENABLE_CHECKING]: Same.
16941         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
16942         cfun if !LOOPS_NEED_FIXUP.
16943         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
16944         that omp_for already has its own loop struct.
16945         * tree-parloops.c (create_phi_for_local_result)
16946         (create_call_for_reduction): Handle simple latch bb.
16947         (create_parallel_loop): Add simple latch bb to preserve
16948         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
16949         (gen_parallel_loop): Remove call to cancel_loop_tree.
16950         (parallelize_loops): Skip loops that are inner loops of parallelized
16951         loops.
16952         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
16953         verify_loop_structure.
16954
16955 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
16956
16957         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
16958         * config/v850/v850.md (RV_REGNUM): New constants.
16959         * config/v850/v850.c (v850_libcall_value): New functions.
16960         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
16961         (TARGET_LIBCALL_VALUE): Define.
16962
16963 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
16964
16965         * rtl.h (lowpart_subreg): Move in file.
16966         * loop-iv.c (lowpart_subreg): Move to...
16967         * simplify-rtx.c (lowpart_subreg): ...here.
16968           (simplify_binary_operation_1): Use lowpart_subreg instead of
16969           simplify_gen_subreg.
16970         * expr.c (expand_expr_real_2): Ditto.
16971         * emit-rtl.c (gen_lowpart_common): Ditto.
16972         * combine.c (gen_lowpart_for_combine): Ditto.
16973         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
16974           expand_debug_source_expr): Ditto.
16975
16976 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
16977
16978         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
16979         (expand_builtin_atomic_clear): Remove support for atomic_clear
16980         pattern.
16981
16982 2015-07-30  Richard Biener  <rguenther@suse.de>
16983
16984         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
16985         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
16986         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
16987         redundant operand canonicalization.
16988
16989 2015-07-30  David Sherwood  <david.sherwood@arm.com>
16990
16991         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
16992         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
16993         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
16994         * config/arm/arm.c (neon_valid_immediate): Likewise.
16995         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
16996         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
16997         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
16998         (expand_vec_perm_vpshufb2_vpermq): Likewise.
16999         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
17000         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
17001         * config/i386/sse.md
17002         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
17003         (*ssse3_palignr<mode>_perm): Likewise.
17004         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
17005         * config/spu/spu.c (arith_immediate_p): Likewise.
17006         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
17007         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
17008
17009 2015-07-30  Richard Biener  <rguenther@suse.de>
17010
17011         * genmatch.c (decision_tree::gen_gimple): Merge with ...
17012         (decision_tree::gen_generic): ... this into ...
17013         (decision_tree::gen): ... this.
17014         (main): Adjust callers.
17015
17016 2015-07-30  Richard Biener  <rguenther@suse.de>
17017
17018         * genmatch.c (verbose): New global.
17019         (warning_at): Add overload with source_location.
17020         (capture_info::capture_info): Add bool whether generating gimple
17021         or generic.  Add gimple member.
17022         (capture_info::cinfo): Add capture member.
17023         (capture_info::walk_match): Record capture.  Warn on
17024         non-captured leafs.
17025         (capture_info::walk_c_expr): Add more fragments captures cannot
17026         escape through.  Warn on escaped captures.
17027         (dt_simplify::gen_1): Warn on operands we force to have no
17028         side-effects.
17029         (main): Initialize verbose.
17030         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
17031
17032 2015-07-30  Richard Biener  <rguenther@suse.de>
17033
17034         PR middle-end/67053
17035         * match.pd: Allow both operands to independently have conversion
17036         when simplifying compares of addresses.
17037
17038 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
17039
17040         PR target/66217
17041         PR target/67045
17042         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
17043         around those cases that need one.
17044
17045 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
17046
17047         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
17048
17049 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
17050
17051         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
17052         New.  Copied from config/i386/gnu-user.h.
17053         (ASM_COMMENT_START): Likewise.
17054         (DBX_REGISTER_NUMBER): Likewise.
17055
17056 2015-07-29  Richard Biener  <rguenther@suse.de>
17057
17058         * gimple-fold.c (fold_gimple_cond): Remove.
17059         (fold_stmt_1): Do not call it.
17060
17061 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
17062
17063         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
17064         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
17065
17066         * config/aarch64/aarch64-modes.def: Add HFmode.
17067
17068         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
17069         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
17070
17071         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
17072         aarch64_promoted_type): New.
17073
17074         (aarch64_float_const_representable_p): Disable HFmode.
17075         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
17076         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
17077         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
17078
17079         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
17080         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
17081
17082         * config/aarch64/iterators.md (GPF_F16): New.
17083
17084 2015-07-29  Richard Biener  <rguenther@suse.de>
17085
17086         * match.pd: Merge address comparison patterns and make them
17087         handle some more cases.
17088
17089 2015-07-29  Richard Biener  <rguenther@suse.de>
17090
17091         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
17092         (parser::parse_capture): Add bool argument on whether to reject
17093         unknown captures.
17094         (parser::parse_expr): Adjust.
17095         (parser::parse_op): Likewise.
17096         (parser::parse_pattern): Likewise.
17097
17098 2015-07-29  Richard Biener  <rguenther@suse.de>
17099
17100         * gimple-fold.c (has_use_on_stmt): New function.
17101         (replace_stmt_with_simplification): Use it to allow
17102         abnormals originally referenced in the stmt.
17103         (fold_stmt_1): Canonicalize operand order.
17104
17105 2015-07-28  David Sherwood  <david.sherwood@arm.com>
17106
17107         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
17108         GET_MODE_INNER unconditionally.
17109         * config/spu/spu.c (arith_immediate_p): Likewise.
17110         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
17111         * expmed.c (synth_mult): Remove check for VOIDmode result from
17112         GET_MODE_INNER.
17113         (expand_mult_const): Likewise.
17114         * fold-const.c (fold_binary_loc): Replace call to element_precision
17115         with call to GET_MODE_PRECISION.
17116         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
17117         m->name.
17118         (emit_mode_inner): Likewise.
17119         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
17120         result check.
17121         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
17122         (GET_MODE_UNIT_PRECISION): Likewise.
17123         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
17124         * simplify-rtx.c (simplify_immed_subreg): Likewise.
17125         * stor-layout.c (bitwise_type_for_mode): Update assert.
17126         (element_precision): Remove.
17127
17128 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
17129
17130         * target-insns.def (reload_load_address): New targetm instruction
17131         pattern.
17132         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
17133
17134 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
17135
17136         * target-insns.def (atomic_test_and_set): New targetm instruction
17137         pattern.
17138         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
17139         HAVE_*/gen_* interface.
17140
17141 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
17142
17143         * target-insns.def (can_extend, ptr_extend): New targetm instruction
17144         patterns.
17145         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
17146         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17147         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
17148         * rtlanal.c (nonzero_bits1): Likewise.
17149         (num_sign_bit_copies1): Likewise.
17150
17151 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
17152
17153         * target-insns.def (eh_return): New targetm instruction pattern.
17154         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
17155         interface.
17156         * function.c (thread_prologue_and_epilogue_insns): Remove
17157         preprocessor condition.
17158
17159 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
17160
17161         * target-insns.def (indirect_jump): New targetm instruction pattern.
17162         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
17163         interface.
17164
17165 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
17166
17167         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
17168         instead of nonimmediate_operand.  Remove C condiition.
17169
17170 2015-07-28  Richard Biener  <rguenther@suse.de>
17171
17172         * match.pd: Add more simplification of address comparisons.
17173
17174 2015-07-28  Richard Biener  <rguenther@suse.de>
17175
17176         * match.pd: Re-order two cases in comparison with max/min
17177         value simplification to make it apply for bools.
17178
17179 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17180
17181         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
17182         Handle simple SIGN_EXTEND or ZERO_EXTEND.
17183         (aarch64_rtx_costs): Properly strip extend or extract before
17184         passing down to rtx costs again.
17185
17186 2015-07-28  Nick Clifton  <nickc@redhat.com>
17187
17188         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
17189         Optimizes the case where -mes0 is active and a constant symbolic
17190         address is used.
17191         * config/rl78/rl78-protos.h: Prototype the new function.
17192         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
17193
17194 2015-07-28  Tom de Vries  <tom@codesourcery.com>
17195
17196         * tree-parloops.c (reduc_stmt_res): New function.
17197         (initialize_reductions, add_field_for_reduction)
17198         (create_phi_for_local_result, create_loads_for_reductions)
17199         (create_stores_for_reduction, build_new_reduction): Handle case that
17200         reduc_stmt is a phi.
17201         (gather_scalar_reductions): Allow double_reduc reductions.
17202
17203 2015-07-28  Richard Biener  <rguenther@suse.de>
17204
17205         * fold-const.c (fold_comparison): Remove equality folding
17206         of decl addresses ...
17207         * match.pd: ... here and merge with existing pattern.
17208
17209 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17210
17211         PR tree-optimization/66828
17212         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
17213         from int64_t to uint64_t.
17214
17215 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
17216
17217         * opts-common.c (read_cmdline_option): List DriverOnly enum values
17218         as valid only in the error message of the driver, not in the
17219         messages of the language compilers.
17220
17221 2015-07-27  Tom de Vries  <tom@codesourcery.com>
17222
17223         * tree-parloops.c (gather_scalar_reductions): Simplify function
17224         structure.
17225
17226 2015-07-27  Marek Polacek  <polacek@redhat.com>
17227
17228         * ipa-devirt.c (types_same_for_odr): Fix typo.
17229
17230 2015-07-27  Jason Merrill  <jason@redhat.com>
17231
17232         PR debug/66468
17233         * dwarf2out.c (gen_inlined_subroutine_die): Check
17234         cgraph_function_possibly_inlined_p.
17235
17236 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
17237
17238         * config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
17239         Place integer variant first.
17240         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
17241
17242 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
17243
17244         PR/63870
17245         * config/arm/arm-builtins.c (enum arm_builtins):
17246         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
17247         (ARM_BUILTIN_NEON_BASE): Rename macro to....
17248         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
17249         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
17250         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
17251
17252 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
17253
17254         PR/63870
17255         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
17256         Add qualifier_lane_index.
17257         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
17258         (arm_getlane_qualifiers): Use qualifier_lane_index.
17259         (arm_lanemac_qualifiers): Rename to...
17260         (arm_mac_n_qualifiers): ...this.
17261         (LANEMAC_QUALIFIERS): Rename to...
17262         (MAC_N_QUALIFIERS): ...this.
17263         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
17264         (arm_setlane_qualifiers): Use qualifier_lane_index.
17265         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
17266         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
17267         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
17268         (arm_expand_neon_builtin): Handle qualifier_lane_index.
17269
17270         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
17271         * config/arm/arm.c (bounds_check): Likewise, improve error message.
17272         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
17273         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
17274         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
17275         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
17276         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
17277         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
17278         qualifiers to TERNOP_IMM.
17279         (vdup_lane): Change qualifiers to GETLANE.
17280         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
17281         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
17282         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
17283         vqdmlsl_n): Change qualifiers to MAC_N.
17284
17285         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
17286         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
17287         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
17288         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
17289         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
17290         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
17291         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
17292         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
17293         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
17294         Remove call to neon_lane_bounds.
17295
17296 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
17297
17298         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
17299         Place integer variant first.
17300
17301 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
17302
17303         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
17304         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
17305         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
17306         for armv6kz targets.
17307         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
17308         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
17309         (FL_FOR_ARCH6ZK): Remove.
17310         (FL_FOR_ARCH6KZ): New.
17311         (arm_arch6zk): New declaration.
17312         * config/arm/arm-tables.opt: Regenerate.
17313         * config/arm/arm.c (arm_arch6kz): New.
17314         (arm_option_override): Set arm_arch6kz.
17315         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
17316         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
17317         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
17318
17319 2015-07-27  Marek Polacek  <polacek@redhat.com>
17320
17321         PR c++/66555
17322         PR c/54979
17323         * doc/invoke.texi: Document -Wtautological-compare.
17324
17325 2015-07-27  Richard Biener  <rguenther@suse.de>
17326
17327         * genmatch.c (decision_tree::gen_gimple): Split out large
17328         subtrees into separate functions.
17329         (decision_tree::gen_generic): Likewise.
17330
17331 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
17332
17333         * config/alpha/alpha.c: Use SUBREG_P predicate.
17334         * config/alpha/predicates.md: Ditto.
17335
17336 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
17337
17338         * config.host (s390*-*-*): Include driver-native.c only when
17339         building with s390* as host *and* target.
17340
17341 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
17342
17343         PR target/66930
17344         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
17345         T bit register modified_between_p check.
17346
17347 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
17348
17349         * config/i386/i386.c: Use SUBREG_P predicate.
17350         * config/i386/i386.md: Ditto.
17351         * config/i386/sse.md: Ditto.
17352         * config/i386/predicates.md: Ditto.
17353
17354 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
17355
17356         PR target/67004
17357         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
17358         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
17359
17360 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
17361
17362         * Makefile.in: Remove use of TREEBROWSER.
17363         * config.in: Regenerated.
17364         * configure: Regenerated.
17365         * configure.ac: Remove definition of TREEBROWSER.
17366         * tree-browser.c: Removed.
17367         * tree-browser.def: Removed.
17368
17369 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
17370
17371         * graphite-scop-detection.c: Include gimple-pretty-print.h.
17372         (stmt_simple_for_scop_p): Print when a stmt is not handled in
17373         Graphite.
17374         (scopdet_basic_block_info): Print when a loop or bb cannot be
17375         represented in Graphite.
17376
17377 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
17378
17379         PR target/66648
17380         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
17381         execution guard when min_size is less than size_needed.
17382
17383 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
17384
17385         * doc/install.texi: Document supported versions of ISL.
17386
17387 2015-07-25  Jeff Law  <law@redhat.com>
17388
17389         Revert:
17390         PR lto/66752
17391         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
17392         unable to find X NE 0 in the tables, return X as the simplified
17393         condition.
17394         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
17395         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
17396         to VISISTED_BBS.  */
17397         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
17398         after removing the control flow statement and unnecessary edges.
17399
17400 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
17401
17402         Revert:
17403         2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
17404
17405         PR rtl-optimization/64164
17406         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
17407         * tree-ssa-copyrename.c: Removed.
17408         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
17409         -ftree-coalesce-vars.
17410         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
17411         * common.opt (ftree-copyrename): Ignore.
17412         (ftree-coalesce-inlined-vars): Likewise.
17413         * doc/invoke.texi: Remove the ignored options above.
17414         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
17415         * tree-ssa-coalesce.h: ... here.
17416         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
17417         headers required by it.
17418         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
17419         across variables when flag_tree_coalesce_vars.  Check register
17420         use and promoted modes to allow coalescing.  Moved to
17421         tree-ssa-coalesce.c.
17422         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
17423         with its member functions to tree-ssa-coalesce.c.
17424         (var_map_base_init): Likewise.  Renamed to
17425         compute_samebase_partition_bases.
17426         (partition_view_normal): Drop want_bases parameter.
17427         (partition_view_bitmap): Likewise.
17428         * tree-ssa-live.h: Adjust declarations.
17429         * tree-ssa-coalesce.c: Include explow.h.
17430         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
17431         default defs at the entry point.
17432         (dump_part_var_map): New.
17433         (compute_optimized_partition_bases): New, called by...
17434         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
17435         of compute_samebase_partition_bases.  Adjust.
17436         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
17437         * cfgexpand.c (leader_merge): New.
17438         (get_rtl_for_parm_ssa_default_def): New.
17439         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
17440         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
17441         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
17442         redundant MEM attr setting.
17443         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
17444         from...
17445         (expand_one_stack_var): ... this.  New wrapper to check and
17446         skip already expanded SSA partitions.
17447         (record_alignment_for_reg_var): New, factored out of...
17448         (expand_one_var): ... this.
17449         (expand_one_ssa_partition): New.
17450         (adjust_one_expanded_partition_var): New.
17451         (expand_one_register_var): Check and skip already expanded SSA
17452         partitions.
17453         (expand_used_vars): Don't create DECLs for anonymous SSA
17454         names.  Expand all SSA partitions, then adjust all SSA names.
17455         (pass::execute): Replace the loops that set
17456         SA.partition_to_pseudo from partition leaders and cleared
17457         DECL_RTL for multi-location variables, and that which used to
17458         rename vars and set attrs, with one that clears DECL_RTL and
17459         checks that PARMs and RESULTs default_defs match DECL_RTL.
17460         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
17461         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
17462         * explow.c (promote_ssa_mode): New.
17463         * explow.h (promote_ssa_mode): Declare.
17464         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
17465         * function.c: Include cfgexpand.h.
17466         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
17467         (use_register_for_parm_decl): Wrapper for the above to
17468         special-case the result_ptr.
17469         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
17470         (split_complex_args): Take assign_parm_data_all argument.
17471         Pass it to rtl_for_parm.  Set up rtl and context for split
17472         args.
17473         (assign_parms_augmented_arg_list): Adjust.
17474         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
17475         multiple locations.  Recognize split complex args.
17476         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
17477         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
17478         (assign_parm_setup_block): Prefer SSA-assigned location.
17479         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
17480         if stack_parm is NULL.
17481         (assign_parm_setup_stack): Prefer SSA-assigned location.
17482         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
17483         rtl before testing for pointer bounds.  Special-case result_ptr.
17484         (expand_function_start): Maybe reset DECL_RTL of result.
17485         Prefer SSA-assigned location for result and static chain.
17486         Factor out DECL_RESULT and SET_DECL_RTL.
17487         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
17488         anonymous SSA names.  Use promote_ssa_mode.
17489         (get_temp_reg): Likewise.
17490         (remove_ssa_form): Adjust.
17491         * stor-layout.c (layout_decl): Don't set mem attributes of
17492         non-MEMs.
17493         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
17494         and get its reg_usage for reg invalidation.
17495         (compute_bb_dataflow): Pass it insn.
17496         (emit_notes_in_bb): Likewise.
17497
17498 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
17499
17500         * config/i386/i386.c (ix86_va_start): Remove
17501         unneeded !TARGET_64BIT check.
17502         (ix86_gimplify_va_arg): Ditto.
17503
17504 2015-07-24  Tom de Vries  <tom@codesourcery.com>
17505
17506         * graphite-sese-to-poly.c (build_poly_scop): Always call
17507         rewrite_commutative_reductions_out_of_ssa.
17508
17509 2015-07-24  Tom de Vries  <tom@codesourcery.com>
17510
17511         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
17512         flag_associative_math to FLOAT_TYPE_P.  Honour
17513         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
17514
17515 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17516
17517         PR c++/64079
17518         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
17519         and "%qD" in warning_at instead of "%q+D" in warning.
17520
17521 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
17522
17523         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
17524         (ix86_function_abi): Cleanup.
17525
17526 2015-07-24  Michael Darling  <darlingm@gmail.com>
17527
17528         PR other/66259
17529         * acinclude.m4: Reflects renaming of configure.in to configure.ac
17530         * configure: Likewise
17531         * configure.ac: Likewise
17532         * doc/install.texi: Likewise
17533         * doc/tm.texi: Likewise
17534         * doc/tm.texi.in: Likewise
17535
17536 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17537
17538         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
17539         manually swapping values.
17540         * cse.c (fold_rtx): Likewise.
17541         * lra-eliminations.c (form_sum): Likewise.
17542
17543 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
17544
17545         PR target/64003
17546         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
17547         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
17548         (*jcc_1, *jcc_2, jump, simple_return_internal)
17549         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
17550         Set length_nobnd attribute instead of length attribute.
17551         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
17552         (length_nobnd): Remove attribute.
17553         (length): Remove length_nobnd processing.
17554
17555 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
17556
17557         * gimplify.c (omp_default_clause): New function.  Reorganize flow
17558         for clarity. Broken out of ...
17559         (omp_notice_variable): ... here.
17560
17561 2015-07-24  Gary Funck  <gary@intrepid.com>
17562
17563         PR middle-end/66984
17564         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
17565         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
17566
17567 2015-07-24  Tom de Vries  <tom@codesourcery.com>
17568
17569         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
17570         exit-first loop transform.
17571
17572 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
17573
17574         PR 66714
17575         * tree-cfg.c (struct replace_decls_d): New struct.
17576         (replace_block_vars_by_duplicates_1): New function.
17577         (replace_block_vars_by_duplicates): Use it to replace the decls
17578         in the value exprs by duplicates.
17579
17580 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
17581
17582         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
17583         -shared, -symbolic, -rdynamic.
17584
17585 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
17586
17587         PR target/65711
17588         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
17589         -dynamic-linker within %{!static %{!shared, and -rdynamic within
17590         %{!static.
17591
17592 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
17593
17594         PR ipa/66566
17595         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
17596         edge summary is available.
17597
17598 2015-07-24  Richard Biener  <rguenther@suse.de>
17599
17600         * genmatch.c (struct dt_node): Add statistic fields.
17601         (dt_node::analyze): New method.
17602         (decision_tree::gen_gimple): Call analyze on the root node
17603         and print statistics to stderr.
17604         (decision_tree::gen_generic): Likewise.
17605
17606 2015-07-24  Richard Biener  <rguenther@suse.de>
17607
17608         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
17609         against the highest or lowest possible integer ...
17610         * match.pd: ... as patterns here.
17611
17612 2015-07-24  Richard Biener  <rguenther@suse.de>
17613
17614         * genmatch.c (struct capture_info): Add same_as field.
17615         (capture_info::capture_info): Initialize same_as.
17616         (capture_info::walk_match): Compute same_as.
17617         (capture_info::walk_result): Compute stuff for the leader.
17618         (capture_info::walk_c_expr): Likewise.
17619         (dt_simplify::gen_1): Only look at leaders when deciding
17620         to force no side-effects or emit side-effects of omitted operands.
17621
17622 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17623
17624         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
17625         reg note to the GPR -> FPR save instructions.
17626
17627 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17628
17629         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
17630         cheaper.
17631         (s390_expand_insv): Don't generate risbg pattern for constant zero
17632         sources.
17633         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
17634         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
17635         splitters.
17636
17637 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
17638
17639         * config/s390/s390.c (s390_reorg): Clean up handling of processors
17640         with
17641         -mtune=
17642         (s390_issue_rate): Likewise.
17643         (s390_sched_reorder): Likewise.
17644         (s390_sched_variable_issue): Likewise.
17645         (s390_loop_unroll_adjust): Likewise.
17646         (s390_option_override):  Likewise.
17647
17648 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
17649
17650         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
17651         processor capabilities with -march=native.
17652         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
17653         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
17654         (S390_TARGET_BITS_STRING): Macro to simplify specs.
17655
17656 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
17657
17658         * config/s390/s390.c (s390_issue_rate): Handle
17659         PROCESSOR_2094_Z9_EC.
17660         (s390_option_override): Likewise.
17661         (s390_adjust_priority): Likewise.
17662
17663 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
17664
17665         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
17666         when cross compiling.
17667
17668 2015-07-24  Richard Biener  <rguenther@suse.de>
17669
17670         * fold-const.c (maybe_canonicalize_comparison_1): Move
17671         A code CST canonicalization ...
17672         * match.pd: ... to a pattern here.
17673
17674 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
17675
17676         Revert:
17677         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
17678         PR target/63521
17679         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
17680         (HONOR_REG_ALLOC_ORDER): Define.
17681
17682 2015-07-24  Richard Biener  <rguenther@suse.de>
17683
17684         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
17685         * fold-const.c (fold_comparison): Move parameter does not
17686         alias &local simplification ...
17687         * match.pd: ... as a pattern here.
17688
17689 2015-07-24  Richard Biener  <rguenther@suse.de>
17690
17691         * gimple-fold.c (replace_stmt_with_simplification): Special-case
17692         valueizing call operands.
17693         * gimple-match-head.c (maybe_push_res_to_seq): Take
17694         number of call arguments from ops array.
17695         (do_valueize): New function.
17696         (gimple_simplify): Return true if valueization changed
17697         any operand even if the result didn't simplify further.
17698
17699 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
17700
17701         PR middle-end/25530
17702         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
17703
17704 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
17705
17706         PR middle-end/25529
17707         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
17708
17709 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
17710
17711         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
17712         instruction.
17713
17714 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
17715
17716         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
17717         clean up.
17718
17719 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
17720
17721         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
17722         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
17723         targets here.
17724         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
17725         ms_va_list_type_node initialization.
17726
17727 2015-07-23  Jeff Law  <law@redhat.com>
17728
17729         PR lto/66752
17730         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
17731         unable to find X NE 0 in the tables, return X as the simplified
17732         condition.
17733         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
17734         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
17735         to VISISTED_BBS.  */
17736         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
17737         after removing the control flow statement and unnecessary edges.
17738
17739 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17740
17741         * tree-pass.h (get_current_pass_name): Removed.
17742
17743 2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
17744
17745         PR rtl-optimization/64164
17746         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
17747         * tree-ssa-copyrename.c: Removed.
17748         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
17749         -ftree-coalesce-vars.
17750         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
17751         * common.opt (ftree-copyrename): Ignore.
17752         (ftree-coalesce-inlined-vars): Likewise.
17753         * doc/invoke.texi: Remove the ignored options above.
17754         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
17755         * tree-ssa-coalesce.h: ... here.
17756         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
17757         headers required by it.
17758         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
17759         across variables when flag_tree_coalesce_vars.  Check register
17760         use and promoted modes to allow coalescing.  Moved to
17761         tree-ssa-coalesce.c.
17762         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
17763         with its member functions to tree-ssa-coalesce.c.
17764         (var_map_base_init): Likewise.  Renamed to
17765         compute_samebase_partition_bases.
17766         (partition_view_normal): Drop want_bases parameter.
17767         (partition_view_bitmap): Likewise.
17768         * tree-ssa-live.h: Adjust declarations.
17769         * tree-ssa-coalesce.c: Include explow.h.
17770         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
17771         default defs at the entry point.
17772         (dump_part_var_map): New.
17773         (compute_optimized_partition_bases): New, called by...
17774         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
17775         of compute_samebase_partition_bases.  Adjust.
17776         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
17777         * cfgexpand.c (leader_merge): New.
17778         (get_rtl_for_parm_ssa_default_def): New.
17779         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
17780         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
17781         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
17782         redundant MEM attr setting.
17783         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
17784         from...
17785         (expand_one_stack_var): ... this.  New wrapper to check and
17786         skip already expanded SSA partitions.
17787         (record_alignment_for_reg_var): New, factored out of...
17788         (expand_one_var): ... this.
17789         (expand_one_ssa_partition): New.
17790         (adjust_one_expanded_partition_var): New.
17791         (expand_one_register_var): Check and skip already expanded SSA
17792         partitions.
17793         (expand_used_vars): Don't create DECLs for anonymous SSA
17794         names.  Expand all SSA partitions, then adjust all SSA names.
17795         (pass::execute): Replace the loops that set
17796         SA.partition_to_pseudo from partition leaders and cleared
17797         DECL_RTL for multi-location variables, and that which used to
17798         rename vars and set attrs, with one that clears DECL_RTL and
17799         checks that PARMs and RESULTs default_defs match DECL_RTL.
17800         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
17801         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
17802         * explow.c (promote_ssa_mode): New.
17803         * explow.h (promote_ssa_mode): Declare.
17804         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
17805         * function.c: Include cfgexpand.h.
17806         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
17807         (use_register_for_parm_decl): Wrapper for the above to
17808         special-case the result_ptr.
17809         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
17810         (split_complex_args): Take assign_parm_data_all argument.
17811         Pass it to rtl_for_parm.  Set up rtl and context for split
17812         args.
17813         (assign_parms_augmented_arg_list): Adjust.
17814         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
17815         multiple locations.  Recognize split complex args.
17816         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
17817         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
17818         (assign_parm_setup_block): Prefer SSA-assigned location.
17819         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
17820         if stack_parm is NULL.
17821         (assign_parm_setup_stack): Prefer SSA-assigned location.
17822         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
17823         rtl before testing for pointer bounds.  Special-case result_ptr.
17824         (expand_function_start): Maybe reset DECL_RTL of result.
17825         Prefer SSA-assigned location for result and static chain.
17826         Factor out DECL_RESULT and SET_DECL_RTL.
17827         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
17828         anonymous SSA names.  Use promote_ssa_mode.
17829         (get_temp_reg): Likewise.
17830         (remove_ssa_form): Adjust.
17831         * stor-layout.c (layout_decl): Don't set mem attributes of
17832         non-MEMs.
17833         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
17834         and get its reg_usage for reg invalidation.
17835         (compute_bb_dataflow): Pass it insn.
17836         (emit_notes_in_bb): Likewise.
17837
17838 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
17839
17840         PR target/66217
17841         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
17842         prototype.
17843         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
17844         (rs6000_emit_2insn_and): Handle dot forms.
17845         * config/rs6000/rs6000.md (and<mode>3): Adjust.
17846         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
17847         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
17848
17849 2015-07-23  Richard Biener  <rguenther@suse.de>
17850
17851         * generic-match-head.c: Include cgraph.h.
17852         * gimple-match-head.c: Likewise.
17853         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
17854         SSA names.
17855         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
17856         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
17857         pattern.
17858
17859 2015-07-23  Richard Biener  <rguenther@suse.de>
17860
17861         * gimple-fold.c (fold_gimple_cond): Do not require folding
17862         results to pass valid_gimple_rhs_p.
17863         * tree-cfg.h (fold_cond_expr_cond): Remove.
17864         * tree-cfg.c (fold_cond_expr_cond): Likewise.
17865         (make_edges): Do not call it.
17866         * tree-inline.c (tree_function_versioning): Likewise.
17867
17868 2015-07-23  Tom de Vries  <tom@codesourcery.com>
17869
17870         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
17871         vect_force_simple_reduction.
17872         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
17873         (vect_is_simple_reduction_1): Add and handle
17874         need_wrapping_integral_overflow parameter.
17875         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
17876         need_wrapping_integral_overflow parameter.
17877         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
17878         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
17879         decl.
17880
17881 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
17882
17883         PR tree-optimization/66926,66951
17884         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
17885         INNER_LOOP and fix up condition for renaming virtual operands.
17886
17887 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17888
17889         * combine.c (try_combine): Use std::swap instead of manually
17890         swapping.
17891
17892 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
17893
17894         * config/mips/i6400.md: New file.
17895         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
17896         (mips64r6): Likewise.
17897         (i6400): Define.
17898         * config/mips/mips-tables.opt: Regenerate.
17899         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
17900         (mips_issue_rate): Add support for i6400.
17901         (mips_multipass_dfa_lookahead): Likewise.
17902         * config/mips/mips.h (TUNE_I6400): Define.
17903         * config/mips/mips.md: Include i6400.md.
17904         (processor): Add i6400.
17905         * doc/invoke.texi (-march=@var{arch}): Add i6400.
17906
17907 2015-07-23  Richard Biener  <rguenther@suse.de>
17908
17909         PR middle-end/66916
17910         * match.pd: Guard widen and sign-change comparison simplification
17911         with single_use.
17912
17913 2015-07-23  Richard Biener  <rguenther@suse.de>
17914
17915         PR tree-optimization/66945
17916         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
17917         ::before_dom_children): Force the propagators idea of
17918         non-executable edges to materialize, not what the folder
17919         chooses.
17920
17921 2015-07-23  Richard Biener  <rguenther@suse.de>
17922
17923         * gimple.h (gimple_cond_make_false): Use 0 != 0.
17924         (gimple_cond_make_true): Use 1 != 0.
17925
17926 2015-07-22  DJ Delorie  <dj@redhat.com>
17927
17928         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
17929         slashes.
17930
17931         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
17932         (ashrhi3): Likewise.
17933         (lshrhi3): Likewise.
17934         (movhi): Take advantage of zero-extend to load small constants.
17935         (movpsi): Likewise.
17936         (and<mode>3): Likewise.
17937         (zero_extendqihi2): Likewise.
17938         (zero_extendqisi2): New.
17939         * config/msp430/constraints.md (N,O): New.
17940         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
17941
17942 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
17943
17944         PR target/66954
17945         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
17946         to enum feature_priority and feature_list.
17947         (fold_builtin_cpu): Add F_AES to enum processor_features
17948         and isa_names_table.
17949
17950 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
17951
17952         PR driver/66737
17953         * config/i386/linux-common.h (MPX_SPEC): Use linker option
17954         for 64bit target only.
17955
17956 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
17957
17958         * config/nvptx/nvptx.c: Expand some comments.
17959
17960 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
17961
17962         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
17963         (cortex_a53_advsimd): ...This.
17964
17965 2015-07-22  Richard Biener  <rguenther@suse.de>
17966
17967         * genmatch.c (expr::gen_transform): Clarify error message
17968         and display location.
17969
17970 2015-07-22  Richard Biener  <rguenther@suse.de>
17971
17972         * genmatch.c (struct operand): Add location member.
17973         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
17974         constructors.
17975         (struct simplify): Remove match_location and result_location
17976         members.
17977         (elsehwere): Adjust.
17978
17979 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
17980
17981         * config/mips/m5100.md: New file.
17982         * config/mips/mips-cpus.def (m5100, m5101): Define.
17983         * config/mips/mips-tables.opt: Regenerate.
17984         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
17985         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
17986         -march=m5101 to -mips32r5.
17987         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
17988         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
17989         !-msoft-float.
17990         * config/mips/mips.md: Include m5100.md.
17991         (processor): Add m5100.
17992         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
17993
17994 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
17995
17996         * config/mips/mips-cpus.def (interaptiv): Define.
17997         * config/mips/mips-tables.opt: Regenerate.
17998         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
17999         -mips32r2.
18000         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
18001         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
18002
18003 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
18004
18005         PR target/63521
18006         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
18007         (HONOR_REG_ALLOC_ORDER): Define.
18008
18009 2015-07-22  Richard Biener  <rguenther@suse.de>
18010
18011         PR tree-optimization/66952
18012         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
18013         blocks we end up executing unconditionally reset all SSA
18014         info such as range and alignment.
18015         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
18016         * tree-ssanames.c (reset_flow_sensitive_info): New function.
18017
18018 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
18019
18020         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
18021         typo in attribute.
18022
18023 2015-07-22  Richard Biener  <rguenther@suse.de>
18024
18025         * genmatch.c (parser::parse_result): Properly handle
18026         match with result operands and conditions.
18027
18028 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
18029
18030         PR target/63870
18031         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
18032         Add qualifier_struct_load_store_lane_index.
18033         (aarch64_types_loadstruct_lane_qualifiers): Use
18034         qualifier_struct_load_store_lane_index for lane index argument for
18035         last argument.
18036         (aarch64_types_storestruct_lane_qualifiers): Ditto.
18037         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
18038         (aarch64_simd_expand_args): Add new argument describing mode of
18039         builtin. Check lane bounds for arguments with
18040         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
18041         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
18042         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
18043         (aarch64_simd_expand_builtin): Handle arguments with
18044         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
18045         aarch64_simd_expand_args.
18046         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
18047         vst[234]_lane with BUILTIN_VALLDIF.
18048         * config/aarch64/aarch64-simd.md:
18049         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
18050         endianness reversal on lane index.
18051         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
18052         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
18053         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
18054         (vec_store_lanesci_lane<mode>): Ditto.
18055         (vec_store_lanesxi_lane<mode>): Ditto.
18056         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
18057         reversal of lane index.
18058         (aarch64_ld3_lane<mode>): Ditto.
18059         (aarch64_ld4_lane<mode>): Ditto.
18060         (aarch64_st2_lane<mode>): Ditto.
18061         (aarch64_st3_lane<mode>): Ditto.
18062         (aarch64_st4_lane<mode>): Ditto.
18063         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
18064         to qmode. Add new mode parameter. Update uses.
18065         (__LD3_LANE_FUNC): Ditto.
18066         (__LD4_LANE_FUNC): Ditto.
18067         (__ST2_LANE_FUNC): Ditto.
18068         (__ST3_LANE_FUNC): Ditto.
18069         (__ST4_LANE_FUNC): Ditto.
18070
18071 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
18072
18073         * doc/invoke.texi (Language Independent Options): Rename node to
18074         Diagnostic Message Formatting Options.
18075
18076 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
18077
18078         PR ipa/66424.
18079         * lra-remat.c (operand_to_remat): Prevent using insns with input
18080         subregs processed separately by IRA.
18081
18082 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
18083
18084         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
18085         straight loops.
18086         (single_imm_use): Check for iterator node.
18087         (num_imm_uses): Likewise.
18088         * tree-ssa-operands.c (has_zero_uses_1): Delete.
18089         (single_imm_use_1): Check for iterator node.
18090
18091 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
18092             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
18093
18094         * configure.ac: Add check for new options in isl-0.15.
18095         * config.in, configure: Rebuilt.
18096         * graphite-blocking.c: Include <isl/constraint.h>
18097         * graphite-interchange.c,  graphite-poly.c: Likewise.
18098         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
18099         * graphite.c: Likewise.
18100         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
18101         <isl/union_set.h>.
18102         * graphite-dependences.c: Include <isl/constraint.h>.
18103         (max_number_of_out_dimensions): Returns isl_stat.
18104         (extend_schedule_1): Likewise
18105         (extend_schedule): Corresponding changes.
18106         * graphite-optimize-isl.c: Include <isl/constraint.h> and
18107         <isl/union_set.h>.
18108         (getSingleMap): Change return type of isl_stat.
18109         (optimize_isl): Conditionally use
18110         isl_options_set_schedule_serialize_sccs.
18111         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
18112         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
18113
18114 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
18115
18116         PR target/66956
18117         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
18118         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
18119
18120 2015-07-21  Richard Biener  <rguenther@suse.de>
18121
18122         PR tree-optimization/66948
18123         * genmatch.c (capture_info::walk_match): Also recurse to
18124         captures.  Properly compute expr state from captures of
18125         captures.
18126         * match.pd: Add single-use guards to
18127         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
18128
18129 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
18130
18131         * config/nvptx/mkoffload.c (process): Add static destructor call.
18132
18133 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18134
18135         PR middle-end/66915
18136         * match.pd (A - B -> A + (-B)): Don't allow folding
18137         when type if a fixed-point type.
18138
18139 2015-07-20  DJ Delorie  <dj@redhat.com>
18140
18141         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
18142         (iorqi3_real): Likewise for set1.
18143
18144 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
18145
18146         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
18147         for !TARGET_64BIT.
18148
18149 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
18150
18151         * graphite-isl-ast-to-gimple.c:
18152         Refactor so that each function can access 'region'. This will help
18153         maintain a parameter rename_map within a region.
18154
18155 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
18156
18157         * config/rs6000/rs6000.md (*lt0_disi): New.
18158
18159 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
18160
18161         PR target/66217
18162         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
18163         "available letters" comment.
18164         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
18165         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
18166         and_2rld_operand):  Delete.
18167         (and_operand): Adjust.
18168         (rotate_mask_operator): New.
18169         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
18170         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
18171         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
18172         extract_ME): Delete.
18173         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
18174         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
18175         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
18176         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
18177         rs6000_emit_2insn_and): New.
18178         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
18179         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
18180         includes_rldic_lshift_p, includes_rldicr_lshift_p,
18181         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
18182         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
18183         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
18184         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
18185         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
18186         rs6000_emit_2insn_and): New.
18187         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
18188         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
18189         handling.
18190         <NOT>: Don't fall through to next case.
18191         <AND>: Handle the various rotate-and-mask cases directly.
18192         <IOR>: Always cost as one insn.
18193         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
18194         (and<mode>3): Adjust expander for the new patterns.
18195         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
18196         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
18197         (*and<mode>3_imm_dot_shifted): New.
18198         (*and<mode>3_mask): Delete, rewrite as ...
18199         (and<mode>3_mask): ... New.
18200         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
18201         (andsi3_internal0_nomc): Delete.
18202         (*andsi3_internal6): Delete.
18203         (*and<mode>3_2insn): New.
18204         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
18205         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
18206         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
18207         *insvdi_internal3): Delete.
18208         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
18209         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
18210         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
18211         *ior<mode>_mask): New.
18212         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
18213         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
18214         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
18215         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
18216         Delete.
18217         (ashr<mode>3): Delete expander.
18218         (*ashr<mode>3): Rename to ...
18219         (ashr<mode>3): ... This.
18220         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
18221         (*rotldi3_internal4, *rotldi3_internal5 and split,
18222         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
18223         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
18224         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
18225         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
18226         (splitter for loading a mask): Adjust.
18227         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
18228
18229 2015-07-20  Marek Polacek  <polacek@redhat.com>
18230
18231         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
18232         output_add_clobbers, output_added_clobbers_hard_reg_p,
18233         gen_rtx_scratch): Remove declarations.
18234
18235 2015-07-20  Marek Polacek  <polacek@redhat.com>
18236
18237         PR c++/55095
18238         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
18239
18240 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18241
18242         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
18243         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
18244
18245 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18246
18247         * combine.c (combine_simplify_rtx): Move simplification step
18248         before various transformations/substitutions.
18249
18250 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
18251
18252         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
18253         (struct int_traits): Likewise.
18254
18255 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18256
18257         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
18258         function to vmsdbgout_function_decl.
18259
18260 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
18261
18262         PR target/66922
18263         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
18264         from misaligned positions.
18265         (ix86_expand_pinsr): Reject insertions to misaligned positions.
18266
18267 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
18268
18269         PR middle-end/46851
18270         PR middle-end/60340
18271         * Makefile.in: Removed omega.o.
18272         * common.opt: Document flag fcheck-data-deps as deprecated.
18273         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
18274         its associated params: omega-max-vars, omega-max-geqs,
18275         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
18276         omega-max-keys, omega-eliminate-redundant-constraints.
18277         * doc/loop.texi: Remove all the section on Omega.
18278         * graphite-blocking.c: Include missing params.h: it used to be
18279         included through tree-data-ref.h and omega.h.
18280         * graphite-isl-ast-to-gimple.c: Same.
18281         * graphite-optimize-isl.c: Same.
18282         * graphite-sese-to-poly.c: Same.
18283         * graphite.c: Same.
18284         * omega.c: Remove.
18285         * omega.h: Remove.
18286         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
18287         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
18288         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
18289         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
18290         * passes.def: Remove pass_check_data_deps.
18291         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
18292         (dump_conflict_function): Same.
18293         (dump_subscript): Same.
18294         (print_direction_vector): Same.
18295         (print_dir_vectors): Same.
18296         (print_lambda_vector): Same.
18297         (print_dist_vectors): Same.
18298         (dump_data_dependence_relation): Same.
18299         (dump_data_dependence_relations): Same.
18300         (dump_dist_dir_vectors): Same.
18301         (dump_ddrs): Same.
18302         (init_omega_eq_with_af): Removed.
18303         (omega_extract_distance_vectors): Removed.
18304         (omega_setup_subscript): Removed.
18305         (init_omega_for_ddr_1): Removed.
18306         (init_omega_for_ddr): Removed.
18307         (ddr_consistent_p): Removed.
18308         (compute_affine_dependence): Do not use omega to check data
18309         dependences.
18310         (compute_data_dependences_for_bb): Removed.
18311         (analyze_all_data_dependences): Removed.
18312         (tree_check_data_deps): Removed.
18313         * tree-data-ref.h: Do not include omega.h.
18314         (compute_data_dependences_for_bb): Removed.
18315         (tree_check_data_deps): Removed.
18316         * tree-ssa-loop.c (pass_check_data_deps): Removed.
18317         (make_pass_check_data_deps): Removed.
18318         * tree-ssa-phiopt.c: Include params.h.
18319         * tree-vect-data-refs.c: Same.
18320         * tree-vect-slp.c: Same.
18321
18322 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
18323
18324         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
18325         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
18326         (mem->fpreg splitters): Ditto.
18327         (general_operand->nonimmediate_operand splitter): Use explicit modes.
18328         Disable DFmode for TARGET_64BIT.
18329
18330 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
18331
18332         PR target/66906
18333         * config/i386/i386.c (ix86_expand_prologue): Replicate static
18334         chain on the stack.
18335
18336 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
18337
18338         * config/nvptx/mkoffload.c (process): Constify host data.
18339         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
18340         Constify host data.
18341         (generate_host_descr_file): Likewise.
18342
18343 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
18344             Sebastian Pop  <s.pop@samsung.com>
18345
18346         PR middle-end/61929
18347         * graphite-dependences.c (add_pdr_constraints): Renamed
18348         pdr->extent to pdr->subscript_sizes.
18349         * graphite-interchange.c (build_linearized_memory_access): Add
18350         back all gcc_assert's that the "isl_int to isl_val conversion"
18351         patch has removed.  Refactored.
18352         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
18353         * graphite-poly.c (new_poly_dr): Same.
18354         (free_poly_dr): Same.
18355         * graphite-poly.h (struct poly_dr): Same.
18356         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
18357         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
18358         * graphite-scop-detection.h: Fix space.
18359         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
18360         back all gcc_assert's removed by a previous patch.
18361         (wrap): Remove the_isl_ctx global variable that the same patch has
18362         added.
18363         (build_loop_iteration_domains): Same.
18364         (add_param_constraints): Same.
18365         (pdr_add_data_dimensions): Same.  Refactored.
18366         (build_poly_dr): Renamed extent to subscript_sizes.
18367
18368 2015-07-17  Marek Polacek  <polacek@redhat.com>
18369
18370         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
18371         * match.pd: ... here.
18372
18373 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
18374
18375         * config/nvptx/mkoffload.c (process): Constify target data.
18376         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
18377         Constify target data.
18378         (generate_target_offloadend_file): Likewise.
18379
18380 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
18381
18382         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
18383         to allow renaming of PHI arguments on edges incoming from outer
18384         loop header, add corresponding check before start PHI iterator.
18385         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
18386         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
18387         with true force_vectorize.  Set-up dominator for outer loop too.
18388         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
18389         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
18390         was marked with force_vectorize and has restricted cfg.
18391         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
18392         inner loop.
18393         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
18394         do peeling for outer loops.
18395
18396 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
18397             Matthias Klose  <doko@ubuntu.com>
18398
18399         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
18400         build-sysroot, sysroot from the `Miscenalleous configure options' to
18401         the `Directories' section and strip trailing `/' from with_sysroot.
18402         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
18403         * configure: Regenerated.
18404
18405 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
18406
18407         PR target/66824
18408         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
18409         (TARGET_HARD_DF_REGS): Ditto.
18410         (TARGET_HARD_XF_REGS): Ditto.
18411         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
18412         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
18413         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
18414         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
18415         (*movsf_internal): Add alternatives 16 and 17. Enable
18416         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
18417
18418 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
18419
18420         PR rtl-optimization/66891
18421         * calls.c (expand_call): Wrap precompute_register_parameters with
18422         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
18423
18424 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
18425
18426         * config/nvptx/mkoffload.c (process): Constify mapping variables.
18427         Define target data struct and initialize it.
18428
18429 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
18430
18431         PR rtl-optimization/66626
18432         * ira.h (emit-rtl.h): Include.
18433         (non_spilled_static_chain_regno_p): New.
18434         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
18435         unless it is non spilled static chain pseudo.
18436         (assign_hard_rego): Spill memory profitable allocno unless it is
18437         non spilled static chain pseudo.
18438         (allocno_spill_priority_compare): Put non spilled static chain
18439         pseudo at the end of sorted array.
18440         (improve_allocation): Do nothing if we have static chain and
18441         non-local goto.
18442         (allocno__priority_compare_func): Put non spilled static chain
18443         pseudo at the beginning of sorted array.
18444         (move_spill_restore): Ignore non spilled static chain pseudo.
18445         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
18446         to non spilled static chain pseudo.
18447         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
18448         pseudo at the beginning of sorted array.
18449         (spill_for): Spill non spilled static chain pseudo last.
18450         * lra-constraints.c (lra_constraints): Remove static chain pseudo
18451         check for equivalence.
18452
18453 2015-07-16  Martin Liska  <mliska@suse.cz>
18454
18455         PR ipa/66896.
18456         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
18457         dst_ctx if it does not exist.
18458
18459 2015-07-16  Martin Liska  <mliska@suse.cz>
18460
18461         * hash-set.h (remove): New function.
18462         (iterator): New iteration class for hash_set.
18463
18464 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
18465
18466         * genattrtab.c (make_canonical): Add a file_location parameter.
18467         Use fatal_at rather than fatal.
18468         (get_attr_value): Likewise.  Update call to make_canonical.
18469         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
18470         (make_internal_attr): Update calls accordingly.
18471
18472 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
18473
18474         * read-md.h (message_with_line, error_with_line): Delete.
18475         * read-md.c (message_with_line, error_with_line): Delete.
18476         * gensupport.h: Include read-md.h.
18477         (md_rtx_info): New structure.
18478         (read_md_rtx): Use it.  Return a bool success value.
18479         * gensupport.c (read_md_rtx): Likewise.
18480         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
18481         (main): Update after interface changes.
18482         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
18483         (main): Update after interface changes.
18484         * genattrtab.c (insn_code_number): Delete.
18485         (optimize_attrs): Add a max_insn_code parameter and use it instead
18486         of insn_code_number.
18487         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
18488         Use *_at rather than *_with_line functions.
18489         (gen_insn): Likewise.
18490         (gen_delay): Likewise.
18491         (gen_insn_reserv): Likewise.
18492         (gen_bypass): Take an md_rtx_info rather than an rtx.
18493         (main): Update after interface changes.  Use a local max_insn_code
18494         variable instead of insn_code_number.
18495         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
18496         an rtx.  Use fatal_at rather than fatal.
18497         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
18498         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
18499         (gen_absence_set, gen_final_absence_set, gen_automaton)
18500         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
18501         (main): Update after interface changes.
18502         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
18503         and code number.
18504         (main): Update after interface changes.
18505         * genconditions.c (main): Use new read_md_rtx interface.
18506         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
18507         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
18508         (main): Update after interface changes.
18509         * genemit.c (insn_code_number, insn_index_number): Delete.
18510         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
18511         Use fatal_at rather than fatal.
18512         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
18513         rather than fatal.
18514         (gen_split): Likewise.
18515         (main): Update after interface changes.
18516         * genextract.c (line_no): Delete.
18517         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
18518         Update call to walk_rtx.
18519         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
18520         rather than message_with_line.
18521         (walk_rtx): Add an md_rtx_info argument.  Update call to
18522         VEC_safe_set_locstr.
18523         (main): Update after interface changes.
18524         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
18525         and lineno.  Use error_at rather than separate message_with_line
18526         calls and have_error assignments.
18527         (main): Update after interface changes.
18528         * genmddump.c (main): Use new read_md_rtx interface.
18529         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
18530         (main): Update after interface changes.
18531         * genoutput.c (next_code_number): Delete.
18532         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
18533         (gen_peephole, gen_expand, gen_split): Likewise.
18534         (note_constraint): Likewise.  Use *_at rather than *_with_line
18535         functions.
18536         (main): Update after interface changes.
18537         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
18538         rtx and lineno.
18539         (main): Update after interface changes.
18540         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
18541         than an rtx and lineno.
18542         (process_define_constraint): Likewise.
18543         (process_define_register_constraint): Likewise.
18544         (main): Update after interface changes.
18545         * genrecog.c (next_insn_code, pattern_lineno): Delete.
18546         (validate_pattern): Replace top-level rtx with an md_rtx_info.
18547         Use *_at rather than *_with_line functions.
18548         (match_pattern_2): Likewise.
18549         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
18550         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
18551         Use *_at rather than *_with_line functions.
18552         * gentarget-def.c (add_insn): New function.
18553         (main): Use it.  Use new read_md_rtx interface.
18554
18555 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
18556
18557         * gensupport.h (compute_test_codes): Take a file_location rather
18558         than a line number.
18559         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
18560         rather than *_with_line functions.
18561         (process_define_predicate): Update call to compute_test_codes.
18562         * genpreds.c (validate_exp): Take a file_location rather than a
18563         line number.  Use *_at functions rather than *_with_line functions.
18564         (process_define_predicate): Update call to validate_exp.
18565         (constraint_data): Replace lineno field with a file_location.
18566         (add_constraint): Take a file_location rather than a line number.
18567         Use *_at functions rather than *_with_line functions.  Fix error
18568         message for address constraints.  Update after changes to
18569         validate_exp, constraint_data and compute_test_codes.
18570         (process_define_constraint): Update accordingly.
18571         (process_define_register_constraint): Likewise.
18572
18573 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
18574
18575         * genoutput.c (data): Use a file_location to record the source
18576         position.
18577         (nothing): Delete.
18578         (idata, idata_end): Remove initialization.
18579         (constraint_data): Replace lineno with a file_location.
18580         (output_insn_data): Update after changes to data.
18581         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
18582         (scan_operands): Likewise, using *_at rather than *_with_line
18583         functions.
18584         (process_template): Likewise.
18585         (validate_insn_alternatives): Likewise.
18586         (validate_insn_operands): Likewise.
18587         (validate_optab_operands): Likewise.
18588         (init_insn_for_nothing): Initialize idata and idata_end.
18589         (note_constraint): Update after changes to constraint_data,
18590         using at rather than with_line functions.
18591         (mdep_constraint_len): Take a file_location rather than a
18592         line number.  Use at rather than with_line functions.
18593
18594 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
18595
18596         * read-md.h (fatal_at): Declare.
18597         * read-md.c (fatal_at): New function.
18598         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
18599         to record the source position.
18600         (check_attr_test): Take a file_location instead of a line number.
18601         Use fatal_at instead of fatal.
18602         (check_attr_value): Update after above changes, using "at"
18603         rather than "with_line" reporting functions.
18604         (convert_set_attr_alternative): Likewise.
18605         (gen_attr): Likewise.
18606         (check_defs): Likewise.  Don't assign to read_md_filename.
18607         (gen_insn): Update initialization after above changes.
18608         (gen_delay): Likewise.
18609         (write_insn_cases): Print the filename for a define_peephole.
18610         (gen_insn_reserv): Take a line number as argument and update
18611         the call to check_attr_test.
18612         (main): Pass a line number to gen_insn_reserv.
18613
18614 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
18615
18616         * read-md.h (file_location): New structure.
18617         (directive_handler_t): Take a file_location rather than a line number.
18618         (message_at, error_at): Declare.
18619         (read_skip_construct): Delete.
18620         * read-md.c (message_with_line_1): Replace with...
18621         (message_at_1): ...this new function.
18622         (message_at, error_at): New functions.
18623         (message_with_line, error_with_line): Update to use message_at_1.
18624         (handle_enum): Take a file_location rather than a line number
18625         and use error_at for error reporting.
18626         (handle_include): Likewise.
18627         (read_skip_construct): Likewise.  Make static.
18628         (handle_file): Update after above changes.  Pass a file_location
18629         rather than a line number to handle_directive.
18630         * gensupport.c (queue_elem): Replace separate filename and lineno
18631         with a file_location.
18632         (queue_pattern): Replace filename and lineno arguments with a
18633         file_location.  Update after change to queue_elem.
18634         (process_define_predicate): Replace lineno argument with a
18635         file_location and use error_at for error reporting.  Update
18636         after above changes.
18637         (process_rtx): Likewise.
18638         (subst_pattern_match): Likewise.
18639         (get_alternatives_number): Likewise.
18640         (alter_predicate_for_insn): Likewise.
18641         (rtx_handle_directive): Likewise.
18642         (is_predicable): Update after above changes, using error_at rather
18643         than error_with_line.
18644         (has_subst_attribute): Likewise.
18645         (identify_predicable_attribute): Likewise.
18646         (alter_attrs_for_subst_insn): Likewise.
18647         (process_one_cond_exec): Likewise.
18648         (process_substs_on_one_elem): Likewise.
18649         (process_define_subst): Likewise.
18650         (check_define_attr_duplicates): Likewise.
18651         (read_md_rtx): Update after change to queue_elem.
18652
18653 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
18654
18655         * genoutput.c (next_index_number): Delete.
18656         (data): Remove index_number.
18657         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
18658         (main): Remove manipulation of next_index_number.
18659
18660 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
18661
18662         * genattrtab.c (check_attr_value): Remove handling of null attrs.
18663         (make_canonical): Likewise.
18664
18665 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
18666
18667         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
18668         instead of adjust_address_nv.
18669         (restore_stack_nonlocal): Likewise.
18670         (nonlocal_goto): Likewise.
18671
18672 2015-07-16  Tom de Vries  <tom@codesourcery.com>
18673
18674         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
18675         not have a corresponding loop header phi.
18676
18677 2015-07-16  Tom de Vries  <tom@codesourcery.com>
18678
18679         * tree-parloops.c (create_loads_for_reductions): Handle case that
18680         reduction is unused.
18681
18682 2015-07-16  Richard Biener  <rguenther@suse.de>
18683
18684         PR tree-optimization/66894
18685         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
18686         about deriving NE_EXPR from truncated values.
18687
18688 2015-07-16  Martin Liska  <mliska@suse.cz>
18689
18690         * alloc-pool.h
18691         (object_allocator): Add new class.
18692         (pool_allocator::initialize): Use the underlying class.
18693         (pool_allocator::allocate): Likewise.
18694         (pool_allocator::remove): Likewise.
18695         (operator new): A new generic allocator.
18696         * asan.c (struct asan_mem_ref): Remove unused members.
18697         (asan_mem_ref_new): Replace new operator with
18698         object_allocator::allocate.
18699         (free_mem_ref_resources): Change deallocation.
18700         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
18701         with object_allocator.
18702         * config/sh/sh.c (add_constant): Replace new operator with
18703         object_allocator::allocate.
18704         (sh_reorg): Change call to a release method.
18705         * cselib.c (struct elt_list): Remove unused members.
18706         (new_elt_list): Replace new operator with
18707         object_allocator::allocate.
18708         (new_elt_loc_list): Likewise.
18709         (new_cselib_val): Likewise.
18710         (unchain_one_elt_list): Change delete operator with remove method.
18711         (unchain_one_elt_loc_list): Likewise.
18712         (unchain_one_value): Likewise.
18713         (cselib_finish): Release newly added static allocators.
18714         * cselib.h (struct cselib_val): Remove unused members.
18715         (struct elt_loc_list): Likewise.
18716         * df-problems.c (df_chain_alloc): Replace pool_allocator with
18717         object_allocator.
18718         * df-scan.c (struct df_scan_problem_data): Likewise.
18719         (df_scan_alloc): Likewise.
18720         * df.h (struct dataflow): Likewise.
18721         * dse.c (struct read_info_type): Likewise.
18722         (struct insn_info_type): Likewise.
18723         (struct dse_bb_info_type): Likewise.
18724         (struct group_info): Likewise.
18725         (struct deferred_change): Likewise.
18726         (get_group_info): Likewise.
18727         (delete_dead_store_insn): Likewise.
18728         (free_read_records): Likewise.
18729         (replace_read): Likewise.
18730         (check_mem_read_rtx): Likewise.
18731         (scan_insn): Likewise.
18732         (dse_step1): Likewise.
18733         (dse_step7): Likewise.
18734         * et-forest.c (struct et_occ): Remove unused members.
18735         (et_new_occ): Use allocate instead of new operator.
18736         (et_new_tree): Likewise.
18737         (et_free_tree): Call release method explicitly.
18738         (et_free_tree_force): Likewise.
18739         (et_free_pools): Likewise.
18740         (et_split): Use remove instead of delete operator.
18741         * et-forest.h (struct et_node): Remove unused members.
18742         * ipa-cp.c: Change pool_allocator to object_allocator.
18743         * ipa-inline-analysis.c: Likewise.
18744         * ipa-profile.c: Likewise.
18745         * ipa-prop.c: Likewise.
18746         * ipa-prop.h: Likewise.
18747         * ira-build.c (initiate_cost_vectors): Cast return value.
18748         (ira_allocate_cost_vector): Likewise.
18749         * ira-color.c (struct update_cost_record): Remove unused members.
18750         * lra-int.h (struct lra_live_range): Likewise.
18751         (struct lra_copy): Likewise.
18752         (struct lra_insn_reg): Likewise.
18753         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
18754         * lra.c (new_insn_reg): Replace new operator with allocate method.
18755         (free_insn_regs): Same for operator delete.
18756         (finish_insn_regs): Release new static allocator.
18757         (finish_insn_recog_data): Likewise.
18758         (lra_free_copies): Replace delete operator with remove method.
18759         (lra_create_copy): Replace operator new with allocate method.
18760         (invalidate_insn_data_regno_info): Same for remove method.
18761         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
18762         (free_debug_insn_changes): Replace delete operator with remove method.
18763         (replace_oldest_value_reg): Replace operator new with allocate method.
18764         (pass_cprop_hardreg::execute): Release new static variable.
18765         * sched-deps.c (sched_deps_init): Change pool_allocator to
18766         object_allocator.
18767         * sel-sched-ir.c: Likewise.
18768         * sel-sched-ir.h: Likewise.
18769         * stmt.c (expand_case): Likewise.
18770         (expand_sjlj_dispatch_table): Likewise.
18771         * tree-sra.c (struct access): Remove unused members.
18772         (struct assign_link): Likewise.
18773         (sra_deinitialize): Release newly added static pools.
18774         (create_access_1):Replace operator new with allocate method.
18775         (build_accesses_from_assign): Likewise.
18776         (create_artificial_child_access): Likewise.
18777         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
18778         pool_allocator to object_allocator.
18779         * tree-ssa-pre.c: Likewise.
18780         * tree-ssa-reassoc.c: Likewise.
18781         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
18782         * tree-ssa-strlen.c: Likewise.
18783         * tree-ssa-structalias.c: Likewise.
18784         * var-tracking.c (onepart_pool_allocate): New function.
18785         (unshare_variable): Use the newly added function.
18786         (variable_merge_over_cur): Likewise.
18787         (variable_from_dropped): Likewise.
18788         (variable_was_changed): Likewise.
18789         (set_slot_part): Likewise.
18790         (emit_notes_for_differences_1): Likewise.
18791         (vt_finalize): Release newly added static pools.
18792
18793 2015-07-16  Martin Jambor  <mjambor@suse.cz>
18794
18795         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
18796         all uses.  Fix two typos in its general comment.
18797         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
18798
18799 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
18800
18801         * config/i386/linux-common.h (LINK_MPX): New.
18802         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
18803         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
18804         indicating '-z bndplt' support by linker.
18805         * configure: Regenerate.
18806         * config.in: Regenerate.
18807
18808 2015-07-16  Richard Biener  <rguenther@suse.de>
18809
18810         * fold-const.c (fold_widened_comparison): Remove.
18811         (fold_sign_changed_comparison): Likewise.
18812         (fold_comparison): Move widened and sign-changed comparison
18813         simplification ...
18814         * match.pd: ... to patterns here.
18815         * generic-match-head.c: Include target.h.
18816         * gimple-match-head.c: Likewise.
18817
18818 2015-07-16  Richard Biener  <rguenther@suse.de>
18819
18820         * tree-ssa-dom.c (dom_valueize): New function.
18821         (record_temporary_equivalences): Also record equivalences
18822         for dominating stmts that have uses of equivalences we are
18823         about to record.
18824
18825 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
18826
18827         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
18828         add_autoinc_candidates.
18829         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
18830         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
18831         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
18832         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
18833         Call new function.
18834         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
18835         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
18836         Remove parameter struct iv*.  Call add_autoinc_candidates here.
18837         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
18838         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
18839         Call new function.
18840         (find_iv_candidates): Call new functions.
18841
18842 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
18843
18844         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
18845         uninitialized-variable warning.
18846
18847 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
18848
18849         PR target/65249
18850         * config/sh/sh.md (movdi): Split simple reg move to two movsi
18851         when the destination is R0.
18852
18853 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
18854
18855         PR target/66866
18856         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
18857         * config/i386/i386.c (ix86_expand_pextr): New function.
18858         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
18859         for non-lowpart subregs.
18860         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
18861         (insv<mode>): Use SWI248 mode iterator.
18862         (insv<mode>_1): Ditto.
18863
18864 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
18865             Sebastian Pop  <s.pop@samsung.com>
18866
18867         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
18868         iterator to use_stmt.
18869
18870 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
18871             Sebastian Pop <s.pop@samsung.com>
18872
18873         * graphite-scop-detection.c (build_scops_1): Discard scops for
18874         which entry==exit.
18875
18876 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
18877             Sebastian Pop <s.pop@samsung.com>
18878
18879         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
18880         case of a return statement in scop.
18881
18882 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
18883             Sebastian Pop <s.pop@samsung.com>
18884
18885         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
18886         INTEGER_TYPE parameters.
18887         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
18888         VECTOR_CST in scan_tree_for_params.
18889         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
18890
18891 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
18892
18893         * gimple-pretty-print.h: Don't include pretty-print.h.
18894         * tree-streamer.h: Don't include lto-streamer.h.
18895         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
18896         * gimple-streamer-in.c: Remove redundant includes.
18897         * gimple-streamer-out.c: Likewise.
18898         * ipa-devirt.c: Likewise.
18899         * ipa-icf.c: Likewise.
18900         * ipa-inline-analysis.c: Likewise.
18901         * ipa-polymorphic-call.c: Likewise.
18902         * ipa-profile.c: Likewise.
18903         * ipa-prop.c: Likewise.
18904         * ipa-pure-const.c: Likewise.
18905         * lto-cgraph.c: Likewise.
18906         * lto-streamer-in.c: Likewise.
18907         * lto-streamer-out.c: Likewise.
18908         * lto-streamer.c: Likewise.
18909         * tree-streamer-in.c: Likewise.
18910         * tree-streamer-out.c: Likewise.
18911         * tree-streamer.c: Likewise.
18912
18913 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
18914
18915         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
18916         include input.h.
18917         * opts.c: Remove multiline #include comment.
18918
18919 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
18920
18921         * config/nvptx/mkoffload.c (process): Add C++ protection to
18922         emitted code.
18923
18924 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
18925
18926         PR target/66854
18927         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
18928         null before IEEE 128-bit floating point support patch.
18929
18930 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18931
18932         * simplify-rtx.c (simplify_ternary_operation): Add simplification
18933         for (!c) != {0,...,0} ? a : b for vector modes.
18934
18935 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
18936             Martin Jambor  <mjambor@suse.cz>
18937
18938         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
18939         struct func_body_info* instead of struct ipa_node_params*, expecting
18940         fbi->info to be filled in.  Replace throughout.  Adjust call to
18941         ipa_load_from_parm_agg.
18942         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
18943         instead of struct ipa_node_params*.  Adjust calls to other functions
18944         so that they pass either fbi or fbi->info.
18945         (set_switch_stmt_execution_predicate): Likewise.
18946         (will_be_nonconstant_predicate): Likewise.
18947         (compute_bb_predicates): Likewise.
18948         (estimate_function_body_sizes): Move asserts earlier.  Fill in
18949         struct func_body_info, replace parms_info with fbi.info.  Adjust
18950         calls to functions that now accept struct func_body_info.
18951         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
18952         (struct func_body_info): Likewise.
18953         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
18954         remove static.  Adjust callers.
18955         (ipa_load_from_parm_agg): Remove.
18956         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
18957         (func_body_info): Likewise.
18958         (ipa_load_from_parm_agg): Adjust prototype.
18959
18960 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
18961
18962         * gensupport.c (rtx_handle_directive): Adjust.
18963         * read-rtl.c (apply_iterators): Take vector to add rtxs to
18964         instead of expr list rtx.
18965         (add_define_attr_for_define_subst): Likewise.
18966         (add_define_subst_attr): Likewise.
18967         (read_subst_mapping): Likewise.
18968         (read_rtx): Likewise.
18969         * rtl.h (read_rtx): Adjust.
18970
18971 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18972
18973         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
18974
18975 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
18976
18977         PR target/58066
18978         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
18979         (*tls_local_dynamic_base_64_<mode>): Ditto.
18980         (*tls_local_dynamic_base_64_largepic): Ditto.
18981         (tls_global_dynamic_64_<mode>): Update expander pattern.
18982         (tls_local_dynamic_base_64_<mode>): Ditto.
18983
18984 2015-07-15  Richard Biener  <rguenther@suse.de>
18985
18986         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
18987         and bool_var == 1 -> bool_var simplifications ...
18988         * match.pd: ... to patterns here.  Factor out negate_expr_p
18989         cases from the A - B -> A + (-B) patterns as negate_expr_p
18990         predicate and add a -(A + B) -> (-B) - A pattern.
18991
18992 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
18993
18994         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
18995
18996 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
18997             Robert Suchanek  <robert.suchanek@imgtec.com>
18998
18999         * config/mips/mips.c (mips_int_mask): New enum.
19000         (mips_shadow_set): Likewise.
19001         (int_mask): New variable.
19002         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
19003         (machine_function): Add int_mask and use_shadow_register_set.
19004         (mips_attribute_table): Add attribute handlers for interrupt and
19005         use_shadow_register_set.
19006         (mips_interrupt_mask): New static function.
19007         (mips_handle_interrupt_attr): Likewise.
19008         (mips_handle_use_shadow_register_set_attr): Likewise.
19009         (mips_use_shadow_register_set): Change return type to enum
19010         mips_shadow_set.  Add argument handling for use_shadow_register_set
19011         attribute.
19012         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
19013         compare with mips_shadow_set enum.
19014         (mips_compute_frame_info): Add interrupt mask and
19015         use_shadow_register_set to per-function information structure.
19016         Add a stack slot for EPC unconditionally.
19017         (mips_expand_prologue): Compare use_shadow_register_set value
19018         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
19019         masked interrupt register but in EIC mode use K0 and save Cause in K0.
19020         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
19021         copying the stack pointer from the shadow register set.
19022         * config/mips/mips.h (SR_IM0): New define.
19023         * config/mips/mips.md (mips_rdpgpr): Rename to...
19024         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
19025         * doc/extend.texi (Declaring Attributes of Functions): Document
19026         optional arguments for interrupt and use_shadow_register_set
19027         attributes.
19028
19029 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
19030
19031         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
19032         interrupt attribute.
19033         (mips_expand_prologue): Disable the floating point unit in an ISR.
19034         * config/mips/mips.h (SR_COP1): New define.
19035
19036 2015-07-15  Richard Biener  <rguenther@suse.de>
19037
19038         * genmatch.c (parser::peek, parser::peek_ident): Add argument
19039         to tell how many tokens to peek ahead (default 1).
19040         (parser::eat_token, parser::eat_ident): Return token consumed.
19041         (parser::parse_result): Parse new switch statement.
19042         * match.pd: Use case statements where appropriate.
19043
19044 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
19045
19046         PR rtl-optimization/58066
19047         * calls.c (expand_call): Precompute register parameters before stack
19048         alignment is performed.
19049
19050 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
19051
19052         PR rtl-optimization/66838
19053         * postreload.c (reload_cse_move2add): Also process
19054         CALL_INSN_FUNCTION_USAGE when resetting information of
19055         call-clobbered registers.
19056
19057 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19058             Cesar Philippidis  <cesar@codesourcery.com>
19059             Chung-Lin Tang  <cltang@codesourcery.com>
19060
19061         * config/nios2/constraints.md (U, v): New constraints.
19062         * config/nios2/predicates.md (rdprs_dcache_operand): New.
19063         (ldstex_memory_operand): New.
19064         * config/nios2/sync.md: New file.
19065         * config/nios2/nios2.md (unspecv): Add new builtin function
19066         UNSPECV codes.
19067         (rdprs, flushd, flushda, wrpie, eni): New patterns.
19068         (top-level): Include sync.md.
19069         * config/nios2/nios2.c (N2_FTYPES): Add function types for
19070         new builtins.
19071         (N2_BUILTINS): Add arch field setting, add new builtins.
19072         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
19073         for arch field.
19074         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
19075         Also handle ldex/stex/ldsex/stsex builtins.
19076         (nios2_expand_rdprs_builtin): New function.
19077         (nios2_expand_cache_builtin): New function.
19078         (nios2_expand_wrpie_builtin): New function.
19079         (nios2_expand_eni_builtin): New function.
19080         (nios2_expand_builtin): Add arch field handling and new builtin
19081         cases.
19082         * doc/extend.texi (Altera Nios II Built-in Functions): Document
19083         new builtins.
19084         * doc/md.texi (Machine Constraints): Document U and v constraints.
19085
19086 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19087             Cesar Philippidis  <cesar@codesourcery.com>
19088             Chung-Lin Tang  <cltang@codesourcery.com>
19089
19090         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
19091         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
19092         callee_save_reg_size and uses_anonymous_args fields.
19093         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
19094         (nios2_create_cfa_notes): New function.
19095         (nios2_adjust_stack): New function for adjusting stack.
19096         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
19097         Use nios2_adjust_stack.
19098         (nios2_expand_epilogue): Likewise.
19099         (nios2_expand_return): New function.
19100         (nios2_can_use_return_insn): Update for CDX pop.n usage.
19101         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
19102         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
19103         * config/nios2/nios2.md (return): Use nios2_expand_return.
19104
19105 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19106             Cesar Philippidis  <cesar@codesourcery.com>
19107             Chung-Lin Tang  <cltang@codesourcery.com>
19108
19109         * config/nios2/predicates.md (pop_operation): New.
19110         (ldwm_operation, stwm_operation): New.
19111         (nios2_hard_register_operand): New.
19112         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
19113         (ldstwm_operation_p): Declare.
19114         (gen_ldstwm_peep): Declare.
19115         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
19116         (base_reg_adjustment_p): New.
19117         (pop_operation_p): New.
19118         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
19119         (nios2_ldstwm_regset_p): New.
19120         (ldstwm_operation_p): New.
19121         (gen_ldst): New.
19122         (nios2_ldst_parallel): New.
19123         (struct ldswm_operand): Declare.
19124         (compare_ldstwm_operands): New.
19125         (can_use_cdx_ldstw): New.
19126         (gen_ldstwm_peep): New.
19127         * config/nios2/nios2-ldstwm.sml: New.
19128         * config/nios2/nios2.md: Include ldstwm.md.
19129         * config/nios2/ldstwm.md: Generated.
19130
19131 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19132             Cesar Philippidis  <cesar@codesourcery.com>
19133             Chung-Lin Tang  <cltang@codesourcery.com>
19134
19135         * config/nios2/nios2.h (LABEL_ALIGN): Define.
19136         (REG_ALLOC_ORDER): Define.
19137         (ADJUST_REG_ALLOC_ORDER): Define.
19138         (HONOR_REG_ALLOC_ORDER): Define.
19139         (CDX_REG_P): Define.
19140         (ANDCLEAR_INT): Define.
19141         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
19142         (nios2_label_align): Declare.
19143         (nios2_cdx_narrow_form_p): Declare.
19144         (nios2_adjust_reg_alloc_order): Declare.
19145         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
19146         operation.
19147         (nios2_large_unspec_reloc_p): New function, split from...
19148         (nios2_legitimate_pic_operand_p): ...here.
19149         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
19150         (nios2_print_operand_punct_valid_p): New.
19151         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
19152         (split_mem_address): New.
19153         (split_alu_insn): New.
19154         (cdxreg): New.
19155         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
19156         (enum nios2_add_insn_kind): New.
19157         (nios2_add_insn_names, nios2_add_insn_narrow): New.
19158         (nios2_add_insn_classify): New.
19159         (nios2_add_insn_asm): New.
19160         (nios2_cdx_narrow_form_p): New.
19161         (label_align, min_labelno, max_labelno): New.
19162         (nios2_reorg): New.
19163         (nios2_label_align): New.
19164         (nios2_adjust_reg_alloc_order): New.
19165         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
19166         (TARGET_MACHINE_DEPENDENT_REORG): Define.
19167         * config/nios2/constraints.md (P): New constraint.
19168         * config/nios2/predicates.md (const_and_operand): New.
19169         (and_operand): New.
19170         (stack_memory_operand): New.
19171         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
19172         (length): Update to use nios2_cdx_narrow_form_p().
19173         (type): Add new insn type values.
19174         (control, alu, st, ld, shift): Update insn reservations with
19175         new insn type values.
19176         (*high, *lo_sum): Define new insn patterns for constant generation.
19177         (movqi_internal, movhi_internal, movsi_internal): Reduce
19178         alternatives, update asm template to handle CDX variants, update
19179         type attributes.
19180         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
19181         template, update type attributes.
19182         (extendhisi2, extendqi<mode>2): Likewise.
19183         (addsi3): Change to use function for asm string.
19184         (subsi3): Add CDX notation to asm template, update type attributes.
19185         (negsi3, one_cmplsi3): Likewise.
19186         (andsi3): New pattern, specialized from logical patterns.
19187         (<code>si3): Remove and case, combine alternatives, update asm
19188         template.
19189         (<shift_op>si3): Add CDX notation, update type attributes.
19190         (rotrsi3): Update type attribute.
19191         (*merge, extzv, insv): New insn patterns.
19192         (return): Change to define_expand.
19193         (simple_return): Add CDX notation, update type attributes.
19194         (indirect_jump): Add CDX notation.
19195         (jump): Update asm cases, update length attribute expression.
19196         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
19197         (nios2_cbranch): Update asm cases and length attribute expression
19198         to handle CDX variants.
19199         (nios2_cmp<code>): Update asm template.
19200         (nop): Add CDX notation, update type attributes.
19201         (trap): Add CDX notation.
19202         (ctrapsi4): Update asm cases and length attribute expression to
19203         handle CDX variant.
19204         * doc/md.texi (Machine Constraints): Document P constraint.
19205
19206 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19207             Cesar Philippidis  <cesar@codesourcery.com>
19208             Chung-Lin Tang  <cltang@codesourcery.com>
19209
19210         * config/nios2/nios2.h (SMALL_INT12): New macro.
19211         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
19212         (nios2_valid_addr_expr_p): Use it.
19213         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
19214         with implicit "io" instructions on R2.
19215         * config/nios2/constraints.md (w): New constraint.
19216         * config/nios2/predicates.md (ldstio_memory_operand): New.
19217         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
19218         operand predicate and constraint.
19219         (ld<bh>io_signed, st<bhw>io>): Likewise.
19220         * doc/md.texi (Machine Constraints): Document w constraint.
19221
19222 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19223             Cesar Philippidis  <cesar@codesourcery.com>
19224             Chung-Lin Tang  <cltang@codesourcery.com>
19225
19226         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
19227         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
19228         Nios II architecture level.
19229         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
19230         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
19231         (OPTION_DEFAULT_SPECS): Define.
19232         (ASM_SPEC): Add -march= spec strings.
19233         * config/nios2/nios2.c (nios2_option_override): Check for
19234         conflicts involving new options.
19235         * config.gcc (nios2*-*-*): Support --with-arch=.
19236         * doc/invoke.texi (Option Summary, Nios II Options): Document
19237         -march=, -mbmx, and -mcdx.
19238
19239 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
19240
19241         PR rtl-optimization/66626
19242         * lra-constraints.c (lra_constraints): Prevent equivalence
19243         substitution for static chain pseudo in functions with nonlocal
19244         goto.
19245
19246 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
19247
19248         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
19249         (nios2_emit_stack_limit_check): Add size parameter.  Handle
19250         -fstack-limit-symbol as well as -fstack-limit-register.
19251         (nios2_expand_prologue): Emit only a single stack limit check,
19252         even if multiple stack adjustments are required.
19253         (nios2_option_override): Diagnose unsupported combination of -fpic
19254         and -stack-limit-symbol.
19255
19256 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
19257
19258         * Makefile.in (top_srcdir): New.
19259         * configure.ac: Use AM_ZLIB.
19260         * configure: Regeneated.
19261
19262 2015-07-14  Matthias Klose  <doko@ubuntu.com>
19263
19264         PR target/66840
19265         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
19266
19267 2015-07-14  Richard Biener  <rguenther@suse.de>
19268
19269         PR tree-optimization/66863
19270         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
19271         what we record for conversion use stmt lhs inequalities.
19272
19273 2015-07-14  Richard Biener  <rguenther@suse.de>
19274
19275         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
19276         (decision_tree::gen_gimple): Likewise.
19277
19278 2015-07-14  Tom de Vries  <tom@codesourcery.com>
19279
19280         * gcc.c (greater_than_spec_func): Declare forward.
19281         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
19282         -ftree-parallelize-loops={0,1}.
19283         (static_spec_functions): Add greater_than_spec_func function with name
19284         "gt".
19285         (greater_than_spec_func): New function.
19286
19287 2015-07-14  Richard Biener  <rguenther@suse.de>
19288
19289         * tree-ssa-dom.c (record_temporary_equivalences): Merge
19290         wideing type conversion case from record_equivalences_from_incoming_edge
19291         and use record_equality to record equivalences.
19292         (record_equivalences_from_incoming_edge): Call
19293         record_temporary_equivalences.
19294
19295 2015-07-14  Richard Biener  <rguenther@suse.de>
19296
19297         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
19298         (struct if_expr): New.
19299         (struct with_expr): Likewise.
19300         (is_a_helper): Add helpers for if_expr and with_expr.
19301         (struct simplify): Add simplify_kind enum and member.  Remove
19302         ifexpr_vec member.
19303         (simplify::simplify): Adjust.
19304         (lower_commutative): Adjust.
19305         (lower_opt_convert): Likewise.
19306         (lower_cond): Likewise.
19307         (replace_id): Handle with_expr and if_expr.
19308         (lower_for): Adjust.
19309         (dt_simplify::gen_1): New recursive worker, split out from ...
19310         (dt_simplify::gen): ... here.  Deal with if and with expansion
19311         recursively.
19312         (capture_info::capture_info): Take context argument
19313         (capture_info::walk_result): Only analyze specific result.
19314         (parser::parse_result): New function.
19315         (parser::parse_simplify): Adjust to parse ifs with then end
19316         else case.
19317         (parser::parse_if): Simplify.
19318         (parser::parse_pattern): Pass down simplify kind.
19319         * match.pd: Convert if structure to new syntax.
19320
19321 2015-07-13  Marek Polacek  <polacek@redhat.com>
19322
19323         * rtl.c (rtx_equal_p_cb): Fix typo.
19324
19325 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
19326
19327         * omega.h: Don't include config.h, don't include params.h again if
19328         omega.h has already been included.
19329         * graphite-poly.h: Include sese.h.
19330         * graphite.c: Don't include sese.h, remove needless includes and
19331         minimize includes outside #ifdef HAVE_isl block.
19332         * graphite-blocking.c: Don't include sese.h, remove needless includes,
19333         and wrap entire file in #ifdef HAVE_isl
19334         * graphite-dependences.c: Likewise.
19335         * graphite-interchange.c: Likewise.
19336         * graphite-isl-ast-to-gimple.c: Likewise.
19337         * graphite-optimize-isl.c: Likewise.
19338         * graphite-poly.c: Likewise.
19339         * graphite-scop-detection.c: Likewise.
19340         * graphite-sese-to-poly.c: Likewise.
19341
19342 2015-07-13  Tom de Vries  <tom@codesourcery.com>
19343
19344         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
19345
19346 2015-07-13  Renlin Li  <renlin.li@arm.com>
19347
19348         PR rtl/66556
19349         * simplify-rtx.c (simplify_const_relational_operation): Add
19350         side_effects_p checks.
19351
19352 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
19353
19354         * bitmap.h: Fix double word typos.
19355         * builtins.c: Same.
19356         * calls.c: Same.
19357         * cfgloopmanip.c: Same.
19358         * cgraph.c: Same.
19359         * cgraph.h: Same.
19360         * cgraphclones.c: Same.
19361         * combine.c: Same.
19362         * config/aarch64/aarch64-protos.h: Same.
19363         * config/aarch64/aarch64.c: Same.
19364         * config/aarch64/aarch64.md: Same.
19365         * config/arm/arm.md: Same.
19366         * config/arm/arm1020e.md: Same.
19367         * config/arm/arm1026ejs.md: Same.
19368         * config/arm/arm926ejs.md: Same.
19369         * config/arm/fa526.md: Same.
19370         * config/arm/fa606te.md: Same.
19371         * config/arm/fa626te.md: Same.
19372         * config/arm/fa726te.md: Same.
19373         * config/arm/fmp626.md: Same.
19374         * config/darwin.c: Same.
19375         * config/epiphany/epiphany.c: Same.
19376         * config/frv/frv.c: Same.
19377         * config/ft32/ft32.c: Same.
19378         * config/gnu-user.h: Same.
19379         * config/h8300/constraints.md: Same.
19380         * config/i386/i386.c: Same.
19381         * config/i386/i386.md: Same.
19382         * config/iq2000/iq2000.md: Same.
19383         * config/mips/mips.c: Same.
19384         * config/mmix/mmix.md: Same.
19385         * config/moxie/moxie.c: Same.
19386         * config/nds32/nds32.md: Same.
19387         * config/pa/pa.h: Same.
19388         * config/rs6000/aix.h: Same.
19389         * config/rs6000/rs6000.h: Same.
19390         * config/sh/sh.c: Same.
19391         * config/tilegx/tilegx.md: Same.
19392         * config/tilepro/gen-mul-tables.cc: Same.
19393         * cse.c: Same.
19394         * dbxout.c: Same.
19395         * doc/invoke.texi: Same.
19396         * dse.c: Same.
19397         * dwarf2out.c: Same.
19398         * final.c: Same.
19399         * gcc.c: Same.
19400         * genmatch.c: Same.
19401         * gimplify.c: Same.
19402         * hash-table.h: Same.
19403         * internal-fn.c: Same.
19404         * ipa-cp.c: Same.
19405         * ipa-devirt.c: Same.
19406         * ipa-icf.c: Same.
19407         * ipa-icf.h: Same.
19408         * ipa-profile.c: Same.
19409         * ipa-prop.c: Same.
19410         * ipa-prop.h: Same.
19411         * ira.c: Same.
19412         * omp-low.c: Same.
19413         * reg-stack.c: Same.
19414         * regcprop.c: Same.
19415         * reorg.c: Same.
19416         * rtl.h: Same.
19417         * sbitmap.h: Same.
19418         * tree-eh.c: Same.
19419         * tree-inline.c: Same.
19420         * tree-sra.c: Same.
19421         * tree-ssa-dom.c: Same.
19422         * tree-ssa-loop-ivopts.c: Same.
19423         * tree-ssa-structalias.c: Same.
19424         * tree-ssa-tail-merge.c: Same.
19425         * tree-ssa-ter.c: Same.
19426         * tree-ssa-threadupdate.c: Same.
19427         * tree-ssa-uninit.c: Same.
19428         * tree-ssanames.c: Same.
19429         * tree-vect-loop-manip.c: Same.
19430         * tree-vrp.c: Same.
19431         * tree.c: Same.
19432         * valtrack.c: Same.
19433         * vec.h: Same.
19434
19435 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
19436
19437         PR middle-end/66726
19438         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
19439         tree_ssa_phiopt_worker): Call it.
19440
19441 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
19442
19443         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
19444         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
19445         REG_EQUAL note.
19446
19447 2015-07-11  Marek Polacek  <polacek@redhat.com>
19448
19449         PR middle-end/66353
19450         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
19451         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
19452         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
19453         rather than bb_has_abnormal_call_pred.
19454         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
19455         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
19456         rather than bb_has_abnormal_call_pred.
19457
19458 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
19459
19460         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
19461         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
19462         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
19463         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
19464         v850_legitimate_address_p): New functions.
19465         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
19466
19467 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
19468
19469         PR target/66819
19470         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
19471         indirect sibcall with register arguments if register available
19472         for argument passing.
19473         (init_cumulative_args): Set cfun->machine->arg_reg_available
19474         to (cum->nregs > 0) or to true if function has a variable
19475         argument list.
19476         (function_arg_advance_32): Set cfun->machine->arg_reg_available
19477         to false if cum->nregs <= 0.
19478         * config/i386/i386.h (machine_function): Add arg_reg_available.
19479
19480 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
19481
19482         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
19483         and gen_higpart instead of gen_rtx_SUBREG.
19484         * config/i386/i386.md
19485         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
19486         (read-modify peephole2): Use gen_lowpart instead of
19487         gen_rtx_SUBREG for operand 5.
19488
19489 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
19490
19491         * config/tilepro/gen-mul-tables.cc (main): Change include list for
19492         generated files.
19493         * config/tilepro/mul-tables.c: Regenerate.
19494         * config/tilegx/mul-tables.c: Regenerate.
19495
19496 2015-07-10  Richard Biener  <rguenther@suse.de>
19497
19498         * fold-const.c (distribute_bit_expr): Remove.
19499         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
19500         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
19501         to A & (B | C) and simplifying A << C1 << C2 to ...
19502         * match.pd: ... patterns here.
19503
19504 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
19505
19506         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
19507         Mark mem as READONLY and NOTRAP for PIC symbol.
19508
19509 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
19510
19511         * gimple-predict.h: New file.
19512         (gimple_predict_predictor, gimple_predict_set_predictor,
19513         gimple_predict_outcome, gimple_predict_set_outcome,
19514         gimple_build_predict): Relocate here.
19515         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
19516         gimple_predict_outcome, gimple_predict_set_outcome): Move to
19517         gimple-predict.h.
19518         * gimple.c (gimple_build_predict): Move to gimple-predict.h
19519         * basic-block.h: Don't include cfghooks.h.
19520         * backend.h: Don't include predict.h.
19521         * cfghooks.h: Include predict.h.
19522         * gimple-pretty-print.c: Include gimple-predict.h.
19523         * gimplify.c: Likwise.
19524         * predict.c: Adjust includes.
19525         * tree-inline.c: Likewise.
19526         * asan.c: Likewise.
19527         * auto-inc-dec.c: Likewise.
19528         * auto-profile.c: Likewise.
19529         * bb-reorder.c: Likewise.
19530         * builtins.c: Likewise.
19531         * caller-save.c: Likewise.
19532         * calls.c: Likewise.
19533         * cfganal.c: Likewise.
19534         * cfgbuild.c: Likewise.
19535         * cfg.c: Likewise.
19536         * cfgcleanup.c: Likewise.
19537         * cfgexpand.c: Likewise.
19538         * cfghooks.c: Likewise.
19539         * cfgloopanal.c: Likewise.
19540         * cfgloop.c: Likewise.
19541         * cfgloopmanip.c: Likewise.
19542         * cfgrtl.c: Likewise.
19543         * cgraph.c: Likewise.
19544         * cgraphunit.c: Likewise.
19545         * combine.c: Likewise.
19546         * cprop.c: Likewise.
19547         * cse.c: Likewise.
19548         * dce.c: Likewise.
19549         * dojump.c: Likewise.
19550         * dse.c: Likewise.
19551         * except.c: Likewise.
19552         * expmed.c: Likewise.
19553         * expr.c: Likewise.
19554         * final.c: Likewise.
19555         * fold-const.c: Likewise.
19556         * function.c: Likewise.
19557         * fwprop.c: Likewise.
19558         * gcc-plugin.h: Likewise.
19559         * gcse.c: Likewise.
19560         * genattrtab.c: Likewise.
19561         * genemit.c: Likewise.
19562         * gengtype.c: Likewise.
19563         * genopinit.c: Likewise.
19564         * genoutput.c: Likewise.
19565         * genpreds.c: Likewise.
19566         * genrecog.c: Likewise.
19567         * gimple-fold.c: Likewise.
19568         * gimple-iterator.c: Likewise.
19569         * gimple-ssa-isolate-paths.c: Likewise.
19570         * gimple-ssa-strength-reduction.c: Likewise.
19571         * graph.c: Likewise.
19572         * graphite-blocking.c: Likewise.
19573         * graphite.c: Likewise.
19574         * graphite-dependences.c: Likewise.
19575         * graphite-interchange.c: Likewise.
19576         * graphite-isl-ast-to-gimple.c: Likewise.
19577         * graphite-optimize-isl.c: Likewise.
19578         * graphite-poly.c: Likewise.
19579         * graphite-scop-detection.c: Likewise.
19580         * graphite-sese-to-poly.c: Likewise.
19581         * haifa-sched.c: Likewise.
19582         * ifcvt.c: Likewise.
19583         * internal-fn.c: Likewise.
19584         * ipa-cp.c: Likewise.
19585         * ipa-profile.c: Likewise.
19586         * ipa-split.c: Likewise.
19587         * ipa-utils.c: Likewise.
19588         * ira-build.c: Likewise.
19589         * ira-color.c: Likewise.
19590         * ira-conflicts.c: Likewise.
19591         * ira-costs.c: Likewise.
19592         * ira-emit.c: Likewise.
19593         * ira-lives.c: Likewise.
19594         * jump.c: Likewise.
19595         * loop-doloop.c: Likewise.
19596         * loop-init.c: Likewise.
19597         * loop-invariant.c: Likewise.
19598         * loop-unroll.c: Likewise.
19599         * lower-subreg.c: Likewise.
19600         * lra-assigns.c: Likewise.
19601         * lra.c: Likewise.
19602         * lra-coalesce.c: Likewise.
19603         * lra-constraints.c: Likewise.
19604         * lra-lives.c: Likewise.
19605         * lto-cgraph.c: Likewise.
19606         * lto-streamer-in.c: Likewise.
19607         * mode-switching.c: Likewise.
19608         * modulo-sched.c: Likewise.
19609         * omp-low.c: Likewise.
19610         * optabs.c: Likewise.
19611         * passes.c: Likewise.
19612         * postreload.c: Likewise.
19613         * postreload-gcse.c: Likewise.
19614         * profile.c: Likewise.
19615         * recog.c: Likewise.
19616         * regstat.c: Likewise.
19617         * reload1.c: Likewise.
19618         * reorg.c: Likewise.
19619         * rtlanal.c: Likewise.
19620         * sched-ebb.c: Likewise.
19621         * sel-sched-ir.c: Likewise.
19622         * sese.c: Likewise.
19623         * shrink-wrap.c: Likewise.
19624         * simplify-rtx.c: Likewise.
19625         * stmt.c: Likewise.
19626         * store-motion.c: Likewise.
19627         * tracer.c: Likewise.
19628         * trans-mem.c: Likewise.
19629         * tree-call-cdce.c: Likewise.
19630         * tree-cfg.c: Likewise.
19631         * tree-cfgcleanup.c: Likewise.
19632         * tree-chkp.c: Likewise.
19633         * tree-complex.c: Likewise.
19634         * tree-eh.c: Likewise.
19635         * tree-if-conv.c: Likewise.
19636         * tree-loop-distribution.c: Likewise.
19637         * tree-outof-ssa.c: Likewise.
19638         * tree-parloops.c: Likewise.
19639         * tree-predcom.c: Likewise.
19640         * tree-pretty-print.c: Likewise.
19641         * tree-profile.c: Likewise.
19642         * tree-sra.c: Likewise.
19643         * tree-ssa.c: Likewise.
19644         * tree-ssa-coalesce.c: Likewise.
19645         * tree-ssa-dce.c: Likewise.
19646         * tree-ssa-dom.c: Likewise.
19647         * tree-ssa-forwprop.c: Likewise.
19648         * tree-ssa-ifcombine.c: Likewise.
19649         * tree-ssa-loop-ch.c: Likewise.
19650         * tree-ssa-loop-im.c: Likewise.
19651         * tree-ssa-loop-ivcanon.c: Likewise.
19652         * tree-ssa-loop-ivopts.c: Likewise.
19653         * tree-ssa-loop-manip.c: Likewise.
19654         * tree-ssa-loop-prefetch.c: Likewise.
19655         * tree-ssa-loop-unswitch.c: Likewise.
19656         * tree-ssa-math-opts.c: Likewise.
19657         * tree-ssa-phiopt.c: Likewise.
19658         * tree-ssa-pre.c: Likewise.
19659         * tree-ssa-reassoc.c: Likewise.
19660         * tree-ssa-sink.c: Likewise.
19661         * tree-ssa-tail-merge.c: Likewise.
19662         * tree-ssa-threadedge.c: Likewise.
19663         * tree-ssa-threadupdate.c: Likewise.
19664         * tree-switch-conversion.c: Likewise.
19665         * tree-tailcall.c: Likewise.
19666         * tree-vect-data-refs.c: Likewise.
19667         * tree-vect-loop.c: Likewise.
19668         * tree-vect-loop-manip.c: Likewise.
19669         * tree-vectorizer.c: Likewise.
19670         * tree-vrp.c: Likewise.
19671         * ubsan.c: Likewise.
19672         * value-prof.c: Likewise.
19673         * varasm.c: Likewise.
19674         * var-tracking.c: Likewise.
19675         * config/aarch64/aarch64-builtins.c: Likewise.
19676         * config/aarch64/aarch64.c: Likewise.
19677         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
19678         * config/alpha/alpha.c: Likewise.
19679         * config/arc/arc.c: Likewise.
19680         * config/arm/arm.c: Likewise.
19681         * config/avr/avr.c: Likewise.
19682         * config/bfin/bfin.c: Likewise.
19683         * config/c6x/c6x.c: Likewise.
19684         * config/cr16/cr16.c: Likewise.
19685         * config/cris/cris.c: Likewise.
19686         * config/darwin.c: Likewise.
19687         * config/darwin-c.c: Likewise.
19688         * config/epiphany/epiphany.c: Likewise.
19689         * config/epiphany/mode-switch-use.c: Likewise.
19690         * config/epiphany/resolve-sw-modes.c: Likewise.
19691         * config/fr30/fr30.c: Likewise.
19692         * config/frv/frv.c: Likewise.
19693         * config/ft32/ft32.c: Likewise.
19694         * config/h8300/h8300.c: Likewise.
19695         * config/i386/i386.c: Likewise.
19696         * config/i386/winnt.c: Likewise.
19697         * config/ia64/ia64.c: Likewise.
19698         * config/iq2000/iq2000.c: Likewise.
19699         * config/lm32/lm32.c: Likewise.
19700         * config/m32c/m32c.c: Likewise.
19701         * config/m32r/m32r.c: Likewise.
19702         * config/m68k/m68k.c: Likewise.
19703         * config/mcore/mcore.c: Likewise.
19704         * config/mep/mep.c: Likewise.
19705         * config/microblaze/microblaze.c: Likewise.
19706         * config/mips/mips.c: Likewise.
19707         * config/mmix/mmix.c: Likewise.
19708         * config/mn10300/mn10300.c: Likewise.
19709         * config/moxie/moxie.c: Likewise.
19710         * config/msp430/msp430.c: Likewise.
19711         * config/nds32/nds32.c: Likewise.
19712         * config/nds32/nds32-cost.c: Likewise.
19713         * config/nds32/nds32-fp-as-gp.c: Likewise.
19714         * config/nds32/nds32-intrinsic.c: Likewise.
19715         * config/nds32/nds32-isr.c: Likewise.
19716         * config/nds32/nds32-md-auxiliary.c: Likewise.
19717         * config/nds32/nds32-memory-manipulation.c: Likewise.
19718         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
19719         * config/nds32/nds32-predicates.c: Likewise.
19720         * config/nios2/nios2.c: Likewise.
19721         * config/nvptx/nvptx.c: Likewise.
19722         * config/pa/pa.c: Likewise.
19723         * config/pdp11/pdp11.c: Likewise.
19724         * config/rl78/rl78.c: Likewise.
19725         * config/rs6000/rs6000.c: Likewise.
19726         * config/rx/rx.c: Likewise.
19727         * config/s390/s390.c: Likewise.
19728         * config/sh/sh.c: Likewise.
19729         * config/sh/sh-mem.cc: Likewise.
19730         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
19731         * config/sh/sh_treg_combine.cc: Likewise.
19732         * config/sparc/sparc.c: Likewise.
19733         * config/spu/spu.c: Likewise.
19734         * config/stormy16/stormy16.c: Likewise.
19735         * config/tilegx/tilegx.c: Likewise.
19736         * config/tilepro/tilepro.c: Likewise.
19737         * config/v850/v850.c: Likewise.
19738         * config/vax/vax.c: Likewise.
19739         * config/visium/visium.c: Likewise.
19740         * config/xtensa/xtensa.c: Likewise.
19741
19742 2015-07-10  Richard Biener  <rguenther@suse.de>
19743
19744         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
19745         (decision_tree::gen_gimple): Likewise.
19746         (decision_tree::gen_generic): Likewise.
19747
19748 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
19749
19750         PR target/66813
19751         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
19752         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
19753
19754 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
19755
19756         PR middle-end/66820
19757         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
19758         or ORT_TASK contexts.
19759         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
19760         is non-zero.
19761
19762 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19763
19764         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
19765         above function.
19766
19767 2015-07-10  Tom de Vries  <tom@codesourcery.com>
19768
19769         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
19770         insert nit + 1 bound.
19771
19772 2015-07-10  Richard Biener  <rguenther@suse.de>
19773
19774         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
19775         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
19776         (if_convertible_loop_p_1): For this always compute bb predicates.
19777         (if_convertible_loop_p): And free them.
19778
19779 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19780
19781         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
19782         in dump message.
19783
19784 2015-07-10  Richard Biener  <rguenther@suse.de>
19785
19786         PR tree-optimization/66823
19787         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
19788         inverted predicate.
19789
19790 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
19791
19792         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
19793         to handle mips[32|64]r3 and mips[32|64]r5.
19794
19795 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
19796
19797         PR middle-end/66633
19798         * tree-nested.c (get_static_chain): Or in a flag into
19799         info->static_chain_added.
19800         (get_frame_field, get_nonlocal_debug_decl): Likewise.
19801         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
19802         2015-07-01 changes.
19803         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
19804         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
19805         add it to clauses.
19806
19807         PR tree-optimization/66718
19808         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
19809         field.
19810         (vect_simd_lane_linear): New function.
19811         (vectorizable_simd_clone_call): Support using linear arguments for
19812         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
19813
19814 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
19815
19816         PR target/66821
19817         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
19818
19819 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
19820
19821         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
19822         Use machine mode, not enum machine_mode in the prototype.
19823
19824         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
19825         classify 128-bit floating point support.
19826         (FLOAT128_IBM_P): Likewise.
19827         (FLOAT128_VECTOR_P): Likewise.
19828         (FLOAT128_2REG_P): Likewise.
19829         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
19830         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
19831         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
19832         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
19833
19834         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
19835         tests against TFmode/TDmode, since those modes do not use VSX
19836         addresses.
19837         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
19838         support.
19839         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
19840         tests against TFmode, etc.
19841         (invalid_e500_subreg): Add tests against IFmode/KFmode.
19842         (reg_offset_addressing_ok_p): Likewise.
19843         (rs6000_legitimate_offset_address_p): Likewise.
19844         (rs6000_legitimize_address): Likewise.
19845         (rs6000_legitimize_reload_address): Likewise.
19846         (rs6000_legitimate_address_p): Clean up tests against TFmode and
19847         TDmode to use the new helper macros, which will include IFmode and
19848         KFmode.
19849         (rs6000_emit_move): Likewise.
19850         (rs6000_darwin64_record_arg_recurse): Likewise.
19851         (print_operand): Likewise.
19852         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
19853         that uses a single vector register as a vector and not as a
19854         floating point register in terms of the calling sequence.
19855         (rs6000_discover_homogeneous_aggregate): Likewise.
19856         (rs6000_return_in_memory): Likewise.
19857         (init_cumulative_args): Likewise.
19858         (rs6000_function_arg_boundary): Likewise.
19859         (rs6000_function_arg_advance_1): Likewise.
19860         (rs6000_function_arg): Likewise.
19861         (rs6000_pass_by_reference): Likewise.
19862         (rs6000_gimplify_va_arg): Likewise.
19863         (rs6000_secondary_reload_memory): Use machine_mode not enum
19864         machine mode.
19865         (rs6000_split_multireg_move): Use new helper macros.
19866         (spe_func_has_64bit_regs_p): Likewise.
19867         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
19868         (output_toc): Use new helper macros.
19869         (rs6000_register_move_cost): Likewise.
19870         (rs6000_function_value): Add IEEE 128-bit floating point calling
19871         sequence support.
19872         (rs6000_libcall_value): Likewise.
19873         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
19874         floating point support.
19875         (rs6000_vector_mode_supported_p): Likewise.
19876
19877 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
19878
19879         PR rtl-optimization/66782
19880         * lra-int.h (struct lra_insn_recog_data): Add comment about
19881         clobbered hard regs for arg_hard_regs.
19882         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
19883         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
19884         Add condition for processing used hard regs.
19885         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
19886         Process clobbered hard regs.
19887
19888 2015-07-09  Michael Matz  <matz@suse.de>
19889
19890         * genmatch.c (fprintf_indent): New function.
19891         (operand::gen_transform): Add indent parameter.
19892         (expr::gen_transform, c_expr::gen_transform,
19893         capture::gen_transform): Ditto and use fprintf_indent.
19894         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
19895         (dt_operand::gen, dt_operand::gen_predicate,
19896         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
19897         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
19898         (decision_tree::gen_gimple): Adjust calls and indent generated
19899         code.
19900         (decision_tree::gen_generic): Ditto.
19901         (write_predicate): Ditto.
19902
19903 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
19904
19905         PR target/66814
19906         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
19907         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
19908         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
19909         {GENERAL,SSE,MMX}_REG_P where appropriate.
19910
19911 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
19912
19913         * lto-streamer.h: Don't include target.h and alloc-pool.h.
19914         * builtins.c: Adjust includes.
19915         * gimple.c: Likewise.
19916         * ipa-icf.c: Likewise.
19917         * lto-opts.c: Likewise.
19918         * ipa-reference.c: Likewise.
19919         * lto-section-out.c: Likewise.
19920         * lto-streamer-in.c: Likewise.
19921         * lto-streamer-out.c: Likewise.
19922         * opts-global.c: Likewise.
19923         * symtab.c: Likewise.
19924         * tree-chkp.c: Likewise.
19925         * tree-ssa-live.c: Likewise.
19926         * tree-streamer-in.c: Likewise.
19927         * tree-streamer-out.c: Likewise.
19928         * config/darwin.c: Likewise.
19929         * config/i386/winnt.c: Likewise.
19930
19931 2015-07-09  Richard Biener  <rguenther@suse.de>
19932
19933         * genmatch.c (struct expr): Add force_single_use flag.
19934         (expr::expr): Add copy constructor.
19935         (capture_info::walk_match): Gather force_single_use captures.
19936         (expr::gen_transform): Use possibly NULLified sequence.
19937         (dt_simplify::gen): Apply single-use restrictions by NULLifying
19938         seq if any constrained expr is not single-use.
19939         (parser::parse_expr): Refactor to allow multiple flags.  Handle
19940         's' flag to force an expression have a single-use if the pattern
19941         simplifies to more than one statement.
19942         * match.pd: Convert most single_use conditionals to :s flags.
19943
19944 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
19945
19946         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
19947         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
19948         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
19949
19950 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
19951
19952         * flags.h: Don't include flag-types.h or options.h.
19953         * opts-common.c: Adjust includes.
19954         * opts-global.c: Likewise.
19955         * common/config/epiphany/epiphany-common.c: Likewise.
19956
19957 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
19958
19959         PR target/66818
19960         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
19961         for IA MCU.
19962
19963 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
19964
19965         PR target/66817
19966         * config/i386/i386.c (ix86_return_in_memory): Return true
19967         if int_size_in_bytes returns negative for IA MCU.
19968
19969 2015-07-09  Marek Polacek  <polacek@redhat.com>
19970
19971         PR tree-optimization/66718
19972         * Makefile.in (OBJS): Add gimple-laddress.o.
19973         * passes.def: Schedule pass_laddress.
19974         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
19975         * tree-pass.h (make_pass_laddress): Declare.
19976         * gimple-laddress.c: New file.
19977
19978 2015-07-09  Richard Biener  <rguenther@suse.de>
19979
19980         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
19981
19982 2015-07-09  Richard Biener  <rguenther@suse.de>
19983
19984         PR tree-optimization/66807
19985         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
19986
19987 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
19988
19989         * function.c (stack_protect_epilogue): Use if rather than switch for
19990         check targetm.have_stack_protect_test.
19991
19992 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19993
19994         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
19995         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
19996         * config/arc/arc.h: Likewise.
19997         * config/arm/arm.h: Likewise.
19998         * config/bfin/bfin.h: Likewise.
19999         * config/epiphany/epiphany.h: Likewise.
20000         * config/frv/frv.h: Likewise.
20001         * config/ia64/ia64.h: Likewise.
20002         * config/iq2000/iq2000.h: Likewise.
20003         * config/lm32/lm32.h: Likewise.
20004         * config/m32r/m32r.h: Likewise.
20005         * config/mcore/mcore.h: Likewise.
20006         * config/mep/mep.h: Likewise.
20007         * config/microblaze/microblaze.h: Likewise.
20008         * config/mips/mips.h: Likewise.
20009         * config/mmix/mmix.h: Likewise.
20010         * config/mn10300/mn10300.h: Likewise.
20011         * config/nds32/nds32.h: Likewise.
20012         * config/nios2/nios2.h: Likewise.
20013         * config/pa/pa.h: Likewise.
20014         * config/rl78/rl78.h: Likewise.
20015         * config/sh/sh.h: Likewise.
20016         * config/sparc/sparc.h: Likewise.
20017         * config/stormy16/stormy16.h: Likewise.
20018         * config/tilegx/tilegx.h: Likewise.
20019         * config/tilepro/tilepro.h: Likewise.
20020         * config/v850/v850.h: Likewise.
20021         * config/xtensa/xtensa.h: Likewise.
20022         * doc/tm.texi: Regenerate.
20023         * doc/tm.texi.in: Adjust.
20024         * combine.c (simplify_set): Likewise.
20025         (simplify_comparison): Likewise.
20026         * expr.c (store_constructor): Likewise.
20027         * internal-fn.c (expand_arith_overflow): Likewise.
20028         * reload.c (push_reload): Likewise.
20029         (find_reloads): Likewise.
20030         (find_reloads_subreg_address): Likewise.
20031         * reload1.c (eliminate_regs_1): Likewise.
20032         * rtlanal.c (nonzero_bits1): Likewise.
20033         (num_sign_bit_copies1): Likewise.
20034         * simplify-rtx.c (simplify_truncation): Likewise.
20035
20036 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20037
20038         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
20039         of AUTO_INC_DEC with the preprocessor.
20040         * combine.c (combine_instructions): Likewise.
20041         (can_combine_p): Likewise.
20042         (try_combine): Likewise.
20043         * emit-rtl.c (try_split): Likewise.
20044         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
20045         * lower-subreg.c (resolve_simple_move): Likewise.
20046         * lra.c (update_inc_notes): Likewise.
20047         * recog.c (asm_operand_ok): Likewise.
20048         (constrain_operands): Likewise.
20049         * regrename.c (scan_rtx_address): Likewise.
20050         * reload.c (update_auto_inc_notes): Likewise.
20051         (reg_inc_found_and_valid_p): Likewise.
20052         * reload1.c (reload): Likewise.
20053         (emit_input_reload_insns): Likewise.
20054         (delete_output_reload): Likewise.
20055         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
20056         * valtrack.c (cleanup_auto_inc_dec): Likewise.
20057
20058 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20059
20060         * rtl.h: Always define AUTO_INC_DEC.
20061         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
20062         * combine.c (combine_instructions): Likewise.
20063         (can_combine_p): Likewise.
20064         (try_combine): Likewise.
20065         * emit-rtl.c (try_split): Likewise.
20066         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
20067         * lower-subreg.c (resolve_simple_move): Likewise.
20068         * lra.c (update_inc_notes): Likewise.
20069         * recog.c (asm_operand_ok): Likewise.
20070         (constrain_operands): Likewise.
20071         * regrename.c (scan_rtx_address): Likewise.
20072         * reload.c (update_auto_inc_notes): Likewise.
20073         (find_equiv_reg): Likewise.
20074         * reload1.c (reload): Likewise.
20075         (reload_as_needed): Likewise.
20076         (choose_reload_regs): Likewise.
20077         (emit_input_reload_insns): Likewise.
20078         (delete_output_reload): Likewise.
20079         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
20080         * valtrack.c (cleanup_auto_inc_dec): Likewise.
20081
20082 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20083
20084         * combine.c (can_combine_def_p): Don't check the value of
20085         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
20086         (combinable_i3pat): Likewise.
20087         (mark_used_regs_combine): Likewise.
20088         * regrename.c (rename_chains): Likewise.
20089         * reload.c (find_reloads_address): Likewise.
20090         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
20091
20092 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20093
20094         * combine.c (update_rsp_from_reg_equal): Don't check if
20095         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
20096         (reg_nonzero_bits_for_combine): Likewise.
20097         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
20098         1.
20099         * config/frv/frv.h: Likewise.
20100         * config/lm32/lm32.h: Likewise.
20101         * config/mep/mep.h: Likewise.
20102         * config/mips/mips.h: Likewise.
20103         * config/rs6000/rs6000.h: Likewise.
20104         * config/sh/sh.h: Likewise.
20105         * config/tilegx/tilegx.h (enum reg_class): Likewise.
20106         * config/tilepro/tilepro.h: Likewise.
20107         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
20108         * doc/tm.texi: Regenerate.
20109         * doc/tm.texi.in: Adjust.
20110         * rtlanal.c (nonzero_bits1): Likewise.
20111
20112 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20113
20114         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
20115         with the preprocessor.
20116         (combine_instructions): Likewise.
20117         (try_combine): Likewise.
20118         (subst): Likewise.
20119         (distribute_notes): Likewise.
20120
20121 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20122
20123         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
20124         defined.
20125         (simplify_set): Likewise.
20126         * cse.c (cse_insn): Likewise.
20127         * fold-const.c (fold_single_bit_test): Likewise.
20128         (fold_unary_loc): Likewise.
20129         * postreload.c (reload_cse_simplify_set): Likewise.
20130         (reload_cse_simplify_operands): Likewise.
20131
20132 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
20133
20134         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
20135         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
20136
20137 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
20138
20139         PR target/66746
20140         * config/i386/x86intrin.h: Include <adxintrin.h> even if
20141         __iamcu__ is defined.
20142
20143 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
20144
20145         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
20146
20147 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
20148
20149         PR target/66523
20150         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
20151         names from preservation.
20152
20153 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
20154
20155         PR target/66806
20156         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
20157         change for IAMCU.
20158         (function_arg_advance_32): Don't pass vectors in registers for
20159         IAMCU.
20160         (function_arg_32): Likewise.
20161         (ix86_return_in_memory): Don't return vectors in registers for
20162         IAMCU.
20163
20164 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
20165
20166         PR middle-end/66334
20167         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
20168         hard regno live at the start of BB with incoming abnormal edges.
20169         * lra-lives.c (process_bb_lives): Ditto.
20170
20171 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
20172
20173         PR libgomp/65099
20174         * config/nvptx/mkoffload.c (main): Create an offload image only in
20175         64-bit configurations.
20176
20177 2015-07-08  Martin Liska  <mliska@suse.cz>
20178
20179         PR bootstrap/66744
20180         * tree-sra.c (create_access_1): Call ctor without brackets.
20181         (create_artificial_child_access): Likewise.
20182
20183 2015-07-08  Richard Biener  <rguenther@suse.de>
20184
20185         PR tree-optimization/66793
20186         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
20187         Properly split the block after stmts ending it.
20188
20189 2015-07-08  Richard Biener  <rguenther@suse.de>
20190
20191         PR tree-optimization/66794
20192         * passes.c (execute_function_todo): Assert that post-dominators
20193         are not computed.
20194         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
20195         Free post-dominators.
20196
20197 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20198
20199         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
20200         with early exit.
20201
20202 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
20203
20204         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
20205         more than or equal 8 and less than 32 when optimizing for size.
20206
20207 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20208
20209         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
20210         COSTS_N_INSNS (1) and increment it appropriately throughout the
20211         function.
20212
20213 2015-07-08  Richard Biener  <rguenther@suse.de>
20214
20215         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
20216
20217 2015-07-08  Alan Modra  <amodra@gmail.com>
20218
20219         * target.def (rtx_costs): Remove "code" param, add "mode".
20220         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
20221         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
20222         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
20223         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
20224         call.  Track mode when given in rtx.
20225         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
20226         (default_address_cost): Pass Pmode to rtx_cost.
20227         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
20228         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
20229         with NULL set.
20230         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
20231         (notreg_cost): Add mode param.  Use it.
20232         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
20233         mode param and pass to set_src_cost.  Update all calls.
20234         (hash_scan_set): Formatting.
20235         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
20236         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
20237         * hooks.h: Ditto.
20238         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
20239         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
20240         emit_store_flag): Update set_src_cost and rtx_cost calls.
20241         * auto-inc-dec.c (attempt_change): Likewise.
20242         * calls.c (precompute_register_parameters): Likewise.
20243         * combine.c (expand_compound_operation, make_extraction,
20244         force_to_mode, distribute_and_simplify_rtx): Likewise.
20245         * dojump.c (prefer_and_bit_test): Likewise.
20246         * dse.c (find_shift_sequence): Likewise.
20247         * expr.c (compress_float_constant): Likewise.
20248         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
20249         * ifcvt.c (noce_try_sign_mask): Likewise.
20250         * loop-doloop.c (doloop_optimize): Likewise.
20251         * loop-invariant.c (create_new_invariant): Likewise.
20252         * lower-subreg.c (shift_cost, compute_costs): Likewise.
20253         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
20254         lshift_cheap_p): Likewise.
20255         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
20256         try_replace_in_use, reload_cse_move2add): Likewise.
20257         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
20258         Likewise.
20259         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
20260         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
20261         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
20262         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
20263         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
20264         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
20265         to rtx_cost calls.
20266         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
20267         * config/arc/arc.c (arc_rtx_costs): Likewise.
20268         * config/arm/arm.c (arm_rtx_costs): Likewise.
20269         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
20270         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
20271         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
20272         * config/cris/cris.c (cris_rtx_costs): Likewise.
20273         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
20274         * config/frv/frv.c (frv_rtx_costs): Likewise.
20275         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
20276         * config/i386/i386.c (ix86_rtx_costs): Likewise.
20277         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
20278         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
20279         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
20280         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
20281         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
20282         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
20283         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
20284         * config/mep/mep.c (mep_rtx_cost): Likewise.
20285         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
20286         * config/mips/mips.c (mips_rtx_costs): Likewise.
20287         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
20288         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
20289         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
20290         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
20291         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
20292         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
20293         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
20294         * config/pa/pa.c (hppa_rtx_costs): Likewise.
20295         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
20296         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
20297         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
20298         * config/s390/s390.c (s390_rtx_costs): Likewise.
20299         * config/sh/sh.c (sh_rtx_costs): Likewise.
20300         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
20301         * config/spu/spu.c (spu_rtx_costs): Likewise.
20302         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
20303         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
20304         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
20305         * config/v850/v850.c (v850_rtx_costs): Likewise.
20306         * config/vax/vax.c (vax_rtx_costs): Likewise.
20307         * config/visium/visium.c (visium_rtx_costs): Likewise.
20308         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
20309         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
20310         "code" param, and pass as outer_code to first rtx_cost call.  Pass
20311         mode to rtx_cost calls.
20312         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
20313         calls.
20314         (aarch64_rtx_costs_wrapper): Update.
20315         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
20316         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
20317         rtx_cost calls.
20318         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
20319         and rtx_cost calls.
20320         (avr_operand_rtx_cost): Similarly.
20321         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
20322         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
20323         * config/mips/mips.c (mips_stack_address_p): Comment typo.
20324         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
20325         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
20326         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
20327         rtx_cost.
20328         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
20329         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
20330         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
20331         * doc/tm.texi: Regenerate.
20332
20333 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
20334
20335         * tree-core.h: Include symtab.h.
20336         * rtl.h: Include hard-reg-set.h but not flags.h.
20337         (HARD_CONST): Remove condition compilation involving HARD_CONST since
20338         hard-reg-set.h is always included.
20339         * regs.h: Don't include hard-reg-set.h or rtl.h.
20340         * cfg.h: Include dominance.h.
20341         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
20342         * backend.h: New.  Aggregate commonly used backend header files.
20343         * gimple-ssa.h: Don't include tree-hasher.h.
20344         * ssa.h: New.  Aggregate commonly used SSA header files.
20345         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
20346         * sel-sched-ir.h: Flatten includes.
20347         * lra-int.h: Flatten completely.
20348         * sel-sched-dump.h: Flatten includes.
20349         * ira-int.h: Flatten includes.
20350         * gimple-streamer.h: Remove all includes.
20351         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
20352         * resource.h: Flatten hard-reg-set.h and df.h.
20353         * sched-int.h: Flatten insn-arrt.h and df.h.
20354         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
20355         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
20356         * genattrtab.c (write_header): Adjust generated includes.
20357         * genautomata.c (main): Likewise.
20358         * genconditions.c (write-header): Likewise.
20359         * genemit.c (main): Likewise.
20360         * gengtype.c (open_base_files): Likewise.
20361         * genopinit.c (main): Likewise.
20362         * genoutput.c (output_prologue): Likewise.
20363         * genpeep.c (main): Likewise.
20364         * genpreds.c (write_insn_preds_c): Likewise.
20365         * genrecog.c (write_header): Likewise.
20366         * alias.c: Adjust includes.
20367         * asan.c: Likewise.
20368         * attribs.c: Likewise.
20369         * auto-inc-dec.c: Likewise.
20370         * auto-profile.c: Likewise.
20371         * bb-reorder.c: Likewise.
20372         * bt-load.c: Likewise.
20373         * builtins.c: Likewise.
20374         * caller-save.c: Likewise.
20375         * calls.c: Likewise.
20376         * ccmp.c: Likewise.
20377         * cfg.c: Likewise.
20378         * cfganal.c: Likewise.
20379         * cfgbuild.c: Likewise.
20380         * cfgcleanup.c: Likewise.
20381         * cfgexpand.c: Likewise.
20382         * cfghooks.c: Likewise.
20383         * cfgloop.c: Likewise.
20384         * cfgloopanal.c: Likewise.
20385         * cfgloopmanip.c: Likewise.
20386         * cfgrtl.c: Likewise.
20387         * cgraph.c: Likewise.
20388         * cgraphbuild.c: Likewise.
20389         * cgraphclones.c: Likewise.
20390         * cgraphunit.c: Likewise.
20391         * cilk-common.c: Likewise.
20392         * combine-stack-adj.c: Likewise.
20393         * combine.c: Likewise.
20394         * compare-elim.c: Likewise.
20395         * convert.c: Likewise.
20396         * coverage.c: Likewise.
20397         * cppbuiltin.c: Likewise.
20398         * cprop.c: Likewise.
20399         * cse.c: Likewise.
20400         * cselib.c: Likewise.
20401         * data-streamer-in.c: Likewise.
20402         * data-streamer-out.c: Likewise.
20403         * data-streamer.c: Likewise.
20404         * dbxout.c: Likewise.
20405         * dce.c: Likewise.
20406         * ddg.c: Likewise.
20407         * debug.c: Likewise.
20408         * df-core.c: Likewise.
20409         * df-problems.c: Likewise.
20410         * df-scan.c: Likewise.
20411         * dfp.c: Likewise.
20412         * dojump.c: Likewise.
20413         * dominance.c: Likewise.
20414         * domwalk.c: Likewise.
20415         * double-int.c: Likewise.
20416         * dse.c: Likewise.
20417         * dumpfile.c: Likewise.
20418         * dwarf2asm.c: Likewise.
20419         * dwarf2cfi.c: Likewise.
20420         * dwarf2out.c: Likewise.
20421         * emit-rtl.c: Likewise.
20422         * et-forest.c: Likewise.
20423         * except.c: Likewise.
20424         * explow.c: Likewise.
20425         * expmed.c: Likewise.
20426         * expr.c: Likewise.
20427         * final.c: Likewise.
20428         * fixed-value.c: Likewise.
20429         * fold-const.c: Likewise.
20430         * function.c: Likewise.
20431         * fwprop.c: Likewise.
20432         * gcc-plugin.h: Likewise.
20433         * gcse-common.c: Likewise.
20434         * gcse.c: Likewise.
20435         * generic-match-head.c: Likewise.
20436         * ggc-page.c: Likewise.
20437         * gimple-builder.c: Likewise.
20438         * gimple-expr.c: Likewise.
20439         * gimple-fold.c: Likewise.
20440         * gimple-iterator.c: Likewise.
20441         * gimple-low.c: Likewise.
20442         * gimple-match-head.c: Likewise.
20443         * gimple-pretty-print.c: Likewise.
20444         * gimple-ssa-isolate-paths.c: Likewise.
20445         * gimple-ssa-strength-reduction.c: Likewise.
20446         * gimple-streamer-in.c: Likewise.
20447         * gimple-streamer-out.c: Likewise.
20448         * gimple-walk.c: Likewise.
20449         * gimple.c: Likewise.
20450         * gimplify-me.c: Likewise.
20451         * gimplify.c: Likewise.
20452         * godump.c: Likewise.
20453         * graph.c: Likewise.
20454         * graphite-blocking.c: Likewise.
20455         * graphite-dependences.c: Likewise.
20456         * graphite-interchange.c: Likewise.
20457         * graphite-isl-ast-to-gimple.c: Likewise.
20458         * graphite-optimize-isl.c: Likewise.
20459         * graphite-poly.c: Likewise.
20460         * graphite-scop-detection.c: Likewise.
20461         * graphite-sese-to-poly.c: Likewise.
20462         * graphite.c: Likewise.
20463         * haifa-sched.c: Likewise.
20464         * hw-doloop.c: Likewise.
20465         * ifcvt.c: Likewise.
20466         * init-regs.c: Likewise.
20467         * internal-fn.c: Likewise.
20468         * ipa-chkp.c: Likewise.
20469         * ipa-comdats.c: Likewise.
20470         * ipa-cp.c: Likewise.
20471         * ipa-devirt.c: Likewise.
20472         * ipa-icf-gimple.c: Likewise.
20473         * ipa-icf.c: Likewise.
20474         * ipa-inline-analysis.c: Likewise.
20475         * ipa-inline-transform.c: Likewise.
20476         * ipa-inline.c: Likewise.
20477         * ipa-polymorphic-call.c: Likewise.
20478         * ipa-profile.c: Likewise.
20479         * ipa-prop.c: Likewise.
20480         * ipa-pure-const.c: Likewise.
20481         * ipa-ref.c: Likewise.
20482         * ipa-reference.c: Likewise.
20483         * ipa-split.c: Likewise.
20484         * ipa-utils.c: Likewise.
20485         * ipa-visibility.c: Likewise.
20486         * ipa.c: Likewise.
20487         * ira-build.c: Likewise.
20488         * ira-color.c: Likewise.
20489         * ira-conflicts.c: Likewise.
20490         * ira-costs.c: Likewise.
20491         * ira-emit.c: Likewise.
20492         * ira-lives.c: Likewise.
20493         * ira.c: Likewise.
20494         * jump.c: Likewise.
20495         * langhooks.c: Likewise.
20496         * lcm.c: Likewise.
20497         * loop-doloop.c: Likewise.
20498         * loop-init.c: Likewise.
20499         * loop-invariant.c: Likewise.
20500         * loop-iv.c: Likewise.
20501         * loop-unroll.c: Likewise.
20502         * lower-subreg.c: Likewise.
20503         * lra-assigns.c: Likewise.
20504         * lra-coalesce.c: Likewise.
20505         * lra-constraints.c: Likewise.
20506         * lra-eliminations.c: Likewise.
20507         * lra-lives.c: Likewise.
20508         * lra-remat.c: Likewise.
20509         * lra-spills.c: Likewise.
20510         * lra.c: Likewise.
20511         * lto-cgraph.c: Likewise.
20512         * lto-compress.c: Likewise.
20513         * lto-opts.c: Likewise.
20514         * lto-section-in.c: Likewise.
20515         * lto-section-out.c: Likewise.
20516         * lto-streamer-in.c: Likewise.
20517         * lto-streamer-out.c: Likewise.
20518         * lto-streamer.c: Likewise.
20519         * mcf.c: Likewise.
20520         * mode-switching.c: Likewise.
20521         * modulo-sched.c: Likewise.
20522         * omega.c: Likewise.
20523         * omp-low.c: Likewise.
20524         * optabs.c: Likewise.
20525         * opts-global.c: Likewise.
20526         * passes.c: Likewise.
20527         * plugin.c: Likewise.
20528         * postreload-gcse.c: Likewise.
20529         * postreload.c: Likewise.
20530         * predict.c: Likewise.
20531         * print-rtl.c: Likewise.
20532         * print-tree.c: Likewise.
20533         * profile.c: Likewise.
20534         * real.c: Likewise.
20535         * realmpfr.c: Likewise.
20536         * recog.c: Likewise.
20537         * ree.c: Likewise.
20538         * reg-stack.c: Likewise.
20539         * regcprop.c: Likewise.
20540         * reginfo.c: Likewise.
20541         * regrename.c: Likewise.
20542         * regstat.c: Likewise.
20543         * reload.c: Likewise.
20544         * reload1.c: Likewise.
20545         * reorg.c: Likewise.
20546         * resource.c: Likewise.
20547         * rtl-chkp.c: Likewise.
20548         * rtlanal.c: Likewise.
20549         * rtlhooks.c: Likewise.
20550         * sanopt.c: Likewise.
20551         * sched-deps.c: Likewise.
20552         * sched-ebb.c: Likewise.
20553         * sched-rgn.c: Likewise.
20554         * sched-vis.c: Likewise.
20555         * sdbout.c: Likewise.
20556         * sel-sched-dump.c: Likewise.
20557         * sel-sched-ir.c: Likewise.
20558         * sel-sched.c: Likewise.
20559         * sese.c: Likewise.
20560         * shrink-wrap.c: Likewise.
20561         * simplify-rtx.c: Likewise.
20562         * stack-ptr-mod.c: Likewise.
20563         * stmt.c: Likewise.
20564         * stor-layout.c: Likewise.
20565         * store-motion.c: Likewise.
20566         * stringpool.c: Likewise.
20567         * symtab.c: Likewise.
20568         * target-globals.c: Likewise.
20569         * targhooks.c: Likewise.
20570         * toplev.c: Likewise.
20571         * tracer.c: Likewise.
20572         * trans-mem.c: Likewise.
20573         * tree-affine.c: Likewise.
20574         * tree-browser.c: Likewise.
20575         * tree-call-cdce.c: Likewise.
20576         * tree-cfg.c: Likewise.
20577         * tree-cfgcleanup.c: Likewise.
20578         * tree-chkp-opt.c: Likewise.
20579         * tree-chkp.c: Likewise.
20580         * tree-chrec.c: Likewise.
20581         * tree-complex.c: Likewise.
20582         * tree-data-ref.c: Likewise.
20583         * tree-dfa.c: Likewise.
20584         * tree-diagnostic.c: Likewise.
20585         * tree-dump.c: Likewise.
20586         * tree-eh.c: Likewise.
20587         * tree-emutls.c: Likewise.
20588         * tree-if-conv.c: Likewise.
20589         * tree-inline.c: Likewise.
20590         * tree-into-ssa.c: Likewise.
20591         * tree-iterator.c: Likewise.
20592         * tree-loop-distribution.c: Likewise.
20593         * tree-nested.c: Likewise.
20594         * tree-nrv.c: Likewise.
20595         * tree-object-size.c: Likewise.
20596         * tree-outof-ssa.c: Likewise.
20597         * tree-parloops.c: Likewise.
20598         * tree-phinodes.c: Likewise.
20599         * tree-predcom.c: Likewise.
20600         * tree-pretty-print.c: Likewise.
20601         * tree-profile.c: Likewise.
20602         * tree-scalar-evolution.c: Likewise.
20603         * tree-sra.c: Likewise.
20604         * tree-ssa-address.c: Likewise.
20605         * tree-ssa-alias.c: Likewise.
20606         * tree-ssa-ccp.c: Likewise.
20607         * tree-ssa-coalesce.c: Likewise.
20608         * tree-ssa-copy.c: Likewise.
20609         * tree-ssa-copyrename.c: Likewise.
20610         * tree-ssa-dce.c: Likewise.
20611         * tree-ssa-dom.c: Likewise.
20612         * tree-ssa-dse.c: Likewise.
20613         * tree-ssa-forwprop.c: Likewise.
20614         * tree-ssa-ifcombine.c: Likewise.
20615         * tree-ssa-live.c: Likewise.
20616         * tree-ssa-loop-ch.c: Likewise.
20617         * tree-ssa-loop-im.c: Likewise.
20618         * tree-ssa-loop-ivcanon.c: Likewise.
20619         * tree-ssa-loop-ivopts.c: Likewise.
20620         * tree-ssa-loop-manip.c: Likewise.
20621         * tree-ssa-loop-niter.c: Likewise.
20622         * tree-ssa-loop-prefetch.c: Likewise.
20623         * tree-ssa-loop-unswitch.c: Likewise.
20624         * tree-ssa-loop.c: Likewise.
20625         * tree-ssa-math-opts.c: Likewise.
20626         * tree-ssa-operands.c: Likewise.
20627         * tree-ssa-phiopt.c: Likewise.
20628         * tree-ssa-phiprop.c: Likewise.
20629         * tree-ssa-pre.c: Likewise.
20630         * tree-ssa-propagate.c: Likewise.
20631         * tree-ssa-reassoc.c: Likewise.
20632         * tree-ssa-sccvn.c: Likewise.
20633         * tree-ssa-scopedtables.c: Likewise.
20634         * tree-ssa-sink.c: Likewise.
20635         * tree-ssa-strlen.c: Likewise.
20636         * tree-ssa-structalias.c: Likewise.
20637         * tree-ssa-tail-merge.c: Likewise.
20638         * tree-ssa-ter.c: Likewise.
20639         * tree-ssa-threadedge.c: Likewise.
20640         * tree-ssa-threadupdate.c: Likewise.
20641         * tree-ssa-uncprop.c: Likewise.
20642         * tree-ssa-uninit.c: Likewise.
20643         * tree-ssa.c: Likewise.
20644         * tree-ssanames.c: Likewise.
20645         * tree-stdarg.c: Likewise.
20646         * tree-streamer-in.c: Likewise.
20647         * tree-streamer-out.c: Likewise.
20648         * tree-streamer.c: Likewise.
20649         * tree-switch-conversion.c: Likewise.
20650         * tree-tailcall.c: Likewise.
20651         * tree-vect-data-refs.c: Likewise.
20652         * tree-vect-generic.c: Likewise.
20653         * tree-vect-loop-manip.c: Likewise.
20654         * tree-vect-loop.c: Likewise.
20655         * tree-vect-patterns.c: Likewise.
20656         * tree-vect-slp.c: Likewise.
20657         * tree-vect-stmts.c: Likewise.
20658         * tree-vectorizer.c: Likewise.
20659         * tree-vrp.c: Likewise.
20660         * tree.c: Likewise.
20661         * tsan.c: Likewise.
20662         * ubsan.c: Likewise.
20663         * valtrack.c: Likewise.
20664         * value-prof.c: Likewise.
20665         * var-tracking.c: Likewise.
20666         * varasm.c: Likewise.
20667         * varpool.c: Likewise.
20668         * vmsdbgout.c: Likewise.
20669         * vtable-verify.c: Likewise.
20670         * web.c: Likewise.
20671         * wide-int.cc: Likewise.
20672         * xcoffout.c: Likewise.
20673         * config/aarch64/aarch64-builtins.c: Likewise.
20674         * config/aarch64/aarch64.c: Likewise.
20675         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
20676         * config/alpha/alpha.c: Likewise.
20677         * config/arc/arc.c: Likewise.
20678         * config/arm/aarch-common.c: Likewise.
20679         * config/arm/arm-builtins.c: Likewise.
20680         * config/arm/arm-c.c: Likewise.
20681         * config/arm/arm.c: Likewise.
20682         * config/avr/avr-c.c: Likewise.
20683         * config/avr/avr-log.c: Likewise.
20684         * config/avr/avr.c: Likewise.
20685         * config/bfin/bfin.c: Likewise.
20686         * config/c6x/c6x.c: Likewise.
20687         * config/cr16/cr16.c: Likewise.
20688         * config/cris/cris.c: Likewise.
20689         * config/darwin-c.c: Likewise.
20690         * config/darwin.c: Likewise.
20691         * config/epiphany/epiphany.c: Likewise.
20692         * config/epiphany/mode-switch-use.c: Likewise.
20693         * config/epiphany/resolve-sw-modes.c: Likewise.
20694         * config/fr30/fr30.c: Likewise.
20695         * config/frv/frv.c: Likewise.
20696         * config/ft32/ft32.c: Likewise.
20697         * config/h8300/h8300.c: Likewise.
20698         * config/i386/i386-c.c: Likewise.
20699         * config/i386/i386.c: Likewise.
20700         * config/i386/msformat-c.c: Likewise.
20701         * config/i386/winnt-cxx.c: Likewise.
20702         * config/i386/winnt-stubs.c: Likewise.
20703         * config/i386/winnt.c: Likewise.
20704         * config/ia64/ia64-c.c: Likewise.
20705         * config/ia64/ia64.c: Likewise.
20706         * config/iq2000/iq2000.c: Likewise.
20707         * config/lm32/lm32.c: Likewise.
20708         * config/m32c/m32c-pragma.c: Likewise.
20709         * config/m32c/m32c.c: Likewise.
20710         * config/m32r/m32r.c: Likewise.
20711         * config/m68k/m68k.c: Likewise.
20712         * config/mcore/mcore.c: Likewise.
20713         * config/mep/mep-pragma.c: Likewise.
20714         * config/mep/mep.c: Likewise.
20715         * config/microblaze/microblaze-c.c: Likewise.
20716         * config/microblaze/microblaze.c: Likewise.
20717         * config/mips/mips.c: Likewise.
20718         * config/mmix/mmix.c: Likewise.
20719         * config/mn10300/mn10300.c: Likewise.
20720         * config/moxie/moxie.c: Likewise.
20721         * config/msp430/msp430-c.c: Likewise.
20722         * config/msp430/msp430.c: Likewise.
20723         * config/nds32/nds32-cost.c: Likewise.
20724         * config/nds32/nds32-fp-as-gp.c: Likewise.
20725         * config/nds32/nds32-intrinsic.c: Likewise.
20726         * config/nds32/nds32-isr.c: Likewise.
20727         * config/nds32/nds32-md-auxiliary.c: Likewise.
20728         * config/nds32/nds32-memory-manipulation.c: Likewise.
20729         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
20730         * config/nds32/nds32-predicates.c: Likewise.
20731         * config/nds32/nds32.c: Likewise.
20732         * config/nios2/nios2.c: Likewise.
20733         * config/nvptx/nvptx.c: Likewise.
20734         * config/pa/pa.c: Likewise.
20735         * config/pdp11/pdp11.c: Likewise.
20736         * config/rl78/rl78-c.c: Likewise.
20737         * config/rl78/rl78.c: Likewise.
20738         * config/rs6000/rs6000-c.c: Likewise.
20739         * config/rs6000/rs6000.c: Likewise.
20740         * config/rx/rx.c: Likewise.
20741         * config/s390/s390-c.c: Likewise.
20742         * config/s390/s390.c: Likewise.
20743         * config/sh/sh-c.c: Likewise.
20744         * config/sh/sh-mem.cc: Likewise.
20745         * config/sh/sh.c: Likewise.
20746         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
20747         * config/sh/sh_treg_combine.cc: Likewise.
20748         * config/sol2-c.c: Likewise.
20749         * config/sol2-cxx.c: Likewise.
20750         * config/sol2-stubs.c: Likewise.
20751         * config/sol2.c: Likewise.
20752         * config/sparc/sparc-c.c: Likewise.
20753         * config/sparc/sparc.c: Likewise.
20754         * config/spu/spu-c.c: Likewise.
20755         * config/spu/spu.c: Likewise.
20756         * config/stormy16/stormy16.c: Likewise.
20757         * config/tilegx/mul-tables.c: Likewise.
20758         * config/tilegx/tilegx-c.c: Likewise.
20759         * config/tilegx/tilegx.c: Likewise.
20760         * config/tilepro/mul-tables.c: Likewise.
20761         * config/tilepro/tilepro-c.c: Likewise.
20762         * config/tilepro/tilepro.c: Likewise.
20763         * config/v850/v850-c.c: Likewise.
20764         * config/v850/v850.c: Likewise.
20765         * config/vax/vax.c: Likewise.
20766         * config/visium/visium.c: Likewise.
20767         * config/vms/vms-c.c: Likewise.
20768         * config/vms/vms.c: Likewise.
20769         * config/vxworks.c: Likewise.
20770         * config/xtensa/xtensa.c: Likewise.
20771
20772 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
20773
20774         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
20775         Remove operand constraints.  Change operand 2 predicate to
20776         nonmemory operand.  Limit const_int values to mode bitsize.  Only
20777         allow const_int values less than 32 when optimizing for size.
20778         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
20779         Remove operand constraints.
20780         (*bt<mode>): Use SImode for const_int values less than 32.
20781         (regmode): Remove mode attribute.
20782
20783 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
20784
20785         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
20786         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
20787           moxie_legitimate_address_p): New functions.
20788           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
20789
20790 2015-07-07  Tom de Vries  <tom@codesourcery.com>
20791
20792         PR tree-optimization/66642
20793         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
20794         header comment.  Rename split_edge variable to edge_at_split.  Split
20795         exit edge to create new loop exit bb.  Insert loop exit phis in new
20796         loop exit bb.
20797
20798 2015-07-07  Tom de Vries  <tom@codesourcery.com>
20799
20800         * tree-cfg.c (get_virtual_phi): New function.
20801         * tree-cfg.h (get_virtual_phi): Declare.
20802         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
20803         (rewrite_virtuals_into_loop_closed_ssa): New function.
20804         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
20805         Declare.
20806         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
20807         (transform_to_exit_first_loop_alt): Use
20808         rewrite_virtuals_into_loop_closed_ssa.
20809
20810 2015-07-07  Richard Biener  <rguenther@suse.de>
20811
20812         * fold-const.c (fold_binary_loc): Move
20813         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
20814         * match.pd: ... here.
20815         Add (X * C1) % C2 -> 0 simplification pattern derived from
20816         extract_muldiv_1.
20817
20818 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
20819
20820         PR target/66780
20821         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
20822         change for target/65249.
20823
20824 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
20825
20826         * symtab.c (address_matters_1): Fix typo in comment above.
20827         (can_increase_alignment_p): Likewise.
20828
20829 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20830
20831         * function.c (free_after_compilation): Clear PROP_cfg in
20832         f->curr_properties.
20833
20834 2015-07-07  Richard Biener  <rguenther@suse.de>
20835
20836         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
20837         add which use to.
20838         (add_control_edge): Remove excessive vertical space in dumping.
20839         (process_ssa_edge_worklist): Simulate at most one statement and
20840         return whether we did.  Do not simulate PHIs if they are in a
20841         BB not yet simulated.
20842         (ssa_propagate): Adjust to always drain the BB worklist whenever
20843         a BB is available there, likewise the VARYING edges list before
20844         the interesting edge list.
20845
20846 2015-07-07  Christian Bruel  <christian.bruel@st.com>
20847
20848         PR target/52144
20849         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
20850
20851 2015-07-07  Richard Biener  <rguenther@suse.de>
20852
20853         PR middle-end/66739
20854         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
20855         A - B.
20856
20857 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
20858
20859         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
20860         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
20861         Copy operand 0 to a temporary if !ext_register_operand.  Remove
20862         ancient extract_bit_field workaround.
20863         (insv<mode>_1): Rename from mov<mode>_insv_1.
20864         (*insvqi): Rename from *movqi_insv_2.
20865         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
20866         for renamed insvsi_1.
20867         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
20868
20869 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
20870
20871         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
20872         call to nvptx_reorg_subreg.
20873
20874 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
20875
20876         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
20877         * graphite-dependencies.c, graphite-interchange.c,
20878         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
20879         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
20880         Likewise.
20881
20882 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
20883
20884         * match.pd: Remove element_mode inside HONOR_*.
20885         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
20886         (~X | X -> -1, ~X ^ X -> -1): Merge.
20887         * tree.c (build_each_one_cst): New function.
20888         * tree.h (build_each_one_cst): Likewise.
20889
20890 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
20891
20892         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
20893         PROCESSOR_IAMCU.
20894
20895 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
20896
20897         * config.gcc <mips*-*-*>: Add fused-madd.opt.
20898         * config/mips/mips.opt (mfused-madd): Remove.
20899         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
20900         * config/mips/mips.h (TARGET_MIPS8000): New.
20901         (ISA_HAS_FP_MADD4_MSUB4): Remove.
20902         (ISA_HAS_FP_MADDF_MSUBF): Remove.
20903         (ISA_HAS_FP_MADD3_MSUB3): Remove.
20904         (ISA_HAS_NMADD4_NMSUB4): Remove.
20905         (ISA_HAS_NMADD3_NMSUB3): Remove.
20906         (ISA_HAS_FUSED_MADD4): New.
20907         (ISA_HAS_UNFUSED_MADD4): New.
20908         (ISA_HAS_FUSED_MADDF): New.
20909         (ISA_HAS_FUSED_MADD3): New.
20910         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
20911         (*fma<mode>4_madd3) New.
20912         (*fma<mode>4_madd4) New.
20913         (*fma<mode>4_maddf) New.
20914         (fms<mode>4) New.
20915         (*fms<mode>4_msub3) New.
20916         (*fms<mode>4_msub4) New.
20917         (fnma<mode>4) New.
20918         (*fnma<mode>4_nmadd3) New.
20919         (*fnma<mode>4_nmadd4) New.
20920         (fnms<mode>4) New.
20921         (*fnms<mode>4_nmsub3) New.
20922         (*fnms<mode>4_nmsub4) New.
20923         (*madd4<mode>) Modify to be unfused only.
20924         (*msub4<mode>) Modify to be unfused only.
20925         (*nmadd4<mode>) Modify to be unfused only.
20926         (*nmsub4<mode>) Modify to be unfused only.
20927         (*madd3<mode>) Remove.
20928         (*msub3<mode>) Remove.
20929         (*nmadd3<mode>) Remove.
20930         (*nmsub3<mode>) Remove.
20931         (*nmadd3<mode>_fastmath) Remove.
20932         (*nmsub3<mode>_fastmath) Remove.
20933         (*nmadd4<mode>_fastmath) Update condition.
20934         (*nmsub4<mode>_fastmath) Update condition.
20935
20936 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
20937
20938         PR target/65956
20939         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
20940         alignment attribute, exploring one level down for records and arrays.
20941
20942 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
20943
20944         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
20945         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
20946         Copy operand 1 to a temporary if !ext_register_operand.  Remove
20947         ancient extract_bit_field workaround.
20948         (*extv<mode>): Rename from *mov<mode>_extv_1.
20949         (*extvqi): Rename from *movqi_extv_1.
20950         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
20951         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
20952         to a temporary if !ext_register_operand.  Remove ancient
20953         extract_bit_field workaround.
20954         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
20955         (*extzvqi): Rename from *movqi_extzv_2.
20956         (*testqi_ext_3): Remove modes from const_int_operand predicated
20957         operands.  Add "n" constraint.
20958         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
20959         operand.  Add "J" constraint.
20960         (*btsq, *btrq, *btcq peephole2s): Remove mode from
20961         const_0_to_63 predicated operand.
20962         (regmode): New insn attribute.
20963         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
20964         to nonmemory_operand.  Use regmode insn attribute.
20965         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
20966         (*jcc_bt<mode>_mask): Remove mode from operand 3.
20967         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
20968         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
20969         operands.  Use "N" constraint instead of "n".
20970
20971 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
20972
20973         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
20974
20975 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
20976
20977         PR target/66749
20978         * config/i386/i386.c (iamcu_cost): New.
20979         (m_IAMCU): Likewise.
20980         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
20981         (processor_target_table): Add an entry for "iamcu".
20982         (processor_alias_table): Likewise.
20983         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
20984         (ix86_adjust_cost): Likewise.
20985         (ia32_multipass_dfa_lookahead): Likewise.
20986         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
20987         * config/i386/x86-tune.def: Updated for m_IAMCU.
20988
20989 2015-07-06  Richard Biener  <rguenther@suse.de>
20990
20991         PR tree-optimization/66772
20992         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
20993         values are available in the PHI node BB when there are
20994         still unexecutable edges.
20995
20996 2015-07-06  Richard Biener  <rguenther@suse.de>
20997
20998         PR tree-optimization/66767
20999         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
21000         Make sure to build the alignment test on a SSA name without
21001         final alignment info valid only if the alignment test
21002         evaluates to true.
21003
21004 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
21005
21006         PR target/66620
21007         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
21008         loop start when inserting LSETUP.
21009
21010 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
21011
21012         PR target/53383
21013         * config/i386/i386.c (ix86_option_override_internal): Allow
21014         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
21015
21016 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21017
21018         * read-md.c (decimal_string): Rename to ...
21019         (md_decimal_string): ... this.
21020         (handle_enum): Reflect this.
21021
21022 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
21023
21024         PR target/66731
21025         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
21026
21027 2015-07-06  Richard Biener  <rguenther@suse.de>
21028
21029         PR middle-end/66759
21030         * match.pd: Add missing constraint of y to REAL_CST in
21031         REAL_CST - x CMP y to y - CST CMP x simplification.
21032
21033 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
21034
21035         PR tree-optimization/66757
21036         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
21037
21038 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
21039             Sandra Loosemore <sandra@codesourcery.com>
21040
21041         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
21042         Delete extern declaration.
21043         (gprel_constant_p): Add extern declaration.
21044         * config/nios2/constraints.md ("S"): Use gprel_constant_p
21045         instead of nios2_symbol_ref_in_small_data_p.
21046         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
21047         (nios2_symbol_ref_in_small_data_p): Make static.
21048         (gprel_constant_p): Make non-static.
21049
21050 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
21051
21052         * doc/fragments.texi (Target Fragment): Convert debian.org
21053         link to use https.
21054         * doc/install.texi (Configuration): Ditto.
21055
21056 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
21057
21058         PR tree-optimization/66718
21059         * tree-vect-stmts.c (vectorizable_call): Replace uses of
21060         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
21061
21062         PR tree-optimization/66718
21063         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
21064         vectorizable_load, vectorizable_condition): Move vectype,
21065         nunits, ncopies computation after checking what kind of statement
21066         stmt is.
21067
21068 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21069
21070         * target-insns.def (extv, extzv, insv): New targetm instruction
21071         patterns.
21072         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
21073         interface.
21074         * recog.c (simplify_while_replacing): Likewise.
21075
21076 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21077
21078         * target-insns.def (doloop_begin, doloop_end): New targetm
21079         instruction patterns.
21080         * loop-init.c: Include target.h.
21081         (pass_loop2::gate): Use the new targetm patterns instead of
21082         HAVE_*/gen_* interface.
21083         (pass_rtl_doloop::gate): Likewise.
21084         (pass_rtl_doloop::execute): Remove preprocessor condition.
21085         * hw-doloop.c: Build unconditionally.
21086         * loop-doloop.c: Likewise.
21087         (doloop_optimize): Use the new targetm patterns instead of
21088         HAVE_*/gen_* interface.
21089         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
21090         * modulo-sched.c (doloop_register_get): Likewise.
21091
21092 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21093
21094         * target-insns.def (clear_cache): New targetm instruction pattern.
21095         * builtins.c (expand_builtin___clear_cache): Use it instead of
21096         HAVE_*/gen_* interface.
21097
21098 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21099
21100         * target-insns.def (allocate_stack, check_stack, probe_stack)
21101         (probe_stack_address, split_stack_prologue, split_stack_space_check):
21102         New targetm instruction patterns.
21103         * explow.c (allocate_dynamic_stack_space): Use them instead of
21104         HAVE_*/gen_* interface.
21105         (emit_stack_probe): Likewise.
21106         (probe_stack_range): Likewise.
21107         * function.c (thread_prologue_and_epilogue_insns): Likewise.
21108
21109 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21110
21111         * target-insns.def (stack_protect_set, stack_protect_test): New
21112         targetm instruction patterns.
21113         * cfgexpand.c (stack_protect_prologue): Use them instead of
21114         HAVE_*/gen_* interface.
21115         * function.c (stack_protect_epilogue): Likewise.
21116
21117 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21118
21119         * expr.h (gen_move_insn_uncast): Delete.
21120         * expr.c (gen_move_insn_uncast): Delete.
21121
21122 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21123
21124         * target-insns.def (restore_stack_block, restore_stack_function)
21125         (restore_stack_nonlocal, save_stack_block, save_stack_function)
21126         (save_stack_nonlocal): New targetm instruction patterns.
21127         * builtins.c (expand_builtin_apply): Use them instead of
21128         HAVE_*/gen_* interface.
21129         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
21130
21131 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21132
21133         * target-insns.def (trap): New targetm instruction pattern.
21134         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
21135         interface.
21136         * explow.c (allocate_dynamic_stack_space): Likewise.
21137         * ifcvt.c (find_if_header): Likewise.
21138
21139 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21140
21141         * target-insns.def (prefetch): New targetm instruction pattern.
21142         * tree-ssa-loop-prefetch.c: Include targeth.
21143         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
21144         of HAVE_*/gen_* interface.
21145         * builtins.c (expand_builtin_prefetch): Likewise.
21146         * toplev.c (process_options): Likewise.
21147
21148 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21149
21150         * target-insns.def (untyped_call, untyped_return): New targetm
21151         instruction patterns.
21152         * builtins.c (expand_builtin_apply): Use them instead of
21153         HAVE_*/gen_* interface.
21154         (result_vector): Define unconditionally.
21155
21156 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21157
21158         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
21159         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
21160         (nonlocal_goto_receiver): New targetm instruction patterns.
21161         * builtins.c (expand_builtin_setjmp_setup): Use them instead
21162         of HAVE_*/gen_* interface.
21163         (expand_builtin_setjmp_receiver): Likewise.
21164         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
21165         * except.c (expand_dw2_landing_pad_for_region): Likewise.
21166
21167 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
21168
21169         * target.def: Add code_for_* hooks.
21170         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
21171         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
21172         * target-insns.def (casesi, tablejump): New targetm instruction
21173         patterns.
21174         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
21175         (do_tablejump): Likewise.
21176         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
21177         (expand_sjlj_dispatch_table): Likewise.
21178         * targhooks.c (default_case_values_threshold): Likewise.
21179
21180 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
21181
21182         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
21183         Use rtx_insn * instead of rtx.
21184         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
21185         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
21186         (nios2_call_tls_get_addr): Likewise.
21187         (nios2_emit_expensive_div): Likewise.
21188         (nios2_emit_move_sequence): Change return type to bool.
21189         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
21190         Change return type to bool.
21191
21192 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21193
21194         PR target/66747
21195         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
21196
21197 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
21198
21199         PR target/66114
21200         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
21201         of register_operand.  Remove constraint.
21202
21203 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
21204
21205         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
21206         the first argument.
21207
21208 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
21209
21210         * attribs.c (decl_attributes): Guard inform with the return value
21211         of the preceding warning.
21212
21213 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
21214
21215         * doc/invoke.texi (moverride): Move to correct section.
21216
21217 2015-07-03  Richard Biener  <rguenther@suse.de>
21218
21219         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
21220         Copy from tree.c
21221         (dt_operand::gen_gimple_expr): After valueizing operands
21222         re-canonicalize operand order for commutative tree codes.
21223
21224 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
21225
21226         PR target/66746.
21227         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
21228         is defined.
21229         (__crc32w): Likewise.
21230         (__crc32d): Likewise.
21231         (__rdpmc): Likewise.
21232         (__rdtscp): Likewise.
21233         (_rdpmc): Likewise.
21234         (_rdtscp): Likewise.
21235         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
21236         is defined.
21237
21238 2015-07-03  Richard Biener  <rguenther@suse.de>
21239
21240         * fold-const.c (fold_mathfn_compare): Remove.
21241         (fold_inf_compare): Likewise.
21242         (fold_comparison): Move floating point comparison simplifications...
21243         * match.pd: ... to patterns here.  Introduce simple_comparisons
21244         operator list and use it for patterns formerly in fold_comparison.
21245
21246 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
21247
21248         PR tree-optimization/66119
21249         * toplev.c (process_options): Don't set up default values for
21250         the sra_max_scalarization_size_{speed,size} parameters.
21251         * tree-sra (analyze_all_variable_accesses): If no values
21252         have been set for the sra_max_scalarization_size_{speed,size}
21253         parameters, call get_move_ratio to get target defaults.
21254
21255 2015-07-03  Richard Biener  <rguenther@suse.de>
21256
21257         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
21258         * match.pd: ... here.
21259
21260 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
21261
21262         PR target/37072
21263         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
21264         is not actually the default on FreeBSD.
21265
21266 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21267
21268         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
21269         definition.
21270         (CMPGE_8HI): Likewise.
21271         (CMPGE_4SI): Likewise.
21272         (CMPGE_2DI): Likewise.
21273         (CMPGE_U16QI): Likewise.
21274         (CMPGE_U8HI): Likewise.
21275         (CMPGE_U4SI): Likewise.
21276         (CMPGE_U2DI): Likewise.
21277         (CMPLE_16QI): Likewise.
21278         (CMPLE_8HI): Likewise.
21279         (CMPLE_4SI): Likewise.
21280         (CMPLE_2DI): Likewise.
21281         (CMPLE_U16QI): Likewise.
21282         (CMPLE_U8HI): Likewise.
21283         (CMPLE_U4SI): Likewise.
21284         (CMPLE_U2DI): Likewise.
21285         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
21286         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
21287         ALTIVEC_BUILTIN_VEC_CMPLE.
21288         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
21289         floating-point vector modes.
21290         (vector_nlt<mode>): New define_expand.
21291         (vector_nltu<mode>): Likewise.
21292         (vector_ngt<mode>): Likewise.
21293         (vector_ngtu<mode>): Likewise.
21294
21295 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
21296
21297         PR rtl-optimization/66706
21298         * combine.c (make_compound_operation): If an AND of SUBREG of
21299         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
21300
21301 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
21302
21303         * tree-pass.h (make_pass_ch_vect): New.
21304         * passes.def: Add pass_ch_vect just before pass_if_conversion.
21305
21306         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
21307         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
21308         make_pass_ch_vect): New.
21309         (pass_ch): Extend ch_base.
21310
21311         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
21312         (ch_base::copy_headers): ...here.
21313
21314 2015-07-02  Richard Biener  <rguenther@suse.de>
21315
21316         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
21317         * fold-const.c (get_pointer_modulus_and_residue): Remove.
21318         (fold_binary_loc): Implement (T)ptr & CST in terms of
21319         get_pointer_alignment_1.
21320         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
21321         Make sure to build the alignment test on a SSA name without
21322         final alignment info valid only after the prologue.
21323
21324 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
21325
21326         * config/cris/cris.md ("epilogue"): Remove condition.
21327         ("prologue"): Ditto.
21328
21329 2015-07-02  Richard Biener  <rguenther@suse.de>
21330
21331         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
21332         parameter to record a condition that is false.
21333         (record_conditions): When recording an extra NE_EXPR that is
21334         true also record a EQ_EXPR that is false.
21335
21336 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
21337
21338         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
21339         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
21340         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
21341         (set_iv, find_interesting_uses_address, add_candidate_1): New
21342         argument to alloc_iv.
21343         (find_interesting_uses_op, find_interesting_uses_cond): Don't
21344         duplicate struct iv.
21345         (free_loop_data): Don't free struct iv explicitly.
21346         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
21347
21348 2015-07-01  DJ Delorie  <dj@redhat.com>
21349
21350         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
21351         (LIB_SPEC): Add.
21352         (SUPPORTS_DISCRIMINATOR): Define.
21353
21354 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
21355
21356         PR bootstrap/66685
21357         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
21358         there are no CALLs in the same pattern.
21359
21360 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
21361
21362         PR rtl-optimization/61047
21363         * rtlanal.c (get_initial_register_offset): New function.
21364         (rtx_addr_can_trap_p_1): Check offsets of stack references.
21365
21366 2015-07-01  Richard Biener  <rguenther@suse.de>
21367
21368         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
21369         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
21370         ~X CMP C -> X CMP' ~C to ...
21371         * match.pd: ... patterns here.
21372
21373 2015-07-01  Nick Clifton  <nickc@redhat.com>
21374
21375         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
21376         a 16-bit value into a 20-bit memory slot.
21377
21378 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
21379
21380         * doc/sourcebuild.texi (AArch64-specific attributes): Document
21381         "aarch64_tiny", "aarch64_small", "aarch64_large",
21382         "aarch64_little_endian", "aarch64_big_endian".
21383
21384 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
21385
21386         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
21387         Document "aarch64_small_fpic".
21388
21389 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
21390
21391         * configure.ac: Add check for aarch64 assembler -fpic relocation
21392         modifier support.
21393         * configure: Regenerate.
21394         * config.in: Regenerate.
21395         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
21396         to -fPIC if not support of -fpic relocation modifier in assembler.
21397
21398 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
21399
21400         PR bootstrap/66685
21401         * rtl.c (classify_insn): Handle returns in PARALLELs.
21402
21403 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
21404
21405         PR middle-end/66633
21406         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
21407         to true if the function is nested and if not optimizing.
21408         (convert_local_omp_clauses): Initialize need_frame to true if the
21409         function contains nested functions and if not optimizing.
21410
21411 2015-07-01  Richard Biener  <rguenther@suse.de>
21412
21413         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
21414         (X & Y) ^ Y -> ~X & Y transforms to ...
21415         * match.pd: ... here.
21416
21417 2015-07-01  Richard Biener <rguenther@suse.de>
21418
21419         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
21420         of converts to avoid uninteresting noise from the conversion
21421         simplifying patterns.
21422
21423 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
21424
21425         * config/c6x/c6x.c (try_rename_operands): Do not depend on
21426         gcc_assert evaluating its argument for side-effect.
21427
21428 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
21429
21430         PR target/64833
21431         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
21432         flag_pic is set.
21433
21434 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
21435
21436         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
21437         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
21438         (hash_scc): Add this_ref_p and ref_p parameters and pass them
21439         to the inner DFS walk.
21440
21441 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
21442
21443         * target-insns.def (jump): New targetm instruction pattern.
21444         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
21445         instead of gen_jump.
21446         (fix_up_crossing_landing_pad): Likewise.
21447         (add_labels_and_missing_jumps): Likewise.
21448         (fix_crossing_conditional_branches): Likewise.
21449         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
21450         (force_nonfallthru_and_redirect): Likewise.
21451         * cse.c (cse_insn): Likewise.
21452         * expmed.c (expand_divmod): Likewise.
21453         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
21454         * haifa-sched.c (init_before_recovery): Likewise.
21455         (sched_create_recovery_edges): Likewise.
21456         * ifcvt.c (find_cond_trap): Likewise.
21457         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
21458         (expand_float, expand_fix): Likewise.
21459         * stmt.c (emit_jump): Likewise.
21460
21461 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
21462
21463         * defaults.h (HAVE_load_multiple, gen_load_multiple)
21464         (HAVE_store_multiple, gen_store_multiple): Delete.
21465         * target-insns.def (load_multiple, store_multiple): New targetm
21466         instruction patterns.
21467         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
21468         of HAVE_*/gen_* interface.
21469
21470 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
21471
21472         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
21473         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
21474         (gen_mem_signal_fence): Delete.
21475         * target-insns.def (mem_signal_fence, mem_thread_fence)
21476         (memory_barrier): New targetm instruction patterns.
21477         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
21478         interface.
21479         (expand_mem_signal_fence): Likewise.
21480
21481 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
21482
21483         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
21484         * target-insns.def (epilogue, prologue, sibcall_prologue): New
21485         targetm instruction patterns.
21486         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
21487         interface.
21488         * calls.c (expand_call): Likewise.
21489         * cfgrtl.c (cfg_layout_finalize): Likewise.
21490         * df-scan.c (df_get_entry_block_def_set): Likewise.
21491         (df_get_exit_block_use_set): Likewise.
21492         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
21493         * final.c (final_start_function): Likewise.
21494         * function.c (thread_prologue_and_epilogue_insns): Likewise.
21495         (reposition_prologue_and_epilogue_notes): Likewise.
21496         * reorg.c (find_end_label): Likewise.
21497         * toplev.c (process_options): Likewise.
21498
21499 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
21500
21501         * typed-splay-tree.h: New file.
21502
21503 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
21504
21505         PR debug/66691
21506         * lra-int.h (lra_substitute_pseudo): Add a parameter.
21507         (lra_substitute_pseudo_within_insn): Ditto.
21508         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
21509         of constant.
21510         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
21511         to lra_substitute_pseudo.
21512         * lra-lives.c (process_bb_lives): Add an argument to
21513         lra_substitute_pseudo_within_insn call.
21514         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
21515         argument to lra_substitute_pseudo and
21516         lra_substitute_pseudo_within_insn calls.
21517         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
21518
21519 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
21520
21521         * configure: Regenerated.
21522
21523 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
21524
21525         * config.gcc: Support i[34567]86-*-elfiamcu target.
21526         * config/i386/iamcu.h: New.
21527         * config/i386/i386.opt: Add -miamcu.
21528         * doc/invoke.texi: Document -miamcu.
21529         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
21530         off x87/MMX/SSE/AVX codegen for -miamcu.
21531         * config/i386/i386-c.c (ix86_target_macros_internal): Define
21532         __iamcu/__iamcu__ for -miamcu.
21533         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
21534         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
21535         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
21536         * config/i386/i386.c (ix86_option_override_internal): Ignore and
21537         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
21538         MCU by default.  Default long double to 64-bit for Intel MCU.
21539         Turn on -freg-struct-return for Intel MCU.  Issue an error when
21540         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
21541         AVX is turned on.
21542         (function_arg_advance_32): Pass value whose size is no larger
21543         than 8 bytes in registers for Intel MCU.
21544         (function_arg_32): Likewise.
21545         (ix86_return_in_memory): Return value whose size is no larger
21546         than 8 bytes in registers for Intel MCU.
21547         (iamcu_alignment): New function.
21548         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
21549         true.
21550         (ix86_local_alignment): Don't increase alignment for Intel MCU.
21551         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
21552         true.
21553
21554 2015-06-30  Marek Polacek  <polacek@redhat.com>
21555
21556         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
21557         both operands of the resulting expression.
21558
21559         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
21560         the final expression with the operand's type and then convert
21561         it to the type of the expression.
21562
21563 2015-06-30  Richard Biener  <rguenther@suse.de>
21564
21565         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
21566         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
21567         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
21568         * match.pd: ... to patterns here.
21569
21570 2015-06-30  Richard Biener  <rguenther@suse.de>
21571
21572         PR tree-optimization/66704
21573         * tree-vect-data-refs.c (vect_setup_realignment): Use
21574         make_ssa_name for non-SSA name source.
21575
21576 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
21577
21578         PR middle-end/66702
21579         * omp-low.c (simd_clone_adjust): Handle addressable linear
21580         or uniform parameters or non-gimple type uniform parameters.
21581
21582 2015-06-30  Richard Biener  <rguenther@suse.de>
21583
21584         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
21585         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
21586         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
21587         * match.pd: ... here.
21588         Add a few cases of A - B -> A + (-B) when B "easily" negates.
21589         Move (x & y) | x -> x and friends before
21590         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
21591
21592 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
21593
21594         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
21595         -mfix-ut699 is not specified.
21596         (leon3_load): Rename into...
21597         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
21598         is specified.
21599
21600 2015-06-30  Marek Polacek  <polacek@redhat.com>
21601
21602         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
21603         * match.pd: ... here.
21604
21605 2015-06-30  Richard Biener  <rguenther@suse.de>
21606
21607         * target-insns.def (canonicalize_funcptr_for_compare): Add.
21608         * fold-const.c (build_range_check): Replace uses of
21609         HAVE_canonicalize_funcptr_for_compare.
21610         (fold_widened_comparison): Likewise.
21611         (fold_sign_changed_comparison): Likewise.
21612         * dojump.c: Include "target.h".
21613         (do_compare_and_jump): Replace uses of
21614         HAVE_canonicalize_funcptr_for_compare and
21615         gen_canonicalize_funcptr_for_compare.
21616         * expr.c (do_store_flag): Likewise.
21617
21618 2015-06-30  Tom de Vries  <tom@codesourcery.com>
21619
21620         PR tree-optimization/66652
21621         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
21622         max_loop_iterations to determine if nit + 1 overflows.
21623
21624 2015-06-30  Richard Biener  <rguenther@suse.de>
21625
21626         * tree-vrp.c (register_edge_assert_for_2): Also register
21627         asserts for dominating conversion results.
21628
21629 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
21630
21631         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
21632         field in struct iv.
21633
21634 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
21635
21636         PR target/66509
21637         * configure.ac: Fix filds and fildq test for 64-bit.
21638         * configure: Regenerated.
21639
21640 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
21641
21642         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
21643         (nvptx_reorg): Here.  Keep the non-subreg pieces.
21644
21645 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
21646
21647         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
21648         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
21649
21650 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
21651
21652         * config/i386/i386.md (*jcc_1): Use %! in asm template.
21653         Set attribute "length_nobnd" instead of "length".
21654         (*jcc_2): Ditto.
21655         (jump): Ditto.
21656         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
21657
21658 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
21659
21660         * config/nios2/nios2.c (nios2_delegitimize_address): Make
21661         assert less restrictive.
21662
21663 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21664
21665         PR fortran/66605
21666         * cgraphunit.c (cgraph_node::finalize_function): Do not call
21667         do_warn_unused_parameter.
21668         * function.c (do_warn_unused_parameter): Move from here.
21669         * function.h (do_warn_unused_parameter): Do not declare.
21670
21671 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
21672
21673         PR target/65697
21674         * gcc.target/arm/armv-sync-comp-swap.c: New.
21675         * gcc.target/arm/armv-sync-op-acquire.c: New.
21676         * gcc.target/arm/armv-sync-op-full.c: New.
21677         * gcc.target/arm/armv-sync-op-release.c: New.
21678
21679 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
21680
21681         PR target/65697
21682         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
21683         initial acquire barrier with final barrier.
21684
21685 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
21686
21687         PR target/65697
21688         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
21689         initial acquire barrier with final barrier.
21690
21691 2015-06-29  Richard Henderson  <rth@redhat.com>
21692
21693         * config/i386/constraints.md (Bf): New constraint.
21694         * config/i386/i386-c.c (ix86_target_macros): Define
21695         __GCC_ASM_FLAG_OUTPUTS__.
21696         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
21697         as flags outputs.
21698         * doc/extend.texi (FlagOutputOperands): Document them.
21699
21700 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
21701
21702         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
21703         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
21704         unspec name.
21705         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
21706         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
21707         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
21708         (aarch64_symbol_context): Ditto.
21709         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
21710         and use new pattern name.
21711         (aarch64_expand_mov_immediate): Ditto.
21712         (aarch64_print_operand): Ditto.
21713         (aarch64_classify_tls_symbol): Ditto.
21714
21715 2015-06-29  Marek Polacek  <polacek@redhat.com>
21716             Marc Glisse  <marc.glisse@inria.fr>
21717
21718         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
21719         * match.pd: ... pattern here.
21720
21721 2015-06-29  Tom de Vries  <tom@codesourcery.com>
21722
21723         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
21724         function structure.
21725
21726 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
21727
21728         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
21729         feature description, split out the native option, add a link to
21730         the feature documentation, rearrange and slightly rewrite text.
21731         (Aarch64 options, -mcpu): Likewise.
21732         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
21733         +rdma implies Adv. SIMD.
21734
21735 2015-06-29  Marek Polacek  <polacek@redhat.com>
21736
21737         PR c/66322
21738         * function.c (stack_protect_epilogue): Remove a cast to int.
21739         * doc/invoke.texi: Update -Wswitch-bool description.
21740
21741 2015-06-29  Richard Biener  <rguenther@suse.de>
21742
21743         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
21744         * fold-const.c (fold_binary_loc): Move &A - &B simplification
21745         via ptr_difference_const ...
21746         * match.pd: ... here.
21747         When matching (X ^ Y) == Y also match with swapped operands.
21748
21749 2015-06-29  Richard Biener  <rguenther@suse.de>
21750
21751         * lto-streamer.h (LTO_major_version): Bump to 5.
21752
21753 2015-06-29  Richard Biener  <rguenther@suse.de>
21754
21755         PR tree-optimization/66677
21756         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
21757         STMT_VINFO_VEC_STMT clobbering less strict.
21758
21759 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
21760
21761         PR middle-end/64130
21762         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
21763         division, compute max and min when value ranges for dividend and
21764         divisor are available.
21765
21766 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
21767             Sandra Loosemore <sandra@codesourcery.com>
21768
21769         * regrename.h (regrename_do_replace): Change to return bool.
21770         * regrename.c (rename_chains): Check return value of
21771         regname_do_replace.
21772         (regrename_do_replace): Re-validate the modified insns and
21773         return bool status.
21774         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
21775         Update to match rename_chains changes.
21776         * config/c6x/c6x.c (try_rename_operands): Assert that
21777         regrename_do_replace returns true.
21778
21779 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
21780
21781         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
21782         operand 2 here.  Use copy_addr_to_reg to copy non-index
21783         register operand 2 to a temporary.
21784         (<mode>_stx): Ditto for operand 1.
21785         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
21786         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
21787         (ix86_store_bounds): Ditto.
21788
21789 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
21790
21791         * print-tree.c (print_node) [TREE_VEC]: Print its length.
21792
21793 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
21794
21795         * gimple.c (gimple_call_set_fndecl): Remove.
21796         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
21797         build1_loc directly instead of build_fold_addr_expr_loc.
21798
21799 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
21800
21801         * hash-map.h (hash_map::traverse): Use the definition of the
21802         Key typedef rather than the typedef itself.
21803
21804 2015-06-26  Martin Jambor  <mjambor@suse.cz>
21805
21806         PR debug/66301
21807         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
21808         NULL instead of calling dump_enabled_p.
21809
21810 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
21811
21812         * config/aarch64/aarch64.opt: (override): New.
21813         * doc/invoke.texi (override): Document.
21814         * config/aarch64/aarch64.c (aarch64_flag_desc): New
21815         (aarch64_fusible_pairs): Likewise.
21816         (aarch64_tuning_flags): Likewise.
21817         (aarch64_tuning_override_function): Likewise.
21818         (aarch64_tuning_override_functions): Likewise.
21819         (aarch64_parse_one_option_token): Likewise.
21820         (aarch64_parse_boolean_options): Likewise.
21821         (aarch64_parse_fuse_string): Likewise.
21822         (aarch64_parse_tune_string): Likewise.
21823         (aarch64_parse_one_override_token): Likewise.
21824         (aarch64_parse_override_string): Likewise.
21825         (aarch64_override_options): Parse the -override string if it
21826         is present.
21827
21828 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
21829
21830         * config/aarch64/aarch64-protos.h (tune_params): Remove
21831         const from members.
21832         (aarch64_tune_params): Remove const, change to no longer be
21833         a pointer.
21834         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
21835         change to no longer be a pointer, initialize to generic_tunings.
21836         (aarch64_min_divisions_for_recip_mul): Change dereference of
21837         aarch64_tune_params to member access.
21838         (aarch64_reassociation_width): Likewise.
21839         (aarch64_rtx_mult_cost): Likewise.
21840         (aarch64_address_cost): Likewise.
21841         (aarch64_branch_cost): Likewise.
21842         (aarch64_rtx_costs): Likewise.
21843         (aarch64_register_move_cost): Likewise.
21844         (aarch64_memory_move_cost): Likewise.
21845         (aarch64_sched_issue_rate): Likewise.
21846         (aarch64_builtin_vectorization_cost): Likewise.
21847         (aarch64_override_options): Take a copy of the selected tuning
21848         struct in to aarch64_tune_params, rather than just setting
21849         a pointer, change dereferences of aarch64_tune_params to member
21850         accesses.
21851         (aarch64_override_options_after_change): Change dereferences of
21852         aarch64_tune_params to member access.
21853         (aarch64_macro_fusion_p): Likewise.
21854         (aarch_macro_fusion_pair_p): Likewise.
21855         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
21856
21857 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
21858
21859         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
21860         (aarch64_tune_flags): Likewise.
21861         (AARCH64_TUNE_FMA_STEERING): Likewise.
21862         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
21863         to AARCH64_FL_USE_FMA_STEERING_PASS.
21864         (cortex-a57.cortex-a53): Likewise.
21865         (cortex-a72): Use cortexa72_tunings.
21866         (cortex-a72.cortex-a53): Likewise.
21867         (exynos-m1): Likewise.
21868         * config/aarch64/aarch64-protos.h (tune_params): Add
21869         a field: extra_tuning_flags.
21870         * config/aarch64/aarch64-tuning-flags.def: New.
21871         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
21872         (aarch64_extra_tuning_flags): Likewise.
21873         (aarch64_tune_params): Declare here.
21874         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
21875         (cortexa53_tunings): Likewise.
21876         (cortexa57_tunings): Likewise.
21877         (thunderx_tunings): Likewise.
21878         (xgene1_tunings): Likewise.
21879         (cortexa72_tunings): New.
21880         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
21881          (gate): Check against aarch64_tune_params.
21882         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
21883         aarch64-protos.h.
21884
21885 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
21886
21887         * config/aarch64/aarch64-fusion-pairs.def: New.
21888         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
21889         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
21890         aarch64_fusion_pairs.
21891         (AARCH64_FUSE_MOV_MOVK): Likewise.
21892         (AARCH64_FUSE_ADRP_ADD): Likewise.
21893         (AARCH64_FUSE_MOVK_MOVK): Likewise.
21894         (AARCH64_FUSE_ADRP_LDR): Likewise.
21895         (AARCH64_FUSE_CMP_BRANCH): Likewise.
21896
21897 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
21898
21899         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
21900         SYMBOL_SMALL_GOT_28K.
21901         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
21902         relocation modifiers.
21903         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
21904         (ldr_got_small_28k_<mode>): New.
21905         (ldr_got_small_28k_sidi): New.
21906         * config/aarch64/iterators.md (got_modifier): New mode iterator.
21907         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
21908         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
21909         SYMBOL_SMALL_GOT_28K.
21910         (aarch64_rtx_costs): Add costs for new instruction sequences.
21911         (initialize_aarch64_code_model): Initialize new model.
21912         (aarch64_classify_symbol): Recognize new model and new symbol classification.
21913         (aarch64_asm_preferred_eh_data_format): Support new model.
21914         (aarch64_load_symref_appropriately): Generate new instruction
21915         sequences for -fpic.
21916         (TARGET_USE_PSEUDO_PIC_REG): New definition.
21917         (aarch64_use_pseudo_pic_reg): New function.
21918
21919 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
21920
21921         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
21922         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
21923         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
21924         (aarch64_expand_mov_immediate): Ditto.
21925         (aarch64_print_operand): Ditto.
21926         (aarch64_classify_symbol): Ditto.
21927
21928 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
21929
21930         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
21931
21932 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
21933
21934         PR bootstrap/66638
21935         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
21936         assertion failed.  Remove assertion itself.
21937
21938 2015-06-26  Richard Biener  <rguenther@suse.de>
21939
21940         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
21941         and -A CMP CST -> A CMP -CST which is redundant with a pattern
21942         in match.pd.
21943         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
21944         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
21945         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
21946         * match.pd: ... patterns here.
21947
21948 2015-06-26  Marek Polacek  <polacek@redhat.com>
21949
21950         * match.pd ((x | y) & ~(x & y) -> x ^ y,
21951         (x | y) & (~x ^ y) -> x & y): New patterns.
21952
21953 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
21954
21955         * rtl.h (emit): Add an optional boolean parameter to control
21956         whether barriers are emitted.
21957         * emit-rtl.c (emit): Likewise.
21958         * gensupport.c (get_emit_function): Return null rather than "emit".
21959         * genemit.c (gen_emit_seq): Handle the null return value.
21960         Don't emit barriers after the final instruction in the sequence.
21961         * gentarget-def.c (main): Don't emit barriers after the instruction.
21962
21963 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21964
21965         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
21966         TARGET_UNIFIED_ASM.
21967
21968 2015-06-26  Richard Biener  <rguenther@suse.de>
21969
21970         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
21971
21972 2015-06-26  Richard Biener  <rguenther@suse.de>
21973
21974         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
21975         irrespective on whether the inner operation has a single use
21976         of both off are constant.
21977
21978 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
21979             Segher Boessenkool  <segher@kernel.crashing.org>
21980
21981         PR target/66412
21982         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
21983         before doing PUT_MODE or PUT_CODE on operands to avoid
21984         in-place RTX modification.
21985
21986 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
21987
21988         * gentarget-def.c (def_target_insn): Cast return of strtol to
21989         unsigned int.
21990
21991 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
21992
21993         * gimple.h (gimple_call_set_fn): Move inline function.
21994         * gimple.c (gimple_call_set_fn): Relocate here.
21995
21996 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
21997
21998         PR target/65979
21999         PR target/66611
22000         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
22001         the replacement insn will work.
22002
22003 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
22004
22005         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
22006         by default.
22007
22008 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
22009
22010         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
22011         * cgraph.h: Include ipa-ref.h and plugin-api.h.
22012         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
22013         (symtab_node::address_can_be_compared_p): Move function.
22014         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
22015         definition here.
22016         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
22017         * auto-profile.c: Likewise.
22018         * bb-reorder.c: Likewise.
22019         * builtins.c: Likewise.
22020         * calls.c: Likewise.
22021         * cfgexpand.c: Likewise.
22022         * cgraphbuild.c: Likewise.
22023         * cgraphclones.c: Likewise.
22024         * cgraphunit.c: Likewise.
22025         * combine.c: Likewise.
22026         * coverage.c: Likewise.
22027         * data-streamer-in.c: Likewise.
22028         * data-streamer-out.c: Likewise.
22029         * data-streamer.c: Likewise.
22030         * dbxout.c: Likewise.
22031         * dwarf2out.c: Likewise.
22032         * except.c: Likewise.
22033         * expr.c: Likewise.
22034         * final.c: Likewise.
22035         * fold-const.c: Likewise.
22036         * ggc-page.c: Likewise.
22037         * gimple-fold.c: Likewise.
22038         * gimple-iterator.c: Likewise.
22039         * gimple-pretty-print.c: Likewise.
22040         * gimple-streamer-in.c: Likewise.
22041         * gimple-streamer-out.c: Likewise.
22042         * gimple.c: Likewise.
22043         * gimplify.c: Likewise.
22044         * ipa-chkp.c: Likewise.
22045         * ipa-comdats.c: Likewise.
22046         * ipa-cp.c: Likewise.
22047         * ipa-devirt.c: Likewise.
22048         * ipa-icf-gimple.c: Likewise.
22049         * ipa-icf.c: Likewise.
22050         * ipa-inline-analysis.c: Likewise.
22051         * ipa-inline-transform.c: Likewise.
22052         * ipa-inline.c: Likewise.
22053         * ipa-polymorphic-call.c: Likewise.
22054         * ipa-profile.c: Likewise.
22055         * ipa-prop.c: Likewise.
22056         * ipa-pure-const.c: Likewise.
22057         * ipa-ref.c: Likewise.
22058         * ipa-reference.c: Likewise.
22059         * ipa-split.c: Likewise.
22060         * ipa-utils.c: Likewise.
22061         * ipa-visibility.c: Likewise.
22062         * ipa.c: Likewise.
22063         * langhooks.c: Likewise.
22064         * lto-cgraph.c: Likewise.
22065         * lto-compress.c: Likewise.
22066         * lto-opts.c: Likewise.
22067         * lto-section-in.c: Likewise.
22068         * lto-section-out.c: Likewise.
22069         * lto-streamer-in.c: Likewise.
22070         * lto-streamer-out.c: Likewise.
22071         * lto-streamer.c: Likewise.
22072         * omp-low.c: Likewise.
22073         * opts-global.c: Likewise.
22074         * passes.c: Likewise.
22075         * predict.c: Likewise.
22076         * print-tree.c: Likewise.
22077         * profile.c: Likewise.
22078         * ree.c: Likewise.
22079         * sanopt.c: Likewise.
22080         * stor-layout.c: Likewise.
22081         * symtab.c: Likewise.
22082         * toplev.c: Likewise.
22083         * trans-mem.c: Likewise.
22084         * tree-cfg.c: Likewise.
22085         * tree-chkp.c: Likewise.
22086         * tree-eh.c: Likewise.
22087         * tree-emutls.c: Likewise.
22088         * tree-inline.c: Likewise.
22089         * tree-nested.c: Likewise.
22090         * tree-parloops.c: Likewise.
22091         * tree-pretty-print.c: Likewise.
22092         * tree-profile.c: Likewise.
22093         * tree-sra.c: Likewise.
22094         * tree-ssa-alias.c: Likewise.
22095         * tree-ssa-live.c: Likewise.
22096         * tree-ssa-loop-ivcanon.c: Likewise.
22097         * tree-ssa-loop-ivopts.c: Likewise.
22098         * tree-ssa-pre.c: Likewise.
22099         * tree-ssa-sccvn.c: Likewise.
22100         * tree-ssa-strlen.c: Likewise.
22101         * tree-ssa-structalias.c: Likewise.
22102         * tree-streamer-in.c: Likewise.
22103         * tree-streamer-out.c: Likewise.
22104         * tree-streamer.c: Likewise.
22105         * tree-switch-conversion.c: Likewise.
22106         * tree-tailcall.c: Likewise.
22107         * tree-vect-data-refs.c: Likewise.
22108         * tree-vect-stmts.c: Likewise.
22109         * tree-vectorizer.c: Likewise.
22110         * tree.c: Likewise.
22111         * tsan.c: Likewise.
22112         * ubsan.c: Likewise.
22113         * value-prof.c: Likewise.
22114         * varasm.c: Likewise.
22115         * varpool.c: Likewise.
22116         * config/arm/arm.c: Likewise.
22117         * config/bfin/bfin.c: Likewise.
22118         * config/c6x/c6x.c: Likewise.
22119         * config/cris/cris.c: Likewise.
22120         * config/darwin-c.c: Likewise.
22121         * config/darwin.c: Likewise.
22122         * config/i386/i386.c: Likewise.
22123         * config/i386/winnt.c: Likewise.
22124         * config/microblaze/microblaze.c: Likewise.
22125         * config/mips/mips.c: Likewise.
22126         * config/rs6000/rs6000.c: Likewise.
22127         * config/rx/rx.c: Likewise.
22128         * config/s390/s390.c: Likewise.
22129         * config/tilegx/mul-tables.c: Likewise.
22130
22131 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22132
22133         * config/aarch64/aarch64.c, config/alpha/alpha.c,
22134         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
22135         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
22136         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
22137         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
22138         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
22139         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
22140         config/microblaze/microblaze.c, config/mips/mips.c,
22141         config/mmix/mmix.c, config/mn10300/mn10300.c,
22142         config/moxie/moxie.c, config/msp430/msp430.c,
22143         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
22144         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
22145         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
22146         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
22147         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
22148         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
22149         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
22150         target-def.h include.
22151         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
22152
22153 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22154
22155         * Makefile.in (TARGET_DEF): Add target-insns.def.
22156         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
22157         (build/gentarget-def.o): New rule.
22158         (genprogrtl): Add target-def.
22159         * target-insns.def, gentarget-def.c: New files.
22160         * target.def: Add targetm.have_* and targetm.gen_* hooks,
22161         based on the contents of target-insns.def.
22162         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
22163         (HAVE_return, gen_return): Delete.
22164         * target-def.h: Include insn-target-def.h.
22165         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
22166         instead of direct calls.  Rely on them to do the appropriate assertions.
22167         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
22168         (convert_jumps_to_returns): Use targetm interface instead of
22169         direct calls.
22170         (thread_prologue_and_epilogue_insns): Likewise.
22171         * reorg.c (find_end_label, dbr_schedule): Likewise.
22172         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
22173         * shrink-wrap.c (convert_to_simple_return): Likewise.
22174         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
22175
22176 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22177
22178         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
22179         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
22180         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
22181         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
22182         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
22183         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
22184         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
22185         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
22186         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
22187         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
22188         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
22189         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
22190         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
22191         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
22192         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
22193         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
22194         includes to end.
22195
22196 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22197
22198         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
22199         (unbounded_int_hashmap_traits::key_type): Likewise.
22200         * hash-map.h (hash_map): Get the key type from the traits.
22201         * hash-traits.h (default_hash_traits): By default, inherit from the
22202         template parameter.
22203         * alias.c (alias_set_traits): Delete.
22204         (alias_set_entry_d::children): Use alias_set_hash as the first
22205         template parameter.
22206         (record_alias_subset): Update accordingly.
22207         * except.c (tree_hash_traits): Delete.
22208         (type_to_runtime_map): Use tree_hash as the first template parameter.
22209         (init_eh): Update accordingly.
22210         * genmatch.c (capture_id_map_hasher): Delete.
22211         (cid_map_t): Use nofree_string_hash as first template parameter.
22212         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
22213         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
22214         Use symbol_compare_hash as the first template parameter in
22215         subdivide_hash_map.
22216         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
22217         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
22218         template parameter.
22219         * passes.c (pass_registry_hasher): Delete.
22220         (name_to_pass_map): Use nofree_string_hash as the first template
22221         parameter.
22222         (register_pass_name): Update accordingly.
22223         * sanopt.c (sanopt_tree_map_traits): Delete.
22224         (sanopt_tree_triplet_map_traits): Delete.
22225         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
22226         template parameter.
22227         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
22228         the first template parameter.
22229         * sese.c (rename_map_hasher): Delete.
22230         (rename_map_type): Use tree_ssa_name_hash as the first template
22231         parameter.
22232         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
22233         (function_summary::m_map): Use map_hash as the first template
22234         parameter.
22235         (function_summary::release): Update accordingly.
22236         * tree-if-conv.c (phi_args_hash_traits): Delete.
22237         (predicate_scalar_phi): Use tree_operand_hash as the first template
22238         parameter to phi_arg_map.
22239         * tree-inline.h (dependence_hasher): Delete.
22240         (copy_body_data::dependence_map): Use dependence_hash as the first
22241         template parameter.
22242         * tree-inline.c (remap_dependence_clique): Update accordingly.
22243         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
22244         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
22245         parameter.
22246         (addr_stridxptr): Update accordingly.
22247         * value-prof.c (profile_id_traits): Delete.
22248         (cgraph_node_map): Use profile_id_hash as the first template
22249         parameter.
22250         (init_node_map): Update accordingly.
22251         * config/alpha/alpha.c (string_traits): Delete.
22252         (machine_function::links): Use nofree_string_hash as the first
22253         template parameter.
22254         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
22255         * config/m32c/m32c.c (pragma_traits): Delete.
22256         (pragma_htab): Use nofree_string_hash as the first template parameter.
22257         (m32c_note_pragma_address): Update accordingly.
22258         * config/mep/mep.c (pragma_traits): Delete.
22259         (pragma_htab): Use nofree_string_hash as the first template parameter.
22260         (mep_note_pragma_flag): Update accordingly.
22261         * config/mips/mips.c (mips16_flip_traits): Delete.
22262         (mflip_mips16_htab): Use nofree_string_hash as the first template
22263         parameter.
22264         (mflip_mips16_use_mips16_p): Update accordingly.
22265         (local_alias_traits): Delete.
22266         (mips16_local_aliases): Use nofree_string_hash as the first template
22267         parameter.
22268         (mips16_local_alias): Update accordingly.
22269
22270 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22271
22272         * hash-map-traits.h (default_hashmap_traits): Delete.
22273
22274 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22275
22276         * hash-map-traits.h (unbounded_hashmap_traits): New class.
22277         (unbounded_int_hashmap_traits): Likewise.
22278         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
22279
22280 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22281
22282         * ipa-icf.h (symbol_compare_hash): New class.
22283         (symbol_compare_hashmap_traits): Use it.
22284         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
22285         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
22286         (mem_alloc_description::reverse_mem_map_t): Remove redundant
22287         default_hashmap_traits.
22288         * sanopt.c (sanopt_tree_triplet_hash): New class.
22289         (sanopt_tree_triplet_map_traits): Use it.
22290
22291 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22292
22293         * gengtype-parse.c (require_template_declaration): Allow '+' in
22294         template parameters.  Consolidate cases.
22295         * hash-traits.h (int_hash): New class.
22296         * alias.c (alias_set_hash): New structure.
22297         (alias_set_traits): Use it.
22298         * symbol-summary.h (function_summary::map_hash): New class.
22299         (function_summary::summary_hashmap_traits): Use it.
22300         * tree-inline.h (dependence_hash): New class.
22301         (dependence_hasher): Use it.
22302         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
22303         * value-prof.c (profile_id_hash): New class.
22304         (profile_id_traits): Use it.
22305
22306 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22307
22308         * config/mips/mips.c (mips16_flip_traits): Use it.
22309         (local_alias_traits, mips16_local_aliases): Convert from a map of
22310         rtxes to a map of symbol names.
22311         (mips16_local_alias): Update accordingly.
22312
22313 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22314
22315         * hash-traits.h (string_hash, nofree_string_hash): New classes.
22316         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
22317         * passes.c (pass_registry_hasher): Likewise.
22318         * config/alpha/alpha.c (string_traits): Likewise.
22319         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
22320         * config/m32c/m32c.c (pragma_traits): Likewise.
22321         * config/mep/mep.c (pragma_traits): Likewise.
22322
22323 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22324
22325         * tree-hash-traits.h (tree_hash): New class.
22326         * except.c: Include tree-hash-traits.h.
22327         (tree_hash_traits): Use tree_hash.
22328
22329 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22330
22331         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
22332         * sese.c: Include tree-hash-traits.h.
22333         (rename_map_hasher): Use tree_ssa_name_hasher.
22334
22335 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22336
22337         * tree-hash-traits.h (tree_decl_hash): New class.
22338         * tree-ssa-strlen.c: Include tree-hash-traits.h.
22339         (stridxlist_hash_traits): Use tree_decl_hash.
22340
22341 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22342
22343         * tree-hash-traits.h: New file.
22344         (tree_operand_hash): New class.
22345         * sanopt.c: Include tree-hash-traits.h.
22346         (sanopt_tree_map_traits): Use tree_operand_hash.
22347         * tree-if-conv.c: Include tree-hash-traits.h.
22348         (phi_args_hash_traits): Use tree_operand_hash.
22349         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
22350         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
22351
22352 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22353
22354         * hash-map-traits.h: Include hash-traits.h.
22355         (simple_hashmap_traits): New class.
22356         * mem-stats.h (hash_map): Change the default traits to
22357         simple_hashmap_traits<default_hash_traits<Key> >.
22358
22359 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22360
22361         * hash-table.h: Update comments.
22362
22363 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22364
22365         * hash-traits.h (default_hash_traits): New structure.
22366         * hash-set.h (default_hashset_traits): Delete.
22367         (hash_set): Use default_hash_traits<Key> instead of
22368         default_hashset_traits.  Delete hash_entry type and use Key directly.
22369         * ipa-devirt.c (pair_traits): Delete.
22370         (default_hash_traits <type_pair>): Override.
22371         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
22372         (odr_types_equivalent_p, add_type_duplicate): Likewise.
22373
22374 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22375
22376         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
22377
22378 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22379
22380         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
22381         (has_is_empty, is_empty_helper): Delete.
22382         (has_mark_deleted, mark_deleted_helper): Delete.
22383         (has_mark_empty, mark_empty_helper): Delete.
22384         (hash_table::is_deleted): Call the Descriptor unconditionally.
22385         (hash_table::is_empty): Likewise.
22386         (hash_table::mark_deleted): Likewise.
22387         (hash_table::mark_empty): Likewise.
22388
22389 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22390
22391         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
22392         redundant typedefs and members.
22393         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
22394         redundant typedefs.
22395         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
22396         * ipa-devirt.c (odr_name_hasher): Likewise.
22397         (polymorphic_call_target_hasher): Likewise.
22398         * ira-costs.c (cost_classes_hasher): Likewise.
22399         * statistics.c (stats_counter_hasher): Likewise.
22400         * trans-mem.c (log_entry_hasher): Likewise.
22401         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
22402         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
22403         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
22404         * var-tracking.c (variable_hasher): Likewise.
22405         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
22406         Remove redundant typedefs and members.
22407
22408 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22409
22410         * hash-traits.h (ggc_cache_hasher): Rename to...
22411         (ggc_cache_remove): ...this and remove typedefs.
22412         (ggc_cache_ptr_hash): New class.
22413         * hash-table.h: Update commentary.
22414         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
22415         rather than ggc_cache_hasher.
22416         (const_wide_int_hasher, reg_attr_hasher): Likewise.
22417         (const_double_hasher, const_fixed_hasher): Likewise.
22418         * function.c (insn_cache_hasher): Likewise.
22419         * trans-mem.c (tm_wrapper_hasher): Likewise.
22420         * tree.h (tree_decl_map_cache_hasher): Likewise.
22421         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
22422         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
22423         * ubsan.c (tree_type_map_cache_hasher): Likewise.
22424         * varasm.c (tm_clone_hasher): Likewise.
22425         * config/i386/i386.c (dllimport_hasher): Likewise.
22426         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
22427         (tree_hasher): Likewise.
22428
22429 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22430
22431         * hash-traits.h (ggc_hasher): Rename to...
22432         (ggc_remover): ...this and remove typedefs.
22433         (ggc_cache_hasher): Update accordingly.  Add typedefs.
22434         (ggc_ptr_hash): New class.
22435         * hash-table.h: Update comment.
22436         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
22437         ggc_hasher.
22438         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
22439         (tree_descriptor_hasher): Likewise.
22440         * cgraph.c (function_version_hasher): Likewise.
22441         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
22442         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
22443         (dw_loc_list_hasher, addr_hasher): Likewise.
22444         * function.h (used_type_hasher): Likewise.
22445         * function.c (temp_address_hasher): Likewise.
22446         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
22447         * libfuncs.h (libfunc_hasher): Likewise.
22448         * lto-streamer.h (decl_state_hasher): Likewise.
22449         * optabs.c (libfunc_decl_hasher): Likewise.
22450         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
22451         * varasm.c (section_hasher, object_block_hasher): Likewise.
22452         (const_rtx_desc_hasher): Likewise.
22453         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
22454         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
22455
22456 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22457
22458         * hash-traits.h (free_ptr_hash): New class.
22459         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
22460         rather than typed_free_remove.  Remove redudant typedefs.
22461         (external_ref_hasher): Likewise.
22462         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
22463         (ehspec_hasher): Likewise.
22464         * ggc-common.c (saving_hasher): Likewise.
22465         * gimplify.c (gimplify_hasher): Likewise.
22466         * haifa-sched.c (delay_i2_hasher): Likewise.
22467         * loop-invariant.c (invariant_expr_hasher): Likewise.
22468         * loop-iv.c (biv_entry_hasher): Likewise.
22469         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
22470         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
22471         * tree-cfg.c (locus_discrim_hasher): Likewise.
22472         * tree-eh.c (finally_tree_hasher): Likewise.
22473         * tree-into-ssa.c (var_info_hasher): Likewise.
22474         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
22475         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
22476         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
22477         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
22478         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
22479         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
22480         (shared_bitmap_hasher): Likewise.
22481         * tree-ssa-threadupdate.c (redirection_data): Likewise.
22482         * tree-vectorizer.h (peel_info_hasher): Likewise.
22483         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
22484         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
22485
22486 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22487
22488         * hash-table.h: Update comments.
22489         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
22490         (nofree_ptr_hash): New class.
22491         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
22492         than typed_noop_remove.  Remove redudant typedefs.
22493         * attribs.c (attribute_hasher): Likewise.
22494         * cfg.c (bb_copy_hasher): Likewise.
22495         * cselib.c (cselib_hasher): Likewise.
22496         * dse.c (invariant_group_base_hasher): Likewise.
22497         * dwarf2cfi.c (trace_info_hasher): Likewise.
22498         * dwarf2out.c (macinfo_entry_hasher): Likewise.
22499         (comdat_type_hasher, loc_list_hasher): Likewise.
22500         * gcse.c (pre_ldst_expr_hasher): Likewise.
22501         * genmatch.c (id_base): Likewise.
22502         * genrecog.c (test_pattern_hasher): Likewise.
22503         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
22504         * haifa-sched.c (delay_i1_hasher): Likewise.
22505         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
22506         * ipa-icf.h (congruence_class_group_hash): Likewise.
22507         * ipa-profile.c (histogram_hash): Likewise.
22508         * ira-color.c (allocno_hard_regs_hasher): Likewise.
22509         * lto-streamer.h (string_slot_hasher): Likewise.
22510         * lto-streamer.c (tree_entry_hasher): Likewise.
22511         * plugin.c (event_hasher): Likewise.
22512         * postreload-gcse.c (expr_hasher): Likewise.
22513         * store-motion.c (st_expr_hasher): Likewise.
22514         * tree-sra.c (uid_decl_hasher): Likewise.
22515         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
22516         (ssa_name_var_hash): Likewise.
22517         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
22518         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
22519         * tree-ssa-pre.c (pre_expr_d): Likewise.
22520         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
22521         * vtable-verify.h (registration_hasher): Likewise.
22522         * vtable-verify.c (vtbl_map_hasher): Likewise.
22523         * config/arm/arm.c (libcall_hasher): Likewise.
22524         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
22525         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
22526         * config/sol2.c (comdat_entry_hasher): Likewise.
22527         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
22528         (print_fold_checksum, fold_checksum_tree): Likewise.
22529         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
22530         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
22531         (fold_build_call_array_loc): Likewise.
22532         * tree-ssa-ccp.c (gimple_htab): Likewise.
22533         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
22534         rather than pointer_type.
22535
22536 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22537
22538         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
22539         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
22540
22541 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22542
22543         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
22544         (ggc_hasher::ggc_mx): Likewise.
22545         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
22546         that duplicate ggc_hasher ones.
22547
22548 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22549
22550         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
22551         (gt_cleare_cache): Check here for deleted and empty entries.
22552         Replace handle_cache_entry with a call to keep_cache_entry.
22553         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
22554         (ggc_cache_hasher::keep_cache_entry): New function.
22555         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
22556         (tm_wrapper_hasher::keep_cache_entry): New function.
22557         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
22558         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
22559         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
22560         (type_cache_hasher::keep_cache_entry): New function.
22561         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
22562         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
22563         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
22564         (tree_type_map_cache_hasher::keep_cache_entry): New function.
22565         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
22566         (tm_clone_hasher::keep_cache_entry): New function.
22567         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
22568         (dllimport_hasher::keep_cache_entry): New function.
22569
22570 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22571
22572         * hash-table.h: Include hash-traits.h.
22573         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
22574         (ggc_cache_hasher): Move to...
22575         * hash-traits.h: ...this new file.
22576
22577 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
22578
22579         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
22580         struct cl_optimization.
22581         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
22582         * tree.c (make_node_stat): Allocate cl_optimization struct.
22583         (copy_node_stat): Allocate and copy cl_optimization struct.
22584
22585 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
22586
22587         * function.h (struct incoming_args): Move struct.
22588         (pass_by_reference, reference_callee_copied): Remove prototypes.
22589         * emit-rtl.h (struct incoming_args): Relocate struct here.
22590         * calls.h (pass_by_reference, reference_callee_copied): Relocate
22591         prototypes here.
22592         * function.c (pass_by_reference, reference_callee_copied): Move.
22593         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
22594         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
22595         * ipa-chkp.c: Include calls.h.
22596
22597 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
22598
22599         * alias.h (alias_set_type): Move typedef.
22600         * coretypes.h (alias_set_type): Relocate typedef here.
22601         * rtl.h: Don't include alias.h.
22602
22603 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
22604
22605         * cgraph.h (cgraph_rtl_info): Move to rtl.h
22606         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
22607         and instance.
22608         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
22609         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
22610         doesn't exist.
22611         * calls.c: Include hard-reg-set.h before rtl.h.
22612         * ira.c: Likewise.
22613
22614 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
22615             Vladimir Makarov  <vmakarov@redhat.com>
22616
22617         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
22618         Add assert.
22619
22620 2015-06-25  Richard Biener  <rguenther@suse.de>
22621
22622         * fold-const.c (fold_binary_loc): Move simplification of
22623         (X <<>> C1) & C2 ...
22624         * match.pd: ... here.
22625
22626 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
22627
22628         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
22629
22630 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
22631
22632         * match.pd: Add patterns for vec_conds between 1 and 0.
22633
22634 2015-06-25  Richard Biener  <rguenther@suse.de>
22635
22636         * tree-vect-stmts.c (vectorizable_conversion): Do not set
22637         STMT_VINFO_VEC_STMT for SLP.
22638         (vectorizable_store): Likewise.
22639         (vectorizable_load): Likewise.
22640         (vect_transform_stmt): Catch SLP vectorization clobbering
22641         STMT_VINFO_VEC_STMT.
22642
22643 2015-06-25  Richard Biener  <rguenther@suse.de>
22644
22645         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
22646         dumping.
22647         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
22648         cleanup resulting dead code and parameters.
22649         (vect_transform_slp_perm_load): Adjust.
22650
22651 2015-06-25  Nick Clifton  <nickc@redhat.com>
22652
22653         * config/bfin/bfin.c (bfin_expand_prologue): Set
22654         current_function_static_stack_size if flag_stack_usage_info is set.
22655         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
22656         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
22657         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
22658         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
22659
22660 2015-06-25  Tom de Vries  <tom@codesourcery.com>
22661
22662         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
22663         comment that the generated IV is unsigned.
22664
22665 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22666
22667         PR target/29693
22668         * config/arm/arm.c (arm_dbx_register_number): Return
22669         DWARF_FRAME_REGISTERS by default.
22670
22671 2015-06-25  Tom de Vries  <tom@codesourcery.com>
22672
22673         * dominance.c (calculate_dominance_info): Fix verify_dominators call
22674         argument.  Call verify_dominator when reusing dominator info.
22675
22676 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
22677
22678         PR target/66563
22679         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
22680         an additional element of the unspec vector.  Modify indices
22681         of operands.
22682         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
22683         * config/sh/sh.c (prepare_move_operands): Pass incremented
22684         const_int to gen_GOTaddr2picreg.
22685         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
22686
22687 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
22688
22689         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
22690         Condition on TARGET_FLOAT.
22691
22692 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
22693
22694         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
22695         and (no)crypto.
22696
22697 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
22698
22699         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
22700
22701         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
22702         aarch64_err_no_fpadvsimd.
22703
22704         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
22705         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
22706         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
22707         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
22708         Turn error into assert, test TARGET_FLOAT.
22709         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
22710         TARGET_FLOAT.
22711
22712 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
22713
22714         PR debug/66482
22715         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
22716
22717 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
22718
22719         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
22720
22721 2015-06-24  Renlin Li <renlin.li@arm.com>
22722
22723         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
22724         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
22725
22726 2015-06-24  Richard Biener  <rguenther@suse.de>
22727
22728         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
22729         (main): Likewise.
22730         (lower_opt_convert): Support lowering of conditional view_convert.
22731         (parser::parse_operation): Likewise.
22732         (parser::parse_for): Likewise.
22733
22734 2015-06-24  Renlin Li  <renlin.li@arm.com>
22735
22736         * varasm.c (emit_local): Use unsigned int for align variable.
22737
22738 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22739
22740         PR target/63408
22741         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
22742         for negative numbers.
22743
22744 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22745
22746         PR rtl-optimization/66306
22747         * reload.c (find_reloads): Swap the match_dup info for
22748         commutative operands.
22749
22750 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22751
22752         * config/s390/vx-builtins.md
22753         ("vec_scatter_element<mode>_<non_vec_int>")
22754         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
22755         attribute with bhfgq.
22756
22757 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22758
22759         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
22760
22761 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22762
22763         * config/s390/s390-builtin-types.def: Add flag to indicate the
22764         options under which the function type is needed.
22765         * config/s390/s390-builtins.def: Add flag to indicate the options
22766         under which the builtin is enabled.
22767         * config/s390/s390-builtins.h: Add flags parameter to macro
22768         definitions.
22769         (bflags_for_builtin): New function.
22770         (flags_for_builtin): Renamed to ...
22771         (opflags_for_builtin): ... this.
22772         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
22773         flags_for_builtin to bflags_for_builtin and
22774         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
22775         * config/s390/s390.c: Add initialization of bflags_builtin and
22776         opflags_builtin arrays.
22777         Remove code for flags_builtin.
22778         (s390_init_builtins): Only create builtin function types if one of
22779         their flags is active.
22780         Only create builtins if all of their flags are active.
22781         (s390_expand_builtin): Rename flags_for_builtin to
22782         opflags_for_builtin.
22783
22784 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22785
22786         * config/s390/vecintrin.h: Remove internal builtins.
22787
22788 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22789
22790         * config/s390/s390.c (s390_secondary_reload): Fix check for
22791         GENERAL_REGS register class.
22792
22793 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22794
22795         * config/s390/s390.c (s390_support_vector_misalignment): Call
22796         default implementation for !TARGET_VX.
22797
22798 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22799
22800         * config/s390/s390.c (s390_legitimate_constant_p): Add
22801         TARGET_VX check.
22802
22803 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22804
22805         * config/s390/s390.c (s390_vector_abi): New variable definition.
22806         (s390_check_type_for_vector_abi): New function.
22807         (TARGET_ASM_FILE_END): New macro definition.
22808         (s390_asm_file_end): New function.
22809         (s390_function_arg): Call s390_check_type_for_vector_abi.
22810         (s390_gimplify_va_arg): Likewise.
22811         * configure: Regenerate.
22812         * configure.ac: Check for .gnu_attribute Binutils feature.
22813
22814 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
22815
22816         PR target/65803
22817         * config/bfin/bfin.c (hwloop_optimize): Initialize
22818         JUMP_LABEL for newly created jump.
22819
22820 2015-06-23  Tristan Gingold  <gingold@adacore.com>
22821
22822         * collect-utils.c (collect_wait): Unlink the response file here
22823         instead of...
22824         (do_wait): ...here.
22825         (utils_cleanup): ...and here.
22826
22827 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
22828
22829         * df-scan.c: Don't include target-def.h.
22830         * targhooks.c: Likewise.
22831         * config/arm/arm-c.c: Likewise.
22832         * config/i386/i386-c.c: Likewise.
22833         * config/nds32/nds32-cost.c: Likewise.
22834         * config/nds32/nds32-fp-as-gp.c: Likewise.
22835         * config/nds32/nds32-intrinsic.c: Likewise.
22836         * config/nds32/nds32-isr.c: Likewise.
22837         * config/nds32/nds32-md-auxiliary.c: Likewise.
22838         * config/nds32/nds32-memory-manipulation.c: Likewise.
22839         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
22840         * config/nds32/nds32-predicates.c: Likewise.
22841
22842 2015-06-23  Richard Biener  <rguenther@suse.de>
22843
22844         PR tree-optimization/66636
22845         * tree-vect-stmts.c (vectorizable_store): Properly compute the
22846         def type for further defs for strided stores.
22847
22848 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
22849
22850         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
22851         conditional selects.
22852         (setcc_int<mode>, setcc_float<mode>): Reformat.
22853
22854 2015-06-23  Marek Polacek  <polacek@redhat.com>
22855
22856         * match.pd ((x + y) - (x | y) -> x & y,
22857         (x + y) - (x & y) -> x | y): New patterns.
22858
22859 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
22860
22861         PR 65711
22862         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
22863         '-dynamic-linker' within %{!shared: ...}.
22864
22865 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
22866
22867         PR target/66560
22868         * config/i386/predicates.md (addsub_vm_operator): New predicate.
22869         (addsub_vs_operator): Ditto.
22870         (addsub_vs_parallel): Ditto.
22871         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
22872         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
22873         Put minus RTX before plus and adjust vec_merge selector.
22874         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
22875         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
22876         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
22877         (addsub vec_merge splitters): New combiner splitters.
22878         (addsub vec_select/vec_concat splitters): Ditto.
22879
22880 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
22881
22882         PR tree-optimization/66449
22883         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
22884         POINTER_PLUS_EXPR for pointers.
22885
22886 2015-06-23  Alan Modra  <amodra@gmail.com>
22887
22888         * rtlanal.c (commutative_operand_precedence): Correct comments.
22889         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
22890         declaration.  Return an int.  Distinguish REG,REG return from
22891         others.
22892         (struct simplify_plus_minus_op_data): Make local to function.
22893         (simplify_plus_minus): Don't set canonicalized if merely sorting
22894         registers.  Avoid packing ops if nothing changes.  White space fixes.
22895
22896 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
22897
22898         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
22899         -fdump-ada-spec is passed but not if -fsyntax-only is.
22900
22901 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
22902
22903         PR bootstrap/63740
22904         * lra-lives.c (process_bb_lives): Check insn copying the same
22905         reload pseudo and don't create a copy for it.
22906
22907 2015-06-22  Tom de Vries  <tom@codesourcery.com>
22908
22909         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
22910         for cond_stmt.
22911
22912 2015-06-22  Tom de Vries  <tom@codesourcery.com>
22913
22914         * builtins.def (DEF_GOMP_BUILTIN): Test
22915         'flag_tree_parallelize_loops > 1' instead of
22916         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
22917
22918 2015-06-22  Tom de Vries  <tom@codesourcery.com>
22919
22920         * dominance.c (calculate_dominance_info): Verify dominators if
22921         early-out.
22922
22923 2015-06-22  Marek Polacek  <polacek@redhat.com>
22924
22925         * match.pd ((x ^ y) ^ (x | y) -> x & y,
22926         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
22927         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
22928         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
22929
22930 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
22931
22932         PR target/65871
22933         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
22934         cost of embedded comparison.
22935
22936 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22937
22938         PR target/65914
22939         * config/rs6000/predicates.md (altivec_register_operand): Permit
22940         virtual stack registers.
22941         (vsx_register_operand): Likewise.
22942         (vfloat_operand): Likewise.
22943         (vint_operand): Likewise.
22944         (vlogical_operand): Likewise.
22945
22946 2015-06-22  Richard Biener  <rguenther@suse.de>
22947
22948         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
22949         and single_scalar_iteration_cost members.
22950         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
22951         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
22952         (vect_get_single_scalar_iteration_cost): Remove.
22953         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
22954         Use LOOP_VINFO_SCALAR_ITERATION_COST.
22955         * tree-vect-loop.c (destroy_loop_vec_info): Free
22956         scalar_cost_vec.
22957         (vect_get_single_scalar_iteration_cost): Compute result into
22958         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
22959         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
22960         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
22961         (vect_estimate_min_profitable_iters): Use them.
22962
22963 2015-06-22  Christian Bruel  <christian.bruel@st.com>
22964
22965         PR target/52144
22966         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
22967         (TARGET_INSERT_ATTRIBUTES): Define.
22968         (thumb_flipper): New var.
22969         * config/arm/arm.opt (-mflip-thumb): New switch.
22970
22971 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
22972             Martin Liska  <mliska@suse.cz>
22973
22974         PR ipa/65908
22975         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
22976         construction of arg_types.
22977         (sem_function::sem_function): Likewise.
22978         (sem_function::~sem_function): Remove destruction of arg_types.
22979         (sem_function::compatible_parm_types_p): New function.
22980         (sem_function::equals_wpa): Reorg matching of return values
22981         and parameter types.
22982         (sem_function::equals_private): Reorg mathcing of argument types.
22983         (sem_function::parse_tree_args): Remove.
22984         * ipa-icf.h (init_wpa): Do not call it.
22985         (parse_tree_args): Remove.
22986         (compatible_parm_types_p): Declare.
22987         (result_type): Remove.
22988         (arg_types): Remove.
22989
22990 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
22991
22992         PR ipa/66351
22993         * ipa-polymorphic-call.c
22994         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
22995         initializing alias oracle; fix formating; set base_alias_set if it
22996         is known.
22997
22998 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
22999
23000         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
23001         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
23002         (find_inc): Likewise.
23003         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
23004         swapping.
23005         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
23006         * df-scan.c (df_swap_refs): Remove.
23007         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
23008         * dominance.c (link_roots): Use std::swap instead of manually swapping.
23009         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
23010         * fold-const.c (fold_relational_const): Likewise.
23011         * genattrtab.c (simplify_test_exp): Likewise.
23012         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
23013         gimple_simplify): Likewise.
23014         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
23015         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
23016         * ipa-devirt.c (add_type_duplicate): Likewise.
23017         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
23018         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
23019         * lra.c (lra_create_copy): Likewise.
23020         * lto-streamer-out.c (DFS::DFS): Likewise.
23021         * modulo-sched.c (get_sched_window): Likewise.
23022         * omega.c (omega_pretty_print_problem): Likewise.
23023         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
23024         * reload1.c (reloads_unique_chain_p): Likewise.
23025         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
23026         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
23027         use std::swap.
23028         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
23029         manually swapping.
23030         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
23031         predicate_mem_writes): Likewise.
23032         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
23033         * tree-predcom.c (combine_chains): Likewise.
23034         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
23035         refs_may_alias_p_1): Likewise.
23036         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
23037         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
23038         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
23039         number_of_iterations_cond): Likewise.
23040         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
23041         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
23042         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
23043         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
23044         * tree-vrp.c (extract_range_from_binary_expr_1,
23045         extract_range_from_unary_expr_1): Likewise.
23046
23047 2015-06-20  Marek Polacek  <polacek@redhat.com>
23048
23049         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
23050
23051 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
23052
23053         PR target/66591
23054         * config/sh/sh.c (prepare_move_operands): Replace subreg
23055         index term with R0 for base and index addressing.
23056
23057 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
23058
23059         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
23060         op1 is an fp zero.
23061         (movsf_aarch64): Change condition from register_operand to
23062         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
23063         load1.  Change type for alternative 7 to store1.
23064         (movdf_aarch64): Likewise.
23065
23066 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
23067
23068         * config/vax/vax.md: Adjust sign/zero extend patterns to
23069         handle SUBREGs in operands[1].
23070
23071 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23072
23073         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
23074         of manually swapping.
23075         (expand_vec_perm_interleave2): Likewise.
23076
23077 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
23078
23079         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
23080         reuse bounds created for abnormal ssa names.
23081
23082 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
23083
23084         * config/nvptx/nvptx.md (allocate_stack): Rename to...
23085         (allocate_stack_<mode>): ... this, and add :P on both
23086         match_operand and unspec.
23087         (allocate_stack): New expander.
23088
23089 2015-06-19  Christian Bruel  <christian.bruel@st.com>
23090
23091         PR target/66541
23092         PR target/52144
23093         * config/arm/arm.c (arm_set_current_function): Handle
23094         explicit default options.
23095
23096 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
23097
23098         * config/i386/i386.md (*movsicc_noc_zext): New insn.
23099         (zero-extended cmove with mem peephole2): New pattern.
23100         (cmove with mem peephole2): Merge patterns.
23101
23102 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
23103
23104         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
23105
23106 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
23107
23108         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
23109         * config/mips/mips.md (*madd4<mode>): Ditto.
23110         (*nmadd3<mode>) Ditto.
23111         (*nmadd4<mode>_fastmath): Ditto.
23112         (*nmadd3<mode>_fastmath): Ditto.
23113         (*nmsub4<mode>): Ditto.
23114         (*nmsub3<mode>): Ditto.
23115         (*nmsub4<mode>_fastmath): Ditto.
23116         (*nmsub3<mode>_fastmath): Ditto.
23117
23118 2015-06-18  Michael Matz  <matz@suse.de>
23119
23120         PR middle-end/66253
23121         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
23122         grouped strided stores.
23123         (vectorizable_load): Don't use the DR from first_stmt in
23124         the non-SLP grouped strided case.
23125
23126 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
23127
23128         PR target/66569
23129         * function.c (assign_bounds): Add arguments assign_regs,
23130         assign_special, assign_bt.
23131         (assign_parms): For vararg functions handle bounds in BT
23132         and special slots after incoming vararg bounds.
23133
23134 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
23135
23136         PR middle-end/66568
23137         * cfgexpand.c (expand_return): Handle missing bounds.
23138         (expand_gimple_stmt_1): Likewise.
23139         * tree-chkp.c (chkp_expand_zero_bounds): New.
23140         * tree-chkp.h (chkp_expand_zero_bounds): New.
23141
23142 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
23143
23144         PR middle-end/66567
23145         * ipa-chkp.c (chkp_maybe_create_clone): Require
23146         functions to be instrumentable.
23147         * tree-chkp.c (chkp_replace_function_pointer): Use
23148         chkp_instrumentable_p instead of attribute check.
23149
23150 2015-06-18  Richard Biener  <rguenther@suse.de>
23151
23152         PR tree-optimization/66510
23153         * tree-vect-stmts.c (vectorizable_load): Properly compute the
23154         number of vector loads for SLP permuted loads.
23155         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
23156         check the stride for loop vectorization.
23157         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
23158         vectorization factor.
23159         (vect_analyze_group_access): If the group size is not a power
23160         of two require a epilogue loop.
23161         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
23162         compute and optimizing and alias test pruning after final
23163         vectorization factor computation.
23164         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
23165         vector alignment.
23166         (vect_transform_slp_perm_load): Properly compute the original
23167         number of vector load stmts.
23168
23169 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
23170
23171         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
23172         "unlikely character , in @var" warning.
23173
23174 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
23175
23176         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
23177         (ix86_function_arg_advance): Ditto.
23178         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
23179
23180 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
23181
23182         * function.h (struct rtl_data): Remove struct and accessor macros.
23183         * emit-rtl.h (struct rtl_data): Relocate to here.
23184         * Makefile.in (GTFILES): Add emit-rtl.h.
23185         * df-core.c: Include emit-rtl.h.
23186         * genattrtab.c: Likewise.
23187         * genconditions.c: Likewise.
23188         * genpreds.c: Likewise.
23189         * genrecog.c: Likewise.
23190         * regcprop.c: Likewise.
23191         * resource.c: Likewise.
23192         * sched-rgn.c: Likewise.
23193         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
23194         * config/i386/winnt.c: Likewise.
23195
23196 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
23197
23198         PR middle-end/66429
23199         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
23200         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
23201         and has_force_vectorize_loops flags from cfun into
23202         child_cfun.
23203         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
23204         if simduid is non-NULL.
23205         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
23206         * passes.def (pass_simduid_cleanup): Add new pass after loop
23207         passes.
23208         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
23209         indirection from htab argument's type.
23210         (shrink_simd_arrays): New function.
23211         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
23212         Don't call adjust_simduid_builtins if there are no loops.
23213         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
23214         (pass_simduid_cleanup::execute): New method.
23215         (make_pass_simduid_cleanup): New function.
23216
23217 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
23218
23219         * tree-core.h (tree_target_option): Make opts field a pointer to a
23220         cl_target_option instead of an instance of the struct.
23221         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
23222         the structure.
23223         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
23224         TARGET_OPTION_NODE.
23225         (copy_node_stat): Allocate and copy struct cl_target_option.
23226
23227 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
23228
23229         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
23230         Remove conditional exposure of prototypes.
23231         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
23232         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
23233         definitions in tree.h with functions.
23234         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
23235         anon_aggrname_p.
23236         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
23237
23238 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
23239
23240         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
23241         (*cmp<mode>_signed): ... this.
23242         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
23243         (*cmp<mode>_unsigned): ... this.  Remove %b.
23244
23245 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
23246
23247         * coretypes.h: Include input.h and as-a.h.
23248         * rtl.h: Include input.h and as-a.h for generator files.
23249         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
23250         * vec.c: Don't include diagnostic-core.h.
23251         * alias.c: Do not include input.h, line-map.h or is-a.h.
23252         * asan.c: Likewise.
23253         * attribs.c: Likewise.
23254         * auto-inc-dec.c: Likewise.
23255         * auto-profile.c: Likewise.
23256         * bb-reorder.c: Likewise.
23257         * bt-load.c: Likewise.
23258         * builtins.c: Likewise.
23259         * caller-save.c: Likewise.
23260         * calls.c: Likewise.
23261         * ccmp.c: Likewise.
23262         * cfg.c: Likewise.
23263         * cfganal.c: Likewise.
23264         * cfgbuild.c: Likewise.
23265         * cfgcleanup.c: Likewise.
23266         * cfgexpand.c: Likewise.
23267         * cfghooks.c: Likewise.
23268         * cfgloop.c: Likewise.
23269         * cfgloop.h: Likewise.
23270         * cfgloopanal.c: Likewise.
23271         * cfgloopmanip.c: Likewise.
23272         * cfgrtl.c: Likewise.
23273         * cgraph.c: Likewise.
23274         * cgraphbuild.c: Likewise.
23275         * cgraphclones.c: Likewise.
23276         * cgraphunit.c: Likewise.
23277         * cilk-common.c: Likewise.
23278         * combine-stack-adj.c: Likewise.
23279         * combine.c: Likewise.
23280         * compare-elim.c: Likewise.
23281         * convert.c: Likewise.
23282         * coverage.c: Likewise.
23283         * cppbuiltin.c: Likewise.
23284         * cprop.c: Likewise.
23285         * cse.c: Likewise.
23286         * cselib.c: Likewise.
23287         * data-streamer-in.c: Likewise.
23288         * data-streamer-out.c: Likewise.
23289         * data-streamer.c: Likewise.
23290         * dbxout.c: Likewise.
23291         * dce.c: Likewise.
23292         * ddg.c: Likewise.
23293         * debug.c: Likewise.
23294         * df-core.c: Likewise.
23295         * df-problems.c: Likewise.
23296         * df-scan.c: Likewise.
23297         * df.h: Likewise.
23298         * dfp.c: Likewise.
23299         * diagnostic-core.h: Likewise.
23300         * diagnostic.c: Likewise.
23301         * dojump.c: Likewise.
23302         * dominance.c: Likewise.
23303         * domwalk.c: Likewise.
23304         * double-int.c: Likewise.
23305         * dse.c: Likewise.
23306         * dumpfile.c: Likewise.
23307         * dumpfile.h: Likewise.
23308         * dwarf2asm.c: Likewise.
23309         * dwarf2cfi.c: Likewise.
23310         * dwarf2out.c: Likewise.
23311         * emit-rtl.c: Likewise.
23312         * et-forest.c: Likewise.
23313         * except.c: Likewise.
23314         * explow.c: Likewise.
23315         * expmed.c: Likewise.
23316         * expr.c: Likewise.
23317         * final.c: Likewise.
23318         * fixed-value.c: Likewise.
23319         * fold-const.c: Likewise.
23320         * function.c: Likewise.
23321         * fwprop.c: Likewise.
23322         * gcc-plugin.h: Likewise.
23323         * gcse.c: Likewise.
23324         * generic-match-head.c: Likewise.
23325         * ggc-page.c: Likewise.
23326         * gimple-builder.c: Likewise.
23327         * gimple-expr.c: Likewise.
23328         * gimple-fold.c: Likewise.
23329         * gimple-iterator.c: Likewise.
23330         * gimple-low.c: Likewise.
23331         * gimple-match-head.c: Likewise.
23332         * gimple-pretty-print.c: Likewise.
23333         * gimple-ssa-isolate-paths.c: Likewise.
23334         * gimple-ssa-strength-reduction.c: Likewise.
23335         * gimple-streamer-in.c: Likewise.
23336         * gimple-streamer-out.c: Likewise.
23337         * gimple-streamer.h: Likewise.
23338         * gimple-walk.c: Likewise.
23339         * gimple.c: Likewise.
23340         * gimplify-me.c: Likewise.
23341         * gimplify.c: Likewise.
23342         * godump.c: Likewise.
23343         * graph.c: Likewise.
23344         * graphite-blocking.c: Likewise.
23345         * graphite-dependences.c: Likewise.
23346         * graphite-interchange.c: Likewise.
23347         * graphite-isl-ast-to-gimple.c: Likewise.
23348         * graphite-optimize-isl.c: Likewise.
23349         * graphite-poly.c: Likewise.
23350         * graphite-scop-detection.c: Likewise.
23351         * graphite-sese-to-poly.c: Likewise.
23352         * graphite.c: Likewise.
23353         * haifa-sched.c: Likewise.
23354         * hw-doloop.c: Likewise.
23355         * ifcvt.c: Likewise.
23356         * init-regs.c: Likewise.
23357         * input.c: Likewise.
23358         * internal-fn.c: Likewise.
23359         * ipa-chkp.c: Likewise.
23360         * ipa-comdats.c: Likewise.
23361         * ipa-cp.c: Likewise.
23362         * ipa-devirt.c: Likewise.
23363         * ipa-icf-gimple.c: Likewise.
23364         * ipa-icf.c: Likewise.
23365         * ipa-inline-analysis.c: Likewise.
23366         * ipa-inline-transform.c: Likewise.
23367         * ipa-inline.c: Likewise.
23368         * ipa-polymorphic-call.c: Likewise.
23369         * ipa-profile.c: Likewise.
23370         * ipa-prop.c: Likewise.
23371         * ipa-pure-const.c: Likewise.
23372         * ipa-ref.c: Likewise.
23373         * ipa-reference.c: Likewise.
23374         * ipa-split.c: Likewise.
23375         * ipa-utils.c: Likewise.
23376         * ipa-visibility.c: Likewise.
23377         * ipa.c: Likewise.
23378         * ira-build.c: Likewise.
23379         * ira-color.c: Likewise.
23380         * ira-conflicts.c: Likewise.
23381         * ira-costs.c: Likewise.
23382         * ira-emit.c: Likewise.
23383         * ira-lives.c: Likewise.
23384         * ira.c: Likewise.
23385         * jump.c: Likewise.
23386         * langhooks.c: Likewise.
23387         * lcm.c: Likewise.
23388         * loop-doloop.c: Likewise.
23389         * loop-init.c: Likewise.
23390         * loop-invariant.c: Likewise.
23391         * loop-iv.c: Likewise.
23392         * loop-unroll.c: Likewise.
23393         * lower-subreg.c: Likewise.
23394         * lra-assigns.c: Likewise.
23395         * lra-coalesce.c: Likewise.
23396         * lra-constraints.c: Likewise.
23397         * lra-eliminations.c: Likewise.
23398         * lra-lives.c: Likewise.
23399         * lra-remat.c: Likewise.
23400         * lra-spills.c: Likewise.
23401         * lra.c: Likewise.
23402         * lto-cgraph.c: Likewise.
23403         * lto-compress.c: Likewise.
23404         * lto-opts.c: Likewise.
23405         * lto-section-in.c: Likewise.
23406         * lto-section-out.c: Likewise.
23407         * lto-streamer-in.c: Likewise.
23408         * lto-streamer-out.c: Likewise.
23409         * lto-streamer.c: Likewise.
23410         * mcf.c: Likewise.
23411         * mode-switching.c: Likewise.
23412         * modulo-sched.c: Likewise.
23413         * omega.c: Likewise.
23414         * omp-low.c: Likewise.
23415         * optabs.c: Likewise.
23416         * opts-global.c: Likewise.
23417         * opts.h: Likewise.
23418         * passes.c: Likewise.
23419         * plugin.c: Likewise.
23420         * postreload-gcse.c: Likewise.
23421         * postreload.c: Likewise.
23422         * predict.c: Likewise.
23423         * pretty-print.h: Likewise.
23424         * print-rtl.c: Likewise.
23425         * print-tree.c: Likewise.
23426         * profile.c: Likewise.
23427         * real.c: Likewise.
23428         * realmpfr.c: Likewise.
23429         * recog.c: Likewise.
23430         * ree.c: Likewise.
23431         * reg-stack.c: Likewise.
23432         * regcprop.c: Likewise.
23433         * reginfo.c: Likewise.
23434         * regrename.c: Likewise.
23435         * regstat.c: Likewise.
23436         * reload.c: Likewise.
23437         * reload1.c: Likewise.
23438         * reorg.c: Likewise.
23439         * resource.c: Likewise.
23440         * rtl-chkp.c: Likewise.
23441         * rtl-error.c: Likewise.
23442         * rtlanal.c: Likewise.
23443         * rtlhooks.c: Likewise.
23444         * sanopt.c: Likewise.
23445         * sched-deps.c: Likewise.
23446         * sched-ebb.c: Likewise.
23447         * sched-rgn.c: Likewise.
23448         * sched-vis.c: Likewise.
23449         * sdbout.c: Likewise.
23450         * sel-sched-dump.c: Likewise.
23451         * sel-sched-ir.c: Likewise.
23452         * sel-sched.c: Likewise.
23453         * sese.c: Likewise.
23454         * shrink-wrap.c: Likewise.
23455         * simplify-rtx.c: Likewise.
23456         * stack-ptr-mod.c: Likewise.
23457         * statistics.c: Likewise.
23458         * stmt.c: Likewise.
23459         * stor-layout.c: Likewise.
23460         * store-motion.c: Likewise.
23461         * streamer-hooks.c: Likewise.
23462         * stringpool.c: Likewise.
23463         * symtab.c: Likewise.
23464         * target-globals.c: Likewise.
23465         * targhooks.c: Likewise.
23466         * toplev.c: Likewise.
23467         * tracer.c: Likewise.
23468         * trans-mem.c: Likewise.
23469         * tree-affine.c: Likewise.
23470         * tree-browser.c: Likewise.
23471         * tree-call-cdce.c: Likewise.
23472         * tree-cfg.c: Likewise.
23473         * tree-cfgcleanup.c: Likewise.
23474         * tree-chkp-opt.c: Likewise.
23475         * tree-chkp.c: Likewise.
23476         * tree-chrec.c: Likewise.
23477         * tree-complex.c: Likewise.
23478         * tree-data-ref.c: Likewise.
23479         * tree-dfa.c: Likewise.
23480         * tree-diagnostic.c: Likewise.
23481         * tree-dump.c: Likewise.
23482         * tree-eh.c: Likewise.
23483         * tree-emutls.c: Likewise.
23484         * tree-if-conv.c: Likewise.
23485         * tree-inline.c: Likewise.
23486         * tree-into-ssa.c: Likewise.
23487         * tree-iterator.c: Likewise.
23488         * tree-loop-distribution.c: Likewise.
23489         * tree-nested.c: Likewise.
23490         * tree-nrv.c: Likewise.
23491         * tree-object-size.c: Likewise.
23492         * tree-outof-ssa.c: Likewise.
23493         * tree-parloops.c: Likewise.
23494         * tree-phinodes.c: Likewise.
23495         * tree-predcom.c: Likewise.
23496         * tree-pretty-print.c: Likewise.
23497         * tree-profile.c: Likewise.
23498         * tree-scalar-evolution.c: Likewise.
23499         * tree-sra.c: Likewise.
23500         * tree-ssa-address.c: Likewise.
23501         * tree-ssa-alias.c: Likewise.
23502         * tree-ssa-ccp.c: Likewise.
23503         * tree-ssa-coalesce.c: Likewise.
23504         * tree-ssa-copy.c: Likewise.
23505         * tree-ssa-copyrename.c: Likewise.
23506         * tree-ssa-dce.c: Likewise.
23507         * tree-ssa-dom.c: Likewise.
23508         * tree-ssa-dse.c: Likewise.
23509         * tree-ssa-forwprop.c: Likewise.
23510         * tree-ssa-ifcombine.c: Likewise.
23511         * tree-ssa-live.c: Likewise.
23512         * tree-ssa-loop-ch.c: Likewise.
23513         * tree-ssa-loop-im.c: Likewise.
23514         * tree-ssa-loop-ivcanon.c: Likewise.
23515         * tree-ssa-loop-ivopts.c: Likewise.
23516         * tree-ssa-loop-manip.c: Likewise.
23517         * tree-ssa-loop-niter.c: Likewise.
23518         * tree-ssa-loop-prefetch.c: Likewise.
23519         * tree-ssa-loop-unswitch.c: Likewise.
23520         * tree-ssa-loop.c: Likewise.
23521         * tree-ssa-math-opts.c: Likewise.
23522         * tree-ssa-operands.c: Likewise.
23523         * tree-ssa-phiopt.c: Likewise.
23524         * tree-ssa-phiprop.c: Likewise.
23525         * tree-ssa-pre.c: Likewise.
23526         * tree-ssa-propagate.c: Likewise.
23527         * tree-ssa-reassoc.c: Likewise.
23528         * tree-ssa-sccvn.c: Likewise.
23529         * tree-ssa-scopedtables.c: Likewise.
23530         * tree-ssa-sink.c: Likewise.
23531         * tree-ssa-strlen.c: Likewise.
23532         * tree-ssa-structalias.c: Likewise.
23533         * tree-ssa-tail-merge.c: Likewise.
23534         * tree-ssa-ter.c: Likewise.
23535         * tree-ssa-threadedge.c: Likewise.
23536         * tree-ssa-threadupdate.c: Likewise.
23537         * tree-ssa-uncprop.c: Likewise.
23538         * tree-ssa-uninit.c: Likewise.
23539         * tree-ssa.c: Likewise.
23540         * tree-ssanames.c: Likewise.
23541         * tree-stdarg.c: Likewise.
23542         * tree-streamer-in.c: Likewise.
23543         * tree-streamer-out.c: Likewise.
23544         * tree-streamer.c: Likewise.
23545         * tree-switch-conversion.c: Likewise.
23546         * tree-tailcall.c: Likewise.
23547         * tree-vect-data-refs.c: Likewise.
23548         * tree-vect-generic.c: Likewise.
23549         * tree-vect-loop-manip.c: Likewise.
23550         * tree-vect-loop.c: Likewise.
23551         * tree-vect-patterns.c: Likewise.
23552         * tree-vect-slp.c: Likewise.
23553         * tree-vect-stmts.c: Likewise.
23554         * tree-vectorizer.c: Likewise.
23555         * tree-vrp.c: Likewise.
23556         * tree.c: Likewise.
23557         * tsan.c: Likewise.
23558         * ubsan.c: Likewise.
23559         * valtrack.c: Likewise.
23560         * value-prof.c: Likewise.
23561         * var-tracking.c: Likewise.
23562         * varasm.c: Likewise.
23563         * varpool.c: Likewise.
23564         * vmsdbgout.c: Likewise.
23565         * vtable-verify.c: Likewise.
23566         * web.c: Likewise.
23567         * wide-int.cc: Likewise.
23568         * xcoffout.c: Likewise.
23569         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
23570         * common/common-targhooks.c: Likewise.
23571         * config/aarch64/aarch64-builtins.c: Likewise.
23572         * config/aarch64/aarch64.c: Likewise.
23573         * config/alpha/alpha.c: Likewise.
23574         * config/arc/arc.c: Likewise.
23575         * config/arm/aarch-common.c: Likewise.
23576         * config/arm/arm-builtins.c: Likewise.
23577         * config/arm/arm-c.c: Likewise.
23578         * config/arm/arm.c: Likewise.
23579         * config/avr/avr-c.c: Likewise.
23580         * config/avr/avr-log.c: Likewise.
23581         * config/avr/avr.c: Likewise.
23582         * config/bfin/bfin.c: Likewise.
23583         * config/c6x/c6x.c: Likewise.
23584         * config/cr16/cr16.c: Likewise.
23585         * config/cris/cris.c: Likewise.
23586         * config/darwin-c.c: Likewise.
23587         * config/darwin.c: Likewise.
23588         * config/default-c.c: Likewise.
23589         * config/epiphany/epiphany.c: Likewise.
23590         * config/epiphany/mode-switch-use.c: Likewise.
23591         * config/epiphany/resolve-sw-modes.c: Likewise.
23592         * config/fr30/fr30.c: Likewise.
23593         * config/frv/frv.c: Likewise.
23594         * config/ft32/ft32.c: Likewise.
23595         * config/glibc-c.c: Likewise.
23596         * config/h8300/h8300.c: Likewise.
23597         * config/i386/i386-c.c: Likewise.
23598         * config/i386/i386.c: Likewise.
23599         * config/i386/msformat-c.c: Likewise.
23600         * config/i386/winnt-cxx.c: Likewise.
23601         * config/i386/winnt-stubs.c: Likewise.
23602         * config/i386/winnt.c: Likewise.
23603         * config/ia64/ia64-c.c: Likewise.
23604         * config/ia64/ia64.c: Likewise.
23605         * config/iq2000/iq2000.c: Likewise.
23606         * config/lm32/lm32.c: Likewise.
23607         * config/m32c/m32c-pragma.c: Likewise.
23608         * config/m32c/m32c.c: Likewise.
23609         * config/m32r/m32r.c: Likewise.
23610         * config/m68k/m68k.c: Likewise.
23611         * config/mcore/mcore.c: Likewise.
23612         * config/mep/mep-pragma.c: Likewise.
23613         * config/mep/mep.c: Likewise.
23614         * config/microblaze/microblaze-c.c: Likewise.
23615         * config/microblaze/microblaze.c: Likewise.
23616         * config/mips/mips.c: Likewise.
23617         * config/mmix/mmix.c: Likewise.
23618         * config/mn10300/mn10300.c: Likewise.
23619         * config/moxie/moxie.c: Likewise.
23620         * config/msp430/msp430-c.c: Likewise.
23621         * config/msp430/msp430.c: Likewise.
23622         * config/nds32/nds32-cost.c: Likewise.
23623         * config/nds32/nds32-fp-as-gp.c: Likewise.
23624         * config/nds32/nds32-intrinsic.c: Likewise.
23625         * config/nds32/nds32-isr.c: Likewise.
23626         * config/nds32/nds32-md-auxiliary.c: Likewise.
23627         * config/nds32/nds32-memory-manipulation.c: Likewise.
23628         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
23629         * config/nds32/nds32-predicates.c: Likewise.
23630         * config/nds32/nds32.c: Likewise.
23631         * config/nios2/nios2.c: Likewise.
23632         * config/nvptx/nvptx.c: Likewise.
23633         * config/pa/pa.c: Likewise.
23634         * config/pdp11/pdp11.c: Likewise.
23635         * config/rl78/rl78-c.c: Likewise.
23636         * config/rl78/rl78.c: Likewise.
23637         * config/rs6000/rs6000-c.c: Likewise.
23638         * config/rs6000/rs6000.c: Likewise.
23639         * config/rx/rx.c: Likewise.
23640         * config/s390/s390-c.c: Likewise.
23641         * config/s390/s390.c: Likewise.
23642         * config/sh/sh-c.c: Likewise.
23643         * config/sh/sh-mem.cc: Likewise.
23644         * config/sh/sh.c: Likewise.
23645         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
23646         * config/sh/sh_treg_combine.cc: Likewise.
23647         * config/sol2-c.c: Likewise.
23648         * config/sol2-cxx.c: Likewise.
23649         * config/sol2-stubs.c: Likewise.
23650         * config/sol2.c: Likewise.
23651         * config/sparc/sparc-c.c: Likewise.
23652         * config/sparc/sparc.c: Likewise.
23653         * config/spu/spu-c.c: Likewise.
23654         * config/spu/spu.c: Likewise.
23655         * config/stormy16/stormy16.c: Likewise.
23656         * config/tilegx/mul-tables.c: Likewise.
23657         * config/tilegx/tilegx-c.c: Likewise.
23658         * config/tilegx/tilegx.c: Likewise.
23659         * config/tilepro/mul-tables.c: Likewise.
23660         * config/tilepro/tilepro-c.c: Likewise.
23661         * config/tilepro/tilepro.c: Likewise.
23662         * config/v850/v850-c.c: Likewise.
23663         * config/v850/v850.c: Likewise.
23664         * config/vax/vax.c: Likewise.
23665         * config/visium/visium.c: Likewise.
23666         * config/vms/vms-c.c: Likewise.
23667         * config/vms/vms.c: Likewise.
23668         * config/vxworks.c: Likewise.
23669         * config/winnt-c.c: Likewise.
23670         * config/xtensa/xtensa.c: Likewise.
23671
23672 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
23673
23674         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
23675         function.
23676         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
23677
23678 2015-06-17  Richard Biener  <rguenther@suse.de>
23679
23680         PR tree-optimization/66251
23681         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
23682         stmts for SLP strided stores.
23683
23684         Revert
23685         2015-05-22  Richard Biener  <rguenther@suse.de>
23686
23687         PR tree-optimization/66251
23688         * tree-vect-stmts.c (vectorizable_conversion): Properly
23689         set STMT_VINFO_VEC_STMT even for the SLP case.
23690
23691         2015-05-26  Michael Matz  <matz@suse.de>
23692
23693         PR middle-end/66251
23694         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
23695         STMT_VINFO_VEC_STMT, also with SLP.
23696
23697 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
23698
23699         PR target/56766
23700         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
23701         (*avx_addsubv4df3_1s): Ditto.
23702         (*sse3_addsubv2df3_1): Ditto.
23703         (*sse3_addsubv2df3_1s): Ditto.
23704         (*avx_addsubv8sf3_1): Ditto.
23705         (*avx_addsubv8sf3_1s): Ditto.
23706         (*sse3_addsubv4sf3_1): Ditto.
23707         (*sse3_addsubv4sf3_1s): Ditto.
23708
23709 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
23710
23711         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
23712         (SYSROOT_SUFFIX_SPEC): Update.
23713         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
23714         (STARTFILE_PREFIX_SPEC): Update.
23715         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
23716         (MULTILIB_REQUIRED): New.
23717         (MULTILIB_OSDIRNAMES): New.
23718         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
23719         (MULTILIB_REQUIRED): New.
23720         (MULTILIB_OSDIRNAMES): New.
23721
23722 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
23723
23724         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
23725         * config/aarch64/aarch64-options-extensions.def: Update "fP",
23726         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
23727         * config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
23728         (AARCH64_FL_PAN): New.
23729         (AARCH64_FL_LOR): New.
23730         (AARCH64_FL_RDMA): New.
23731         (AARCH64_FL_FOR_ARCH8_1): New.
23732         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
23733         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
23734
23735 2015-06-16  Martin Liska  <mliska@suse.cz>
23736
23737         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
23738         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
23739         guard.
23740
23741 2015-06-16  Richard Biener  <rguenther@suse.de>
23742
23743         * tree-vect-stmts.c (vectorizable_store): Adjust.
23744         (vectorizable_load): Likewise.
23745         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
23746         Simplify.
23747         (vect_create_data_ref_ptr): Likewise.
23748         (bump_vector_ptr): Adjust.
23749
23750 2015-06-16  Richard Biener  <rguenther@suse.de>
23751
23752         * tree-vect-stmts.c (vectorizable_load): Properly start loads
23753         with the first element if this is grouped loads.
23754
23755 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
23756
23757         * config/arm/arm-protos.h (struct tune_params): Rename
23758         log_op_non_sc to log_op_non_short_circuit, and rename enum
23759         values to expand SC to SHORT_CIRCUIT.
23760         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
23761         to LOG_OP_NON_SHORT_CIRCUIT.
23762         (arm_fastmul_tune):Likewise
23763         (arm_strongarm_tune): Likewise.
23764         (arm_xscale_tune): Likewise.
23765         (arm_9e_tune): Likewise.
23766         (arm_marvell_pj4_tune): Likewise.
23767         (arm_v6t2_tune): Likewise.
23768         (arm_cortex_tune): Likewise.
23769         (arm_cortex_a8_tune): Likewise.
23770         (arm_cortex_a7_tune): Likewise.
23771         (arm_cortex_a15_tune): Likewise.
23772         (arm_cortex_a53_tune): Likewise.
23773         (arm_cortex_a57_tune): Likewise.
23774         (arm_xgene1_tune): Likewise.
23775         (arm_cortex_a5_tune): Likewise.
23776         (arm_cortex_a9_tune): Likewise.
23777         (arm_cortex_a12_tune): Likewise.
23778         (arm_v7m_tune): Likewise.
23779         (arm_cortex_m7_tune): Likewise.
23780         (arm_v6m_tune): Likewise.
23781         (arm_fa726te_tune): Likewise.
23782
23783 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
23784
23785         * altivec.md: Delete UNSPEC_VMLADDUHM.
23786         (mulv4si3_p8): New pattern.
23787         (mulv4si3): Use it for POWER8.
23788         (mulv8hi3): Use vmladduhm with zero addend.
23789         (altivec_vmladduhm): Descriptive RTL.
23790
23791 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
23792
23793         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
23794         to use neon_move instead of mov_imm.
23795         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
23796         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
23797
23798         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
23799         aarch64_float_const_zero_rtx_p check before TFmode check.
23800         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
23801         an fp zero.
23802         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
23803         code and attributes to match.  Change condition from register_operand
23804         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
23805         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
23806         to store2.
23807
23808 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
23809
23810         PR debug/66535
23811         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
23812         there is no parent.
23813
23814 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
23815
23816         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
23817         HOST_WIDE_INT parameter.
23818
23819 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
23820
23821         PR ipa/66181
23822         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
23823         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
23824         TYPE_NO_FORCE_BLK.
23825         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
23826
23827 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
23828
23829         * rtl.h (classify_insn): Declare.
23830         * emit-rtl.c (classify_insn): Move to...
23831         * rtl.c: ...here and add generator support.
23832         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
23833         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
23834         * genemit.c (gen_emit_seq): New function.
23835         (gen_expand, gen_split): Use it.
23836
23837 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
23838
23839         * tree.c (make_vector_stat): Fix comment to state that the
23840         function returns a VECTOR_CST.
23841
23842 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
23843
23844         * gensupport.h (add_implicit_parallel): Declare.
23845         * genrecog.c (add_implicit_parallel): Move to...
23846         * gensupport.c (add_implicit_parallel): ...here.
23847         (process_one_cond_exec): Use it.
23848         * genemit.c (gen_insn): Likewise.
23849
23850 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
23851
23852         PR bootstrap/66448
23853         * passes.c (rest_of_decl_compilation): Do not register globals for
23854         early debug if they are declared in built-ins.
23855
23856 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
23857
23858         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
23859
23860 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23861
23862         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
23863         manually swapping.
23864         (noce_try_cmove_arith): Likewise.
23865         (noce_get_alt_condition): Likewise.
23866
23867 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
23868
23869         * common/config/i386/i386-common.c
23870         (OPTION_MASK_ISA_MWAITX_SET): New.
23871         (ix86_handle_option): Handle mwaitx.
23872         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
23873         (x86_64-*-*): Likewise.
23874         * config/i386/mwaitxintrin.h: New header.
23875         * config/i386/cpuid.h (bit_MWAITX):  Define.
23876         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
23877         MWAITX support.
23878         * config/i386/i386.opt (mwaitx): New.
23879         * config/i386/i386-builtin-types.def
23880         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
23881         * config/i386/i386-c.c: Define __MWAITX__ if needed.
23882         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
23883         (PTA_MWAITX): New.
23884         (ix86_option_override_internal): Handle new option.
23885         (processor_alias_table): Added PTA_MWAITX.
23886         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
23887         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
23888         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
23889         IX86_BUILTIN_MONITORX  built-ins.
23890         * config/i386/i386.h (TARGET_MWAITX): New.
23891         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
23892         UNSPEC_MONITORX.
23893         (mwaitx):  New pattern.
23894         (monitorx_<mode>): New pattern.
23895         * config/i386/x86intrin.h: Include mwaitxintrin.h.
23896         * doc/extend.texi: Document monitorx and mwaitx builtins.
23897         * doc/invoke.texi: Document -mmwaitx option.
23898
23899 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
23900
23901         * emit-rtl.c (need_atomic_barrier_p): Mask model with
23902         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
23903
23904 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
23905
23906         * dbxout.c (xcoff_debug_hooks): Provide a function for
23907         register_main_translation_unit hook.
23908
23909 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
23910
23911         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
23912         variants cases from switch.
23913         (rs6000_post_atomic_barrier): Same.
23914         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
23915         (rs6000_expand_atomic_exchange): Same.
23916         (rs6000_expand_atomic_op): Same.
23917         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
23918         SYNC variants cases from switch.
23919         (atomic_load): Same.
23920         (atomic_store): Same.
23921
23922 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
23923
23924         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
23925         CONST_INT for goto.
23926
23927 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
23928
23929         PR bootstrap/66448
23930         * dwarf2out.c (check_die): Check for common duplicate attributes.
23931         (add_location_or_const_value_attribute): Do not add duplicate
23932         attributes.
23933         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
23934         time around.
23935         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
23936         (gen_type_die_with_usage): Call check_die.
23937         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
23938
23939 2015-06-11  Jason Merrill  <jason@redhat.com>
23940
23941         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
23942         dies.
23943
23944 2015-06-11  Marek Polacek  <polacek@redhat.com>
23945
23946         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
23947
23948 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
23949
23950         PR bootstrap/66252
23951         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
23952         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
23953         (*addx_extend_sp32): Fix pasto.
23954         (*subx_extend): Rename into...
23955         (*subx_extend_sp32): ...this.
23956         (*adddi3_extend_sp32): Add earlyclobber.
23957         (*subdi3_insn_sp32): Likewise.
23958         (*subdi3_extend_sp32): Likewise.
23959         (*and_not_di_sp32): Likewise.
23960         (*or_not_di_sp32): Likewise.
23961         (*xor_not_di_sp32): Likewise.
23962         (*negdi2_sp32): Likewise.
23963         (*one_cmpldi2_sp32): Likewise.
23964
23965 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
23966
23967         * debug.h (struct gcc_debug_hooks): Add a
23968         register_main_translation_unit hook.
23969         * debug.c (do_nothing_debug_hooks): Provide a function for this
23970         new hook.
23971         * dbxout.c (dbx_debug_hooks): Likewise.
23972         * sdbout.c (sdb_debug_hooks): Likewise.
23973         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
23974         * dwarf2out.c (main_translation_unit): New global variable.
23975         (dwarf2out_register_main_translation_unit): New function
23976         implementing the new hook.
23977         (dwarf2_debug_hooks): Assign
23978         dwarf2out_register_main_translation_unit to this new hook.
23979         (dwarf2out_init): Associate any main translation unit to
23980         comp_unit_die ().
23981
23982 2015-06-11  Marek Polacek  <polacek@redhat.com>
23983
23984         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
23985
23986 2015-06-11  Marek Polacek  <polacek@redhat.com>
23987
23988         * match.pd: Use single_use throughout.
23989
23990 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23991
23992         * config/arm/arm.c (arm_option_params_internal): When optimising
23993         for speed set max_insns_skipped when arm_restrict_it.
23994
23995 2015-06-11  Christian Bruel  <christian.bruel@st.com>
23996
23997         PR target/52144
23998         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
23999          macros in ...
24000         (arm_cpu_builtins): New function.
24001         (arm_pragma_target_parse): Call arm_cpu_builtins.
24002         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
24003         (arm_register_target_pragmas): Likewise.
24004         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
24005          Call arm_register_target_pragmas.
24006         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
24007         (arm_pragma_target_parse): Likewise.
24008
24009 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
24010
24011         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
24012         of the second operand.
24013
24014 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
24015
24016         PR target/66473
24017         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
24018         to prepare mask operand for AVX512 modes.
24019
24020 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
24021
24022         PR target/66474
24023         * doc/md.texi (Machine Constraints): Document that on the PowerPC
24024         if you use a constraint that targets a VSX register, you must use
24025         %x<n> in the template.
24026
24027 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
24028
24029         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
24030         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
24031         (define_insn "trap"): New definition.
24032
24033 2015-06-10  Richard Biener  <rguenther@suse.de>
24034
24035         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
24036         out from ...
24037         (vect_supported_load_permutation_p): ... here.  Handle
24038         supportable permutations in reductions.
24039         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
24040         for vectorizing strided group loads.
24041
24042 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
24043
24044         PR target/66470
24045         * config/i386/i386.c (ix86_split_long_move): For collisions
24046         involving direct tls segment refs, move the UNSPEC_TP possibly
24047         wrapped in ZERO_EXTEND out of the address for lea, to each of
24048         the memory loads.
24049
24050 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24051
24052         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
24053         dmb sy. Adjust tabs.
24054
24055 2015-06-10  Tom de Vries  <tom@codesourcery.com>
24056
24057         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
24058
24059 2015-06-10  Martin Liska  <mliska@suse.cz>
24060
24061         PR bootstrap/66471
24062         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
24063         all enum values in mem_alloc_origin.
24064         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
24065         name.
24066         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
24067         * bitmap.c (bitmap_register): Likewise.
24068         (dump_bitmap_statistics): Likewise.
24069         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
24070         (ggc_record_overhead): Likewise.
24071         * hash-map.h: Likewise.
24072         * hash-set.h: Likewise.
24073         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
24074         * hash-table.h: Likewise.
24075         * vec.c (vec_prefix::register_overhead): Likewise.
24076         (vec_prefix::release_overhead): Likewise.
24077         (dump_vec_loc_statistics): Likewise.
24078
24079 2015-06-09  Christian Bruel  <christian.bruel@st.com>
24080
24081         PR target/52144
24082         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
24083         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
24084         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
24085         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
24086         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
24087         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
24088         (arm_valid_target_attribute_p): Likewise.
24089         (arm_set_current_function, arm_can_inline_p): Likewise.
24090         (arm_valid_target_attribute_rec): Likewise.
24091         (arm_previous_fndecl): New variable.
24092         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
24093         (TARGET_CAN_INLINE_P): Define.
24094         (arm_asm_trampoline_template): Emit mode.
24095         (arm_file_start): Don't set unified syntax.
24096         (arm_declare_function_name): Set unified syntax and mode.
24097         (arm_option_override): Init target_option_default_node.
24098         and target_option_current_node.
24099         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
24100         (*call_symbol): Likewise.
24101         * doc/extend.texi: Document ARM/Thumb target attribute.
24102         * doc/invoke.texi: Likewise.
24103
24104 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
24105
24106         Revert:
24107         2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
24108         PR rtl-optimization/64164
24109         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
24110         * tree-ssa-copyrename.c: Removed.
24111         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
24112         -ftree-coalesce-vars.
24113         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
24114         * common.opt (ftree-copyrename): Ignore.
24115         (ftree-coalesce-inlined-vars): Likewise.
24116         * doc/invoke.texi: Remove the ignored options above.
24117         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
24118         * tree-ssa-coalesce.h: ... here.
24119         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
24120         headers required by it.
24121         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
24122         across variables when flag_tree_coalesce_vars.  Check register
24123         use and promoted modes to allow coalescing.  Moved to
24124         tree-ssa-coalesce.c.
24125         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
24126         with its member functions to tree-ssa-coalesce.c.
24127         (var_map_base_init): Likewise.  Renamed to
24128         compute_samebase_partition_bases.
24129         (partition_view_normal): Drop want_bases parameter.
24130         (partition_view_bitmap): Likewise.
24131         * tree-ssa-live.h: Adjust declarations.
24132         * tree-ssa-coalesce.c: Include explow.h.
24133         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
24134         default defs at the entry point.
24135         (dump_part_var_map): New.
24136         (compute_optimized_partition_bases): New, called by...
24137         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
24138         of compute_samebase_partition_bases.  Adjust.
24139         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
24140         * cfgexpand.c (leader_merge): New.
24141         (get_rtl_for_parm_ssa_default_def): New.
24142         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
24143         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
24144         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
24145         redundant MEM attr setting.
24146         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
24147         from...
24148         (expand_one_stack_var): ... this.  New wrapper to check and
24149         skip already expanded SSA partitions.
24150         (record_alignment_for_reg_var): New, factored out of...
24151         (expand_one_var): ... this.
24152         (expand_one_ssa_partition): New.
24153         (adjust_one_expanded_partition_var): New.
24154         (expand_one_register_var): Check and skip already expanded SSA
24155         partitions.
24156         (expand_used_vars): Don't create DECLs for anonymous SSA
24157         names.  Expand all SSA partitions, then adjust all SSA names.
24158         (pass::execute): Replace the loops that set
24159         SA.partition_to_pseudo from partition leaders and cleared
24160         DECL_RTL for multi-location variables, and that which used to
24161         rename vars and set attrs, with one that clears DECL_RTL and
24162         checks that PARMs and RESULTs default_defs match DECL_RTL.
24163         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
24164         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
24165         * explow.c (promote_ssa_mode): New.
24166         * explow.h (promote_ssa_mode): Declare.
24167         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
24168         * function.c: Include cfgexpand.h.
24169         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
24170         (use_register_for_parm_decl): Wrapper for the above to
24171         special-case the result_ptr.
24172         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
24173         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
24174         multiple locations.
24175         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
24176         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
24177         (assign_parm_setup_block): Prefer SSA-assigned location.
24178         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
24179         if stack_parm is NULL.
24180         (assign_parm_setup_stack): Prefer SSA-assigned location.
24181         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
24182         rtl before testing for pointer bounds.  Special-case result_ptr.
24183         (expand_function_start): Maybe reset DECL_RTL of result.
24184         Prefer SSA-assigned location for result and static chain.
24185         Factor out DECL_RESULT and SET_DECL_RTL.
24186         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
24187         anonymous SSA names.  Use promote_ssa_mode.
24188         (get_temp_reg): Likewise.
24189         (remove_ssa_form): Adjust.
24190         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
24191         and get its reg_usage for reg invalidation.
24192         (compute_bb_dataflow): Pass it insn.
24193         (emit_notes_in_bb): Likewise.
24194         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
24195         fail assert on conversion between unsigned types.
24196
24197 2015-06-09  Tom de Vries  <tom@codesourcery.com>
24198
24199         PR tree-optimization/65460
24200         * omp-low.c (expand_omp_target): Set parallelized_function on
24201         cgraph_node for child_fn.
24202
24203 2015-06-09  Tom de Vries  <tom@codesourcery.com>
24204
24205         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
24206         parallelized_function before add_new_function.
24207
24208 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
24209
24210         * gcc-plugin.h: Move decls to plugin.h and include it.
24211         * plugin.h: Relocate decls from gcc-plugin.h
24212         * ggc-page.c: Include required header files.
24213         * passes.c: Likewise.
24214         * cgraphunit.c: Likewise.
24215
24216 2015-06-09  Tom de Vries  <tom@codesourcery.com>
24217
24218         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
24219
24220 2015-06-09  Jason Merrill  <jason@redhat.com>
24221
24222         PR bootstrap/66448
24223         * toplev.c (check_global_declaration): Don't warn about a clone.
24224
24225 2015-06-09  Marek Polacek  <polacek@redhat.com>
24226
24227         PR tree-optimization/66299
24228         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
24229         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
24230         patterns.
24231
24232 2015-06-09  Richard Biener  <rguenther@suse.de>
24233
24234         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
24235         (vect_analyze_slp_instance): Instead do not falsely drop
24236         load permutations.
24237
24238 2015-06-09  Richard Biener  <rguenther@suse.de>
24239
24240         PR middle-end/66423
24241         * match.pd: Handle A % (unsigned)(1 << B).
24242
24243 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
24244
24245         * varasm.c (output_object_block_htab): Remove.
24246         (output_object_block_compare): New.
24247         (output_object_blocks): Sort named object_blocks before outputting
24248         them.
24249
24250 2015-06-09  Richard Biener  <rguenther@suse.de>
24251
24252         PR tree-optimization/66419
24253         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
24254         consider GROUP_GAP when detecting a perfect subchain.
24255
24256 2015-06-09  Nick Clifton  <nickc@redhat.com>
24257
24258         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
24259         place read only data in the .frodata section.
24260
24261 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
24262
24263         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
24264         (atomic_store<mode>): Likewise.
24265
24266 2015-06-09  Richard Biener  <rguenther@suse.de>
24267
24268         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
24269
24270 2015-06-09  Richard Biener  <rguenther@suse.de>
24271
24272         PR middle-end/66413
24273         * tree-inline.c (insert_init_debug_bind): Unshare value.
24274
24275 2015-06-09  Richard Biener  <rguenther@suse.de>
24276
24277         PR tree-optimization/66396
24278         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
24279         Rename virtual operands.
24280
24281 2015-06-09  Tom de Vries  <tom@codesourcery.com>
24282
24283         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
24284         always return false.
24285
24286 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
24287
24288         PR rtl-optimization/64164
24289         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
24290         * tree-ssa-copyrename.c: Removed.
24291         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
24292         -ftree-coalesce-vars.
24293         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
24294         * common.opt (ftree-copyrename): Ignore.
24295         (ftree-coalesce-inlined-vars): Likewise.
24296         * doc/invoke.texi: Remove the ignored options above.
24297         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
24298         * tree-ssa-coalesce.h: ... here.
24299         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
24300         headers required by it.
24301         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
24302         across variables when flag_tree_coalesce_vars.  Check register
24303         use and promoted modes to allow coalescing.  Moved to
24304         tree-ssa-coalesce.c.
24305         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
24306         with its member functions to tree-ssa-coalesce.c.
24307         (var_map_base_init): Likewise.  Renamed to
24308         compute_samebase_partition_bases.
24309         (partition_view_normal): Drop want_bases parameter.
24310         (partition_view_bitmap): Likewise.
24311         * tree-ssa-live.h: Adjust declarations.
24312         * tree-ssa-coalesce.c: Include explow.h.
24313         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
24314         default defs at the entry point.
24315         (dump_part_var_map): New.
24316         (compute_optimized_partition_bases): New, called by...
24317         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
24318         of compute_samebase_partition_bases.  Adjust.
24319         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
24320         * cfgexpand.c (leader_merge): New.
24321         (get_rtl_for_parm_ssa_default_def): New.
24322         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
24323         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
24324         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
24325         redundant MEM attr setting.
24326         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
24327         from...
24328         (expand_one_stack_var): ... this.  New wrapper to check and
24329         skip already expanded SSA partitions.
24330         (record_alignment_for_reg_var): New, factored out of...
24331         (expand_one_var): ... this.
24332         (expand_one_ssa_partition): New.
24333         (adjust_one_expanded_partition_var): New.
24334         (expand_one_register_var): Check and skip already expanded SSA
24335         partitions.
24336         (expand_used_vars): Don't create DECLs for anonymous SSA
24337         names.  Expand all SSA partitions, then adjust all SSA names.
24338         (pass::execute): Replace the loops that set
24339         SA.partition_to_pseudo from partition leaders and cleared
24340         DECL_RTL for multi-location variables, and that which used to
24341         rename vars and set attrs, with one that clears DECL_RTL and
24342         checks that PARMs and RESULTs default_defs match DECL_RTL.
24343         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
24344         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
24345         * explow.c (promote_ssa_mode): New.
24346         * explow.h (promote_ssa_mode): Declare.
24347         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
24348         * function.c: Include cfgexpand.h.
24349         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
24350         (use_register_for_parm_decl): Wrapper for the above to
24351         special-case the result_ptr.
24352         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
24353         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
24354         multiple locations.
24355         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
24356         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
24357         (assign_parm_setup_block): Prefer SSA-assigned location.
24358         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
24359         if stack_parm is NULL.
24360         (assign_parm_setup_stack): Prefer SSA-assigned location.
24361         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
24362         rtl before testing for pointer bounds.  Special-case result_ptr.
24363         (expand_function_start): Maybe reset DECL_RTL of result.
24364         Prefer SSA-assigned location for result and static chain.
24365         Factor out DECL_RESULT and SET_DECL_RTL.
24366         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
24367         anonymous SSA names.  Use promote_ssa_mode.
24368         (get_temp_reg): Likewise.
24369         (remove_ssa_form): Adjust.
24370         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
24371         and get its reg_usage for reg invalidation.
24372         (compute_bb_dataflow): Pass it insn.
24373         (emit_notes_in_bb): Likewise.
24374         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
24375         fail assert on conversion between unsigned types.
24376
24377 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
24378
24379         PR debug/58315
24380         * tree-inline.c (reset_debug_binding): New.
24381         (reset_debug_bindings): Likewise.
24382         (expand_call_inline): Call it.
24383
24384 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
24385
24386         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
24387         TYPE_STRING_FLAG.
24388
24389 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
24390
24391         * lto-streamer-out.c (lto_output_location): Stream
24392         reserved locations correctly.
24393         * lto-streamer-in.c (lto_output_location): Likewise.
24394
24395 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
24396
24397         * coretypes.h: Include hash-table.h and hash-set.h for host files.
24398         * ggc.h: Don't include statistics.h>
24399         * hash-map.h: Remove all includes.
24400         * hash-set.h: Likewise.
24401         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
24402         the include list. Remove <new>.
24403         * inchash.h: Remove all includes.
24404         * mem-stats.h: Likewise.
24405         * vec.h: No special processing for generators or ggc.
24406         * alias.c : Adjust include files.
24407         * alloc-pool.c : Likewise.
24408         * alloc-pool.h : Likewise.
24409         * asan.c : Likewise.
24410         * attribs.c : Likewise.
24411         * auto-inc-dec.c : Likewise.
24412         * auto-profile.c : Likewise.
24413         * bb-reorder.c : Likewise.
24414         * bitmap.c : Likewise.
24415         * bitmap.h : Likewise.
24416         * bt-load.c : Likewise.
24417         * builtins.c : Likewise.
24418         * caller-save.c : Likewise.
24419         * calls.c : Likewise.
24420         * ccmp.c : Likewise.
24421         * cfg.c : Likewise.
24422         * cfganal.c : Likewise.
24423         * cfgbuild.c : Likewise.
24424         * cfgcleanup.c : Likewise.
24425         * cfgexpand.c : Likewise.
24426         * cfghooks.c : Likewise.
24427         * cfgloop.c : Likewise.
24428         * cfgloop.h : Likewise.
24429         * cfgloopanal.c : Likewise.
24430         * cfgloopmanip.c : Likewise.
24431         * cfgrtl.c : Likewise.
24432         * cgraph.c : Likewise.
24433         * cgraphbuild.c : Likewise.
24434         * cgraphclones.c : Likewise.
24435         * cgraphunit.c : Likewise.
24436         * cilk-common.c : Likewise.
24437         * combine-stack-adj.c : Likewise.
24438         * combine.c : Likewise.
24439         * compare-elim.c : Likewise.
24440         * context.c : Likewise.
24441         * convert.c : Likewise.
24442         * coverage.c : Likewise.
24443         * cppbuiltin.c : Likewise.
24444         * cprop.c : Likewise.
24445         * cse.c : Likewise.
24446         * cselib.c : Likewise.
24447         * data-streamer-in.c : Likewise.
24448         * data-streamer-out.c : Likewise.
24449         * data-streamer.c : Likewise.
24450         * data-streamer.h : Likewise.
24451         * dbxout.c : Likewise.
24452         * dce.c : Likewise.
24453         * ddg.c : Likewise.
24454         * debug.c : Likewise.
24455         * df-core.c : Likewise.
24456         * df-problems.c : Likewise.
24457         * df-scan.c : Likewise.
24458         * df.h : Likewise.
24459         * dfp.c : Likewise.
24460         * dojump.c : Likewise.
24461         * dominance.c : Likewise.
24462         * domwalk.c : Likewise.
24463         * double-int.c : Likewise.
24464         * dse.c : Likewise.
24465         * dumpfile.c : Likewise.
24466         * dwarf2asm.c : Likewise.
24467         * dwarf2cfi.c : Likewise.
24468         * dwarf2out.c : Likewise.
24469         * emit-rtl.c : Likewise.
24470         * et-forest.c : Likewise.
24471         * except.c : Likewise.
24472         * except.h : Likewise.
24473         * explow.c : Likewise.
24474         * expmed.c : Likewise.
24475         * expr.c : Likewise.
24476         * final.c : Likewise.
24477         * fixed-value.c : Likewise.
24478         * fold-const.c : Likewise.
24479         * function.c : Likewise.
24480         * fwprop.c : Likewise.
24481         * gcc-plugin.h : Likewise.
24482         * gcc.c : Likewise.
24483         * gcse-common.c : Likewise.
24484         * gcse.c : Likewise.
24485         * genattrtab.c : Likewise.
24486         * genautomata.c : Likewise.
24487         * genconditions.c : Likewise.
24488         * genemit.c : Likewise.
24489         * generic-match-head.c : Likewise.
24490         * genextract.c : Likewise.
24491         * gengtype-state.c : Likewise.
24492         * gengtype.c : Likewise.
24493         * genhooks.c : Likewise.
24494         * genmatch.c : Likewise.
24495         * genmodes.c : Likewise.
24496         * genrecog.c : Likewise.
24497         * gensupport.c : Likewise.
24498         * ggc-common.c : Likewise.
24499         * ggc-internal.h : Likewise.
24500         * ggc-none.c : Likewise.
24501         * ggc-page.c : Likewise.
24502         * gimple-builder.c : Likewise.
24503         * gimple-expr.c : Likewise.
24504         * gimple-fold.c : Likewise.
24505         * gimple-iterator.c : Likewise.
24506         * gimple-low.c : Likewise.
24507         * gimple-match-head.c : Likewise.
24508         * gimple-pretty-print.c : Likewise.
24509         * gimple-ssa-isolate-paths.c : Likewise.
24510         * gimple-ssa-strength-reduction.c : Likewise.
24511         * gimple-ssa.h : Likewise.
24512         * gimple-streamer-in.c : Likewise.
24513         * gimple-streamer-out.c : Likewise.
24514         * gimple-streamer.h : Likewise.
24515         * gimple-walk.c : Likewise.
24516         * gimple.c : Likewise.
24517         * gimplify-me.c : Likewise.
24518         * gimplify.c : Likewise.
24519         * godump.c : Likewise.
24520         * graph.c : Likewise.
24521         * graphds.c : Likewise.
24522         * graphite-blocking.c : Likewise.
24523         * graphite-dependences.c : Likewise.
24524         * graphite-interchange.c : Likewise.
24525         * graphite-isl-ast-to-gimple.c : Likewise.
24526         * graphite-optimize-isl.c : Likewise.
24527         * graphite-poly.c : Likewise.
24528         * graphite-scop-detection.c : Likewise.
24529         * graphite-sese-to-poly.c : Likewise.
24530         * graphite.c : Likewise.
24531         * haifa-sched.c : Likewise.
24532         * hard-reg-set.h : Likewise.
24533         * hw-doloop.c : Likewise.
24534         * ifcvt.c : Likewise.
24535         * inchash.c : Likewise.
24536         * incpath.c : Likewise.
24537         * init-regs.c : Likewise.
24538         * input.c : Likewise.
24539         * internal-fn.c : Likewise.
24540         * ipa-chkp.c : Likewise.
24541         * ipa-comdats.c : Likewise.
24542         * ipa-cp.c : Likewise.
24543         * ipa-devirt.c : Likewise.
24544         * ipa-icf-gimple.c : Likewise.
24545         * ipa-icf.c : Likewise.
24546         * ipa-inline-analysis.c : Likewise.
24547         * ipa-inline-transform.c : Likewise.
24548         * ipa-inline.c : Likewise.
24549         * ipa-polymorphic-call.c : Likewise.
24550         * ipa-profile.c : Likewise.
24551         * ipa-prop.c : Likewise.
24552         * ipa-pure-const.c : Likewise.
24553         * ipa-ref.c : Likewise.
24554         * ipa-reference.c : Likewise.
24555         * ipa-split.c : Likewise.
24556         * ipa-utils.c : Likewise.
24557         * ipa-visibility.c : Likewise.
24558         * ipa.c : Likewise.
24559         * ira-build.c : Likewise.
24560         * ira-color.c : Likewise.
24561         * ira-conflicts.c : Likewise.
24562         * ira-costs.c : Likewise.
24563         * ira-emit.c : Likewise.
24564         * ira-lives.c : Likewise.
24565         * ira.c : Likewise.
24566         * jump.c : Likewise.
24567         * langhooks.c : Likewise.
24568         * lcm.c : Likewise.
24569         * libfuncs.h : Likewise.
24570         * lists.c : Likewise.
24571         * loop-doloop.c : Likewise.
24572         * loop-init.c : Likewise.
24573         * loop-invariant.c : Likewise.
24574         * loop-iv.c : Likewise.
24575         * loop-unroll.c : Likewise.
24576         * lower-subreg.c : Likewise.
24577         * lra-assigns.c : Likewise.
24578         * lra-coalesce.c : Likewise.
24579         * lra-constraints.c : Likewise.
24580         * lra-eliminations.c : Likewise.
24581         * lra-lives.c : Likewise.
24582         * lra-remat.c : Likewise.
24583         * lra-spills.c : Likewise.
24584         * lra.c : Likewise.
24585         * lto-cgraph.c : Likewise.
24586         * lto-compress.c : Likewise.
24587         * lto-opts.c : Likewise.
24588         * lto-section-in.c : Likewise.
24589         * lto-section-out.c : Likewise.
24590         * lto-streamer-in.c : Likewise.
24591         * lto-streamer-out.c : Likewise.
24592         * lto-streamer.c : Likewise.
24593         * lto-streamer.h : Likewise.
24594         * mcf.c : Likewise.
24595         * mode-switching.c : Likewise.
24596         * modulo-sched.c : Likewise.
24597         * omega.c : Likewise.
24598         * omp-low.c : Likewise.
24599         * optabs.c : Likewise.
24600         * opts-global.c : Likewise.
24601         * opts.h : Likewise.
24602         * passes.c : Likewise.
24603         * plugin.c : Likewise.
24604         * postreload-gcse.c : Likewise.
24605         * postreload.c : Likewise.
24606         * predict.c : Likewise.
24607         * print-rtl.c : Likewise.
24608         * print-tree.c : Likewise.
24609         * profile.c : Likewise.
24610         * read-md.c : Likewise.
24611         * read-md.h : Likewise.
24612         * read-rtl.c : Likewise.
24613         * real.c : Likewise.
24614         * realmpfr.c : Likewise.
24615         * recog.c : Likewise.
24616         * ree.c : Likewise.
24617         * reg-stack.c : Likewise.
24618         * regcprop.c : Likewise.
24619         * reginfo.c : Likewise.
24620         * regrename.c : Likewise.
24621         * regstat.c : Likewise.
24622         * reload.c : Likewise.
24623         * reload1.c : Likewise.
24624         * reorg.c : Likewise.
24625         * resource.c : Likewise.
24626         * rtl-chkp.c : Likewise.
24627         * rtl.c : Likewise.
24628         * rtl.h : Likewise.
24629         * rtlanal.c : Likewise.
24630         * rtlhash.c : Likewise.
24631         * rtlhash.h : Likewise.
24632         * rtlhooks.c : Likewise.
24633         * sanopt.c : Likewise.
24634         * sched-deps.c : Likewise.
24635         * sched-ebb.c : Likewise.
24636         * sched-rgn.c : Likewise.
24637         * sched-vis.c : Likewise.
24638         * sdbout.c : Likewise.
24639         * sel-sched-dump.c : Likewise.
24640         * sel-sched-ir.c : Likewise.
24641         * sel-sched-ir.h : Likewise.
24642         * sel-sched.c : Likewise.
24643         * sese.c : Likewise.
24644         * shrink-wrap.c : Likewise.
24645         * shrink-wrap.h : Likewise.
24646         * simplify-rtx.c : Likewise.
24647         * stack-ptr-mod.c : Likewise.
24648         * statistics.c : Likewise.
24649         * stmt.c : Likewise.
24650         * stor-layout.c : Likewise.
24651         * store-motion.c : Likewise.
24652         * stringpool.c : Likewise.
24653         * symtab.c : Likewise.
24654         * target-globals.c : Likewise.
24655         * targhooks.c : Likewise.
24656         * tlink.c : Likewise.
24657         * toplev.c : Likewise.
24658         * tracer.c : Likewise.
24659         * trans-mem.c : Likewise.
24660         * tree-affine.c : Likewise.
24661         * tree-affine.h : Likewise.
24662         * tree-browser.c : Likewise.
24663         * tree-call-cdce.c : Likewise.
24664         * tree-cfg.c : Likewise.
24665         * tree-cfgcleanup.c : Likewise.
24666         * tree-chkp-opt.c : Likewise.
24667         * tree-chkp.c : Likewise.
24668         * tree-chrec.c : Likewise.
24669         * tree-complex.c : Likewise.
24670         * tree-data-ref.c : Likewise.
24671         * tree-dfa.c : Likewise.
24672         * tree-diagnostic.c : Likewise.
24673         * tree-dump.c : Likewise.
24674         * tree-eh.c : Likewise.
24675         * tree-eh.h : Likewise.
24676         * tree-emutls.c : Likewise.
24677         * tree-hasher.h : Likewise.
24678         * tree-if-conv.c : Likewise.
24679         * tree-inline.c : Likewise.
24680         * tree-inline.h : Likewise.
24681         * tree-into-ssa.c : Likewise.
24682         * tree-iterator.c : Likewise.
24683         * tree-loop-distribution.c : Likewise.
24684         * tree-nested.c : Likewise.
24685         * tree-nrv.c : Likewise.
24686         * tree-object-size.c : Likewise.
24687         * tree-outof-ssa.c : Likewise.
24688         * tree-parloops.c : Likewise.
24689         * tree-phinodes.c : Likewise.
24690         * tree-predcom.c : Likewise.
24691         * tree-pretty-print.c : Likewise.
24692         * tree-profile.c : Likewise.
24693         * tree-scalar-evolution.c : Likewise.
24694         * tree-sra.c : Likewise.
24695         * tree-ssa-address.c : Likewise.
24696         * tree-ssa-alias.c : Likewise.
24697         * tree-ssa-ccp.c : Likewise.
24698         * tree-ssa-coalesce.c : Likewise.
24699         * tree-ssa-copy.c : Likewise.
24700         * tree-ssa-copyrename.c : Likewise.
24701         * tree-ssa-dce.c : Likewise.
24702         * tree-ssa-dom.c : Likewise.
24703         * tree-ssa-dse.c : Likewise.
24704         * tree-ssa-forwprop.c : Likewise.
24705         * tree-ssa-ifcombine.c : Likewise.
24706         * tree-ssa-live.c : Likewise.
24707         * tree-ssa-loop-ch.c : Likewise.
24708         * tree-ssa-loop-im.c : Likewise.
24709         * tree-ssa-loop-ivcanon.c : Likewise.
24710         * tree-ssa-loop-ivopts.c : Likewise.
24711         * tree-ssa-loop-manip.c : Likewise.
24712         * tree-ssa-loop-niter.c : Likewise.
24713         * tree-ssa-loop-prefetch.c : Likewise.
24714         * tree-ssa-loop-unswitch.c : Likewise.
24715         * tree-ssa-loop.c : Likewise.
24716         * tree-ssa-math-opts.c : Likewise.
24717         * tree-ssa-operands.c : Likewise.
24718         * tree-ssa-phiopt.c : Likewise.
24719         * tree-ssa-phiprop.c : Likewise.
24720         * tree-ssa-pre.c : Likewise.
24721         * tree-ssa-propagate.c : Likewise.
24722         * tree-ssa-reassoc.c : Likewise.
24723         * tree-ssa-sccvn.c : Likewise.
24724         * tree-ssa-scopedtables.c : Likewise.
24725         * tree-ssa-sink.c : Likewise.
24726         * tree-ssa-strlen.c : Likewise.
24727         * tree-ssa-structalias.c : Likewise.
24728         * tree-ssa-tail-merge.c : Likewise.
24729         * tree-ssa-ter.c : Likewise.
24730         * tree-ssa-threadedge.c : Likewise.
24731         * tree-ssa-threadupdate.c : Likewise.
24732         * tree-ssa-uncprop.c : Likewise.
24733         * tree-ssa-uninit.c : Likewise.
24734         * tree-ssa.c : Likewise.
24735         * tree-ssanames.c : Likewise.
24736         * tree-stdarg.c : Likewise.
24737         * tree-streamer-in.c : Likewise.
24738         * tree-streamer-out.c : Likewise.
24739         * tree-streamer.c : Likewise.
24740         * tree-streamer.h : Likewise.
24741         * tree-switch-conversion.c : Likewise.
24742         * tree-tailcall.c : Likewise.
24743         * tree-vect-data-refs.c : Likewise.
24744         * tree-vect-generic.c : Likewise.
24745         * tree-vect-loop-manip.c : Likewise.
24746         * tree-vect-loop.c : Likewise.
24747         * tree-vect-patterns.c : Likewise.
24748         * tree-vect-slp.c : Likewise.
24749         * tree-vect-stmts.c : Likewise.
24750         * tree-vectorizer.c : Likewise.
24751         * tree-vectorizer.h : Likewise.
24752         * tree-vrp.c : Likewise.
24753         * tree.c : Likewise.
24754         * tsan.c : Likewise.
24755         * ubsan.c : Likewise.
24756         * valtrack.c : Likewise.
24757         * valtrack.h : Likewise.
24758         * value-prof.c : Likewise.
24759         * var-tracking.c : Likewise.
24760         * varasm.c : Likewise.
24761         * varpool.c : Likewise.
24762         * vec.c: Likewise.
24763         * vmsdbgout.c : Likewise.
24764         * vtable-verify.c : Likewise.
24765         * vtable-verify.h : Likewise.
24766         * web.c : Likewise.
24767         * wide-int.cc : Likewise.
24768         * xcoffout.c : Likewise.
24769         * config/aarch64/aarch64-builtins.c : Likewise.
24770         * config/aarch64/aarch64.c : Likewise.
24771         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
24772         * config/alpha/alpha.c : Likewise.
24773         * config/arc/arc.c : Likewise.
24774         * config/arm/aarch-common.c : Likewise.
24775         * config/arm/arm-builtins.c : Likewise.
24776         * config/arm/arm-c.c : Likewise.
24777         * config/arm/arm.c : Likewise.
24778         * config/avr/avr-c.c : Likewise.
24779         * config/avr/avr-log.c : Likewise.
24780         * config/avr/avr.c : Likewise.
24781         * config/bfin/bfin.c : Likewise.
24782         * config/c6x/c6x.c : Likewise.
24783         * config/cr16/cr16.c : Likewise.
24784         * config/cris/cris.c : Likewise.
24785         * config/darwin-c.c : Likewise.
24786         * config/darwin.c : Likewise.
24787         * config/default-c.c : Likewise.
24788         * config/epiphany/epiphany.c : Likewise.
24789         * config/epiphany/mode-switch-use.c : Likewise.
24790         * config/epiphany/resolve-sw-modes.c : Likewise.
24791         * config/fr30/fr30.c : Likewise.
24792         * config/frv/frv.c : Likewise.
24793         * config/ft32/ft32.c : Likewise.
24794         * config/glibc-c.c : Likewise.
24795         * config/h8300/h8300.c : Likewise.
24796         * config/i386/i386-c.c : Likewise.
24797         * config/i386/i386.c : Likewise.
24798         * config/i386/msformat-c.c : Likewise.
24799         * config/i386/winnt-cxx.c : Likewise.
24800         * config/i386/winnt-stubs.c : Likewise.
24801         * config/i386/winnt.c : Likewise.
24802         * config/ia64/ia64-c.c : Likewise.
24803         * config/ia64/ia64.c : Likewise.
24804         * config/iq2000/iq2000.c : Likewise.
24805         * config/lm32/lm32.c : Likewise.
24806         * config/m32c/m32c-pragma.c : Likewise.
24807         * config/m32c/m32c.c : Likewise.
24808         * config/m32r/m32r.c : Likewise.
24809         * config/m68k/m68k.c : Likewise.
24810         * config/mcore/mcore.c : Likewise.
24811         * config/mep/mep-pragma.c : Likewise.
24812         * config/mep/mep.c : Likewise.
24813         * config/microblaze/microblaze-c.c : Likewise.
24814         * config/microblaze/microblaze.c : Likewise.
24815         * config/mips/mips.c : Likewise.
24816         * config/mmix/mmix.c : Likewise.
24817         * config/mn10300/mn10300.c : Likewise.
24818         * config/moxie/moxie.c : Likewise.
24819         * config/msp430/msp430-c.c : Likewise.
24820         * config/msp430/msp430.c : Likewise.
24821         * config/nds32/nds32-cost.c : Likewise.
24822         * config/nds32/nds32-fp-as-gp.c : Likewise.
24823         * config/nds32/nds32-intrinsic.c : Likewise.
24824         * config/nds32/nds32-isr.c : Likewise.
24825         * config/nds32/nds32-md-auxiliary.c : Likewise.
24826         * config/nds32/nds32-memory-manipulation.c : Likewise.
24827         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
24828         * config/nds32/nds32-predicates.c : Likewise.
24829         * config/nds32/nds32.c : Likewise.
24830         * config/nios2/nios2.c : Likewise.
24831         * config/nvptx/nvptx.c : Likewise.
24832         * config/pa/pa.c : Likewise.
24833         * config/pdp11/pdp11.c : Likewise.
24834         * config/rl78/rl78-c.c : Likewise.
24835         * config/rl78/rl78.c : Likewise.
24836         * config/rs6000/rs6000-c.c : Likewise.
24837         * config/rs6000/rs6000.c : Likewise.
24838         * config/rx/rx.c : Likewise.
24839         * config/s390/s390-c.c : Likewise.
24840         * config/s390/s390.c : Likewise.
24841         * config/sh/sh-c.c : Likewise.
24842         * config/sh/sh-mem.cc : Likewise.
24843         * config/sh/sh.c : Likewise.
24844         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
24845         * config/sh/sh_treg_combine.cc : Likewise.
24846         * config/sol2-c.c : Likewise.
24847         * config/sol2-cxx.c : Likewise.
24848         * config/sol2-stubs.c : Likewise.
24849         * config/sol2.c : Likewise.
24850         * config/sparc/sparc-c.c : Likewise.
24851         * config/sparc/sparc.c : Likewise.
24852         * config/spu/spu-c.c : Likewise.
24853         * config/spu/spu.c : Likewise.
24854         * config/stormy16/stormy16.c : Likewise.
24855         * config/tilegx/mul-tables.c : Likewise.
24856         * config/tilegx/tilegx-c.c : Likewise.
24857         * config/tilegx/tilegx.c : Likewise.
24858         * config/tilepro/mul-tables.c : Likewise.
24859         * config/tilepro/tilepro-c.c : Likewise.
24860         * config/tilepro/tilepro.c : Likewise.
24861         * config/v850/v850-c.c : Likewise.
24862         * config/v850/v850.c : Likewise.
24863         * config/vax/vax.c : Likewise.
24864         * config/visium/visium.c : Likewise.
24865         * config/vms/vms-c.c : Likewise.
24866         * config/vms/vms.c : Likewise.
24867         * config/vxworks.c : Likewise.
24868         * config/winnt-c.c : Likewise.
24869         * config/xtensa/xtensa.c : Likewise.
24870
24871 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
24872
24873         PR lto/65378
24874         * ipa-utils.h (warn_types_mismatch): Update prototype.
24875         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
24876         parameters.
24877         (type_mismatch_p): New function.
24878         (warn_types_mismatch): Reorg to work better on non-C++ types.
24879         (odr_types_equivalent_p): Add loc1/loc2 parameters.
24880         (add_type_duplicate): Update.
24881
24882 2015-06-08  Tom de Vries  <tom@codesourcery.com>
24883
24884         PR rtl-optimization/66444
24885         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
24886         call_used_regs.
24887
24888 2015-06-08  Richard Biener  <rguenther@suse.de>
24889
24890         PR tree-optimization/66422
24891         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
24892         block after inserted gcc_unreachable.
24893
24894 2015-06-08  Nick Clifton  <nickc@redhat.com>
24895
24896         * config/rx/rx.c (rx_function_value): Do not promote vector types.
24897         (rx_promote_function_mode): Likewise.
24898         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
24899
24900 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
24901
24902         * genattrtab.c (insn_alternatives): Change type from int *
24903         to uint64_t *.
24904         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
24905         (get_attr_value): Change type of num_alt to uint64_t.
24906         (compute_alternative_mask): Change return type from
24907         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
24908         (make_alternative_compare, mk_attr_alt): Change argument type
24909         from int to uint64_t.
24910         (simplify_test_exp): Change type of i from int to uint64_t.
24911         Shift ((uint64_t) 1) instead of 1 up.
24912         (main): Adjust oballocvec first argument from int to uint64_t.
24913         Shift ((uint64_t) 1) instead of 1 up.
24914
24915 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
24916
24917         PR other/65366
24918         * gdbhooks.py: Import sys.
24919         (intptr): New function.  Replace int(...) by intptr(...).
24920
24921 2015-06-08  Richard Biener  <rguenther@suse.de>
24922
24923         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
24924         adjustment for gaps at the end of a SLP load group properly.
24925         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
24926         all permutations we can generate.
24927         (vect_transform_slp_perm_load): Use the correct group-size.
24928
24929 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
24930
24931         * genmatch.c (expr::gen_transform): For conditions, guess the type
24932         from the second operand.
24933
24934 2015-06-08  Tom de Vries  <tom@codesourcery.com>
24935
24936         PR tree-optimization/66442
24937         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
24938         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
24939         if the loop latch is not a singleton.  Use
24940         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
24941
24942 2015-06-08  Marek Polacek  <polacek@redhat.com>
24943
24944         PR sanitizer/66452
24945         * toplev.c (check_global_declaration): Don't warn about artificial
24946         decls.
24947
24948 2015-06-08  Tom de Vries  <tom@codesourcery.com>
24949
24950         PR tree-optimization/66436
24951         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
24952         dump file.
24953         * gimplify.c: Add tree-dump.h include.
24954         (gimplify_function_tree): Dump function to gimple dump file.
24955         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
24956         dump file.
24957
24958 2015-06-08  Tom de Vries  <tom@codesourcery.com>
24959
24960         PR tree-optimization/66435
24961         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
24962         function.
24963
24964 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
24965
24966         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
24967         of ptr_type_node to not be ptr_to_node.
24968         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
24969         TREE_TYPE of pointers.
24970         * gimple-expr.c (useless_type_conversion): Reorder the check for
24971         function pointers and TYPE_CANONICAL.
24972
24973 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
24974
24975         PR bootstrap/66319
24976         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
24977         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
24978         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
24979         later.
24980         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
24981         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
24982         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
24983         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
24984         and non iso if unix2003.
24985
24986 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
24987
24988         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
24989
24990 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
24991
24992         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
24993         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
24994         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
24995         except.c, final.c, function.c, gcse-common.c, genemit.c,
24996         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
24997         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
24998         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
24999         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
25000         more derived ones.
25001
25002 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
25003
25004         * combine.c (combine_split_insns): Remove cast.
25005         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
25006         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
25007         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
25008         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
25009         * genemit.c (gen_split): Change return type of generated functions to
25010         rtx_insn.
25011         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
25012         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
25013         gen_peephole2_* functions.
25014         (print_subroutine, main): Likewise.
25015         * recog.c (peephole2_optimize): Remove cast.
25016         (peep2_next_insn): Promote return type to rtx_insn.
25017         * recog.h (peep2_next_insn): Fix prototype.
25018         * rtl.h (try_split, split_insns): Likewise.
25019
25020 2015-06-06  DJ Delorie  <dj@redhat.com>
25021
25022         * config/msp430/msp430.c (msp430_asm_integer): Support addition
25023         and subtraction too.
25024
25025 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
25026
25027         PR target/66410
25028         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
25029         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
25030         instead of Snd.  Disparage Sid/z alternative with '^'.
25031
25032 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
25033
25034         * dwarf2out.c: Remove deferred_locations*.
25035         (dwarf2_debug_hooks): Add early_finish hook.
25036         Remove global_decl hook.
25037         Add early_global_decl and late_global_decl hook.
25038         New global early_dwarf.
25039         New structure set_early_dwarf.
25040         (output_die): Indicate whether a DIE was generated early
25041         when generating assembly with -dA.
25042         (struct limbo_die_struct): Document created_for field.
25043         Remove file_table_last_lookup.
25044         (remove_AT): Return TRUE if successful.
25045         (remove_child_TAG): Clear die_parent.
25046         (reparent_child): New function abstracted from...
25047         (splice_child_die): ...here.
25048         (new_die): ICE if a DIE ends up in limbo too late.
25049         (check_die): New.
25050         (defer_location): Remove.
25051         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
25052         (fill_variable_array_bounds): New.
25053         (decl_start_label): Call fill_variable_array_bounds.
25054         (gen_formal_parameter_die): Rewrite to reuse previously generated
25055         DIEs.
25056         (gen_subprogram_die): Same.
25057         (gen_variable_die): Same.
25058         (gen_const_die): Same.
25059         (gen_label_die): Same.
25060         (gen_lexical_block_die): Same.
25061         (decl_will_get_specification_p): New.
25062         (local_function_static): New.
25063         (gen_struct_or_union_type_die): Fill in variable-length fields.
25064         (gen_typedef_die): Fill in variable-length typedefs.
25065         (gen_tagged_type_die): Gracefully return on error_mark_node.
25066         Handle re-entrancy.
25067         (gen_type_die_with_usage): Handle variable-length types.
25068         Remove duplicate code for ARRAY_TYPE case.
25069         (process_scope_var): Only process imported modules during early
25070         dwarf.
25071         (dwarf2out_early_global_decl): New.
25072         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
25073         (dwarf2out_type_decl): Set early_dwarf while calling
25074         dwarf2out_decl.
25075         (dwarf2out_decl): Verify that we did not recreate a previously
25076         generated DIE.
25077         Do not return on DECL_EXTERNALs in VAR_DECLs.
25078         Abstract some code to local_function_static.
25079         (lookup_filename): Remove use of file_table_last_lookup.
25080         Gracefully exit on missing file_name.
25081         (dwarf2out_finish): Verify limbo list.
25082         Remove deferred_locations_list use.
25083         Move deferred_asm_name and limbo flushing to...
25084         (dwarf2out_early_finish): ...here.  New.
25085         (dwarf2out_c_finalize): Remove set of deferred_location_list,
25086         deferred_asm_name, and file_table_last_lookup.
25087         * cgraph.h (referred_to_p): Add default argument.
25088         * cgraphunit.c (referred_to_p): Add and handle include_self
25089         argument.
25090         (analyze_functions): Add first_time argument.
25091         Call check_global_declaration for all symbols.
25092         Call late_global_decl for nodes for moribund nodes.
25093         (finalize_compilation_unit): Add new argument to
25094         analyze_functions.
25095         Call early_global_decl for functions.
25096         Call early_finish debug hook.
25097         * dbxout.c (dbxout_early_global_decl): New.
25098         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
25099         (dbx_debug_hooks): Add new hooks.
25100         (xcoff_debug_hooks): Same.
25101         * debug.c (do_nothing_debug_hooks): Add early_finish field.
25102         Add early and late debug hooks.
25103         Remove global_decl hook.
25104         * debug.h (struct gcc_debug_hooks): Add early_finish,
25105         early_global_decl, and late_global_decl fields.
25106         Remove global_decl field.
25107         Document gcc_debug_hooks.
25108         * gengtype.c (output_typename): Remove.
25109         * godump.c (go_early_global_decl): New.
25110         (go_late_global_decl): New.
25111         (go_global_decl): Remove.
25112         (dump_go_spec_init): Remove global_decl.  Add
25113         {early,late}_global_decl.
25114         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
25115         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
25116         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
25117         (write_global_declarations): Remove.
25118         (global_decl_processing): New.
25119         * langhooks.h (struct lang_hooks_for_decls): Remove
25120         final_write_globals field.
25121         Add post_compilation_parsing_cleanups field.
25122         * passes.c (rest_of_decl_compilation): Call early_global_decl.
25123         * sdbout.c: Add early and late_global_decl hooks.  Remove
25124         sdbout_global_decl hook.
25125         Add early_finish field for sdb_debug_hooks.
25126         (sdbout_global_decl): Remove.
25127         (sdbout_early_global_decl): New.
25128         (sdbout_late_global_decl): New.
25129         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
25130         * toplev.c (check_global_declaration): Rename from
25131         check_global_declaration_1.
25132         Adapt to use symtab infrastructure.
25133         (check_global_declarations): Remove.
25134         (emit_debug_global_declarations): Remove.
25135         (compile_file): Remove call to final_write_globals langhook.
25136         Run the actual compilation process.
25137         Perform any post compilation parser cleanups.
25138         Generate late debug info.
25139         * toplev.h (check_global_declaration): New.
25140         (check_global_declaration_1): Remove.
25141         (check_global_declarations): Remove.
25142         (write_global_declarations): Remove.
25143         (emit_debug_global_declarations): Remove.
25144         (global_decl_processing): New.
25145         * tree-core.h (struct tree_block): Add DIE field.
25146         * tree.h (BLOCK_DIE): New.
25147         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
25148         throughout.
25149         (vmsdbgout_early_global_decl): New.
25150         (vmsdbgout_late_global_decl): New.
25151         Add early_finish debug hook field to vmsdbg_debug_hooks.
25152         Remove vmsdbgout_decl to vmsdbgout_function_decl.
25153         Add early and late_global_decl debug hooks.
25154
25155 2015-06-05  Julian Brown  <julian@codesourcery.com>
25156             Sandra Loosemore  <sandra@codesourcery.com>
25157
25158         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
25159         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
25160         to print-sysroot-suffix.sh script.
25161
25162 2015-06-05  Tom de Vries  <tom@codesourcery.com>
25163
25164         merge from gomp4 branch:
25165         2015-05-28  Tom de Vries  <tom@codesourcery.com>
25166
25167         PR tree-optimization/65443
25168         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
25169         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
25170         (try_transform_to_exit_first_loop_alt): New function.
25171         (transform_to_exit_first_loop): Use
25172         try_transform_to_exit_first_loop_alt.
25173
25174 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
25175
25176         * builtins.c (expand_builtin_atomic_compare_exchange): Call
25177         emit_cmp_and_jump_insns with the mode of target.
25178
25179 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
25180
25181         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
25182
25183 2015-06-04  DJ Delorie  <dj@redhat.com>
25184
25185         * config/msp430/msp430.md (movsi_s): New.  Special case for
25186         storing a 20-bit symbol into a 32-bit register.
25187         * config/msp430/msp430.c (msp430_subreg): Add support for it.
25188         * config/msp430/predicates.md (msp430_symbol_operand): New.
25189
25190 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
25191
25192         * c-family/c-common.c (noplt): New attribute.
25193         (handle_noplt_attribute): New handler.
25194         * calls.c (prepare_call_address): Check for noplt
25195         attribute.
25196         * config/i386/i386.c (ix86_expand_call): Check
25197         for noplt attribute.
25198         (ix86_nopic_noplt_attribute_p): New function.
25199         (ix86_output_call_insn): Output indirect call for non-pic
25200         no plt calls.
25201         * doc/extend.texi (noplt): Document new attribute.
25202         * doc/invoke.texi: Document new attribute.
25203
25204 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
25205
25206         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
25207         real.h, and fixed-value.h when included in host source files.
25208         * double-int.h: Remove redundant #includes listed above.
25209         * fixed-value.h: Likewise.
25210         * real.h: Likewise.
25211         * wide-int.h: Likewise.
25212         * inchash.h: Likewise.
25213         * rtl.h: Add some include files When included from a generator file.
25214         * target.h: Remove wide-int.h and insn-modes.h from the include list.
25215         * internal-fn.h: Don't include coretypes.h.
25216         * alias.c: Adjust includes for restructured coretypes.h.
25217         * asan.c: Likewise.
25218         * attribs.c: Likewise.
25219         * auto-inc-dec.c: Likewise.
25220         * auto-profile.c: Likewise.
25221         * bb-reorder.c: Likewise.
25222         * bt-load.c: Likewise.
25223         * builtins.c: Likewise.
25224         * caller-save.c: Likewise.
25225         * calls.c: Likewise.
25226         * ccmp.c: Likewise.
25227         * cfg.c: Likewise.
25228         * cfganal.c: Likewise.
25229         * cfgbuild.c: Likewise.
25230         * cfgcleanup.c: Likewise.
25231         * cfgexpand.c: Likewise.
25232         * cfghooks.c: Likewise.
25233         * cfgloop.c: Likewise.
25234         * cfgloop.h: Likewise.
25235         * cfgloopanal.c: Likewise.
25236         * cfgloopmanip.c: Likewise.
25237         * cfgrtl.c: Likewise.
25238         * cgraph.c: Likewise.
25239         * cgraphbuild.c: Likewise.
25240         * cgraphclones.c: Likewise.
25241         * cgraphunit.c: Likewise.
25242         * cilk-common.c: Likewise.
25243         * combine-stack-adj.c: Likewise.
25244         * combine.c: Likewise.
25245         * compare-elim.c: Likewise.
25246         * convert.c: Likewise.
25247         * coverage.c: Likewise.
25248         * cppbuiltin.c: Likewise.
25249         * cprop.c: Likewise.
25250         * cse.c: Likewise.
25251         * cselib.c: Likewise.
25252         * data-streamer-in.c: Likewise.
25253         * data-streamer-out.c: Likewise.
25254         * data-streamer.c: Likewise.
25255         * dbxout.c: Likewise.
25256         * dce.c: Likewise.
25257         * ddg.c: Likewise.
25258         * debug.c: Likewise.
25259         * df-core.c: Likewise.
25260         * df-problems.c: Likewise.
25261         * df-scan.c: Likewise.
25262         * df.h: Likewise.
25263         * dfp.c: Likewise.
25264         * dojump.c: Likewise.
25265         * dominance.c: Likewise.
25266         * domwalk.c: Likewise.
25267         * double-int.c: Likewise.
25268         * dse.c: Likewise.
25269         * dumpfile.c: Likewise.
25270         * dwarf2asm.c: Likewise.
25271         * dwarf2cfi.c: Likewise.
25272         * dwarf2out.c: Likewise.
25273         * dwarf2out.h: Likewise.
25274         * emit-rtl.c: Likewise.
25275         * et-forest.c: Likewise.
25276         * except.c: Likewise.
25277         * explow.c: Likewise.
25278         * expmed.c: Likewise.
25279         * expr.c: Likewise.
25280         * final.c: Likewise.
25281         * fixed-value.c: Likewise.
25282         * fold-const.c: Likewise.
25283         * function.c: Likewise.
25284         * fwprop.c: Likewise.
25285         * gcc-plugin.h: Likewise.
25286         * gcse.c: Likewise.
25287         * generic-match-head.c: Likewise.
25288         * ggc-page.c: Likewise.
25289         * gimple-builder.c: Likewise.
25290         * gimple-expr.c: Likewise.
25291         * gimple-fold.c: Likewise.
25292         * gimple-iterator.c: Likewise.
25293         * gimple-low.c: Likewise.
25294         * gimple-match-head.c: Likewise.
25295         * gimple-pretty-print.c: Likewise.
25296         * gimple-ssa-isolate-paths.c: Likewise.
25297         * gimple-ssa-strength-reduction.c: Likewise.
25298         * gimple-streamer-in.c: Likewise.
25299         * gimple-streamer-out.c: Likewise.
25300         * gimple-streamer.h: Likewise.
25301         * gimple-walk.c: Likewise.
25302         * gimple.c: Likewise.
25303         * gimplify-me.c: Likewise.
25304         * gimplify.c: Likewise.
25305         * godump.c: Likewise.
25306         * graph.c: Likewise.
25307         * graphite-blocking.c: Likewise.
25308         * graphite-dependences.c: Likewise.
25309         * graphite-interchange.c: Likewise.
25310         * graphite-isl-ast-to-gimple.c: Likewise.
25311         * graphite-optimize-isl.c: Likewise.
25312         * graphite-poly.c: Likewise.
25313         * graphite-scop-detection.c: Likewise.
25314         * graphite-sese-to-poly.c: Likewise.
25315         * graphite.c: Likewise.
25316         * haifa-sched.c: Likewise.
25317         * hooks.h: Likewise.
25318         * hw-doloop.c: Likewise.
25319         * ifcvt.c: Likewise.
25320         * incpath.c: Likewise.
25321         * init-regs.c: Likewise.
25322         * internal-fn.c: Likewise.
25323         * ipa-chkp.c: Likewise.
25324         * ipa-comdats.c: Likewise.
25325         * ipa-cp.c: Likewise.
25326         * ipa-devirt.c: Likewise.
25327         * ipa-icf-gimple.c: Likewise.
25328         * ipa-icf.c: Likewise.
25329         * ipa-inline-analysis.c: Likewise.
25330         * ipa-inline-transform.c: Likewise.
25331         * ipa-inline.c: Likewise.
25332         * ipa-polymorphic-call.c: Likewise.
25333         * ipa-profile.c: Likewise.
25334         * ipa-prop.c: Likewise.
25335         * ipa-pure-const.c: Likewise.
25336         * ipa-ref.c: Likewise.
25337         * ipa-reference.c: Likewise.
25338         * ipa-split.c: Likewise.
25339         * ipa-utils.c: Likewise.
25340         * ipa-visibility.c: Likewise.
25341         * ipa.c: Likewise.
25342         * ira-build.c: Likewise.
25343         * ira-color.c: Likewise.
25344         * ira-conflicts.c: Likewise.
25345         * ira-costs.c: Likewise.
25346         * ira-emit.c: Likewise.
25347         * ira-lives.c: Likewise.
25348         * ira.c: Likewise.
25349         * jump.c: Likewise.
25350         * langhooks.c: Likewise.
25351         * lcm.c: Likewise.
25352         * loop-doloop.c: Likewise.
25353         * loop-init.c: Likewise.
25354         * loop-invariant.c: Likewise.
25355         * loop-iv.c: Likewise.
25356         * loop-unroll.c: Likewise.
25357         * lower-subreg.c: Likewise.
25358         * lra-assigns.c: Likewise.
25359         * lra-coalesce.c: Likewise.
25360         * lra-constraints.c: Likewise.
25361         * lra-eliminations.c: Likewise.
25362         * lra-lives.c: Likewise.
25363         * lra-remat.c: Likewise.
25364         * lra-spills.c: Likewise.
25365         * lra.c: Likewise.
25366         * lto-cgraph.c: Likewise.
25367         * lto-compress.c: Likewise.
25368         * lto-opts.c: Likewise.
25369         * lto-section-in.c: Likewise.
25370         * lto-section-out.c: Likewise.
25371         * lto-streamer-in.c: Likewise.
25372         * lto-streamer-out.c: Likewise.
25373         * lto-streamer.c: Likewise.
25374         * mcf.c: Likewise.
25375         * mode-switching.c: Likewise.
25376         * modulo-sched.c: Likewise.
25377         * omega.c: Likewise.
25378         * omp-low.c: Likewise.
25379         * optabs.c: Likewise.
25380         * opts-global.c: Likewise.
25381         * passes.c: Likewise.
25382         * plugin.c: Likewise.
25383         * postreload-gcse.c: Likewise.
25384         * postreload.c: Likewise.
25385         * predict.c: Likewise.
25386         * print-rtl.c: Likewise.
25387         * print-tree.c: Likewise.
25388         * profile.c: Likewise.
25389         * real.c: Likewise.
25390         * realmpfr.c: Likewise.
25391         * realmpfr.h: Likewise.
25392         * recog.c: Likewise.
25393         * ree.c: Likewise.
25394         * reg-stack.c: Likewise.
25395         * regcprop.c: Likewise.
25396         * reginfo.c: Likewise.
25397         * regrename.c: Likewise.
25398         * regs.h: Likewise.
25399         * regstat.c: Likewise.
25400         * reload.c: Likewise.
25401         * reload1.c: Likewise.
25402         * reorg.c: Likewise.
25403         * resource.c: Likewise.
25404         * rtl-chkp.c: Likewise.
25405         * rtlanal.c: Likewise.
25406         * rtlhooks.c: Likewise.
25407         * sanopt.c: Likewise.
25408         * sched-deps.c: Likewise.
25409         * sched-ebb.c: Likewise.
25410         * sched-rgn.c: Likewise.
25411         * sched-vis.c: Likewise.
25412         * sdbout.c: Likewise.
25413         * sel-sched-dump.c: Likewise.
25414         * sel-sched-ir.c: Likewise.
25415         * sel-sched.c: Likewise.
25416         * sese.c: Likewise.
25417         * shrink-wrap.c: Likewise.
25418         * shrink-wrap.h: Likewise.
25419         * simplify-rtx.c: Likewise.
25420         * stack-ptr-mod.c: Likewise.
25421         * statistics.c: Likewise.
25422         * stmt.c: Likewise.
25423         * stor-layout.c: Likewise.
25424         * store-motion.c: Likewise.
25425         * stringpool.c: Likewise.
25426         * symtab.c: Likewise.
25427         * target-globals.c: Likewise.
25428         * targhooks.c: Likewise.
25429         * toplev.c: Likewise.
25430         * tracer.c: Likewise.
25431         * trans-mem.c: Likewise.
25432         * tree-affine.c: Likewise.
25433         * tree-affine.h: Likewise.
25434         * tree-browser.c: Likewise.
25435         * tree-call-cdce.c: Likewise.
25436         * tree-cfg.c: Likewise.
25437         * tree-cfgcleanup.c: Likewise.
25438         * tree-chkp-opt.c: Likewise.
25439         * tree-chkp.c: Likewise.
25440         * tree-chrec.c: Likewise.
25441         * tree-complex.c: Likewise.
25442         * tree-data-ref.c: Likewise.
25443         * tree-dfa.c: Likewise.
25444         * tree-diagnostic.c: Likewise.
25445         * tree-dump.c: Likewise.
25446         * tree-eh.c: Likewise.
25447         * tree-emutls.c: Likewise.
25448         * tree-if-conv.c: Likewise.
25449         * tree-inline.c: Likewise.
25450         * tree-into-ssa.c: Likewise.
25451         * tree-iterator.c: Likewise.
25452         * tree-loop-distribution.c: Likewise.
25453         * tree-nested.c: Likewise.
25454         * tree-nrv.c: Likewise.
25455         * tree-object-size.c: Likewise.
25456         * tree-outof-ssa.c: Likewise.
25457         * tree-parloops.c: Likewise.
25458         * tree-phinodes.c: Likewise.
25459         * tree-predcom.c: Likewise.
25460         * tree-pretty-print.c: Likewise.
25461         * tree-pretty-print.h: Likewise.
25462         * tree-profile.c: Likewise.
25463         * tree-scalar-evolution.c: Likewise.
25464         * tree-sra.c: Likewise.
25465         * tree-ssa-address.c: Likewise.
25466         * tree-ssa-alias.c: Likewise.
25467         * tree-ssa-ccp.c: Likewise.
25468         * tree-ssa-coalesce.c: Likewise.
25469         * tree-ssa-copy.c: Likewise.
25470         * tree-ssa-copyrename.c: Likewise.
25471         * tree-ssa-dce.c: Likewise.
25472         * tree-ssa-dom.c: Likewise.
25473         * tree-ssa-dse.c: Likewise.
25474         * tree-ssa-forwprop.c: Likewise.
25475         * tree-ssa-ifcombine.c: Likewise.
25476         * tree-ssa-live.c: Likewise.
25477         * tree-ssa-loop-ch.c: Likewise.
25478         * tree-ssa-loop-im.c: Likewise.
25479         * tree-ssa-loop-ivcanon.c: Likewise.
25480         * tree-ssa-loop-ivopts.c: Likewise.
25481         * tree-ssa-loop-manip.c: Likewise.
25482         * tree-ssa-loop-niter.c: Likewise.
25483         * tree-ssa-loop-prefetch.c: Likewise.
25484         * tree-ssa-loop-unswitch.c: Likewise.
25485         * tree-ssa-loop.c: Likewise.
25486         * tree-ssa-loop.h: Likewise.
25487         * tree-ssa-math-opts.c: Likewise.
25488         * tree-ssa-operands.c: Likewise.
25489         * tree-ssa-phiopt.c: Likewise.
25490         * tree-ssa-phiprop.c: Likewise.
25491         * tree-ssa-pre.c: Likewise.
25492         * tree-ssa-propagate.c: Likewise.
25493         * tree-ssa-reassoc.c: Likewise.
25494         * tree-ssa-sccvn.c: Likewise.
25495         * tree-ssa-scopedtables.c: Likewise.
25496         * tree-ssa-sink.c: Likewise.
25497         * tree-ssa-strlen.c: Likewise.
25498         * tree-ssa-structalias.c: Likewise.
25499         * tree-ssa-tail-merge.c: Likewise.
25500         * tree-ssa-ter.c: Likewise.
25501         * tree-ssa-threadedge.c: Likewise.
25502         * tree-ssa-threadupdate.c: Likewise.
25503         * tree-ssa-uncprop.c: Likewise.
25504         * tree-ssa-uninit.c: Likewise.
25505         * tree-ssa.c: Likewise.
25506         * tree-ssanames.c: Likewise.
25507         * tree-stdarg.c: Likewise.
25508         * tree-streamer-in.c: Likewise.
25509         * tree-streamer-out.c: Likewise.
25510         * tree-streamer.c: Likewise.
25511         * tree-switch-conversion.c: Likewise.
25512         * tree-tailcall.c: Likewise.
25513         * tree-vect-data-refs.c: Likewise.
25514         * tree-vect-generic.c: Likewise.
25515         * tree-vect-loop-manip.c: Likewise.
25516         * tree-vect-loop.c: Likewise.
25517         * tree-vect-patterns.c: Likewise.
25518         * tree-vect-slp.c: Likewise.
25519         * tree-vect-stmts.c: Likewise.
25520         * tree-vectorizer.c: Likewise.
25521         * tree-vrp.c: Likewise.
25522         * tree.c: Likewise.
25523         * tsan.c: Likewise.
25524         * ubsan.c: Likewise.
25525         * valtrack.c: Likewise.
25526         * value-prof.c: Likewise.
25527         * var-tracking.c: Likewise.
25528         * varasm.c: Likewise.
25529         * varpool.c: Likewise.
25530         * vmsdbgout.c: Likewise.
25531         * vtable-verify.c: Likewise.
25532         * web.c: Likewise.
25533         * wide-int-print.cc: Likewise.
25534         * wide-int-print.h: Likewise.
25535         * wide-int.cc: Likewise.
25536         * xcoffout.c: Likewise.
25537         * config/aarch64/aarch64-builtins.c: Likewise.
25538         * config/aarch64/aarch64.c: Likewise.
25539         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
25540         * config/alpha/alpha.c: Likewise.
25541         * config/arc/arc.c: Likewise.
25542         * config/arm/aarch-common.c: Likewise.
25543         * config/arm/arm-builtins.c: Likewise.
25544         * config/arm/arm-c.c: Likewise.
25545         * config/arm/arm.c: Likewise.
25546         * config/avr/avr-c.c: Likewise.
25547         * config/avr/avr-log.c: Likewise.
25548         * config/avr/avr.c: Likewise.
25549         * config/bfin/bfin.c: Likewise.
25550         * config/c6x/c6x.c: Likewise.
25551         * config/cr16/cr16.c: Likewise.
25552         * config/cris/cris.c: Likewise.
25553         * config/darwin-c.c: Likewise.
25554         * config/darwin.c: Likewise.
25555         * config/default-c.c: Likewise.
25556         * config/epiphany/epiphany.c: Likewise.
25557         * config/epiphany/mode-switch-use.c: Likewise.
25558         * config/epiphany/resolve-sw-modes.c: Likewise.
25559         * config/fr30/fr30.c: Likewise.
25560         * config/frv/frv.c: Likewise.
25561         * config/ft32/ft32.c: Likewise.
25562         * config/glibc-c.c: Likewise.
25563         * config/h8300/h8300.c: Likewise.
25564         * config/i386/i386-c.c: Likewise.
25565         * config/i386/i386.c: Likewise.
25566         * config/i386/msformat-c.c: Likewise.
25567         * config/i386/winnt-cxx.c: Likewise.
25568         * config/i386/winnt-stubs.c: Likewise.
25569         * config/i386/winnt.c: Likewise.
25570         * config/ia64/ia64-c.c: Likewise.
25571         * config/ia64/ia64.c: Likewise.
25572         * config/iq2000/iq2000.c: Likewise.
25573         * config/lm32/lm32.c: Likewise.
25574         * config/m32c/m32c-pragma.c: Likewise.
25575         * config/m32c/m32c.c: Likewise.
25576         * config/m32r/m32r.c: Likewise.
25577         * config/m68k/m68k.c: Likewise.
25578         * config/mcore/mcore.c: Likewise.
25579         * config/mep/mep-pragma.c: Likewise.
25580         * config/mep/mep.c: Likewise.
25581         * config/microblaze/microblaze-c.c: Likewise.
25582         * config/microblaze/microblaze.c: Likewise.
25583         * config/mips/mips.c: Likewise.
25584         * config/mmix/mmix.c: Likewise.
25585         * config/mn10300/mn10300.c: Likewise.
25586         * config/moxie/moxie.c: Likewise.
25587         * config/msp430/msp430-c.c: Likewise.
25588         * config/msp430/msp430.c: Likewise.
25589         * config/nds32/nds32-cost.c: Likewise.
25590         * config/nds32/nds32-fp-as-gp.c: Likewise.
25591         * config/nds32/nds32-intrinsic.c: Likewise.
25592         * config/nds32/nds32-isr.c: Likewise.
25593         * config/nds32/nds32-md-auxiliary.c: Likewise.
25594         * config/nds32/nds32-memory-manipulation.c: Likewise.
25595         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
25596         * config/nds32/nds32-predicates.c: Likewise.
25597         * config/nds32/nds32.c: Likewise.
25598         * config/nios2/nios2.c: Likewise.
25599         * config/nvptx/nvptx.c: Likewise.
25600         * config/pa/pa.c: Likewise.
25601         * config/pdp11/pdp11.c: Likewise.
25602         * config/rl78/rl78-c.c: Likewise.
25603         * config/rl78/rl78.c: Likewise.
25604         * config/rs6000/rs6000-c.c: Likewise.
25605         * config/rs6000/rs6000.c: Likewise.
25606         * config/rx/rx.c: Likewise.
25607         * config/s390/s390-c.c: Likewise.
25608         * config/s390/s390.c: Likewise.
25609         * config/sh/sh-c.c: Likewise.
25610         * config/sh/sh-mem.cc: Likewise.
25611         * config/sh/sh.c: Likewise.
25612         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
25613         * config/sh/sh_treg_combine.cc: Likewise.
25614         * config/sol2-c.c: Likewise.
25615         * config/sol2-cxx.c: Likewise.
25616         * config/sol2-stubs.c: Likewise.
25617         * config/sol2.c: Likewise.
25618         * config/sparc/sparc-c.c: Likewise.
25619         * config/sparc/sparc.c: Likewise.
25620         * config/spu/spu-c.c: Likewise.
25621         * config/spu/spu.c: Likewise.
25622         * config/stormy16/stormy16.c: Likewise.
25623         * config/tilegx/mul-tables.c: Likewise.
25624         * config/tilegx/tilegx-c.c: Likewise.
25625         * config/tilegx/tilegx.c: Likewise.
25626         * config/tilepro/mul-tables.c: Likewise.
25627         * config/tilepro/tilepro-c.c: Likewise.
25628         * config/tilepro/tilepro.c: Likewise.
25629         * config/v850/v850-c.c: Likewise.
25630         * config/v850/v850.c: Likewise.
25631         * config/vax/vax.c: Likewise.
25632         * config/visium/visium.c: Likewise.
25633         * config/vms/vms-c.c: Likewise.
25634         * config/vms/vms.c: Likewise.
25635         * config/vxworks.c: Likewise.
25636         * config/winnt-c.c: Likewise.
25637         * config/xtensa/xtensa.c: Likewise.
25638         * common/config/bfin/bfin-common.c: Likewise.
25639
25640 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
25641
25642         * tree.h (tree_code_for_canonical_type_merging): New function.
25643         * tree.c (gimple_canonical_types_compatible_p): Use
25644         tree_code_for_canonical_type_merging..
25645
25646 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25647
25648         PR c++/66192
25649         PR target/66200
25650         * doc/tm.texi: Regenerate.
25651         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
25652         * target.def (TARGET_RELAXED_ORDERING): Likewise.
25653         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
25654         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
25655         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
25656         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
25657         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
25658         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
25659         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
25660
25661 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25662
25663         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
25664         register fma steering pass.
25665         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
25666         AARCH64_TUNE_FMA_STEERING.
25667
25668 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
25669
25670         * tree.c (verify_type_variant): Verify that type and variant is
25671         compatible.
25672         (gimple_canonical_types_compatible_p): Look for main variants.
25673
25674 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
25675
25676         * config.gcc (powerpc*-*-*): Add support for a new configure
25677         option --with-advance-toolchain=<xxx> which overrides using the
25678         default header files, libraries and dynamic linker.
25679
25680         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
25681         specs to support the configure --with-advance-toolchain=<xxx>
25682         option.
25683         (INCLUDE_EXTRA_SPEC): Likewise.
25684         (LINK_OS_EXTRA_SPEC32): Likewise.
25685         (LINK_OK_EXTRA_SPEC64): Likewise.
25686         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
25687         (DYNAMIC_LINKER_PREFIX): Likewise.
25688         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
25689         toolchain support.
25690         (GLIBC_DYNAMIC_LINKER32): Likewise.
25691         (GLIBC_DYNAMIC_LINKER64): Likewise.
25692         (LINK_OS_LINUX_SPEC32): Likewise.
25693         (LINK_OS_LINUX_SPEC64): Likewise.
25694
25695         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
25696         configuration option.
25697
25698 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
25699
25700         PR target/66275
25701         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
25702         to determine current function ABI.
25703         (ix86_function_value_regno_p): Ditto.
25704
25705 2015-06-03  Martin Liska  <mliska@suse.cz>
25706
25707         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
25708         * bitmap.h (struct bitmap_usage): Likewise.
25709         * ggc-common.c (struct ggc_usage): Likewise.
25710         * mem-stats.h (struct mem_location): Likewise.
25711         (struct mem_usage): Likewise.
25712         * vec.c (struct vec_usage): Likewise.
25713
25714 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
25715
25716         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
25717         -Bsymbolic.
25718
25719 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
25720
25721         * doc/plugins.texi (enum plugin_event): New event.
25722         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
25723         and PLUGIN_FINISH_FUNCTION.
25724         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
25725         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
25726
25727 2015-06-03  Richard Biener  <rguenther@suse.de>
25728
25729         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
25730         compute GROUP_GAP for the first element.
25731         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
25732         on in-group gaps.
25733
25734 2015-06-03  Nick Clifton  <nickc@redhat.com>
25735
25736         * config/rl78/rl78-real.md: Add peepholes to avoid a register
25737         copy when calling a function.
25738         * config/rl78/rl78.c (need_to_save): Do not push the frame
25739         pointer in an interrupt handler prologue if it is never used.
25740
25741 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25742
25743         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
25744
25745 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
25746
25747         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
25748         reference when cloning alias node.
25749
25750 2015-06-03  Martin Liska  <mliska@suse.cz>
25751
25752         * alloc-pool.h (struct pool_usage): Correct space padding.
25753         * ggc-page.c (ggc_print_statistics): Align columns in a report.
25754         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
25755         * tree.c (dump_tree_statistics): Align columns in a report.
25756
25757 2015-06-03  Martin Liska  <mliska@suse.cz>
25758
25759         * alloc-pool.c (allocate_pool_descriptor): Remove.
25760         (struct pool_output_info): Likewise.
25761         (print_alloc_pool_statistics): Likewise.
25762         (dump_alloc_pool_statistics): Likewise.
25763         * alloc-pool.h (struct pool_usage): New struct.
25764         (pool_allocator::initialize): Change usage of memory statistics
25765         to a new interface.
25766         (pool_allocator::release): Likewise.
25767         (pool_allocator::allocate): Likewise.
25768         (pool_allocator::remove): Likewise.
25769         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
25770         for a pool allocator.
25771         * mem-stats.h (struct mem_location): Add new ctor.
25772         (struct mem_usage): Add counter for number of
25773         instances.
25774         (mem_alloc_description::register_descriptor): New overload of
25775         * mem-stats.h (mem_location::to_string): New function.
25776         * bitmap.h (struct bitmap_usage): Use this new function.
25777         * ggc-common.c (struct ggc_usage): Likewise.
25778         the function.
25779
25780 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
25781
25782         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
25783         of GCC_INSN_FLAGS_H block.
25784
25785 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
25786
25787         * explow.c (plus_constant): Update check after force_const_mem call
25788         to see if the value returned is not a NULL_RTX.
25789
25790 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
25791
25792         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
25793         remove instumentation thunks calling reachable functions.
25794         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
25795         * lto/lto-partition.c (privatize_symbol_name_1): New.
25796         (privatize_symbol_name): Privatize both decl and orig_decl
25797         names for instrumented functions.
25798         * cgraph.c (cgraph_node::verify_node): Add transparent
25799         alias chain check for instrumented node.
25800
25801 2015-06-03  Marek Polacek  <polacek@redhat.com>
25802
25803         PR c/64223
25804         PR c/29358
25805         * tree.c (attribute_value_equal): Handle attribute format.
25806         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
25807
25808 2015-06-03  Richard Biener  <rguenther@suse.de>
25809
25810         PR tree-optimization/63916
25811         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
25812         Forward-propagate non-invariant addresses by splicing their
25813         reference ops if the result isn't going to be used by PRE.
25814         (vn_reference_lookup_3): Remove pointless assert.
25815
25816 2015-06-03  Richard Biener  <rguenther@suse.de>
25817
25818         PR tree-optimization/66375
25819         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
25820         add to the evolution before following SSA edges.
25821
25822 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
25823
25824         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
25825         (dump_use, dump_cand, find_induction_variables): Pass new argument
25826         to dump_iv.
25827         (record_use): Preserve the ssa name information in IV.
25828
25829 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
25830
25831         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
25832         NO_MODE_TEST.
25833         (add_mode_tests): Don't add mode tests if the predicate only
25834         accepts scalar constant integers.  Otherwise, allow the mode
25835         of "op" to be VOIDmode if the predicate does accept such integers.
25836
25837 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
25838
25839         PR target/66258
25840         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
25841         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
25842         (aarch64_secondary_reload): Likewise
25843         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
25844         to !TARGET_FLOAT.
25845         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
25846         Likewise.
25847
25848 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
25849             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
25850
25851         PR target/65768
25852         * cprop.c (try_replace_reg): Check cost of constants before propagating.
25853
25854 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25855
25856         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
25857         provide access to the IBM extended double floating point mode if
25858         long double is IEEE 128-bit floating point.
25859         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
25860         point if long double is the IBM extended double type.
25861
25862         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
25863         enable adding IEEE 128-bit floating point support.
25864         (-mfloat128-software): Likewise.
25865         (-mfloat128-sw): Likewise.
25866
25867         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
25868         128-bit floating point types to occupy any register if
25869         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
25870         -mfloat128-software is enabled.
25871         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
25872         support.
25873         (rs6000_option_override_internal): Add -mfloat128-* support.
25874         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
25875
25876         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
25877         and float128 type nodes.
25878         (ieee128_float_type_node): Likewise.
25879         (ibm128_float_type_node): Likewise.
25880
25881 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
25882
25883         PR target/66136
25884         * config/aarch64/geniterators.sh: Rewrite in awk.
25885
25886 2015-06-02  Martin Liska  <mliska@suse.cz>
25887
25888         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
25889         values to avoid -Wmaybe-uninitialized errors.
25890
25891 2015-06-02  Richard Biener  <rguenther@suse.de>
25892
25893         PR debug/65549
25894         * dwarf2out.c (lookup_context_die): New function.
25895         (resolve_addr): Avoid forcing a full DIE for the
25896         target of a DW_TAG_GNU_call_site during late compilation.
25897         Instead create a stub DIE without a type if we have a
25898         context DIE present.
25899
25900 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
25901
25902         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
25903
25904 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
25905
25906         PR tree-optimization/48052
25907         * cfgloop.h (struct control_iv): New.
25908         (struct loop): New field control_ivs.
25909         * tree-ssa-loop-niter.c : Include "stor-layout.h".
25910         (number_of_iterations_lt): Set no_overflow information.
25911         (number_of_iterations_exit): Init control iv in niter struct.
25912         (record_control_iv): New.
25913         (estimate_numbers_of_iterations_loop): Call record_control_iv.
25914         (loop_exits_before_overflow): New.  Interface factored out of
25915         scev_probably_wraps_p.
25916         (scev_probably_wraps_p): Factor loop niter related code into
25917         loop_exits_before_overflow.
25918         (free_numbers_of_iterations_estimates_loop): Free control ivs.
25919         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
25920
25921 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
25922
25923         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
25924         the target doesn't belong to the current function.
25925
25926 2015-06-02  Marek Polacek  <polacek@redhat.com>
25927
25928         PR middle-end/66345
25929         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
25930         get_maxval_strlen does not produce an INTEGER_CST.
25931
25932 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
25933
25934         * config/arc/constraints.md: Use lower-case names in match_code.
25935         * config/mmix/constraints.md: Likewise.
25936
25937 2015-06-02  Richard Biener  <rguenther@suse.de>
25938
25939         PR tree-optimization/65961
25940         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
25941         check and clarify dump message.
25942         (vect_build_slp_tree): If all children are built up from scalars
25943         build up the parent from scalars instead.
25944         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
25945
25946 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
25947
25948         PR other/65366
25949         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
25950         instead of print ... .
25951
25952 2015-06-02  Alan Modra  <amodra@gmail.com>
25953
25954         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
25955         2014-08-11 change.
25956
25957 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
25958
25959         PR tree-optimization/52563
25960         PR tree-optimization/62173
25961         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
25962         (alloc_iv, set_iv): New parameter.
25963         (determine_biv_step): Delete.
25964         (find_bivs): Inline original determine_biv_step.  Pass new
25965         argument to set_iv.
25966         (idx_find_step): Use no_overflow information for conversion.
25967         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
25968         resolve_mixers handle folded_casts.
25969         (instantiate_scev_name): Change bool parameter to bool pointer.
25970         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
25971         (instantiate_array_ref, instantiate_scev_not): Ditto.
25972         (instantiate_scev_3, instantiate_scev_2): Ditto.
25973         (instantiate_scev_1, instantiate_scev_r): Ditto.
25974         (instantiate_scev_convert, ): Change parameter.  Pass argument
25975         to chrec_convert_aggressive.
25976         (instantiate_scev): Change argument.
25977         (resolve_mixers): New parameter and set it.
25978         (scev_const_prop): New argument.
25979         * tree-scalar-evolution.h (resolve_mixers): New parameter.
25980         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
25981         of chrec_conert_1.
25982         (chrec_convert): New parameter.  Move definition below.
25983         (chrec_convert_aggressive): New parameter and set it.  Call
25984         convert_affine_scev.
25985         * tree-chrec.h (chrec_convert): New parameter.
25986         (chrec_convert_aggressive): Ditto.
25987
25988 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
25989
25990         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
25991         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
25992         the LHS of a no-return call if its type has variable size.
25993         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
25994         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
25995
25996 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
25997
25998         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
25999         * config.in: Regenerate.
26000
26001 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
26002
26003         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
26004         consecutive accesses within outer-loop with force_vectorize
26005         for references with zero step in inner-loop.
26006
26007 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
26008
26009         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
26010         rather than from gcc/build directory.
26011
26012 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
26013
26014         PR target/65697
26015         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
26016         for __sync memory models, emit initial loads and final barriers as
26017         appropriate.
26018
26019 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
26020
26021         PR target/65697
26022         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
26023         (aarch64_split_atomic_op): Check for __sync memory models, emit
26024         appropriate initial loads and final barriers.
26025
26026 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
26027
26028         * Makefile.in: Fix gcov dependencies that should
26029         not point to a build folder.
26030
26031 2015-06-01  Richard Biener  <rguenther@suse.de>
26032
26033         Revert
26034         2015-05-29  Richard Biener  <rguenther@suse.de>
26035
26036         PR tree-optimization/66314
26037         * tree-ssa-threadupdate.c (create_block_for_threading): Add
26038         parameter that says which loop the new block belongs to.
26039         (ssa_create_duplicates): Blocks duplicated for the threaded
26040         path belong to the loop of the thread destination.
26041
26042 2015-06-01  Martin Liska  <mliska@suse.cz>
26043
26044         * sched-deps.c: Include pool-alloc.h before
26045         cselib.h header file is included.
26046
26047 2015-06-01  Richard Biener  <rguenther@suse.de>
26048
26049         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
26050         functions.
26051
26052 2015-06-01  Martin Liska  <mliska@suse.cz>
26053
26054         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
26055         a function local variable.
26056
26057 2015-06-01  Martin Liska  <mliska@suse.cz>
26058
26059         * alloc-pool.c (create_alloc_pool): Remove.
26060         (empty_alloc_pool): Likewise.
26061         (free_alloc_pool): Likewise.
26062         (free_alloc_pool_if_empty): Likewise.
26063         (pool_alloc): Likewise.
26064         (pool_free): Likewise.
26065         * alloc-pool.h: Remove old declarations.
26066
26067 2015-06-01  Martin Liska  <mliska@suse.cz>
26068
26069         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
26070         (ira_create_object): Likewise.
26071         (ira_create_allocno): Likewise.
26072         (ira_create_live_range): Likewise.
26073         (copy_live_range): Likewise.
26074         (ira_finish_live_range): Likewise.
26075         (ira_free_allocno_costs): Likewise.
26076         (finish_allocno): Likewise.
26077         (finish_allocnos): Likewise.
26078         (initiate_prefs): Likewise.
26079         (ira_create_pref): Likewise.
26080         (finish_pref): Likewise.
26081         (finish_prefs): Likewise.
26082         (initiate_copies): Likewise.
26083         (ira_create_copy): Likewise.
26084         (finish_copy): Likewise.
26085         (finish_copies): Likewise.
26086         (finish_prefs): Likewise.
26087
26088 2015-06-01  Martin Liska  <mliska@suse.cz>
26089
26090         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
26091         (allocate_and_init_ipcp_value): Likewise.
26092         (ipcp_lattice::add_value): Likewise.
26093         (merge_agg_lats_step): Likewise.
26094         (ipcp_driver): Likewise.
26095         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
26096         (ipa_free_all_structures_after_iinln): Likewise.
26097         * ipa-prop.h: Likewise.
26098
26099 2015-06-01  Martin Liska  <mliska@suse.cz>
26100
26101         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
26102         pool allocator.
26103         (set_hint_predicate): Likewise.
26104         (inline_summary_alloc): Likewise.
26105         (reset_inline_edge_summary): Likewise.
26106         (reset_inline_summary): Likewise.
26107         (set_cond_stmt_execution_predicate): Likewise.
26108         (set_switch_stmt_execution_predicate): Likewise.
26109         (compute_bb_predicates): Likewise.
26110         (estimate_function_body_sizes): Likewise.
26111         (inline_free_summary): Likewise.
26112
26113 2015-06-01  Martin Liska  <mliska@suse.cz>
26114
26115         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
26116         (ipa_edge_duplication_hook): Likewise.
26117         (ipa_free_all_structures_after_ipa_cp): Likewise.
26118         (ipa_free_all_structures_after_iinln): Likewise.
26119
26120 2015-06-01  Martin Liska  <mliska@suse.cz>
26121
26122         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
26123         (ipa_profile_generate_summary): Likewise.
26124         (ipa_profile_read_summary): Likewise.
26125         (ipa_profile): Likewise.
26126
26127 2015-06-01  Martin Liska  <mliska@suse.cz>
26128
26129         * tree-ssa-structalias.c (new_var_info): Use new type-based
26130         pool allocator.
26131         (new_constraint): Likewise.
26132         (init_alias_vars): Likewise.
26133         (delete_points_to_sets): Likewise.
26134
26135 2015-06-01  Martin Liska  <mliska@suse.cz>
26136
26137         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
26138         (free_strinfo): Likewise.
26139         (pass_strlen::execute): Likewise.
26140
26141 2015-06-01  Martin Liska  <mliska@suse.cz>
26142
26143         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
26144         pool allocator.
26145         (vn_reference_insert_pieces): Likewise.
26146         (vn_phi_insert): Likewise.
26147         (visit_reference_op_call): Likewise.
26148         (copy_phi): Likewise.
26149         (copy_reference): Likewise.
26150         (process_scc): Likewise.
26151         (allocate_vn_table): Likewise.
26152         (free_vn_table): Likewise.
26153
26154 2015-06-01  Martin Liska  <mliska@suse.cz>
26155
26156         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
26157         pool allocator.
26158         (add_repeat_to_ops_vec): Likewise.
26159         (get_ops): Likewise.
26160         (maybe_optimize_range_tests): Likewise.
26161         (init_reassoc): Likewise.
26162         (fini_reassoc): Likewise.
26163
26164 2015-06-01  Martin Liska  <mliska@suse.cz>
26165
26166         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
26167         pool allocator.
26168         (bitmap_set_new): Likewise.
26169         (get_or_alloc_expr_for_constant): Likewise.
26170         (get_or_alloc_expr_for): Likewise.
26171         (phi_translate_1): Likewise.
26172         (compute_avail): Likewise.
26173         (init_pre): Likewise.
26174         (fini_pre): Likewise.
26175
26176 2015-06-01  Martin Liska  <mliska@suse.cz>
26177
26178         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
26179         (delete_dep_node): Likewise.
26180         (create_deps_list): Likewise.
26181         (free_deps_list): Likewise.
26182         (sched_deps_init): Likewise.
26183         (sched_deps_finish): Likewise.
26184
26185 2015-06-01  Martin Liska  <mliska@suse.cz>
26186
26187         * regcprop.c (free_debug_insn_changes): Use new type-based
26188         pool allocator.
26189         (replace_oldest_value_reg): Likewise.
26190         (pass_cprop_hardreg::execute): Likewise.
26191
26192 2015-06-01  Martin Liska  <mliska@suse.cz>
26193
26194         * ira-build.c (initiate_cost_vectors): Use new type-based
26195         pool allocator.
26196         (ira_allocate_cost_vector): Likewise.
26197         (ira_free_cost_vector): Likewise.
26198         (finish_cost_vectors): Likewise.
26199
26200 2015-06-01  Martin Liska  <mliska@suse.cz>
26201
26202         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
26203         pool allocator.
26204         (free_sched_pools): Likewise.
26205         * sel-sched-ir.h (_list_alloc): Likewise.
26206         (_list_remove): Likewise.
26207
26208 2015-06-01  Martin Liska  <mliska@suse.cz>
26209
26210         * stmt.c (add_case_node): Use new type-based pool allocator.
26211         (expand_case): Likewise.
26212         (expand_sjlj_dispatch_table): Likewise.
26213
26214 2015-06-01  Martin Liska  <mliska@suse.cz>
26215
26216         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
26217         (free_bb): Likewise.
26218         (pass_cse_reciprocals::execute): Likewise.
26219
26220 2015-06-01  Martin Liska  <mliska@suse.cz>
26221
26222         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
26223         (sra_deinitialize) Likewise.
26224         (create_access_1) Likewise.
26225         (build_accesses_from_assign) Likewise.
26226         (create_artificial_child_access) Likewise.
26227
26228 2015-06-01  Martin Liska  <mliska@suse.cz>
26229
26230         * dse.c (get_group_info):Use new type-based pool allocator.
26231         (dse_step0) Likewise.
26232         (free_store_info) Likewise.
26233         (delete_dead_store_insn) Likewise.
26234         (free_read_records) Likewise.
26235         (record_store) Likewise.
26236         (replace_read) Likewise.
26237         (check_mem_read_rtx) Likewise.
26238         (scan_insn) Likewise.
26239         (dse_step1) Likewise.
26240         (dse_step7) Likewise.
26241
26242 2015-06-01  Martin Liska  <mliska@suse.cz>
26243
26244         * df-scan.c (struct df_scan_problem_data):Use new type-based
26245         pool allocator.
26246         (df_scan_free_internal) Likewise.
26247         (df_scan_alloc) Likewise.
26248         (df_grow_reg_info) Likewise.
26249         (df_free_ref) Likewise.
26250         (df_insn_create_insn_record) Likewise.
26251         (df_mw_hardreg_chain_delete) Likewise.
26252         (df_insn_info_delete) Likewise.
26253         (df_free_collection_rec) Likewise.
26254         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
26255         (df_sort_and_compress_mws) Likewise.
26256         (df_ref_create_structure) Likewise.
26257         (df_ref_record) Likewise.
26258
26259 2015-06-01  Martin Liska  <mliska@suse.cz>
26260
26261         * df-problems.c (df_chain_create):Use new type-based pool allocator.
26262         (df_chain_unlink_1) Likewise.
26263         (df_chain_unlink) Likewise.
26264         (df_chain_remove_problem) Likewise.
26265         (df_chain_alloc) Likewise.
26266         (df_chain_free) Likewise.
26267         * df.h (struct dataflow) Likewise.
26268
26269 2015-06-01  Martin Liska  <mliska@suse.cz>
26270
26271         * cselib.c (new_elt_list):Use new type-based pool allocator.
26272         (new_elt_loc_list) Likewise.
26273         (unchain_one_elt_list) Likewise.
26274         (unchain_one_elt_loc_list) Likewise.
26275         (unchain_one_value) Likewise.
26276         (new_cselib_val) Likewise.
26277         (cselib_init) Likewise.
26278         (cselib_finish) Likewise.
26279
26280 2015-06-01  Martin Liska  <mliska@suse.cz>
26281
26282         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
26283         (sh_reorg) Likewise.
26284
26285 2015-06-01  Martin Liska  <mliska@suse.cz>
26286
26287         * cfg.c (initialize_original_copy_tables):Use new type-based
26288         pool allocator.
26289         (free_original_copy_tables) Likewise.
26290         (copy_original_table_clear) Likewise.
26291         (copy_original_table_set) Likewise.
26292
26293 2015-06-01  Martin Liska  <mliska@suse.cz>
26294
26295         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
26296         pool allocator.
26297         (asan_mem_ref_new) Likewise.
26298         (free_mem_ref_resources) Likewise.
26299
26300 2015-06-01  Martin Liska  <mliska@suse.cz>
26301
26302         * var-tracking.c (variable_htab_free):Use new type-based
26303         pool allocator.
26304         (attrs_list_clear) Likewise.
26305         (attrs_list_insert) Likewise.
26306         (attrs_list_copy) Likewise.
26307         (shared_hash_unshare) Likewise.
26308         (shared_hash_destroy) Likewise.
26309         (unshare_variable) Likewise.
26310         (var_reg_delete_and_set) Likewise.
26311         (var_reg_delete) Likewise.
26312         (var_regno_delete) Likewise.
26313         (drop_overlapping_mem_locs) Likewise.
26314         (variable_union) Likewise.
26315         (insert_into_intersection) Likewise.
26316         (canonicalize_values_star) Likewise.
26317         (variable_merge_over_cur) Likewise.
26318         (dataflow_set_merge) Likewise.
26319         (remove_duplicate_values) Likewise.
26320         (variable_post_merge_new_vals) Likewise.
26321         (dataflow_set_preserve_mem_locs) Likewise.
26322         (dataflow_set_remove_mem_locs) Likewise.
26323         (variable_from_dropped) Likewise.
26324         (variable_was_changed) Likewise.
26325         (set_slot_part) Likewise.
26326         (clobber_slot_part) Likewise.
26327         (delete_slot_part) Likewise.
26328         (loc_exp_insert_dep) Likewise.
26329         (notify_dependents_of_changed_value) Likewise.
26330         (emit_notes_for_differences_1) Likewise.
26331         (vt_emit_notes) Likewise.
26332         (vt_initialize) Likewise.
26333         (vt_finalize) Likewise.
26334
26335 2015-06-01  Martin Liska  <mliska@suse.cz>
26336
26337         * ira-color.c (init_update_cost_records):Use new type-based
26338         pool allocator.
26339         (get_update_cost_record) Likewise.
26340         (free_update_cost_record_list) Likewise.
26341         (finish_update_cost_records) Likewise.
26342         (initiate_cost_update) Likewise.
26343
26344 2015-06-01  Martin Liska  <mliska@suse.cz>
26345
26346         * lra.c (init_insn_regs): Use new type-based pool allocator.
26347         (new_insn_reg) Likewise.
26348         (free_insn_reg) Likewise.
26349         (free_insn_regs) Likewise.
26350         (finish_insn_regs) Likewise.
26351         (init_insn_recog_data) Likewise.
26352         (init_reg_info) Likewise.
26353         (finish_reg_info) Likewise.
26354         (lra_free_copies) Likewise.
26355         (lra_create_copy) Likewise.
26356         (invalidate_insn_data_regno_info) Likewise.
26357
26358 2015-06-01  Martin Liska  <mliska@suse.cz>
26359
26360         * lra-lives.c (free_live_range): Use new type-based pool allocator.
26361         (free_live_range_list) Likewise.
26362         (create_live_range) Likewise.
26363         (copy_live_range) Likewise.
26364         (lra_merge_live_ranges) Likewise.
26365         (remove_some_program_points_and_update_live_ranges) Likewise.
26366         (lra_live_ranges_init) Likewise.
26367         (lra_live_ranges_finish) Likewise.
26368
26369 2015-06-01  Martin Liska  <mliska@suse.cz>
26370
26371         * et-forest.c (et_new_occ): Use new type-based pool allocator.
26372         (et_new_tree): Likewise.
26373         (et_free_tree): Likewise.
26374         (et_free_tree_force): Likewise.
26375         (et_free_pools): Likewise.
26376         (et_split): Likewise.
26377
26378 2015-06-01  Martin Liska  <mliska@suse.cz>
26379
26380         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
26381         to header file.
26382         * alloc-pool.h (pool_allocator::pool_allocator): New function.
26383         (pool_allocator::release): Likewise.
26384         (inline pool_allocator::release_if_empty): Likewise.
26385         (inline pool_allocator::~pool_allocator): Likewise.
26386         (pool_allocator::allocate): Likewise.
26387         (pool_allocator::remove): Likewise.
26388
26389 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
26390
26391         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
26392         in comment.
26393
26394 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
26395
26396         * config/arm/arm-protos.h (tune_params): Rename fuseable_ops
26397         to fusible_ops.
26398         * config/arm/arm.c (arm_print_tune_info): Likewise.
26399         (arm_macro_fusion_p): Likewise.
26400         (arm_macro_fusion_pair_p): Likewise.
26401
26402 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
26403
26404         * config/aarch64/aarch64-protos.h (tune_params): Rename
26405         fuseable_ops to fusible_ops.
26406         * config/aarch64/aarch64.c (generic_tunings): Rename
26407         fuseable_ops to fusible_ops.
26408         (cortexa53_tunings): Likewise.
26409         (cortexa57_tunings): Likewise.
26410         (thunderx_tunings): Likewise.
26411         (xgene1_tunings): Likewise.
26412         (aarch64_macro_fusion_p): Likewise.
26413         (aarch64_macro_fusion_pair_p): Likewise.
26414
26415 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26416
26417         * config/s390/driver-native.c: New file.
26418         * config/s390/x-native: New file.
26419         * config.host: Add new files for s390.
26420         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
26421         and -march=native
26422         * config.gcc: Likewise.
26423         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
26424         * config/s390/s390-opts.h (enum processor_type): Ditto.
26425         * config/s390/s390.c (s390_option_override): Catch unhandled
26426         PROCESSOR_NATIVE
26427
26428 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
26429
26430         PR target/65527
26431         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
26432         redirection for instrumented calls.
26433         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
26434         (append_compiler_options): Append -fcheck-pointer-bounds.
26435         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
26436         (chkp_redirect_edge): New.
26437         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
26438         (chkp_redirect_edge): New.
26439
26440 2015-06-01  Richard Biener  <rguenther@suse.de>
26441
26442         PR tree-optimization/66280
26443         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
26444         def-use walking.
26445
26446 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26447
26448         * config/aarch64/aarch64.md
26449         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
26450         logic_shift_imm.
26451
26452 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
26453
26454         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
26455         Remove obsolete kludge.
26456
26457 2015-06-01  Richard Biener  <rguenther@suse.de>
26458
26459         * tree-ssa-reassoc.c (get_rank): Simplify.
26460
26461 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
26462
26463         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
26464         * configure: Regenerated.
26465
26466 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
26467
26468         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
26469         issue (add space between string literal and macro).
26470         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
26471
26472 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
26473
26474         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
26475         implict or explicit -fPIE or -fpie.
26476
26477 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
26478
26479         * config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
26480
26481 2015-05-28  DJ Delorie  <dj@redhat.com>
26482
26483         * expmed.c (extract_bit_field_1): Avoid clobbering a
26484         yet-to-be-used base/index register.
26485
26486 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
26487
26488         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
26489         (alias_stats): Add num_universal.
26490         (alias_set_subset_of): Special case pointers; be ready for NULL
26491         children.
26492         (alias_sets_conflict_p): Special case pointers; be ready for NULL
26493         children.
26494         (init_alias_set_entry): Break out from ...
26495         (record_alias_subset): ... here; propagate new fields;
26496         allocate children only when really needed.
26497         (get_alias_set): Do less generous pointer globbing.
26498         (dump_alias_stats_in_alias_c): Update statistics.
26499
26500 2015-05-30  Alan Modra  <amodra@gmail.com>
26501
26502         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
26503         correct block for use of r12.
26504         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
26505
26506 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26507
26508         PR target/66215
26509         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
26510         with -mhotpatch=.
26511
26512 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
26513
26514         PR tree-optimization/66142
26515         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
26516         virtual phis that feed themselves.
26517
26518 2015-05-29  Richard Biener  <rguenther@suse.de>
26519
26520         PR tree-optimization/66314
26521         * tree-ssa-threadupdate.c (create_block_for_threading): Add
26522         parameter that says which loop the new block belongs to.
26523         (ssa_create_duplicates): Blocks duplicated for the threaded
26524         path belong to the loop of the thread destination.
26525
26526 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
26527
26528         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
26529         to cleanup-saved-temps.
26530         * doc/sourcebuild.texi (Clean up generated test files): Expand
26531         introduction.
26532         (dg-keep-saved-temps): Document new proc.
26533         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
26534         cleanup-saved-temps): Remove.
26535
26536 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
26537
26538         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
26539         gcc_AC_CHECK_DECLS.
26540         * configure: Regenerate.
26541
26542 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
26543
26544         * config/nios2/linux.h (CPP_SPEC): Define.
26545
26546 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
26547
26548         * config/microblaze/linux.h (CPP_SPEC): Define.
26549
26550 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
26551
26552         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
26553         -pthread is specified.
26554
26555 2015-05-28  Richard Biener  <rguenther@suse.de>
26556
26557         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
26558         (vect_fixup_scalar_cycles_with_patterns): Likewise.
26559         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
26560         after pattern recog.
26561         (vect_create_epilog_for_reduction): Properly handle reductions
26562         with patterns.
26563         (vectorizable_reduction): Likewise.
26564         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
26565         reduction chains.
26566         (vect_get_constant_vectors): Create the correct number of
26567         initial values for reductions.
26568         (vect_schedule_slp_instance): Handle reduction chains that are
26569         type changing properly.
26570         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
26571
26572 2015-05-28  Richard Biener  <rguenther@suse.de>
26573
26574         PR tree-optimization/66142
26575         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
26576         values better in memcpy destination handling.  Handle non-aliasing
26577         we discover here.
26578
26579 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
26580
26581         PR target/63810
26582         * config/darwin-c.c (version_components): New global enum.
26583         (parse_version, version_as_legacy_macro)
26584         (version_as_modern_macro, macosx_version_as_macro): New functions.
26585         (version_as_macro): Remove.
26586         (darwin_cpp_builtins): Use new function.
26587
26588 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
26589
26590         * builtins.c (expand_builtin_acc_on_device): Mark parameters
26591         with ATTRIBUTE_UNUSED.
26592
26593 2015-05-28  Julian Brown  <julian@codesourcery.com>
26594
26595         PR libgomp/65742
26596
26597         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
26598         sequence for !ACCEL_COMPILER.
26599
26600 2015-05-28  Nick Clifton  <nickc@redhat.com>
26601
26602         * config/rx/rx.c (push_regs): New function.  Extracts code from...
26603         (rx_expand_prologue): ... here.  Use push_regs to push even small
26604         spans of registers.
26605         (pop_regs): New function.
26606         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
26607         registers.
26608
26609 2015-05-28  Richard Biener  <rguenther@suse.de>
26610
26611         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
26612         member.
26613         (SLP_INSTANCE_BODY_COST_VEC): Remove.
26614         (vect_update_slp_costs_according_to_vf): Likewise.
26615         (vect_slp_analyze_operations): Update prototype.
26616         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
26617         vect_update_slp_costs_according_to_vf, adjust.
26618         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
26619         (vect_analyze_slp_cost_1): Likewise.
26620         (vect_analyze_slp_cost): Likewise.  Properly deal with
26621         widening reduction ops.  Commit body costs.
26622         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
26623         cost for loops from here.
26624         (vect_slp_analyze_operations): But do it from here when
26625         the vectorization factor is known and stmts are analyzed.
26626         (vect_bb_vectorization_profitable_p): Simplify.
26627         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
26628         (vect_update_slp_costs_according_to_vf): Remove.
26629
26630 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
26631             H.J. Lu  <hongjiu.lu@intel.com>
26632
26633         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
26634         (BUILD_CFLAGS): Likewise.
26635         (BUILD_CXXFLAGS): Likewise.
26636         (LINKER): Add @NO_PIE_FLAG@.
26637         (BUILD_LDFLAGS): Likewise.
26638         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
26639         --enable-default-pie.
26640         * common.opt (fPIE): Initialize to -1.
26641         (fpie): Likewise.
26642         (no-pie): New option.
26643         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
26644         * configure.ac: Add --enable-default-pie.
26645         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
26646         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
26647         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
26648         * gcc.c (NO_PIE_SPEC): New.
26649         (PIE_SPEC): Likewise.
26650         (NO_FPIE1_SPEC): Likewise.
26651         (FPIE1_SPEC): Likewise.
26652         (NO_FPIE2_SPEC): Likewise.
26653         (FPIE2_SPEC): Likewise.
26654         (NO_FPIE2_SPEC): Likewise.
26655         (FPIE_SPEC): Likewise.
26656         (NO_FPIE_SPEC): Likewise.
26657         (NO_FPIC1_SPEC): Likewise.
26658         (FPIC1_SPEC): Likewise.
26659         (NO_FPIC2_SPEC): Likewise.
26660         (FPIC2_SPEC): Likewise.
26661         (NO_FPIC2_SPEC): Likewise.
26662         (FPIC_SPEC): Likewise.
26663         (NO_FPIC_SPEC): Likewise.
26664         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
26665         (FPIE1_OR_FPIC1_SPEC): Likewise.
26666         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
26667         (FPIE2_OR_FPIC2_SPEC): Likewise.
26668         (NO_FPIE_AND_FPIC_SPEC): Likewise.
26669         (FPIE_OR_FPIC_SPEC): Likewise.
26670         (LD_PIE_SPEC): Likewise.
26671         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
26672         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
26673         * config/darwin.h (PIE_SPEC): Renamed to ...
26674         (DARWIN_PIE_SPEC): This.
26675         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
26676         * config/darwin9.h (PIE_SPEC): Renamed to ...
26677         (DARWIN_PIE_SPEC): This.
26678         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
26679         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
26680         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
26681         FPIE2_OR_FPIC2_SPEC.
26682         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
26683         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
26684         * config/sol2.h (ASM_PIC_SPEC): Likewise.
26685         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
26686         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
26687         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
26688         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
26689         * config/m32r/m32r.h (ASM_SPEC): Likewise.
26690         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
26691         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
26692         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
26693         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
26694         * config/sparc/linux.h (ASM_SPEC): Likewise.
26695         * config/sparc/linux64.h (ASM_SPEC): Likewise.
26696         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
26697         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
26698         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
26699         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
26700         * config/sparc/sparc.h (ASM_SPEC): Likewise.
26701         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
26702         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
26703         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
26704         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
26705         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
26706         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
26707         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
26708         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
26709         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
26710         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
26711         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
26712         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
26713         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
26714         * config/vax/linux.h (ASM_SPEC): Likewise.
26715         * doc/install.texi: Document --enable-default-pie.
26716         * doc/invoke.texi: Document -no-pie.
26717         * config.in: Regenerated.
26718         * configure: Likewise.
26719
26720 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26721
26722         PR rtl-optimization/66168
26723         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
26724         can_move_invariant_reg.
26725
26726 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
26727
26728         PR target/66148
26729         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
26730         REG_EQUAL note when doing insert.
26731
26732         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
26733         instead of "%d" for 'o' operand.
26734
26735 2015-05-27  Nathan Sidwell  <nathan@acm.org>
26736
26737         PR c++/66270
26738         * tree.c (build_pointer_type_for_mode): Canonical type does not
26739         inherit can_alias_all.
26740         (build_reference_type_for_mode): Likewise.
26741
26742 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
26743
26744         * expr.h (array_at_struct_end_p): Move to...
26745         (array_ref_element_size): Likewise.
26746         (component_ref_field_offset): Likewise.
26747         * tree.h (array_ref_element_size): ...here.
26748         (array_at_struct_end_p): Likewise.
26749         (component_ref_field_offset): Likewise.
26750         * expr.c (array_ref_element_size): Move to...
26751         (array_ref_low_bound): Likewise.
26752         (array_at_struct_end_p): Likewise.
26753         (array_ref_up_bound): Likewise.
26754         (component_ref_field_offset): Likewise.
26755         * tree.c (array_ref_element_size): ...here.
26756         (array_ref_low_bound): Likewise.
26757         (array_ref_up_bound): Likewise.
26758         (array_at_struct_end_p): Likewise.
26759         (component_ref_field_offset): Likewise.
26760
26761 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
26762             Szabolcs Nagy  <szabolcs.nagy@arm.com>
26763
26764         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
26765
26766 2015-05-27  Jason Merrill  <jason@redhat.com>
26767
26768         PR bootstrap/66304
26769         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
26770         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
26771         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
26772
26773 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
26774
26775         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
26776         is true.
26777
26778         * statistics.c (statistics_fini_pass): Print pass name.
26779
26780 2015-05-27  Richard Biener  <rguenther@suse.de>
26781
26782         PR tree-optimization/66272
26783         Revert parts of
26784         2014-08-15  Richard Biener  <rguenther@suse.de>
26785
26786         PR tree-optimization/62031
26787         * tree-data-ref.c (dr_analyze_indices): Do not set
26788         DR_UNCONSTRAINED_BASE.
26789         (dr_may_alias_p): All indirect accesses have to go the
26790         formerly DR_UNCONSTRAINED_BASE path.
26791         * tree-data-ref.h (struct indices): Remove
26792         unconstrained_base member.
26793         (DR_UNCONSTRAINED_BASE): Remove.
26794
26795 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
26796
26797         * dwarf2out.c: Remove block_map.
26798         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
26799         (gen_lexical_block_die): Same.
26800         (dwarf2out_function_decl): Remove block_map use.
26801         (dwarf2out_c_finalize): Same.
26802         * tree-core.h (struct tree_block): Add die field.
26803         * tree.h (BLOCK_DIE): New.
26804
26805 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26806
26807         PR target/65358
26808         * expr.c (memory_load_overlap): New function.
26809         (emit_push_insn): When pushing partial args to the stack would
26810         clobber the register part load the overlapping part into a pseudo
26811         and put it into the hard reg after pushing.  Change return type
26812         to bool.  Add bool argument.
26813         * expr.h (emit_push_insn): Change return type to bool.
26814         Add bool argument.
26815         * calls.c (expand_call): Cancel sibcall optimization when encountering
26816         partial argument on targets with ARGS_GROW_DOWNWARD and
26817         !STACK_GROWS_DOWNWARD.
26818         (emit_library_call_value_1): Update callsite of emit_push_insn.
26819         (store_one_arg): Likewise.
26820
26821 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
26822
26823         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
26824
26825 2015-05-27  Martin Liska  <mliska@suse.cz>
26826
26827         * Makefile.in: Add additional dependencies related to memory report
26828         enhancement.
26829         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
26830         * bitmap.c (struct bitmap_descriptor_d): Remove.
26831         (struct loc): Likewise.
26832         (struct bitmap_desc_hasher): Likewise.
26833         (bitmap_desc_hasher::hash): Likewise.
26834         (bitmap_desc_hasher::equal): Likewise.
26835         (get_bitmap_descriptor): Likewise.
26836         (bitmap_register): User new memory descriptor API.
26837         (register_overhead): Likewise.
26838         (bitmap_find_bit): Register nsearches and search_iter statistics.
26839         (struct bitmap_output_info): Remove.
26840         (print_statistics): Likewise.
26841         (dump_bitmap_statistics): Use new memory descriptor.
26842         * bitmap.h (struct bitmap_usage): New class.
26843         * genmatch.c: Extend header file inclusion.
26844         * genpreds.c: Likewise.
26845         * ggc-common.c (struct ggc_usage): New class.
26846         (struct ggc_loc_desc_hasher): Remove.
26847         (ggc_loc_desc_hasher::hash): Likewise.
26848         (ggc_loc_desc_hasher::equal): Likewise.
26849         (struct ggc_ptr_hash_entry): Likewise.
26850         (struct ptr_hash_hasher): Likewise.
26851         (ptr_hash_hasher::hash): Likewise.
26852         (ptr_hash_hasher::equal): Likewise.
26853         (make_loc_descriptor): Likewise.
26854         (ggc_prune_ptr): Likewise.
26855         (dump_ggc_loc_statistics): Use new memory descriptor.
26856         (ggc_record_overhead): Likewise.
26857         (ggc_free_overhead): Likewise.
26858         (final_cmp_statistic): Remove.
26859         (cmp_statistic): Likewise.
26860         (ggc_add_statistics): Liekwise.
26861         (ggc_prune_overhead_list): Likewise.
26862         * hash-map-traits.h: New file.
26863         * hash-map.h (struct default_hashmap_traits): Move the traits to a
26864         separate header file.
26865         * hash-set.h: Pass memory statistics info to ctor.
26866         * hash-table.c (void dump_hash_table_loc_statistics): New function.
26867         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
26868         (hash_table::~hash_table): Register memory release operation.
26869         (hash_table::alloc_entries): Handle memory allocation operation.
26870         (hash_table::expand): Likewise.
26871         * inchash.c (iterative_hash_hashval_t): Move implementation to header
26872         file.
26873         (iterative_hash_host_wide_int): Likewise.
26874         * inchash.h (class hash): Likewise.
26875         * mem-stats-traits.h: New file.
26876         * mem-stats.h: New file.
26877         (mem_location): Add new class.
26878         (mem_usage): Likewise.
26879         (mem_alloc_description): Likewise.
26880         * sese.c: Add new header file inclusision.
26881         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
26882         and hash_set.
26883         * tree-sra.c: Add new header file inclusision.
26884         * vec.c (struct vec_descriptor): Remove.
26885         (hash_descriptor): Likewise.
26886         (struct vec_usage): Likewise.
26887         (struct ptr_hash_entry): Likewise.
26888         (hash_ptr): Likewise.
26889         (eq_ptr): Likewise.
26890         (vec_prefix::register_overhead): Use new memory descriptor API.
26891         (vec_prefix::release_overhead): Likewise.
26892         (add_statistics): Remove.
26893         (dump_vec_loc_statistics): Use new memory descriptor API.
26894         * vec.h (struct vec_prefix): Likewise.
26895         (va_heap::reserve): Likewise.
26896         (va_heap::release): Likewise.
26897         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
26898
26899 2015-05-27  Richard Biener  <rguenther@suse.de>
26900
26901         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
26902         earlier and remove ??? comment.
26903         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
26904         and got called from loop analysis bail out.  Always pass the SLP
26905         node to the vectorizable_* functions.
26906         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
26907         the premature SLP check here.
26908         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
26909         detected SLP stmts.
26910         (vect_detect_hybrid_slp_1): Likewise.
26911
26912 2015-05-26  Jeff Law  <law@redhat.com>
26913
26914         * combine.c (find_split_point): Verify that the shift count is a
26915         constant when choosing (plus (ashift ...)) as a split point.
26916
26917         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
26918         No functional changes.
26919
26920 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
26921
26922         * ipa-polymorphic-call.c
26923         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
26924         case when call target is already known.
26925
26926 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
26927
26928         PR target/65979
26929         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
26930         take into account the case that operands[1] and operands[2]
26931         are the same register.
26932
26933 2015-05-26  Michael Matz  <matz@suse.de>
26934
26935         PR middle-end/66251
26936
26937         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
26938         stores.
26939         (vect_create_vectorized_demotion_stmts): Always set
26940         STMT_VINFO_VEC_STMT, also with SLP.
26941         (vectorizable_store): Handle strided group stores.
26942
26943 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
26944
26945         PR target/66049
26946         * config/aarch64/aarch64.md
26947         (*adds_shift_imm_<mode>):  New pattern.
26948         (*subs_shift_imm_<mode>):  Likewise.
26949         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
26950         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
26951         (*add_uxt<mode>_shift2): Likewise.
26952         (*add_uxtsi_shift2_uxtw): Likewise.
26953         (*sub_uxt<mode>_shift2): Likewise.
26954         (*sub_uxtsi_shift2_uxtw): Likewise.
26955
26956 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
26957
26958         * config/rs6000/constraints.md (Y, U): Use match_test.
26959
26960 2015-05-26  Christian Bruel  <christian.bruel@st.com>
26961
26962         PR target/52144
26963         * config/arm/arm.c (arm_option_check_internal)
26964         (arm_option_params_internal): Check opts->target_flags to set macros.
26965         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
26966         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
26967         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
26968         (builtin_define): Replaced with def_or_undef_macro.
26969         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
26970         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
26971         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
26972         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
26973         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
26974         (TARGET_ARM_FEATURE_LDREX_P)
26975         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
26976         * config/arm/arm-c.c (def_or_undef_macro): New function.
26977         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
26978
26979 2015-05-26  Christian Bruel  <christian.bruel@st.com>
26980
26981         * c-common.h (builtin_define_with_int_value)
26982         (builtin_define_type_sizeof): Declare.
26983         * c-cppbuiltin.c (builtin_define_with_int_value)
26984         (builtin_define_type_sizeof): Externalize.
26985         (builtin_define_std): Cleanup declaration.
26986         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
26987         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
26988         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
26989         (builtin_define, builtin_assert): New macros.
26990
26991 2015-05-26  Richard Biener  <rguenther@suse.de>
26992
26993         PR tree-optimization/66142
26994         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
26995         MEM_REFs for the same base address.
26996
26997 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26998
26999         PR ipa/66181
27000         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
27001
27002 2015-05-26  Jason Merrill  <jason@redhat.com>
27003
27004         * configure.ac: Set CXXFLAGS for ISL test.
27005         * configure: Regenerate.
27006
27007         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
27008         strstr and basename.
27009         * configure: Regenerate.
27010
27011 2015-05-26  Richard Biener  <rguenther@suse.de>
27012
27013         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
27014         X % C -> X & (C - 1) for C being a power-of two to ...
27015         * match.pd: ... patterns.
27016
27017 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
27018
27019         * match.pd (swapped_tcc_comparison): New operator list.
27020         (-A CMP -B): New simplification.
27021         * fold-const.c (fold_comparison): Remove corresponding code.
27022
27023 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
27024
27025         * caller-save.c (init_caller_save): Base temporary register numbers
27026         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
27027         * cfgloopanal.c (init_set_costs): Likewise.
27028         * dojump.c (prefer_and_bit_test): Likewise.
27029         * expr.c (init_expr_target): Likewise.
27030         * ira.c (setup_prohibited_mode_move_regs): Likewise.
27031         * lower-subreg.c (init_lower_subreg): Likewise.
27032         * postreload.c (reload_cse_regs_1): Likewise.
27033
27034 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
27035
27036         * gensupport.h (compute_test_codes): Declare.
27037         * gensupport.c (compute_predicate_codes): Rename to...
27038         (compute_test_codes): ...this.  Generalize error message.
27039         (process_define_predicate): Update accordingly.
27040         * genpreds.c (compute_maybe_allows): Delete.
27041         (add_constraint): Use compute_test_codes to determine whether
27042         something can accept a SUBREG, REG or MEM.
27043
27044 2015-05-26  Torvald Riegel  <triegel@redhat.com>
27045
27046         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
27047         'memory model' to align with C++11; fix description of memory orders;
27048         fix a few typos.
27049
27050 2015-05-26  Richard Biener  <rguenther@suse.de>
27051
27052         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
27053         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
27054         detect whether we apply SLP.  Remove call to
27055         vect_update_slp_costs_according_to_vf.
27056         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
27057         vect_update_slp_costs_according_to_vf from here.  Dispatch
27058         to vect_slp_analyze_operations to analyze SLP stmts.
27059         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
27060         unused bb_vec_info parameter, adjust assert.
27061         (vect_slp_analyze_operations): Pass in the slp instance tree
27062         instead of bb_vec_info.
27063         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
27064         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
27065
27066 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
27067
27068         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
27069         Q_REGS.  Expand comment.
27070         (REG_CLASS_NAMES): Ditto.
27071         (REG_CLASS_CONTENTS): Ditto.
27072
27073 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
27074
27075         PR target/66274
27076         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
27077         when LEGACY_INT_REGNO_P is processed.
27078
27079 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
27080
27081         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
27082
27083 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
27084
27085         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
27086         register if not marked dead/unused, before return.
27087
27088 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
27089
27090         PR lto/66180
27091         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
27092         is set; check for assembler name at LTO time.
27093         (type_in_anonymous_namespace): Remove hacks, check that all
27094         anonymous types are called "<anon>"
27095         (odr_type_p): Simplify; add check for "<anon>"
27096         (odr_subtypes_equivalent): Add odr_type_p check.
27097         * tree.c (need_assembler_name_p): Even anonymous namespace needs
27098         assembler name.
27099
27100 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
27101
27102         * ipa-utils.h (method_class_type): Remove.
27103         * cgraphunit.c (walk_polymorphic_call_targets): Use
27104         TYPE_METHOD_BASETYPE.
27105         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
27106         on main variants only.
27107         (method_class_type): Remove.
27108         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
27109         (build_type_inheritance_graph): Likewise.
27110         * ipa-icf.c (sem_function::equals_wpa): Likewise.
27111         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
27112         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
27113
27114 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
27115
27116         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
27117         is_typedef_decl, typedef_variant_p): Constify.
27118         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
27119         is_typedef_decl, typedef_variant_p): Constify.
27120
27121 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27122
27123         * defaults.h (gen_tablejump): New function.
27124         (HAVE_tablejump): Add default value.
27125         * expr.c: Adjust.
27126         * stmt.c: Likewise.
27127
27128 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27129
27130         * defaults.h (gen_store_multiple): New function.
27131         (HAVE_store_multiple): Add default value.
27132         * expr.c (move_block_from_reg): Adjust.
27133
27134 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27135
27136         * defaults.h (gen_load_multiple): New function.
27137         (HAVE_load_multiple): Add default value.
27138         * expr.c (move_block_to_reg): Adjust.
27139
27140 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27141
27142         * defaults.h (gen_mem_signal_fence): New function.
27143         (HAVE_mem_signal_fence): Add default value.
27144         * optabs.c: Adjust.
27145
27146 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27147
27148         * defaults.h (gen_memory_barrier): New function.
27149         (HAVE_memory_barrier): Add default value.
27150         * optabs.c: Adjust.
27151
27152 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27153
27154         * defaults.h (gen_mem_thread_fence): New function.
27155         (HAVE_mem_thread_fence): Add default definition.
27156         * optabs.c: Adjust.
27157
27158 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27159
27160         * combine.c (find_split_point): Check the value of HAVE_lo_sum
27161         instead of if it is defined.
27162         (combine_simplify_rtx): Likewise.
27163         * lra-constraints.c (process_address_1): Likewise.
27164         * config/darwin.c: Adjust.
27165         * genconfig.c (main): Always define HAVE_lo_sum.
27166
27167 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
27168
27169         * genmatch.c (parser::parse_operation): Reject expanding
27170         operator-list inside 'for'.
27171
27172 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
27173
27174         * genmatch.c (parser::parse_for): Reject iterator if used as
27175         operator-list.
27176
27177 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
27178
27179         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
27180         after end of id-list.
27181
27182 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
27183
27184         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
27185         we do not try to compute canonical type for type that does not need
27186         alias set.
27187         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
27188         FUNCITON_TYPE.
27189         * tree.h (type_with_alias_set_p): New.
27190
27191 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
27192
27193         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
27194         function attributes.
27195         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
27196
27197 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
27198
27199         * Makefile.in (check_gcc_parallelize): Delete.
27200         (lang_checks_parallelized): Update comment.
27201
27202 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
27203
27204         PR rtl-optimization/66237
27205         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
27206         location of an "as_a" cast.
27207
27208 2015-05-22  Jeff Law  <law@redhat.com>
27209
27210         * config/pa/pa.md (non-canonical shift-add insns): Remove.
27211         (peepholes with non-canonical RTL sources): Remove.
27212         (peepholes for indexed stores of FP regs in integer modes): Match and
27213         generate canonical RTL.
27214
27215 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
27216
27217         PR tree-optimization/63387
27218         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
27219         ((x ord x) & (y ord y) -> (x ord y),
27220         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
27221         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
27222         vectors like scalars.
27223
27224 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
27225
27226         * convert.c (convert_to_integer, convert_to_vector): Include the
27227         types in the error message.
27228
27229 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
27230
27231         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
27232         simplifications.
27233
27234 2015-05-22  Jeff Law  <law@redhat.com>
27235
27236         * config/pa/pa.md (integer_indexed_store splitters): Use
27237         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
27238         insns -- adjusting the constant 2nd operand accordingly.
27239
27240         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
27241         (plus (ashift X log2) Y) if it is a split point.
27242
27243         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
27244         out of hppa_legitimize_address to handle both forms of a multiply
27245         by 2, 4 or 8.
27246         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
27247         Always generate the ASHIFT variant as the result is not directly
27248         used in a MEM.  Update comments and refactor slightly to improve
27249         readability.
27250
27251 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27252
27253         PR target/65491
27254         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
27255         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
27256         (aarch64_composite_type_p): Return false if given type and mode are
27257         for a short vector.
27258
27259 2015-05-22  Richard Biener  <rguenther@suse.de>
27260
27261         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
27262         member.
27263         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
27264         patterns when determining whether SLP is pure.
27265         (vect_is_slp_reduction): Remove check for pattern stmts.
27266         (vect_is_simple_reduction_1): Remove dead code.
27267         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
27268         (vect_get_and_check_slp_defs): Pass in the stmt number.
27269         Allow the first def in a reduction to be not a pattern stmt when
27270         the rest of the stmts def are patterns.
27271         (vect_build_slp_tree_1): Allow tcc_expression codes like
27272         SAD_EXPR and DOT_PROD_EXPR.
27273         (vect_build_slp_tree): Adjust.
27274         (vect_analyze_slp): Refactor and move BB vect error message ...
27275         (vect_slp_analyze_bb_1): ... here.
27276
27277 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
27278
27279         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
27280         for CSWTCH temporary.
27281
27282 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27283
27284         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
27285         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
27286         unknown unspecs.
27287
27288 2015-05-22  Richard Biener  <rguenther@suse.de>
27289
27290         PR tree-optimization/66251
27291         * tree-vect-stmts.c (vectorizable_conversion): Properly
27292         set STMT_VINFO_VEC_STMT even for the SLP case.
27293
27294 2015-05-22  Marek Polacek  <polacek@redhat.com>
27295
27296         * doc/extend.texi: Use @pxref instead of @xref.
27297
27298 2015-05-22  hiraditya  <hiraditya@msn.com>
27299
27300         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
27301         redundant if.
27302
27303 2015-05-22  Richard Biener  <rguenther@suse.de>
27304
27305         PR tree-optimization/65701
27306         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
27307         Move peeling cost models into one place.  Peel for alignment
27308         for single loads only if an aligned load is cheaper than
27309         an unaligned load.
27310
27311 2015-05-22  Marek Polacek  <polacek@redhat.com>
27312
27313         PR c/47043
27314         * doc/extend.texi (Enumerator Attributes): New section.
27315         Document syntax of enumerator attributes.
27316
27317 2015-05-22  Richard Biener  <rguenther@suse.de>
27318
27319         * tree-vect-loop.c (get_reduction_op): New function.
27320         (vect_model_reduction_cost): Use it, add reduc_index parameter.
27321         Make ready for BB reductions.
27322         (vect_create_epilog_for_reduction): Use get_reduction_op.
27323         (vectorizable_reduction): Init reduc_index to a valid value.
27324         Adjust vect_model_reduction_cost call.
27325         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
27326         operand for reduction defaults.  Add SAD_EXPR support.
27327         Assert we have a neutral op for SLP reductions.
27328         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
27329         walking pattern stmt ops only recurse to SSA names.
27330
27331 2015-05-22  Richard Biener  <rguenther@suse.de>
27332
27333         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
27334         assert with guard, remove check on detected reduction.
27335         (vect_recog_sad_pattern): Likewise.
27336         (vect_recog_widen_sum_pattern): Likewise.
27337
27338 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27339
27340         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
27341         __always_inline__ attribute.
27342         (vaesdq_u8): Likewise.
27343         (vaesmcq_u8): Likewise.
27344         (vaesimcq_u8): Likewise.
27345         (vsha1cq_u32): Likewise.
27346         (vsha1mq_u32): Likewise.
27347         (vsha1pq_u32): Likewise.
27348         (vsha1h_u32): Likewise.
27349         (vsha1su0q_u32): Likewise.
27350         (vsha1su1q_u32): Likewise.
27351         (vsha256hq_u32): Likewise.
27352         (vsha256h2q_u32): Likewise.
27353         (vsha256su0q_u32): Likewise.
27354         (vsha256su1q_u32): Likewise.
27355         (vmull_p64): Likewise.
27356         (vmull_high_p64): Likewise.
27357
27358 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27359
27360         * final.c (final_scan_insn): Don't check HAVE_peephole with the
27361         preprocessor.
27362         * output.h: Likewise.
27363         * genconfig.c (main): Alwways define HAVE_peephole.
27364         * genpeep.c: Don't emit checks of HAVE_peephole.
27365
27366 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27367
27368         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
27369         check HAVE_conditional_move with the preprocessor.
27370
27371 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27372
27373         * genconfig.c (main): Always define HAVE_conditional_move.
27374         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
27375         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
27376         is defined.
27377
27378 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27379
27380         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
27381         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
27382         and FRAME_POINTER_REGNUM with the preprocessor.
27383
27384 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27385
27386         * defaults.h: Add default for STACK_PUSH_CODE.
27387         * expr.c: Don't redefine STACK_PUSH_CODE.
27388         * recog.c: Likewise.
27389
27390 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27391
27392         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
27393         sched-deps.c: Use if instead of preprocessor checks with
27394         STACK_GROWS_DOWNWARD.
27395
27396 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27397
27398         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
27399         is defined.
27400         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
27401         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
27402         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
27403         * doc/tm.texi: Regenerate.
27404
27405 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
27406
27407         PR target/66232
27408         * config/i386/constraints.md (Bg): New constraint for GOT memory
27409         operand.
27410         * config/i386/i386.md (*call_got_x32): New pattern.
27411         (*call_value_got_x32): Likewise.
27412         * config/i386/predicates.md (GOT_memory_operand): New predicate.
27413
27414 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
27415
27416         PR tree-optimization/66233
27417         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
27418         Simplify.
27419
27420 2015-05-21  Jeff Law  <law@redhat.com>
27421
27422         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
27423         than MULT for shadd sequences.
27424
27425 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
27426
27427         * alias.c (alias_stats): New static var.
27428         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
27429         (dump_alias_stats_in_alias_c): New function.
27430         * alias.h (dump_alias_stats_in_alias_c): Declare.
27431         * tree-ssa-alias.c (dump_alias_stats): Call it.
27432
27433 2015-05-08  Michael Matz  <matz@suse.de>
27434
27435         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
27436         to strided_p.
27437         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
27438         (STMT_VINFO_STRIDED_P): ... this.
27439         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
27440         (vect_verify_datarefs_alignment): Likewise.
27441         (vect_enhance_data_refs_alignment): Likewise.
27442         (vect_analyze_data_ref_access): Likewise.
27443         (vect_analyze_data_refs): Accept strided stores.
27444         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
27445         (vect_model_load_cost): Adjust for macro rename.
27446         (vectorizable_mask_load_store): Likewise.
27447         (vectorizable_load): Likewise.
27448         (vectorizable_store): Open code strided stores.
27449
27450 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27451
27452         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
27453         Document sqrt_insn.
27454
27455 2015-05-21  Richard Biener  <rguenther@suse.de>
27456
27457         PR c++/66211
27458         * match.pd: Guard pattern optimzing (int)(float)int
27459         conversions to apply only on GIMPLE.
27460
27461 2015-05-21  Jeff Law  <law@redhat.com>
27462
27463         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
27464         multiply-accumulate/shift-add insn generation.
27465
27466 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
27467
27468         PR target/54236
27469         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
27470         operands[1] are the same.
27471
27472 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
27473
27474         PR middle-end/66221
27475         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
27476         build_distinct_type_copy to copy bounds.
27477
27478 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
27479
27480         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
27481         Change to unsigned int.
27482
27483 2015-05-20  Jeff Law  <law@redhat.com>
27484
27485         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
27486         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
27487         (pa_shadd_constant_p): Allow constants for shadd insns rather
27488         than valid scaling constants for memory addresses.
27489         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
27490         * config/pa/predicates.md (mem_shadd_operand): New predicate.
27491         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
27492         (shift-add insns using ASHIFT): New patterns.
27493
27494 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
27495
27496         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
27497         feasible.
27498         (fix_up_fall_thru_edges): Likewise.
27499         (fix_crossing_conditional_branches): Likewise. Promote jump targets
27500         from to rtx_insn to rtx_code_label where feasible.
27501         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
27502         gen_move_insn (returned type changed to rtx_insn).
27503         * builtins.c (expand_errno_check): Fix arguments of
27504         do_compare_rtx_and_jump (now expects rtx_code_label).
27505         (expand_builtin_acc_on_device): Likewise.
27506         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
27507         invert_jump (now exprects rtx_jump_insn).
27508         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
27509         (construct_init_block): Use rtx_code_label.
27510         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
27511         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
27512         calling redirect_jump.
27513         (patch_jump_insn): Likewise.
27514         (redirect_branch_edge): Likewise.
27515         (force_nonfallthru_and_redirect): Likewise.
27516         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
27517         when suitable.
27518         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
27519         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
27520         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
27521         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
27522         to store the value retured by gen_label_rtx.
27523         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
27524         rtx_jump_insn.
27525         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
27526         (split_branches): Fix calls of redirect_jump.
27527         * dojump.c (jumpifnot): Promote argument type from rtx to
27528         rtx_code_label.
27529         (jumpifnot_1): Likewise.
27530         (jumpif): Likewise.
27531         (jumpif_1): Likewise.
27532         (do_jump_1): Likewise.
27533         (do_jump): Likewise. Use rtx_code_label when feasible.
27534         (do_jump_by_parts_greater_rtx): Likewise.
27535         (do_jump_by_parts_zero_rtx): Likewise.
27536         (do_jump_by_parts_equality_rtx): Likewise.
27537         (do_compare_rtx_and_jump): Likewise.
27538         * dojump.h: Update function prototypes.
27539         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
27540         returns rtx_insn).
27541         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
27542         rtx_jump_insn.
27543         (emit_label_before): Likewise.
27544         (emit_jump_insn_after_noloc): Likewise.
27545         (emit_jump_insn_after_setloc): Likewise.
27546         (emit_jump_insn_after): Likewise
27547         (emit_jump_insn_before_setloc): Likewise.
27548         (emit_jump_insn_before): Likewise.
27549         (emit_label_before): Promote return type to rtx_code_label.
27550         (emit_label): Likewise.
27551         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
27552         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
27553         gen_move_insn.
27554         (emit_stack_restore): Likewise.
27555         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
27556         (do_cmp_and_jump): Likewise.
27557         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
27558         from rtx to rtx_code_label.
27559         (gen_move_insn_uncast): New function.
27560         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
27561         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
27562         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
27563         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
27564         invert_jump_1 and redirect_jump_1.
27565         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
27566         do_compare_rtx_and_jump.
27567         (expand_addsub_overflow): Likewise.
27568         (expand_neg_overflow): Likewise.
27569         (expand_mul_overflow): Likewise.
27570         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
27571         return value of gen_move_insn.
27572         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
27573         * loop-doloop.c (add_test): Use rtx_code_label.
27574         (doloop_modify): Likewise.
27575         (doloop_optimize): Likewise.
27576         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
27577         * lra-constraints.c (emit_spill_move): Remove cast of value returned
27578         by gen_move_insn.
27579         (inherit_reload_reg): Add cast when calling dump_insn_slim.
27580         (split_reg): Likewise.
27581         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
27582         gen_move_insn.
27583         * optabs.c (expand_binop_directly): Remove casts of values returned by
27584         maybe_gen_insn.
27585         (expand_unop_direct): Likewise.
27586         (expand_abs): Likewise.
27587         (maybe_emit_unop_insn): Likewise.
27588         (maybe_gen_insn): Promote return type to rtx_insn.
27589         * optabs.h: Update prototype of maybe_gen_insn.
27590         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
27591         redundant cast.
27592         * recog.c (struct peep2_insn_data): Promote type of insn field to
27593         rtx_insn.
27594         (peep2_reinit_state): Use NULL instead of NULL_RTX.
27595         (peep2_attempt): Remove casts of insn in peep2_insn_data.
27596         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
27597         * recog.h (struct insn_gen_fn): Promote return types of function
27598         pointers and operator ().from rtx to rtx_insn.
27599         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
27600         (fill_eager_delay_slots): Likewise.
27601         (relax_delay_slots): Likewise.
27602         (make_return_insns): Likewise.
27603         (dbr_schedule): Likewise.
27604         (optimize_skips): Likewise.
27605         (reorg_redirect_jump): Likewise.
27606         (fill_slots_from_thread): Likewise.
27607         * reorg.h: Update prototypes.
27608         * resource.c (find_dead_or_set_registers): Use dyn_cast to
27609         rtx_jump_insn instead of check.  Use it's jump_target method.
27610         * rtl.h (rtx_jump_insn::jump_label): Define new method.
27611         (rtx_jump_insn::jump_target): Define new method.
27612         (rtx_jump_insn::set_jump_target): Define new method.
27613         * rtlanal.c (tablejump_p): Promote type of one local variable.
27614         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
27615         (sched_analyze_insn): Likewise.
27616         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
27617         (print_insn): Likewise.
27618         * stmt.c (label_rtx): Promote return type to rtx_insn.
27619         (force_label_rtx): Likewise.
27620         (jump_target_rtx): Define new function.
27621         (expand_label): Use it, get rid of one cast.
27622         (expand_naked_return): Promote rtx to rtx_code_label.
27623         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
27624         (expand_case): Use rtx_code_label instread of rtx where feasible.
27625         (expand_sjlj_dispatch_table): Likewise.
27626         (emit_case_nodes): Likewise.
27627         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
27628         * store-motion.c (insert_store): Make use of new return type of
27629         gen_move_insn and remove a cast.
27630         (replace_store_insn): Likewise.
27631
27632 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
27633
27634         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
27635         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
27636
27637 2015-05-20  Jeff Law  <law@redhat.com>
27638
27639         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
27640         dispose of the jump thread path when the jump threading
27641         opportunity is cancelled.
27642
27643 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27644
27645         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
27646         when printing the caret character.
27647
27648 2015-05-20  Marek Polacek  <polacek@redhat.com>
27649
27650         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
27651
27652 2015-05-20  Marek Polacek  <polacek@redhat.com>
27653
27654         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
27655         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
27656         * gimple-fold.c (canonicalize_bool): Likewise.
27657         (same_bool_result_p): Likewise.
27658         * tree-if-conv.c (parse_predicate): Likewise.
27659
27660 2015-05-20  Marek Polacek  <polacek@redhat.com>
27661
27662         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
27663         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
27664
27665 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27666
27667         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
27668         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
27669         values.
27670
27671 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
27672
27673         * config/mips/mips.h (micromips_globals): Declare.
27674
27675 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
27676
27677         * timevar.def (TV_INITIALIZE_RTL): New.
27678         * toplev.c (initialize_rtl): Use an auto_timevar to account this
27679         function's time to TV_INITIALIZE_RTL.
27680
27681 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
27682
27683         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
27684         gimple_build_nop calls.
27685         (chkp_find_bounds_for_elem): Likewise.
27686         (chkp_get_zero_bounds): Likewise.
27687         (chkp_get_none_bounds): Likewise.
27688         (chkp_get_bounds_by_definition): Likewise.
27689         (chkp_generate_extern_var_bounds): Likewise.
27690         (chkp_get_bounds_for_decl_addr): Likewise.
27691         (chkp_get_bounds_for_string_cst): Likewise.
27692
27693 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
27694
27695         PR tree-optimization/65447
27696         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
27697         (dump_use, dump_uses): Support to dump sub use.
27698         (record_use): New parameters to support sub use.  Remove call to
27699         dump_use.
27700         (record_sub_use, record_group_use): New functions.
27701         (compute_max_addr_offset, split_all_small_groups): New functions.
27702         (group_address_uses, rewrite_use_address): New functions.
27703         (strip_offset): New declaration.
27704         (find_interesting_uses_address): Call record_group_use.
27705         (add_candidate): New assertion.
27706         (infinite_cost_p): Move definition forward.
27707         (add_costs): Check INFTY cost and return immediately.
27708         (get_computation_cost_at): Clear setup cost and dependent bitmap
27709         for sub uses.
27710         (determine_use_iv_cost_address): Compute cost for sub uses.
27711         (rewrite_use_address_1): Rename from old rewrite_use_address.
27712         (free_loop_data): Free sub uses.
27713         (tree_ssa_iv_optimize_loop): Call group_address_uses.
27714
27715 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
27716             Jim Wilson  <jim.wilson@linaro.org>
27717
27718         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
27719         new  fields loadv and storev.
27720         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
27721         Initialize loadv and storev.
27722         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
27723         (cortexa53_extra_costs): Likewise.
27724         (cortexa57_extra_costs): Likewise.
27725         (xgene1_extra_costs): Likewise.
27726         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
27727         rtx_costs.
27728
27729 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
27730
27731         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
27732          storev.
27733         (cortexa8_extra_costs): Likewise.
27734         (cortexa5_extra_costs): Likewise.
27735         (cortexa7_extra_costs): Likewise.
27736         (cortexa12_extra_costs): Likewise.
27737         (cortexa15_extra_costs): Likewise.
27738         (v7m_extra_costs): Likewise.
27739
27740 2015-05-20  Jeff Law  <law@redhat.com>
27741
27742         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
27743         instead of open-coded version.  Also delete the jump thread created
27744         within this function.
27745
27746 2015-05-20  Alan Modra  <amodra@gmail.com>
27747
27748         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
27749         stack adjusting insn.  Formatting.
27750         (rs6000_emit_prologue): Track stack adjusting insn, and use of
27751         r12.  If possible, emit first -fsplit-stack arg pointer insn
27752         before stack adjust.  Don't use r12 to save cr if split-stack.
27753
27754 2015-05-20  Alan Modra  <amodra@gmail.com>
27755
27756         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
27757         Define.
27758         (rs6000_supports_split_stack): New function.
27759         * config/rs6000/rs6000.c (machine_function): Add
27760         split_stack_arg_pointer.
27761         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
27762         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
27763         rather than virtual_incoming_args_rtx.
27764         (rs6000_va_start): Likewise.
27765         (split_stack_arg_pointer_used_p): New function.
27766         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
27767         (morestack_ref): New var.
27768         (gen_add3_const, rs6000_expand_split_stack_prologue,
27769         rs6000_internal_arg_pointer, rs6000_live_on_entry,
27770         rs6000_split_stack_space_check): New functions.
27771         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
27772         * config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
27773         (UNSPECV_SPLIT_STACK_RETURN): Define.
27774         (split_stack_prologue, load_split_stack_limit,
27775         load_split_stack_limit_di, load_split_stack_limit_si,
27776         split_stack_return, split_stack_space_check): New expands and insns.
27777         * config/rs6000/rs6000-protos.h
27778         (rs6000_expand_split_stack_prologue): Declare.
27779         (rs6000_split_stack_space_check): Declare.
27780
27781 2015-05-20  Alan Modra  <amodra@gmail.com>
27782
27783         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
27784         (direct_return): Test vrsave_size rather than vrsave_mask.
27785         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
27786         (rs6000_emit_epilogue): Likewise.
27787
27788 2015-05-20  Alan Modra  <amodra@gmail.com>
27789
27790         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
27791         when not saving registers.
27792         (debug_stack_info): Adjust to omit printing unused offsets,
27793         as before.
27794         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
27795         expression.
27796
27797 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27798
27799         PR c++/65835
27800         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
27801         value_type to const char *.
27802
27803 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
27804
27805         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
27806         to build a biarch toolchain again.
27807
27808 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
27809
27810         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
27811         or implicit declarations.
27812         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
27813         into it.
27814         (get_odr_type): Check type has linkage before adding bases.
27815         (register_odr_type): Check that type has linkage before adding it.
27816         (type_known_to_have_no_deriavations_p): Rename to ..
27817         (type_known_to_have_no_derivations_p): This one.
27818         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
27819         (type_known_to_have_no_derivations_p): This one.
27820         * ipa-polymorphic-call.c
27821         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
27822         type has linkage.
27823
27824 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
27825
27826         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
27827         (layout_type): Use RECORD_OR_UNION_TYPE_P.
27828
27829 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27830
27831         * config/s390/s390.c (s390_vector_bool_type_p): New function.
27832         (s390_invalid_binary_op): New function.
27833         (TARGET_INVALID_BINARY_OP): Define macro.
27834
27835 2015-05-19  David Sherwood  <david.sherwood@arm.com>
27836
27837         * loop-invariant.c (create_new_invariant): Don't calculate address cost
27838         if mode is not a scalar integer.
27839         (get_inv_cost): Increase computational cost for unused invariants.
27840
27841 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27842
27843         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
27844         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
27845         * config/s390/s390-builtin-types.def: New file.
27846         * config/s390/s390-builtins.def: New file.
27847         * config/s390/s390-builtins.h: New file.
27848         * config/s390/s390-c.c: New file.
27849         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
27850         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
27851         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
27852         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
27853         prototypes.
27854         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
27855         Include.
27856         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
27857         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
27858         variable definitions.
27859         (s390_const_operand_ok): New function.
27860         (s390_expand_builtin): Rewrite.
27861         (s390_init_builtins): New function.
27862         (s390_handle_vectorbool_attribute): New function.
27863         (s390_attribute_table): Add s390_vector_bool attribute.
27864         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
27865         (s390_branch_condition_mask): Generate masks for new modes.
27866         (s390_expand_vec_compare_cc): New function.
27867         (s390_mangle_type): Add mangling for vector bool types.
27868         (enum s390_builtin): Remove.
27869         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
27870         efpc builtins.
27871         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
27872         s390_cpu_cpp_builtins.
27873         (REGISTER_TARGET_PRAGMAS): New macro.
27874         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
27875         (insn_cmp mode attribute): Add new CC modes.
27876         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
27877         (lcbb): New pattern definition.
27878         * config/s390/s390intrin.h: Include vecintrin.h.
27879         * config/s390/t-s390: New file.
27880         * config/s390/vecintrin.h: New file.
27881         * config/s390/vector.md: Include vx-builtins.md.
27882         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
27883         support.
27884
27885 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27886
27887         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
27888         CCVFHE.
27889         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
27890         (s390_select_ccmode): Likewise.
27891         (s390_canonicalize_comparison): Swap operands if necessary.
27892         (s390_expand_vec_compare_scalar): Expand DFmode compare using
27893         single element vector instructions.
27894         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
27895         (s390_branch_condition_mask): Generate CC masks for the new modes.
27896         * config/s390/s390.md (v0, vf, vd): New mode attributes.
27897         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
27898         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
27899         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
27900         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
27901         (*extend<DSF:mode><BFP:mode>2): New insn definition.
27902         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
27903         (extend<DSF:mode><BFP:mode>2): Turn into expander.
27904         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
27905         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
27906         (sqrt<mode>2): Add vector instruction.
27907
27908 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27909
27910         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
27911         constraints.
27912         * config/s390/predicates.md (const0_operand, constm1_operand)
27913         (constable_operand): Accept vector operands.
27914         * config/s390/s390-modes.def: Add supported vector modes.
27915         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
27916         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
27917         (s390_bytemask_vector_p, s390_expand_vec_strlen)
27918         (s390_expand_vec_compare, s390_expand_vcond)
27919         (s390_expand_vec_init): Add prototypes.
27920         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
27921         (s390_vector_mode_supported_p): New function.
27922         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
27923         (s390_contiguous_bitmask_vector_p): New function.
27924         (s390_bytemask_vector_p): New function.
27925         (s390_split_ok_p): Vector regs don't work either.
27926         (regclass_map): Add VEC_REGS.
27927         (s390_legitimate_constant_p): Handle vector constants.
27928         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
27929         (legitimate_reload_vector_constant_p): New function.
27930         (s390_preferred_reload_class): Handle CONST_VECTOR.
27931         (s390_reload_symref_address):  Likewise.
27932         (s390_secondary_reload): Vector memory instructions only support
27933         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
27934         (s390_emit_ccraw_jump): New function.
27935         (s390_expand_vec_strlen): New function.
27936         (s390_expand_vec_compare): New function.
27937         (s390_expand_vcond): New function.
27938         (s390_expand_vec_init): New function.
27939         (s390_dwarf_frame_reg_mode): New function.
27940         (print_operand): Handle addresses with 'O' and 'R' constraints.
27941         (NR_C_MODES, constant_modes): Add vector modes.
27942         (s390_output_pool_entry): Handle vector constants.
27943         (s390_hard_regno_mode_ok): Handle vector registers.
27944         (s390_class_max_nregs): Likewise.
27945         (s390_cannot_change_mode_class): New function.
27946         (s390_invalid_arg_for_unprototyped_fn): New function.
27947         (s390_function_arg_vector): New function.
27948         (s390_function_arg_float): Remove size variable.
27949         (s390_pass_by_reference): Handle vector arguments.
27950         (s390_function_arg_advance): Likewise.
27951         (s390_function_arg): Likewise.
27952         (s390_return_in_memory): Vector values are returned in a VR if
27953         possible.
27954         (s390_function_and_libcall_value): Handle vector arguments.
27955         (s390_gimplify_va_arg): Likewise.
27956         (s390_call_saved_register_used): Consider the arguments named.
27957         (s390_conditional_register_usage): Disable v16-v31 for non-vec
27958         targets.
27959         (s390_preferred_simd_mode): New function.
27960         (s390_support_vector_misalignment): New function.
27961         (s390_vector_alignment): New function.
27962         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
27963         (TARGET_VECTOR_MODE_SUPPORTED_P)
27964         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
27965         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
27966         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
27967         (TARGET_VECTOR_ALIGNMENT): Define target macro.
27968         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
27969         (FIRST_PSEUDO_REGISTER): Increase value.
27970         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
27971         (VECTOR_REG_P): Define macros.
27972         (FIXED_REGISTERS, CALL_USED_REGISTERS)
27973         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
27974         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
27975         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
27976         Add vector registers.
27977         (CANNOT_CHANGE_MODE_CLASS): Call C function.
27978         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
27979         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
27980         memory.
27981         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
27982         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
27983         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
27984         (VR*_REGNUM): New constants.
27985         (ALL): New mode iterator.
27986         (INTALL): Remove mode iterator.
27987         Include vector.md.
27988         (movti): Implement TImode moves for VRs.
27989         Disable TImode splitter for VR targets.
27990         Implement splitting TImode GPR<->VR moves.
27991         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
27992         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
27993         reload<mode>_la_in, reload<mode>_la_out.
27994         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
27995         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
27996         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
27997         (mov<mode> SF SD): Prefer lder, lde for loading.
27998         Add lrl and strl instructions.
27999         Add vector instructions.
28000         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
28001         Call s390_expand_vec_strlen on z13.
28002         (*cc_to_int): Change predicate to nonimmediate_operand.
28003         (addti3): Rename to *addti3.  New expander.
28004         (subti3): Rename to *subti3.  New expander.
28005         * config/s390/vector.md: New file.
28006
28007 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28008
28009         * common/config/s390/s390-common.c (processor_flags_table): Add
28010         z13.
28011         * config.gcc: Add z13.
28012         * config/s390/s390-opts.h (enum processor_type): Add
28013         PROCESSOR_2964_Z13.
28014         * config/s390/s390.c (s390_adjust_priority): Check for
28015         PROCESSOR_2964_Z13.
28016         (s390_reorg): Likewise.
28017         (s390_sched_reorder): Likewise.
28018         (s390_sched_variable_issue): Likewise.
28019         (s390_loop_unroll_adjust): Likewise.
28020         (s390_option_override): Likewise. Default to -mvx when available.
28021         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
28022         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
28023         (TARGET_VX_ABI): Define macros.
28024         macros.
28025         (TARGET_DEFAULT): Add MASK_OPT_VX.
28026         * config/s390/s390.md ("cpu" attribute): Add z13.
28027         ("cpu_facility" attribute): Add vec.
28028         * config/s390/s390.opt (processor_type): Add z13.
28029         (mvx): New options.
28030         * doc/invoke.texi: Add z13 option for -march.
28031
28032 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28033
28034         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
28035         mode check to make sure that only scalar integer values are
28036         accepted.
28037
28038 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
28039
28040         * tree.c (verify_type_variant): Fix #undef.
28041         (gimple_canonical_types_compatible_p): Move here from lto.c
28042         (verify_type): Verify TYPE_CANONICAL compatibility.
28043         * tree.h (gimple_canonical_types_compatible_p): Declare.
28044
28045 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
28046
28047         PR middle-end/66199
28048         * tree.h (OMP_TEAMS_COMBINED): Define.
28049         * gimplify.c (enum gimplify_omp_var_data): Add
28050         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
28051         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
28052         (omp_notice_variable): Accept both ORT_TEAMS
28053         and ORT_COMBINED_TEAMS.  Don't recurse if
28054         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
28055         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
28056         GOVD_FIRSTPRIVATE.
28057         (omp_no_lastprivate): New function.
28058         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
28059         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
28060         notice_outer and set appropriate bits, otherwise make
28061         sure default(none) combined constructs won't complain.
28062         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
28063         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
28064         omp_no_lastprivate either remove the clause or turn it
28065         into OMP_CLAUSE_PRIVATE.
28066         (gimplify_omp_for): Fix up handling of implicit
28067         lastprivate or linear iterators.
28068         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
28069         ORT_COMBINED_TEAMS.
28070         * omp-low.c (lower_omp_for_lastprivate): For combined
28071         for simd use fd.loop.n2 from the for rather than simd.
28072
28073 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28074
28075         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
28076         instead of gen_rtx_raw_REG.
28077         (cris_expand_epilogue): Likewise.
28078         * config/microblaze/microblaze.c (microblaze_classify_address):
28079         Likewise.
28080         * config/sparc/sparc.md: Likewise.
28081
28082 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
28083
28084         * config/alpha/alpha.c (alpha_legitimize_reload_address)
28085         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
28086         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
28087         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
28088         Use CASE_CONST_SCALAR_INT.
28089         (print_operand) <case 'M'>: Use mode_width_operand to check the
28090         value of the constant.
28091         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
28092         * config/alpha/predicates.md (input_operand): Use general_operand
28093         instead of match_code as operand check.
28094         (symbolic_operand): Use match_code with subexpression digits.
28095         * config/alpha/constraints.md (Q): Ditto.
28096
28097 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28098
28099         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
28100
28101 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28102
28103         * config/s390/s390.c (s390_secondary_reload): Fix check for
28104         load/store relative.
28105
28106 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28107
28108         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
28109         alternative_mask to uint64_t.
28110
28111 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
28112
28113         PR tree-optimization/66187
28114         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
28115         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
28116         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
28117
28118 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
28119
28120         * diagnostic.c (diagnostic_report_current_module): Strengthen
28121         local "new_map" from const line_map * to
28122         const line_map_ordinary *.
28123         * genmatch.c (error_cb): Likewise for local "map".
28124         (output_line_directive): Likewise for local "map".
28125         * input.c (expand_location_1): Likewise for local "map".
28126         Pass NULL rather than &map to
28127         linemap_unwind_to_first_non_reserved_loc, since the value is never
28128         read from there, and the value written back not read from here.
28129         (is_location_from_builtin_token): Strengthen local "map" from
28130         const line_map * to const line_map_ordinary *.
28131         (dump_location_info): Strengthen locals "map" from
28132         line_map *, one to const line_map_ordinary *, the other
28133         to const line_map_macro *.
28134         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
28135         const line_map * to const line_map_macro *.
28136         (maybe_unwind_expanded_macro_loc): Add a call to
28137         linemap_check_macro when writing to the "map" field of the
28138         loc_map_pair.
28139         Introduce local const line_map_ordinary * "ord_map", using it in
28140         place of "map" in the part of the function where we know we have
28141         an ordinary map.  Strengthen local "m" from const line_map * to
28142         const line_map_ordinary *.
28143
28144 2015-05-19  Nick Clifton  <nickc@redhat.com>
28145
28146         PR target/66156
28147         * config/msp430/msp430.md (zero_extendhisi2): Add support for
28148         separate source and destination registers.
28149
28150 2015-05-19  Richard Biener  <rguenther@suse.de>
28151
28152         PR tree-optimization/66165
28153         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
28154         for no load permutation.
28155
28156         PR tree-optimization/66185
28157         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
28158         when building the SLP node from scalars.
28159
28160 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
28161             Tristan Gingold  <gingold@adacore.com>
28162
28163         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
28164         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
28165         (expand_stack_restore): Call record_new_stack_level.
28166         (expand_stack_save): Do not call do_pending_stack_adjust.
28167         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
28168         * calls.c (expand_call): Call record_new_stack_level for alloca.
28169         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
28170         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
28171         (update_sjlj_context): New global function.
28172         * except.h (update_sjlj_context): Declare.
28173         * explow.c (record_new_stack_level): New global function.
28174         (allocate_dynamic_stack_space): Call record_new_stack_level.
28175         * explow.h (record_new_stack_level): Declare.
28176         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
28177         * cfgrtl.c (duplicate_insn_chain): Likewise.
28178
28179 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28180
28181         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
28182         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
28183         STACK_GROWS_DOWNWARD as normal if.
28184         (expand_call): Likewise.
28185
28186 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
28187
28188         PR target/54236
28189         * config/sh/sh.md (*round_int_even): New insn_and_split and
28190         accompanying new unnamed split.
28191
28192 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28193
28194         * bitmap.c (bitmap_set_range): Handle count==1 specially.
28195         (bitmap_clear_range): Likewise.
28196         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
28197         bitmap_set_range unconditionally.
28198         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
28199         * df-scan.c (df_mark_reg): Likewise.
28200         * haifa-sched.c (setup_ref_regs): Likewise.
28201         * sched-rgn.c (update_live_1): Likewise.
28202
28203 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28204
28205         * regs.h (END_HARD_REGNO): Delete.
28206         (END_REGNO): Move to...
28207         * rtl.h: ...here.
28208         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
28209         * caller-save.c (mark_set_regs): Likewise.
28210         * combine.c (move_deaths, distribute_notes): Likewise.
28211         * cse.c (invalidate, invalidate_for_call): Likewise.
28212         * df-scan.c (df_ref_record): Likewise.
28213         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
28214         (record_last_reg_set_info): Likewise.
28215         * reg-stack.c (convert_regs_exit): Likewise.
28216         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
28217         * resource.c (update_live_status): Likewise.
28218         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
28219
28220 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28221
28222         * rtl.h (reg_info): Add an nregs field.
28223         (REG_NREGS): Use it.
28224         (SET_REGNO_RAW): Delete.
28225         (set_regno_raw): New function.
28226         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
28227         (END_REGNO): Redefine in terms of REG_NREGS.
28228         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
28229         SET_REGNO_RAW.
28230         * emit-rtl.c (set_mode_and_regno): Likewise.
28231         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
28232         instead of SET_REGNO_RAW.
28233
28234 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28235
28236         * rtl.h (PUT_MODE_RAW): New macro.
28237         (PUT_REG_NOTE_KIND): Use it.
28238         (set_mode_and_regno): Declare.
28239         (gen_raw_REG): Change regno to "unsigned int".
28240         (gen_rtx_REG): Change "unsigned" to "unsigned int".
28241         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
28242         use set_mode_and_regno to change the mode of registers.
28243         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
28244         * emit-rtl.c (set_mode_and_regno): New function.
28245         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
28246         * caller-save.c (reg_save_code): Use set_mode_and_regno.
28247         * expr.c (init_expr_target): Likewise.
28248         * ira.c (setup_prohibited_mode_move_regs): Likewise.
28249         * postreload.c (reload_cse_simplify_operands): Likewise.
28250
28251 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28252
28253         * caller-save.c (init_caller_save): Use word_mode and
28254         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
28255         * expr.c (init_expr_target): Likewise.
28256         * ira.c (setup_prohibited_mode_move_regs): Likewise.
28257         * postreload.c (reload_cse_regs_1): Likewise.
28258
28259 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28260
28261         * rtl.def (REG): Change format to "r".
28262         * rtl.h (rtunion): Remove rt_reg.
28263         (reg_info): New structure.
28264         (rtx_def): Add reg field to main union.
28265         (X0REGATTR): Delete.
28266         (REG_CHECK): New macro.
28267         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
28268         * rtl.c (rtx_format): Document "r".
28269         (rtx_code_size): Handle REG specially.
28270         * gengenrtl.c (special_format): Return true for formats
28271         that include 'r'.
28272         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
28273         Deal with REG_ATTRS after the field loop.
28274         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
28275         * expmed.c (init_expmed): Call gen_raw_REG instead of
28276         gen_rtx_raw_REG.
28277         * expr.c (init_expr_target): Likewise.
28278         * regcprop.c (maybe_mode_change): Likewise.
28279         * varasm.c (make_decl_rtl): Likewise.
28280         * final.c (leaf_renumber_regs_insn): Return early after
28281         handling REGs.
28282         * genemit.c (gen_exp): Handle 'r' fields.
28283         * genpeep.c (match_rtx): Likewise.
28284         * gensupport.c (subst_pattern_match): Likewise.
28285         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
28286         (alter_constraints, subst_dup): Likewise.
28287         * read-rtl.c (read_rtx_code): Likewise.
28288         * print-rtl.c (print_rtx): Likewise.
28289         * genrecog.c (find_operand, find_matching_operand): Likewise.
28290         (validate_pattern, match_pattern_2): Likewise.
28291         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
28292         (rtx_test::regno_field): New function.
28293         (operator ==, safe_to_hoist_p, transition_parameter_type)
28294         (parameter_type_string, print_parameter_value)
28295         (print_nonbool_test, print_test): Handle new enum values.
28296         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
28297         * lra-constraints.c (operands_match_p): Likewise.
28298
28299 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28300
28301         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
28302         Change type of new_regno to unsigned int.
28303         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
28304         new_regno to unsigned int.
28305         (df_ref_change_reg_with_loc): Remove old_regno parameter.
28306         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
28307         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
28308         (SET_REGNO_RAW): Add space after ",".
28309
28310 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28311
28312         * rtl.h (REG_NREGS): New macro
28313         * alias.c (record_set): Use it.
28314         * cfgcleanup.c (mark_effect): Likewise.
28315         * combine.c (likely_spilled_retval_1): Likewise.
28316         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
28317         (move_deaths, distribute_notes): Likewise.
28318         * cselib.c (cselib_record_set): Likewise.
28319         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
28320         * df-scan.c (df_mark_reg): Likewise.
28321         * dse.c (look_for_hardregs): Likewise.
28322         * dwarf2out.c (reg_loc_descriptor): Likewise.
28323         (multiple_reg_loc_descriptor): Likewise.
28324         * expr.c (write_complex_part, read_complex_part): Likewise.
28325         (emit_move_complex): Likewise.
28326         * haifa-sched.c (setup_ref_regs): Likewise.
28327         * ira-lives.c (mark_hard_reg_live): Likewise.
28328         * lra.c (lra_set_insn_recog_data): Likewise.
28329         * mode-switching.c (create_pre_exit): Likewise.
28330         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
28331         (reload_combine_recognize_pattern): Likewise.
28332         (reload_combine_note_use, move2add_record_mode): Likewise.
28333         (reload_cse_move2add): Likewise.
28334         * reg-stack.c (subst_stack_regs_pat): Likewise.
28335         * regcprop.c (kill_value, copy_value): Likewise.
28336         (copyprop_hardreg_forward_1): Likewise.
28337         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
28338         (build_def_use): Likewise.
28339         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
28340         (deps_analyze_insn): Likewise.
28341         * sched-rgn.c (check_live_1, update_live_1): Likewise.
28342         * sel-sched.c (count_occurrences_equiv): Likewise.
28343         * valtrack.c (dead_debug_insert_temp): Likewise.
28344
28345 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
28346
28347         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
28348         * dse.c (note_add_store): Likewise.
28349         * ira-lives.c (mark_hard_reg_dead): Likewise.
28350         * loop-invariant.c (mark_reg_store): Likewise.
28351         (mark_reg_death): Likewise.
28352         * postreload.c (reload_combine): Likewise.
28353         (reload_combine_note_store): Likewise.
28354         (reload_combine_note_use): Likewise.
28355         * recog.c (peep2_reg_dead_p): Likewise.
28356
28357 2015-05-19  Alan Modra  <amodra@gmail.com>
28358
28359         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
28360         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
28361         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
28362         unused predicates.
28363         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
28364         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
28365         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
28366         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
28367
28368 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
28369
28370         * config/mips/mips.md (JOIN_MODE): New mode iterator.
28371         (join2_load_Store<JOIN_MODE:mode>): New pattern.
28372         (join2_loadhi): Likewise.
28373         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
28374         load-load and store-stores.
28375         * config/mips/mips.opt (mload-store-pairs): New option.
28376         (TARGET_LOAD_STORE_PAIRS): New macro.
28377         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
28378         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
28379         * config/mips/mips.c (mips_load_store_bonding_p): New function.
28380
28381 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
28382
28383         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
28384         explicit swaps.
28385         * dojump.c (do_compare_rtx_and_jump): Likewise.
28386         * expmed.c (emit_store_flag_1): Likewise.
28387         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
28388         * final.c (sprint_ul): Use std::reverse for reversing a string.
28389         * fold-const.c (extract_muldiv_1): Use std::swap.
28390         * genmodes.c (emit_mode_int_n): Likewise.
28391         * ifcvt.c (dead_or_predicable): Likewise.
28392         * ira-build.c (ira_merge_live_ranges): Likewise.
28393         (swap_allocno_copy_ends_if_necessary): Likewise.
28394         * ira.c (ira_setup_alts): Likewise.
28395         * loop-iv.c (iv_analyze_expr): Likewise.
28396         (implies_p): Likewise.
28397         (canon_condition): Likewise.
28398         * lra-constraints.c (swap_operands): Likewise.
28399         * lra-lives.c (lra_merge_live_ranges): Likewise.
28400         * omega.c (swap): Remove.
28401         (bswap): Remove.
28402         (omega_unprotect_1): Use std::swap.
28403         (omega_solve_geq): Likewise.
28404         * optabs.c (expand_binop_directly): Likewise.
28405         (expand_binop): Likewise.
28406         (emit_conditional_move): Likewise.
28407         (emit_conditional_add): Likewise.
28408         * postreload.c (reload_cse_simplify_operands): Likewise.
28409         * reg-stack.c (emit_swap_insn): Likewise.
28410         (swap_to_top): Likewise.
28411         (compare_for_stack_reg): Likewise.
28412         (subst_asm_stack_regs): Likewise.
28413         * reload.c (find_reloads): Likewise.
28414         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
28415         * sel-sched.c (invoke_reorder_hooks): Likewise.
28416         (create_block_for_bookkeeping): Likewise.
28417         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
28418         (lambda_matrix_right_hermite): Use std::swap.
28419         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
28420         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
28421         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
28422         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
28423         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
28424         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
28425         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
28426         * tree-vrp.c (compare_ranges): Likewise.
28427         * var-tracking.c (add_with_sets): Likewise.
28428         (vt_find_locations): Likewise.
28429
28430 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
28431
28432         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
28433         pie executables.
28434         (FBSD_ENDFILE_SPEC): Likewise.
28435         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
28436         config/freebsd-spec.h.
28437         (ENDFILE_SPEC): Likewise.
28438
28439 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
28440             Richard Henderson  <rth@redhat.com>
28441
28442         PR target/57032
28443         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
28444         Check for a memory location that is not a reference (using an AND)
28445         to an unaligned location here.
28446         * config/alpha/predicates.md (normal_memory_operand): Remove.
28447
28448 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
28449
28450         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
28451         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
28452
28453 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
28454
28455         * config/mips/mips.c (micromips_globals): New variable.
28456         (mips_set_compression_mode): Save and reinitialize target-dependent
28457         state for microMIPS.
28458
28459 2015-05-18  Martin Liska  <mliska@suse.cz>
28460
28461         * dbgcnt.def: Add new counter.
28462         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
28463
28464 2015-05-18  Martin Liska  <mliska@suse.cz>
28465
28466         * dbgcnt.def: Sort counters.
28467         * opts.c (common_handle_option): Do not compile if
28468         -fdbg-cnt-list is enabled.
28469
28470 2015-05-18  Tom de Vries  <tom@codesourcery.com>
28471
28472         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
28473         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
28474         address operator to va_list operand.
28475         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
28476         unconditionally.
28477         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
28478         operand.
28479         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
28480         * config/s390/s390.c (s390_gimplify_va_arg): Same.
28481         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
28482
28483 2015-05-18  Tom de Vries  <tom@codesourcery.com>
28484
28485         * tree-ssa-tail-merge.c: Fix whitespace.
28486
28487 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
28488
28489         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
28490         cortex-a17, and cortex-a17.cortex-a7.
28491
28492 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
28493
28494         PR target/54236
28495         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
28496
28497 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
28498
28499         PR target/66174
28500         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
28501         QImode inner modes for TARGET_AVX512BW.  Force mask operand
28502         to a register for AVX512F modes.
28503
28504 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
28505
28506         * toplev.c (emit_debug_global_declarations): Do not output debug info
28507         when doing slim LTO objects.
28508
28509 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
28510
28511         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
28512         odr_types_equivalent_p): Declare.
28513         (odr_type_p): Use gcc_checking_assert.
28514         (type_in_anonymous_namespace_p) Declare.
28515         (type_with_linkage_p): Declare.
28516         * common.opt (Wlto-type-mismatch): New warning.
28517         * ipa-devirt.c (compound_type_base): New function.
28518         (odr_or_derived_type_p): New function.
28519         (odr_types_equivalent_p): New function.
28520         (add_type_duplicate): Simplify.
28521         (type_with_linkage_p): Add hack to prevent false positives on C types
28522         (type_in_anonymous_namespace_p): Likewise.
28523         * tree.c (need_assembler_name_p): Use type_with_linkage.
28524         * tree.h (type_in_anonymous_namespace_p): Remove.
28525         * doc/invoke.texi (-Wlto-type-mismatch): Document
28526
28527 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
28528
28529         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
28530         (verify_type): Verify STRING_FLAG.
28531
28532 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28533
28534         PR fortran/44054
28535         * tree-pretty-print.c (percent_K_format): Replace locus pointer
28536         with accessor function.
28537         * tree-diagnostic.c (diagnostic_report_current_function): Use
28538         diagnostic_location function.
28539         (maybe_unwind_expanded_macro_loc): Likewise.
28540         (virt_loc_aware_diagnostic_finalizer): Likewise.
28541         (default_tree_printer): Replace locus pointer with accessor function.
28542         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
28543         (diagnostic_set_info_translated): Initialize second location.
28544         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
28545         (diagnostic_show_locus): Handle two locations. Call
28546         diagnostic_print_caret_line.
28547         (diagnostic_print_caret_line): New.
28548         (default_diagnostic_starter): Use diagnostic_location function.
28549         (diagnostic_report_diagnostic): Use diagnostic_location function.
28550         (verbatim): Do not set text.locus.
28551         * diagnostic.h (struct diagnostic_info): Remove location field.
28552         (struct diagnostic_context): Make caret_chars an array of two.
28553         (diagnostic_location): New inline.
28554         (diagnostic_expand_location): Handle two locations.
28555         (diagnostic_same_line): New inline.
28556         (diagnostic_print_caret_line): Declare.
28557         (CARET_LINE_MARGIN): New constant.
28558         * pretty-print.c (pp_printf): Do not set text.locus.
28559         (pp_verbatim): Do not set text.locus.
28560         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
28561         (struct text_info): Replace locus pointer with locations
28562         array. Add accessor functions.
28563
28564 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
28565             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
28566
28567         PR target/65768
28568         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
28569         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
28570          large constants in register instead of splitting them.
28571
28572 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
28573
28574         PR target/66140
28575         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
28576         replacements in memory addresses.
28577         (get_unaligned_address): Ditto.
28578
28579 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
28580
28581         * config/ft32/*: New files for FT32 port.
28582         * doc/install.texi: Add FT32 information.
28583         * doc/invoke.texi: Add FT32 information.
28584         * doc/md.texi: Add FT32 information.
28585         * doc/contrib.texi: Self added.
28586
28587 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
28588
28589         PR tree-optimization/64454
28590         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
28591         (-1 - A -> ~A): Remove unnecessary condition.
28592
28593 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
28594
28595         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
28596         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
28597         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
28598
28599 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
28600
28601         * ipa-chkp.h (chkp_wrap_function): New.
28602         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
28603         (chkp_wrap_function_name): New.
28604         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
28605         to get wrapper name.
28606         * lto-cgraph.c: Include ipa-chkp.h.
28607         (input_cgraph_1): Avoid alias chain for wrappers.
28608
28609 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
28610
28611         PR middle-end/66134
28612         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
28613         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
28614
28615 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28616
28617         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
28618         (AARCH64_FL_SLOWMUL): Delete.
28619         (AARCH64_FL_CRC): Redefine to 1<<3.
28620         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
28621
28622 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28623
28624         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
28625         casting.
28626
28627 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
28628
28629         * config/alpha/alpha.md (extendqidi2): Use general_operand
28630         instead of some_operand for operand[1] predicate.
28631         (extendhidi2): Ditto.
28632         (cbranchdi4): Use general_operand instead of some_operand
28633         for operand[1] and operands[2] predicates.
28634         (cstoredi4): Ditto.
28635         * config/alpha/predicates.md (some_operand): Remove unused predicate.
28636         (some_ni_operand): Ditto.
28637
28638 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
28639
28640         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
28641         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
28642         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
28643         low part of the constant using alpha_emit_set_const_1.
28644         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
28645
28646 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
28647
28648         * varasm.c (output_constant_pool_1): Pass down alignment from
28649         constant pool entry's descriptor to output_constant_pool_2.
28650         (output_object_block): Add comment prior to call to
28651         output_constant_pool_1.
28652
28653 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
28654
28655         PR rtl-optimization/65862
28656         * target.def (ira_change_pseudo_allocno_class): New hook.
28657         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
28658         value of the hook.
28659         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
28660         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
28661         hook.
28662         * ira-costs.c (find_costs_and_classes): Call the hook and change
28663         classes when it is necessary.
28664         * doc/tm.texi: Update.
28665
28666 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
28667
28668         * config/i386/i386.md (sibcall_memory): Check that register with
28669         callee address is not also used as one of the arguments, instead
28670         of checking that it is not live after the sibcall.
28671         (sibcall_pop_memory): Ditto.
28672         (sibcall_value_memory): Ditto.
28673         (sibcall_value_pop_memory): Ditto.
28674
28675 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
28676
28677         * generic-match-head.c (types_match): Handle non-types.
28678         * gimple-match-head.c (types_match): Likewise.
28679         * match.pd: Remove unnecessary TREE_TYPE for types_match.
28680
28681 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
28682
28683         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
28684         (csneg3<mode>_insn): Enable expansion of pattern.
28685
28686 2015-05-14  Nick Clifton  <nickc@redhat.com>
28687
28688         * config/rl78/rl78.c (rl78_select_section): Select the correct
28689         default section based upon the category of the decl.
28690
28691 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
28692
28693         PR rtl-optimization/30967
28694         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
28695         destination mode for the cost of scc patterns.
28696
28697 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
28698
28699         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
28700         using SWIM248 mode iterator.
28701         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
28702         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
28703         for operand[2] constraint.
28704         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
28705
28706 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
28707
28708         PR middle-end/66133
28709         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
28710         make sure it is never noreturn, even when the task body does not
28711         return.
28712         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
28713         right before GIMPLE_OMP_RETURN.
28714         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
28715         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
28716         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
28717
28718 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28719
28720         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
28721         * tree-ssa-math-opts.c: Include params.h
28722         (pow_synth_sqrt_info): New struct.
28723         (representable_as_half_series_p): New function.
28724         (get_fn_chain): Likewise.
28725         (print_nested_fn): Likewise.
28726         (dump_fractional_sqrt_sequence): Likewise.
28727         (dump_integer_part): Likewise.
28728         (expand_pow_as_sqrts): Likewise.
28729         (gimple_expand_builtin_pow): Use above to attempt to expand
28730         pow as series of square roots.  Removed now unused variables.
28731
28732 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
28733
28734         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
28735         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
28736         Remove *p0 and *p1 arguments.  Rewrite function.
28737         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
28738         (alpha_split_const_mov): Update calls to alpha_extract_integer and
28739         alpha_emit_set_long_const.
28740         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
28741         (alpha_output_mi_thunk_osf): Ditto.
28742         * config/alpha/alpha.md (movti): Do not check operands[1]
28743         for CONST_DOUBLE.
28744
28745 2015-05-13  Richard Biener  <rguenther@suse.de>
28746
28747         PR tree-optimization/66129
28748         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
28749         commutative.
28750         (vect_schedule_slp_instance): Fix typo.
28751
28752 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
28753
28754         * common.opt (fdump-internal-locations): New option.
28755         * input.c: Include diagnostic-core.h.
28756         (get_end_location): New function.
28757         (write_digit): New function.
28758         (write_digit_row): New function.
28759         (dump_location_range): New function.
28760         (dump_labelled_location_range): New function.
28761         (dump_location_info): New function.
28762         * input.h (dump_location_info): New prototype.
28763         * toplev.c (compile_file): Handle flag_dump_locations.
28764
28765 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
28766
28767         * gimple-expr.h (is_gimple_constant): Reorder.
28768         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
28769
28770 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
28771
28772         * combine.c (simplify_set): When generating a CC set, if the
28773         source already is in the correct mode, do not wrap it in a
28774         compare.  Simplify the rest of that code.
28775
28776 2015-05-13  Richard Biener  <rguenther@suse.de>
28777
28778         PR tree-optimization/66123
28779         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
28780         a taken edge.
28781
28782 2015-05-13  Richard Biener  <rguenther@suse.de>
28783
28784         PR middle-end/66110
28785         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
28786         specially.
28787         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
28788
28789 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
28790
28791         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
28792         * aclocal.m4: Regenerated with automake-1.11.6.
28793
28794 2015-05-13  Tom de Vries  <tom@codesourcery.com>
28795
28796         PR tree-optimization/66010
28797         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
28798         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
28799         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
28800         and rval based on do_deref.
28801
28802 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
28803
28804         PR target/65103
28805         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
28806         link time constants into adress expressions and therefore set
28807         their cost to 0.
28808
28809 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
28810
28811         PR target/66112
28812         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
28813         Use SWI248 iterator instead of SWI.
28814         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
28815         Use eq_attr "alternative" "0" instead of match_test in
28816         length_immediate attribute computation.
28817         (*mulvhi4, *mulvhi4_1): New define_insns.
28818
28819         PR target/66112
28820         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
28821         SIGNED to get precision of non-negative value.
28822
28823 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
28824
28825         PR target/66048
28826         * function.c (diddle_return_value_1): Process bounds first.
28827         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
28828         register.
28829
28830 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28831
28832         PR rtl-optimization/64616
28833         * loop-invariant.c (can_move_invariant_reg): New.
28834         (move_invariant_reg): Call above new function to decide whether
28835         instruction can just be moved, skipping creation of temporary
28836         register.
28837
28838 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
28839
28840         PR target/pr66047.c
28841         * i386.c (ix86_function_sseregparm): Only return -1 if local function
28842         with implied regparm is called from -mno-sse function.
28843         (init_cumulative_args): Output error if ix86_function_sseregparm
28844         return -1 and SSE register would be needed.
28845         (function_arg_advance_32): Likewise.
28846         (function_arg_32): Likewise.
28847         * i386.h (ix86_args): Add decl field.
28848
28849 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
28850
28851         PR ipa/65873
28852         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
28853         inlines across optimization boundary.
28854
28855 2015-05-12  Jason Merrill  <jason@redhat.com>
28856
28857         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
28858         string literal and macro name.
28859
28860 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
28861
28862         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
28863         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
28864         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
28865
28866 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
28867
28868         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
28869         (-Wmisleading-indentation): New option.
28870         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
28871
28872 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
28873
28874         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
28875         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
28876         (alpha_extract_integer): Ditto.
28877         (alpha_legitimate_constant_p): Ditto.
28878         (alpha_split_tmode_pair): Ditto.
28879         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
28880         (alpha_expand_mov): Ditto.
28881         (print_operand): Remove handling of 'H' modifier.
28882         <case 'm'>: Remove CONST_DOUBLE handling.
28883         (summarize_insn): Handle CONST_WIDE_INT.
28884         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
28885         (anddi3): Ditto.
28886         (movti): Handle CONST_WIDE_INT.
28887         * config/alpha/constraints.md ('H'): Remove constraint definition.
28888         ('G'): Do not match MODE_FLOAT class.
28889         * config/alpha/predicates.md (const0_operand): Also match
28890         const_wide_int.
28891         (non_add_const_operand): Ditto.
28892         (non_zero_const_operand): Ditto.
28893         (some_operand): Ditto.
28894         (input_operand): Ditto.  Handle CONST_WIDE_INT.
28895         (and_operand): Do not match const_double.
28896         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
28897
28898 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
28899
28900         PR target/65697
28901         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
28902         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
28903         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
28904         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
28905         is_mm_seq_cst, is_mm_sync): New accessor functions.
28906         * builtins.c (expand_builtin_sync_operation,
28907         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
28908         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
28909         (get_memmodel,  expand_builtin_atomic_compare_exchange,
28910         expand_builtin_atomic_load, expand_builtin_atomic_store,
28911         expand_builtin_atomic_clear): Use new accessor routines.
28912         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
28913         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
28914         (maybe_emit_sync_lock_test_and_set): Use new accessors and
28915         MEMMODEL_SYNC_ACQUIRE.
28916         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
28917         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
28918         expand_atomic_store): Use new accessors.
28919         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
28920         * tsan.c (instrument_builtin_call): Update check for memory model beyond
28921         final enum to use MEMMODEL_LAST.
28922         * c-family/c-common.c: Use new accessor for memmodel_base.
28923         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
28924         accessors.
28925         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
28926         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
28927         mem_thread_fence, *dmb): Likewise.
28928         * config/alpha/alpha.c (alpha_split_compare_and_swap,
28929         alpha_split_compare_and_swap_12): Likewise.
28930         * config/arm/arm.c (arm_expand_compare_and_swap,
28931         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
28932         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
28933         atomic_loaddi): Likewise.
28934         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
28935         Likewise.
28936         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
28937         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
28938         use new accessors.
28939         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
28940         atomic_store<mode>, atomic_compare_and_swap<mode>,
28941         atomic_exchange<mode>): Use new accessors.
28942         * config/mips/mips.c (mips_process_sync_loop): Likewise.
28943         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
28944         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
28945         rs6000_post_atomic_barrier): Add new cases.
28946         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
28947         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
28948         (atomic_load<mode>): Add new cases and use new accessors.
28949         (store_quadpti): Add new cases.
28950         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
28951         accessors.
28952         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
28953         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
28954         model, not 8.
28955
28956 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
28957
28958         * ipa-devirt.c (type_with_linkage_p): New function.
28959         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
28960         type has linkage.
28961         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
28962         (can_be_name_hashed_p): Simplify.
28963         (hash_odr_name): Check that type has linkage before checking if it is
28964         anonymous.
28965         (types_same_for_odr): Likewise.
28966         (odr_name_hasher::equal): Likewise.
28967         (odr_subtypes_equivalent_p): Likewise.
28968         (warn_types_mismatch): Likewise.
28969         (get_odr_type): Likewise.
28970         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
28971         * ipa-utils.h (odr_type_p): Move offline.
28972         * tree.c (need_assembler_name_p): Fix handling of types
28973         without linkages.
28974         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
28975
28976 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
28977
28978         * timevar.c (timevar_enable): Delete in favor of...
28979         (g_timer): New global.
28980         (struct timevar_def): Move to timevar.h inside class timer.
28981         (struct timevar_stack_def): Likewise.
28982         (timevars): Delete global in favor of field "m_timevars" within
28983         class timer in timevar.h
28984         (stack): Likewise, in favor of field "m_stack".
28985         (unused_stack_instances): Likewise, in favor of field
28986         "m_unused_stack_instances".
28987         (start_time): Likewise, in favor of field "m_start_time".
28988         (get_time): Eliminate check for timevar_enable.
28989         (timer::timer): New function, built from part of timevar_init.
28990         (timevar_init): Rewrite idempotency test from using
28991         "timevar_enable" bool to using dynamic allocation of "g_timer".
28992         Move rest of implementation into timer's constructor.
28993         (timevar_push_1): Rename to...
28994         (timer::push): ...this, adding "m_" prefixes to variables that
28995         are now fields of timer.
28996         (timevar_pop_1): Likewise, rename to...
28997         (timer::pop): ...this, and add "m_" prefixes.
28998         (timevar_start): Replace test for "timevar_enable" with one for
28999         "g_timer", and move bulk of implementation to...
29000         (timer::start): ...here, adding "m_" prefixes.
29001         (timevar_stop): Likewise, from here...
29002         (timer::stop): ...to here.
29003         (timevar_cond_start): Likewise, from here...
29004         (timer::cond_start): ...to here.
29005         (timevar_cond_stop): Likewise, from here...
29006         (timer::cond_stop): ...to here.
29007         (validate_phases): Rename to...
29008         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
29009         locals "total" and "tv" const.
29010         (timevar_print): Rename to...
29011         (timer::print): ...this, and add "m_" prefixes.  Make locals
29012         "total" and "tv" const.  Eliminate test for timevar_enable.
29013         * timevar.h (timevar_enable): Eliminate.
29014         (g_timer): New declaration.
29015         (timevar_push_1): Eliminate.
29016         (timevar_pop_1): Eliminate.
29017         (timevar_print): Eliminate.
29018         (class timer): New class.
29019         (timevar_push): Rewrite to use g_timer.
29020         (timevar_pop): Likewise.
29021         * toplev.c (toplev::~toplev): Likewise.
29022
29023 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
29024
29025         * arm-protos.h (arm_sched_autopref): Delete.
29026         (tune_params): Re-organize, use enums for flag values.
29027         (FUSE_OPS): New macro.
29028         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
29029         (ARM_PREFETCH_BENEFICIAL): Likewise.
29030         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
29031         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
29032         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
29033         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
29034         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
29035         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
29036         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
29037         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
29038         format.
29039         (arm_option_override, thumb2_reorg, arm_print_tune_info)
29040         (aarch_macro_fusion_pair_p): Update uses of current_tune.
29041         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
29042
29043 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
29044
29045         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
29046         "break".
29047
29048 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
29049             Sandra Loosemore <sandra@codesourcery.com>
29050
29051         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
29052         value.
29053         (REG_CLASS_NAMES): Add "IJMP_REGS".
29054         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
29055         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
29056         use new "c" register constraint.
29057         * config/nios2/constraint.md (c): New register constraint
29058         corresponding to IJMP_REGS.
29059
29060 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
29061
29062         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
29063         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
29064         define_splits): Delete, revamp, transmogrify into ...
29065         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
29066         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
29067         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
29068         New.
29069
29070 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
29071
29072         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
29073         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
29074
29075 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
29076
29077         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
29078         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
29079         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
29080         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
29081         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
29082         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
29083         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
29084         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
29085         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
29086         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
29087         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
29088         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
29089         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
29090         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
29091         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
29092         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
29093         and 30 corresponding splitters): Delete.
29094
29095 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
29096
29097         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
29098         zero_extract.
29099
29100 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
29101
29102         * combine.c (recog_for_combine_1): New function, factored out
29103         from recog_for_combine.
29104         (change_zero_ext): New function.
29105         (recog_for_combine): If recog fails, try again with the pattern
29106         modified by change_zero_ext; if that still fails, restore the
29107         pattern.
29108
29109 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
29110
29111         * combine.c (get_undo_marker): New function.
29112         (undo_to_marker): New function, largely factored out from ...
29113         (undo_all): ... this.  Adjust.
29114
29115 2015-05-12  Richard Biener  <rguenther@suse.de>
29116
29117         PR tree-optimization/66101
29118         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
29119         fixup if we turn a loop exit edge to a fallthru edge.
29120
29121 2015-05-12  Richard Biener  <rguenther@suse.de>
29122
29123         PR tree-optimization/37021
29124         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
29125         (SLP_TREE_TWO_OPERATORS): New define.
29126         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
29127         SLP_TREE_TWO_OPERATORS.
29128         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
29129         SLP node.
29130         (vect_build_slp_tree): Adjust.
29131         (vect_analyze_slp_cost_1): Likewise.
29132         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
29133         emitting two vector stmts and mixing the results.
29134
29135 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
29136
29137         * call.c (print_z_candidates): Remove dead code.
29138
29139 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29140
29141         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
29142         and zEC12_simple_fp.
29143         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
29144         to 1.
29145
29146 2015-05-12  Tom de Vries  <tom@codesourcery.com>
29147
29148         PR tree-optimization/66010
29149         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
29150         ifn_va_arg.
29151         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
29152         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
29153         va_lists are passed, and remove corresponding handling.
29154         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
29155         do_deref argument to ifn_va_arg.
29156         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
29157         ifn_va_arg.
29158
29159 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29160
29161         PR target/65955
29162         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
29163         REG before taking its REGNO.
29164
29165 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29166
29167         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
29168         rsp->sign_bit_copies and rsp->nonzero_bits into ...
29169         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
29170         present to get more accurate information about the number of sign bit
29171         copies and non zero bits.
29172
29173 2015-05-12  Richard Biener  <rguenther@suse.de>
29174
29175         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
29176         do not allow unrolling.
29177
29178 2015-05-11  Richard Henderson  <rth@redhat.com>
29179
29180         * config/i386/i386-modes.def (CCP): New.
29181         * config/i386/i386.c (put_condition_code): Handle it.
29182         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
29183
29184 2015-05-11  Richard Henderson  <rth@redhat.com>
29185
29186         * target.def (md_asm_clobbers): Replace with...
29187         (md_asm_adjust): this.
29188         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
29189         (TARGET_MD_ASM_ADJUST): New.
29190         * tm.texi: Rebuild.
29191         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
29192         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
29193         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
29194
29195         * cfgexpand.c (check_operand_nalternatives): Accept vector of
29196         constraints instead of lists of outputs and inputs.
29197         (expand_asm_stmt): Save and restore input_location around the
29198         body of the function.  Move asm data into vectors instead of
29199         building tree lists.  Generate cleanup sequences as needed,
29200         rather than waiting til the end.  Use new md_asm_adjust hook.
29201
29202         * config/vxworks.c: Include vec.h before target.h.
29203         * gimple.c: Likewise.
29204         * incpath.c: Likewise.
29205         * mode-switching.c: Likewise.
29206
29207         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
29208         (cris_md_asm_adjust): this.
29209         (TARGET_MD_ASM_CLOBBERS): Remove.
29210         (TARGET_MD_ASM_ADJUST): New.
29211         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
29212         (ix86_md_asm_adjust): this.
29213         (TARGET_MD_ASM_CLOBBERS): Remove.
29214         (TARGET_MD_ASM_ADJUST): New.
29215         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
29216         (mn10300_md_asm_adjust): this.
29217         (TARGET_MD_ASM_CLOBBERS): Remove.
29218         (TARGET_MD_ASM_ADJUST): New.
29219         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
29220         (rs6000_md_asm_adjust): this.
29221         (TARGET_MD_ASM_CLOBBERS): Remove.
29222         (TARGET_MD_ASM_ADJUST): New.
29223         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
29224         (visium_md_asm_adjust): this.
29225         (TARGET_MD_ASM_CLOBBERS): Remove.
29226         (TARGET_MD_ASM_ADJUST): New.
29227
29228 2015-05-11  Richard Henderson  <rth@redhat.com>
29229
29230         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
29231         if noutputs is zero.
29232         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
29233
29234         * cfgexpand.c (expand_asm_operands): Merge into...
29235         (expand_asm_stmt): ... here.
29236
29237         * cfgexpand.c (expand_asm_operands): Don't call
29238         resolve_asm_operand_names.
29239         * stmt.c (resolve_asm_operand_names): Clarify block comment.
29240
29241 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
29242
29243         * dwarf2out.c (gen_member_die): Sanity check that we access
29244         TYPE_MAIN_VARIANT for TYPE_METHODS.
29245         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
29246         checking TYPE_METHODS.
29247         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
29248         if non-null.
29249         (build_distinct_type_copy): Clear TYPE_METHODS.
29250         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
29251         (verify_type): Allow TYPE_METHODS to be error_mark_node.
29252         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
29253
29254 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
29255
29256         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
29257         (emit_pattern_before_setloc): Likewise.
29258
29259 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
29260
29261         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
29262         for define_peephole2s.
29263         (get_peephole2_pattern): New function.
29264         (main): Use it.  Call validate_pattern.
29265
29266 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
29267
29268         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
29269         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
29270         (Last callee saved reg is different for AVR_TINY architecture)
29271
29272 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
29273
29274         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
29275         when looking for memory references.
29276
29277 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
29278
29279         PR target/65753
29280         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
29281         via function pointers.
29282
29283 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
29284
29285         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
29286         indirect call by forcing address into a pseudo with -fno-plt.
29287         * common.opt (flag_plt): New option.
29288         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
29289         ([-fno-plt]): Document.
29290
29291 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
29292
29293         PR bootstrap/66105
29294         * config/rs6000/option-defaults.h: Add space between string literal
29295         and macro name.
29296
29297 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29298
29299         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
29300         accross ARM targets.
29301
29302 2015-05-11  Christian Bruel  <christian.bruel@st.com>
29303
29304         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
29305         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
29306
29307 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
29308
29309         PR rtl-optimization/66076
29310         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
29311         Don't grow the heap array if it is already big enough from a
29312         previous iteration.
29313
29314 2015-05-11  Christian Bruel  <christian.bruel@st.com>
29315
29316         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
29317         (is_called_in_ARM_mode): Remove.
29318         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
29319         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
29320         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
29321          arm_declare_function_name.
29322
29323 2015-05-11  Christian Bruel  <christian.bruel@st.com>
29324
29325         * config/arm/arm.c (arm_option_override): Reoganized and split into :
29326         (arm_option_params_internal); New function.
29327         (arm_option_check_internal): New function.
29328         (arm_option_override_internal): New function.
29329         (thumb_code, thumb1_code): Remove.
29330         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
29331         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
29332         (thumb_code, thumb1_code): Remove.
29333         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
29334
29335 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
29336
29337         * config/alpha/alpha.c (alpha_emit_set_const_1)
29338         (alpha_emit_set_long_const, alpha_extract_integer)
29339         (alpha_legitimate_constant_p, alpha_split_const_mov)
29340         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
29341         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
29342         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
29343         HOST_WIDE_INT_1U.
29344         * config/alpha/predicates.md (mode_mask_operand): Do not match
29345         const_double RTX.
29346         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
29347         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
29348         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
29349         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
29350         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
29351
29352 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
29353
29354         PR target/65780
29355         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
29356         default_binds_local_p_2.
29357         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
29358         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
29359
29360 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
29361
29362         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
29363
29364 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
29365
29366         Patch by Richard Biener
29367         * coverage.c (coverage_obj_init): Delay building of type variant
29368         until the type is finished.
29369
29370 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
29371
29372         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
29373         mismatch between C and C++ type; compoare correctly ARG_TYPES
29374         for non-prototypes and output correctly parameter index for METHOD_TYPE.
29375         (odr_types_equivalent_p): Fix wording of warning about attributes;
29376         it is OK to match prototype and non-prototype.
29377
29378 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
29379
29380         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
29381         TYPE_ARG_TYPES list.
29382         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
29383         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
29384
29385 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
29386
29387         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
29388         * tree.h (is_lang_specific): Constify.
29389
29390 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
29391
29392         PR tree-optimization/64454
29393         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
29394         Rewrite.
29395
29396 2015-05-08  Jason Merrill  <jason@redhat.com>
29397
29398         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
29399         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
29400         config/darwin.h, config/darwin9.h, config/elfos.h,
29401         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
29402         config/microblaze/microblaze.h, config/mips/mips.h,
29403         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
29404         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
29405         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
29406         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
29407         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
29408         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
29409         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
29410         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
29411         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
29412         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
29413         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
29414         between string literal and macro name.
29415
29416 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29417
29418         * jump.c: Change argument types to rtx_insn *.
29419         * rtl.h: Adjust.
29420
29421 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29422
29423         * lra-constraints.c: Change argument type to rtx_insn *.
29424
29425 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29426
29427         * df-problems.c: Change argument type to rtx_insn *.
29428
29429 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29430
29431         * combine.c: Change argument type to rtx_insn *.
29432
29433 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29434
29435         * rtl.h: Adjust.
29436         * rtlanal.c: Change argument type to rtx_insn *.
29437
29438 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29439
29440         * sched-deps.c: Change argument types to rtx_insn *.
29441         * sched-int.h: Adjust.
29442
29443 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29444
29445         * dwarf2cfi.c: Change argument type to rtx_insn *.
29446
29447 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29448
29449         * ira.c (decrease_live_ranges_number): Changetype of local
29450         variable to rtx_insn *.
29451         * recog.c: Change argument types to rtx_insn *.
29452         * recog.h: Adjust.
29453
29454 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29455
29456         * reorg.c: Change argument types to rtx_insn *.
29457
29458 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29459
29460         * ira-color.c: Change argument types to rtx_insn *.
29461         * lra-eliminations.c: Likewise.
29462         * ira.h: Adjust.
29463
29464 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29465
29466         * gcse.c: Change argument types to rtx_insn *.
29467
29468 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29469
29470         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
29471
29472 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29473
29474         * emit-rtl.c (emit_debug_insn_before): Change argument type to
29475         rtx_insn *.
29476         * rtl.h: Adjust.
29477
29478 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29479
29480         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
29481         * rtl.h: Adjust.
29482
29483 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29484
29485         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
29486         * rtl.h: Adjust.
29487
29488 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29489
29490         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
29491         * rtl.h: Adjust.
29492
29493 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29494
29495         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
29496         * rtl.h: Adjust.
29497
29498 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29499
29500         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
29501         to rtx_insn *.
29502         * rtl.h: Adjust.
29503
29504 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29505
29506         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
29507         to rtx_insn *.
29508         * rtl.h: Likewise.
29509
29510 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29511
29512         * except.c (can_nonlocal_goto): Change type of argument to
29513         rtx_insn *.
29514         * rtl.h: Adjust.
29515
29516 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29517
29518         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
29519         * rtl.h: Adjust.
29520
29521 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29522
29523         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
29524         * cfgrtl.c (can_delete_label_p): Adjust.
29525         * rtl.h: likewise.
29526
29527 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29528
29529         * reorg.c (stop_search_p): Change argument to rtx_insn *.
29530
29531 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29532
29533         * except.c (make_reg_eh_region_note): Change argument to
29534         rtx_insn *.
29535         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
29536         * except.h: Adjust.
29537
29538 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
29539
29540         * mode-switching.c (commit_mode_sets): Change type of local
29541         variable from rtx to rtx_insn *.
29542
29543 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
29544
29545         * doc/install.texi (--enable-languages): Add missing jit and lto info.
29546         Add ^ to grep command.
29547         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
29548         arg to last gimple_simplify declaration.  Add missing gimple_build
29549         declaration for built-in function case with four tree args.
29550
29551 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
29552             Szabolcs Nagy  <szabolcs.nagy@arm.com>
29553
29554         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
29555         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
29556         (GNU_USER_DYNAMIC_LINKERN32): Update.
29557
29558 2015-05-08  Richard Biener  <rguenther@suse.de>
29559
29560         PR tree-optimization/66036
29561         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
29562         Handle strided group loads.
29563         (vect_verify_datarefs_alignment): Likewise.
29564         (vect_enhance_data_refs_alignment): Likewise.
29565         (vect_analyze_group_access): Likewise.
29566         (vect_analyze_data_ref_access): Likewise.
29567         (vect_analyze_data_ref_accesses): Likewise.
29568         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
29569         (vectorizable_load): Likewise.
29570
29571 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
29572
29573         * config/rs6000/rs6000.md: Require operand inequality in one
29574         of the peepholes.
29575
29576 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
29577             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
29578
29579         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
29580         from (set ...).
29581         * config/rx/rx.md (movdi, movdf): Likewise.
29582         Likewise for define_peephole2s.
29583
29584 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
29585
29586         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
29587         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
29588         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
29589         vtst_u64): Rewrite using gcc vector extensions.
29590
29591 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
29592
29593         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
29594         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
29595
29596 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
29597
29598         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
29599
29600 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
29601
29602         * config/glibc-stdint.h (OPTION_MUSL): Define.
29603         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
29604         Change the definition based on OPTION_MUSL for 64 bit targets.
29605         * config/linux.h (OPTION_MUSL): Redefine.
29606         * config/alpha/linux.h (OPTION_MUSL): Redefine.
29607         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
29608         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
29609
29610 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
29611             Szabolcs Nagy  <szabolcs.nagy@arm.com>
29612
29613         * config.gcc (LIBC_MUSL): New tm_defines macro.
29614         * config/linux.h (OPTION_MUSL): Define.
29615         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
29616         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
29617         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
29618         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
29619         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
29620         * config/linux.opt (mmusl): New option.
29621         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
29622         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
29623         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
29624         * configure: Regenerate.
29625
29626 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
29627             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
29628
29629         PR target/48904
29630         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
29631         * config/i386/knetbsd-gnu64.h: New file.
29632
29633 2015-05-08  Marek Polacek  <polacek@redhat.com>
29634
29635         PR c/64918
29636         * doc/invoke.texi: Document -Woverride-init-side-effects.
29637
29638 2015-05-07  Marek Polacek  <polacek@redhat.com>
29639
29640         PR c/65179
29641         * doc/invoke.texi: Document -Wshift-negative-value.
29642
29643 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
29644
29645         * gcov-tool.c (do_merge): Refactore to remove int ret.
29646         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
29647         !type == FUNC to type != FUNC.
29648         * reload.h (struct target_reload): Changee to type of
29649         x_spill_indirect_levels from bool to unsigned char.
29650
29651 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
29652
29653         * rtl.h (always_void_p): New function.
29654         * gengenrtl.c (always_void_p): Likewise.
29655         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
29656         with code foo are always VOIDmode.
29657         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
29658         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
29659         compare-elim.c, config/aarch64/aarch64.c,
29660         config/aarch64/aarch64.md, config/alpha/alpha.c,
29661         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
29662         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
29663         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
29664         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
29665         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
29666         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
29667         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
29668         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
29669         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
29670         config/ia64/vect.md, config/iq2000/iq2000.c,
29671         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
29672         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
29673         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
29674         config/mep/mep.c, config/microblaze/microblaze.c,
29675         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
29676         config/mn10300/mn10300.c, config/msp430/msp430.c,
29677         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
29678         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
29679         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
29680         config/rs6000/altivec.md, config/rs6000/rs6000.c,
29681         config/rs6000/rs6000.md, config/rs6000/vector.md,
29682         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
29683         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
29684         config/sh/sh.md, config/sh/sh_treg_combine.cc,
29685         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
29686         config/spu/spu.md, config/stormy16/stormy16.c,
29687         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
29688         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
29689         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
29690         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
29691         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
29692         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
29693         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
29694         var-tracking.c: Update calls accordingly.
29695
29696 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
29697
29698         PR middle-end/192
29699         PR middle-end/54303
29700         * varasm.c (function_mergeable_rodata_prefix): New function.
29701         (mergeable_string_section): Use it.
29702         (mergeable_constant_section): Use it.
29703
29704 2015-05-07  Jeff Law  <law@redhat.com>
29705
29706         PR target/39726
29707         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
29708         simplifier to narrow arithmetic.
29709         * generic-match-head.c: (types_match, single_use): New functions.
29710         * gimple-match-head.c: (types_match, single_use): New functions.
29711
29712 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
29713
29714         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
29715         rtx type.
29716
29717 2015-05-07  Richard Biener  <rguenther@suse.de>
29718
29719         PR tree-optimization/66002
29720         * passes.def: Schedule another pass_merge_phi after ifcombine, right
29721         before phiopt.
29722
29723 2015-05-07  Marek Polacek  <polacek@redhat.com>
29724             Martin Uecker  <uecker@eecs.berkeley.edu>
29725
29726         * doc/invoke.texi: Document -fsanitize=bounds-strict.
29727         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
29728         into SANITIZE_NONDEFAULT.
29729         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
29730
29731 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
29732
29733         PR target/66015
29734         * config/alpha/alpha.c (alpha_override_options_after_change): New.
29735         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
29736         (alpha_override_options): Move align_loops, align_jumps and
29737         align_functions handling into alpha_override_options_after_change.
29738
29739 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
29740             Chris Jones  <chrisj@nvidia.com>
29741             Joshua Conner  <jconner@nvidia.com>
29742
29743         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
29744         linking of crtfastmath.o.
29745         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
29746
29747 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
29748
29749         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
29750         (cstore<mode>4_unsigned_imm): New expander.
29751         (cstore<mode>4): Remove empty constraint strings.  Use the new
29752         expanders.
29753
29754 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
29755
29756         PR target/64208
29757         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
29758         alternatives.
29759
29760 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
29761
29762         * config/aarch64/geniterators.sh: Use standard BRE in sed.
29763
29764 2015-05-06  Alan Modra  <amodra@gmail.com>
29765
29766         PR target/66033
29767         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
29768         (UNSPEC_NOP): Define.
29769         (reload_vsx_from_gpr<mode>): Add missing DONE.
29770         (reload_gpr_from_vsx<mode>): Likewise.
29771         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
29772         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
29773
29774 2015-05-06  Christian Bruel  <christian.bruel@st.com>
29775
29776         PR target/66015
29777         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
29778         align_jumps, align_functions into aarch64_override_options_after_change.
29779
29780 2015-05-06  Richard Biener  <rguenther@suse.de>
29781
29782         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
29783         vect_transform_slp_perm_load to check if we support a permutation
29784         for basic-block vectorization.
29785
29786 2015-05-06  Nick Clifton  <nickc@redhat.com>
29787
29788         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
29789         used, even if it is not being used as a frame pointer.
29790
29791 2015-05-05  Jason Merrill  <jason@redhat.com>
29792
29793         * dwarf2out.c (gen_member_die): Don't emit anything for an
29794         anonymous class constructor.
29795
29796 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
29797
29798         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
29799         that it reflects the block structure.
29800         (afdo_propagate_edge): Likewise.
29801         (afdo_calculate_branch_prob): Likewise.
29802         (afdo_annotate_cfg): Likewise.
29803         * cfgcleanup.c (equal_different_set_p): Likewise.
29804         (try_crossjump_to_edge): Likewise.
29805         * cgraph.c (cgraph_node::verify_node): Likewise.
29806         * cgraphunit.c (expand_all_functions): Likewise.
29807         * config/i386/i386.c (ix86_expand_copysign): Likewise.
29808         (exact_dependency_1): Likewise.
29809         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
29810         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
29811         * gensupport.c (process_define_subst): Likewise.
29812         * lto-wrapper.c (merge_and_complain): Likewise.
29813         * tree-if-conv.c (if_convertible_bb_p): Likewise.
29814         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
29815         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
29816         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
29817         * tree-vect-loop.c (vectorizable_reduction): Likewise.
29818         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
29819         * tree-vect-stmts.c (vectorizable_shift): Likewise.
29820         * tree-vrp.c (vrp_finalize): Likewise.
29821         * tree.c (variably_modified_type_p): Likewise.
29822
29823 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
29824
29825         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
29826         on darwin12 and later.
29827         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
29828         file to pass -rdynamic on darwin12 and later.
29829         * config/darwin.opt (rdynamic): Add.
29830
29831 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
29832
29833         * doc/extend.texi (C Extensions): Update menu for moved Variable
29834         Attributes and Type Attributes sections.
29835
29836 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
29837
29838         PR target/65990
29839         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
29840         if rep_8byte stringop strategy was specified for 32-bit target.
29841
29842 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
29843
29844         PR target/65915
29845         * config/i386/i386.md (vector convert to float spltiter): Check for
29846         xmm16+, when splitting scalar float conversion.
29847         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
29848
29849 2015-05-05  Nick Clifton  <nickc@redhat.com>
29850
29851         * config/msp430/msp430-opts.h (enum msp430_regions): New.
29852         * config/msp430/msp430.c (msp430_override_options): Complain if
29853         -mcode-region or -mdata-region is used on a non MSP430X.
29854         (msp430_section_attr): New function.  Checks lower, upper and
29855         either attributes.
29856         (msp430_attribute_table): Add lower, upper and either.
29857         (gen_prefix): New function.  Generates a prefix for a section
29858         name.
29859         (msp430_select_section): New function - handles the choice of
29860         section for an object.  Takes into account memory region
29861         attributes and options.
29862         (msp430_function_section): Use gen_prefix.
29863         (TARGET_SECTION_TYPE_FLAGS): Define.
29864         (msp430_section_type_flags): New function.
29865         (TARGET_ASM_UNIQUE_SECTION): Define.
29866         (msp430_unique_section): New function.
29867         (msp430_output_aligned_decl_common): New function.
29868         (msp430_do_not_relax_short_jumps): New function.
29869         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
29870         Define.
29871         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
29872         * config/msp430/msp430-protos.h
29873         (msp430_do_not_relax_short_jumps): New prototype.
29874         (msp430_output_aligned_decl_common): New prototype.
29875         * config/msp430/msp430.md (length): New attribute.
29876         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
29877         then use a long code sequence for short jumps.
29878         * config/msp430/msp430.opt (mcode-region): New.
29879         (mdata-region): New.
29880         * doc/invoke.texi: Document new options.
29881         * doc/extend.texi: Document new attributes.
29882
29883 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
29884
29885         * config/aarch64-protos.h (struct cpu_branch_cost): New.
29886         (tune_params): Add field branch_costs.
29887         (aarch64_branch_cost): Declare.
29888         * config/aarch64.c (generic_branch_cost): New.
29889         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
29890         (cortexa53_tunings): Likewise.
29891         (cortexa57_tunings): Likewise.
29892         (thunderx_tunings): Likewise.
29893         (xgene1_tunings): Likewise.
29894         (aarch64_branch_cost): Define.
29895         * config/aarch64/aarch64.h (BRANCH_COST): Redefine.
29896
29897 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
29898
29899         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
29900         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
29901         * config/i386/i386.md: Ditto.
29902         * config/i386/winnt.c: Ditto.
29903
29904 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
29905
29906         * doc/extend.texi (__atomic Builtins): Move implementation details
29907         to the end of the description, rewrite opening paragraphs, state
29908         difference with __sync builtins, state C11/C++11 assumptions,
29909         weaken itemized descriptions, add explanation of memory model
29910         behaviour, expand description of compare-exchange, simplify text.
29911
29912 2015-05-05  Renlin Li  <renlin.li@arm.com>
29913
29914         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
29915
29916 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
29917
29918         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
29919         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
29920         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
29921         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
29922         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
29923         * configure: Regenerate.
29924         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
29925         * doc/install.texi (aarch64*-*-*): Document new
29926         --enable-fix-cortex-a53-843419 option.
29927         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
29928         and -mno-fix-cortex-a53-843419 options.
29929
29930 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
29931
29932         PR target/65871
29933         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
29934
29935 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
29936
29937         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
29938         fix overactive TYPE_MIN_VALUE check and add FIXME for type
29939         compatibility problems.
29940
29941 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
29942
29943         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
29944         constraints.
29945         (cbranchsi4_reg): New.
29946         * config/microblaze/microblaze.c
29947         (microblaze_expand_conditional_branch_reg): New.
29948         * config/microblaze/microblaze-protos.h
29949         (microblaze_expand_conditional_branch_reg): New prototype.
29950
29951 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
29952
29953         * config/microblaze/microblaze.md (peephole2): New.
29954
29955 2015-05-04  Jeff Law  <law@redhat.com>
29956
29957         Revert:
29958         2015-05-04  Jeff Law  <law@redhat.com>
29959
29960         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
29961         simplifier to narrow arithmetic.
29962         * generic-match-head.c: (types_match, single_use): New functions.
29963         * gimple-match-head.c: (types_match, single_use): New functions.
29964
29965 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
29966
29967         PR target/65987
29968         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
29969         (split_branches): Likewise.
29970
29971 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
29972
29973         * common.opt (fdelete-null-pointer-checks): Init to -1.
29974         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
29975         override flag_delete_null_pointer_checks default.
29976         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
29977         behavior re address zero.  Better document target-specific behavior.
29978         (-fisolate-errneous-paths-dereference): Mention relationship to
29979         -fdelete-null-pointer-checks.
29980
29981 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
29982
29983         PR tree-optimization/65984
29984         * ubsan.c: Include tree-cfg.h.
29985         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
29986         stmt_could_throw_p test, rename can_throw variable to ends_bb.
29987
29988 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
29989
29990         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
29991         to CONST_DOUBLE_P predicate.
29992         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
29993         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
29994         allow only operands that satisfy standard_sse_constant_p predicate.
29995         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
29996         to CONST_DOUBLE_P predicate.
29997
29998 2015-05-04  Jeff Law  <law@redhat.com>
29999
30000         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
30001         simplifier to narrow arithmetic.
30002         * generic-match-head.c: (types_match, single_use): New functions.
30003         * gimple-match-head.c: (types_match, single_use): New functions.
30004
30005 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
30006
30007         * config/arm/arm.c: Restore bootstrap.
30008
30009 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
30010
30011         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
30012         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
30013         as CONST_WIDE_INT, not CONST_DOUBLE.
30014         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
30015         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
30016         (ix86_find_base_term): Do not check for CONST_DOUBLE.
30017         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
30018         (ix86_build_signbit_mask): Rewrite using wide ints.
30019         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
30020         (ix86_rtx_costs): Handle CONST_WIDE_INT.
30021         (find_constant): Ditto.
30022         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
30023         using gen_int_mode.
30024         * config/i386/predicates.md (x86_64_immediate_operand)
30025         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
30026         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
30027         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
30028         (const0_operand): Also match const_wide_int.
30029         (constm1_operand): Ditto.
30030         (const1_operand): Ditto.
30031
30032 2015-05-04  Richard Biener  <rguenther@suse.de>
30033
30034         PR tree-optimization/65965
30035         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
30036         store groups at gaps.
30037
30038 2015-05-04  Richard Biener  <rguenther@suse.de>
30039
30040         PR tree-optimization/65935
30041         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
30042         then make sure to apply that swapping to the IL.
30043
30044 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
30045
30046         * Makefile.in (PATCHLEVEL_c): New variable.
30047         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
30048         expand the same way as if DEVPHASE_c was non-empty.
30049
30050 2015-05-04  Kai Tietz  <ktietz@redhat.com>
30051
30052         PR target/65559
30053         * lto-wrapper.c (run_gcc): Open filename
30054         in binary-mode.
30055
30056 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
30057
30058         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
30059         sections up in file, to immediately after the Function Attributes
30060         section.
30061
30062 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
30063
30064         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
30065
30066 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30067
30068         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
30069         (insert_partition_copy_on_edge): Adjust.
30070         (insert_rtx_to_part_on_edge): Likewise.
30071         (insert_part_to_rtx_on_edge): Likewise.
30072
30073 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30074
30075         * function.c (set_return_jump_label): Change type of argument to
30076         rtx_insn *.
30077         * function.h (set_return_jump_label): Adjust.
30078
30079 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30080
30081         * reload.h (struct reg_equivs_t): Change type of init to
30082         rtx_insn *.
30083         * ira.c (fix_reg_equiv_init): Adjust.
30084         * reload1.c (eliminate_regs_1): Likewise.
30085         (init_eliminable_invariants): Likewise.
30086
30087 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30088
30089         * cselib.c (fp_setter_insn): Take a rtx_insn *.
30090         * cselib.h (fp_setter_insn): Adjust.
30091
30092 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30093
30094         * recog.c (struct validate_replace_src_data): Change type of
30095         insn field to rtx_insn *.
30096         (validate_replace_src_group): Change type of argument to rtx_insn *.
30097         * recog.h (validate_replace_src_group): Adjust.
30098
30099 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30100
30101         * haifa-sched.c: Change the type of some variables to rtx_insn *.
30102         * sched-deps.c: Likewise.
30103         * sched-int.h: Likewise.
30104         * sched-rgn.c: Likewise.
30105         * sel-sched.c: Likewise.
30106
30107 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30108
30109         to rtx_insn *.
30110         * config/i386/i386.c: Change the type of some arguments to
30111         rtx_insn *.
30112         * config/arm/arm.c: Likewise.
30113
30114 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30115
30116         * lra-constraints.c: Change type of some arguments to rtx_insn *.
30117
30118 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30119
30120         * regcprop.c (kill_autoinc_value): Change type of argument to
30121         rtx_insn *.
30122
30123 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30124
30125         * genrecog.c (print_subroutine): Adjust.
30126         * recog.c (get_bool_attr_mask_uncached): Likewise.
30127         * recog.h (struct recog_data_d): Change the type of insn to
30128         rtx_insn *.
30129
30130 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30131
30132         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
30133
30134 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30135
30136         * df-problems.c (df_set_note): Change type of argument to
30137         rtx_insn *.
30138
30139 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30140
30141         * builtins.c (expand_builtin_trap): Change type of local
30142         variable to rtx_insn *.
30143         (add_sched_insns_for_speculation): Likewise.
30144         (ix86_emit_save_regs): Likewise.
30145         (get_scratch_register_on_entry): Likewise.
30146         (ix86_emit_restore_reg_using_pop): Likewise.
30147         (ix86_emit_leave): Likewise.
30148         (ix86_emit_restore_regs_using_mov): Likewise.
30149         (ix86_expand_epilogue): Likewise.
30150         Likewise.
30151         (rl78_alloc_physical_registers_umul): Likewise.
30152         * cselib.c (discard_useless_locs): Likewise.
30153         (cselib_invalidate_regno): Likewise.
30154         (cselib_invalidate_mem): Likewise.
30155         * function.c (expand_function_start): Likewise.
30156         (emit_use_return_register_into_block): Likewise.
30157         * gcse.c: Likewise.
30158         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
30159         * ifcvt.c (noce_get_alt_condition): Likewise.
30160         * loop-doloop.c (doloop_condition_get): Likewise.
30161         * lra-constraints.c (inherit_in_ebb): Likewise.
30162         * modulo-sched.c (sms_schedule_by_order): Likewise.
30163         * recog.c (next_insn_tests_no_inequality): Likewise.
30164         * reorg.c (emit_delay_sequence): Likewise.
30165         (update_reg_dead_notes): Likewise.
30166         (fix_reg_dead_note): Likewise.
30167         (fill_slots_from_thread): Likewise.
30168         (delete_computation): Likewise.
30169
30170 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
30171
30172         * doc/extend.texi (Variable Attributes): Add menu and proper
30173         @nodes to subsections.  Move Microsoft Windows attributes to
30174         their own subsection.
30175         (Type Attributes): Reorganize introduction to remove duplicate
30176         list of attributes.  Add menu and proper @nodes to subsections.
30177         Alphabetize the main table of common attributes.
30178
30179 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
30180
30181         * match.pd: New simplification patterns.
30182         (x + (x & 1))  -> ((x + 1) & ~1)
30183         (x & ~(x & y)) -> ((x & ~y))
30184         (x | ~(x | y)) -> ((x | ~y))
30185
30186 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30187
30188         * target.def (attribute_table): Mention that struct attribute_spec
30189         is defined in tree-core.h rather than tree.h
30190         * doc/tm.texi: Regenerate.
30191
30192 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
30193
30194         * genrecog.c (test): Rename to rtx_test.  Update rest of file
30195         accordingly.
30196
30197 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
30198
30199         PR translation/65959
30200         * params.h (DEFPARAM): Rename msgid to nocmsgid.
30201
30202 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
30203
30204         * config/aarch64/aarch64-protos.h (tune_params):
30205         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
30206         * config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
30207         Return value depending on target.
30208         (generic_tunings): Initialize new target settings.
30209         (cortexa53_tunings): Likewise.
30210         (cortexa57_tunings): Likewise.
30211         (thunderx_tunings): Likewise.
30212         (xgene1_tunings): Likewise.
30213
30214 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
30215
30216         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
30217         Make Cortex-A53 shift costs more accurate.
30218
30219 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30220
30221         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
30222         UNSIGNED_FLOAT.
30223
30224 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
30225
30226         * config/aarch64/aarch64.c (aarch64_rtx_costs):
30227         Calculate cost of op0 and op1 in PLUS and MINUS cases.
30228
30229 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30230
30231         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
30232         Add cost of op0 in the compare-with-fpzero case.
30233
30234 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
30235
30236         * builtins.c (fold_builtin_1): Remove spurious second
30237         semicolon.
30238         * cgraph.h (symtab_node::get_availability): Likewise.
30239         * opts.c (common_handle_option): Remove spurious second semicolon.
30240         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
30241         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
30242
30243 2015-04-30  Caroline Tice  <cmtice@google.com>
30244
30245         PR gcov-profile/65929
30246         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
30247         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
30248         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
30249         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
30250         * doc/tm.texi: Regenerate.
30251         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
30252         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
30253         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
30254         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
30255
30256 2015-04-30  Marek Polacek  <polacek@redhat.com>
30257
30258         * varasm.c (handle_cache_entry): Fix logic.
30259
30260 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30261
30262         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
30263         (*extrsi5_insn_uxtw_alt): Likewise.
30264         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
30265         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
30266         operations.
30267
30268 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30269
30270         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
30271         fabd in ABS case.
30272
30273 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30274
30275         * config/aarch64/aarch64.md
30276         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
30277         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
30278         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
30279         appropriately.  Handle alternative EON form.
30280
30281 2015-04-30  Renlin Li  <renlin.li@arm.com>
30282
30283         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
30284         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
30285
30286 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
30287
30288         PR ipa/65873
30289         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
30290         -fstrict-aliasing boundaries.
30291
30292 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30293
30294         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
30295         and [SU]MNEGL patterns.
30296
30297 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30298
30299         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
30300         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
30301         combined arithmetic-shift ops.  Properly handle all shift and extend
30302         operations that can occur in combination with PLUS/MINUS.
30303         Rename maybe_fma to compound_p.
30304         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
30305         arithmetic and shift operations.
30306
30307 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30308
30309         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
30310         rather than arith_shift cost when costing ADD/MINUS of an
30311         extended value.
30312
30313 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
30314
30315         PR lto/65948
30316         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
30317         to itself.
30318
30319 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
30320
30321         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
30322         are for the same position.
30323
30324 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
30325
30326         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
30327         vectorize_loops.
30328         (vectorize_loops): Use it.
30329
30330 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
30331
30332         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
30333         for aggregate types.
30334         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
30335         type to be non_ODR.
30336         * tree.c (need_assembler_name_p): Compute mangled name for
30337         non-fundamental types and integer types.
30338
30339 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
30340
30341         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
30342         manual swaps.
30343         * expr.c (expand_expr_real_2): Likewise.
30344
30345 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
30346
30347         * tree.c (build_common_builtin_nodes): Do not build
30348         __builtin_alloca_with_align as equivalent of library alloca.
30349
30350 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
30351
30352         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
30353         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
30354         bugus variants.
30355         * tree.c: Include print-tree.h and ipa-utils.h
30356         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
30357         (free_lang_data_in_cgraph): Call verify_type.
30358         (verify_type_variant): New function.
30359         (verify_type): New function.
30360         * tree.h (verify_type): Declare.
30361
30362 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
30363
30364         * config/mips/mips-cpus.def: (mips4): Change default processor
30365         from PROCESSOR_R8000 to PROCESSOR_R10000.
30366
30367 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
30368
30369         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
30370         la/jalr instead of jal.
30371
30372 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
30373
30374         PR target/65871
30375         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
30376         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
30377         (setcc+movzbl peephole2): Check also clobbered reg.
30378         (setcc+andl peephole2): Ditto.
30379
30380 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
30381
30382         PR libgomp/65099
30383         * config/nvptx/mkoffload.c (target_ilp32): New variable.
30384         (main): Set it depending on "-foffload-abi=[...]".
30385         (compile_native, main): Use it to pass "-m32" or "-m64" to the
30386         compiler.
30387
30388 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
30389
30390         PR target/65770
30391         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
30392         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
30393         Flip lane index back at assembly time for bigendian.
30394
30395 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
30396
30397         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
30398         * gimplify.c (gimplify_omp_workshare): Use it.
30399
30400 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
30401
30402         * Makefile.in (build/genrecog.o): Depend on inchash.h.
30403         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
30404         build/inchash.o
30405         * genrecog.c: Rewrite most of the code except for the third page.
30406
30407 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
30408
30409         * inchash.h, inchash.c: Include bconfig.h for build objects.
30410         * Makefile.in (build/inchash.o): New rule.
30411
30412 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
30413
30414         PR target/65924
30415         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
30416         number in type attribute expression.
30417
30418 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
30419
30420         * loop-iv.c (canon_condition): Generalize to all types of integer
30421         constant.
30422
30423 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
30424
30425         * gimple-walk.c: Prune duplicate or unneeded includes.
30426         (walk_gimple_asm): Only call parse_input_constraint or
30427         parse_output_constraint if their findings are used.
30428         Honour parse_input_constraint and parse_output_constraint
30429         result.
30430
30431 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
30432
30433         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
30434
30435 2015-04-29  Tom de Vries  <tom@codesourcery.com>
30436
30437         PR tree-optimization/65893
30438         * passes.def (pass_all_optimizations): Move pass_stdarg to after
30439         pass_dce.
30440
30441 2015-04-29  Richard Biener  <rguenther@suse.de>
30442
30443         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
30444         compute GROUP_SIZE for basic-block SLP.
30445         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
30446         take into account gaps.
30447         (vect_get_mask_element): Properly reject references to previous
30448         vectors.
30449         (vect_transform_slp_perm_load): Likewise.
30450
30451 2015-04-29  Christian Bruel  <christian.bruel@st.com>
30452
30453         PR target/64835
30454         * config/i386/i386.c (ix86_default_align): New function.
30455         (ix86_override_options_after_change): Call ix86_default_align.
30456         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
30457         (ix86_override_options_after_change): New function.
30458
30459 2015-04-28  Jeff Law  <law@redhat.com>
30460
30461         * tree-ssa-dom.c (record_equality); Fix comment typos.
30462
30463 2015-04-28  Tom de Vries  <tom@codesourcery.com>
30464
30465         PR tree-optimization/65887
30466         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
30467
30468 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
30469
30470         * doc/extend.texi (Declaring Attributes of Functions): Split into
30471         subsections by target.  Alphabetize the table of common attributes.
30472         Rewrite some of the introductory text to reflect the new structure.
30473         Update some cross-references to point to the new subsections.
30474         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
30475         duplicate copies in the discussion of function, label, and type
30476         attributes.
30477
30478 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
30479
30480         PR bootstrap/65910
30481         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
30482
30483 2015-04-28  Jason Merrill  <jason@redhat.com>
30484
30485         PR c++/65734
30486         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
30487         (finalize_type_size): Respect TYPE_USER_ALIGN.
30488         (layout_type) [ARRAY_TYPE]: Likewise.
30489
30490 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
30491
30492         * config/arm/arm.md (*arm_movt): Fix type attribute.
30493         (*cmpsi_shiftsi): Likewise.
30494         (*cmpsi_shiftsi_swp): Likewise.
30495         (*movsicc_insn): Likewise.
30496         (*cond_move): Likewise.
30497         (*if_plus_move): Likewise.
30498         (*if_move_plus): Likewise.
30499         (*if_arith_move): Likewise.
30500         (*if_move_arith): Likewise.
30501         (*if_shift_move): Likewise.
30502         (*if_move_shift): Likewise.
30503         (*arm_movtas_ze): Likewise.
30504         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
30505         redundancy and type attribute.
30506         (*thumb2_movsi_insn): Fix type attribute.
30507         (*thumb2_addsi_short): Likewise.
30508         (thumb2_addsi3_compare0): Likewise.
30509         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
30510         attributes accordingly.
30511
30512 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
30513
30514         PR other/65911
30515         * function.c (pad_to_arg_alignment): Add parentheses.
30516
30517 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
30518
30519         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
30520         libgcc/config/frv/elf-lib.h.
30521
30522 2015-04-28  Tom de Vries  <tom@codesourcery.com>
30523
30524         * tree-call-cdce.c: Fix example in header comment.
30525
30526 2015-04-28  Richard Biener  <rguenther@suse.de>
30527
30528         PR tree-optimization/62283
30529         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
30530         fails fatally and we are vectorizing a basic-block simply
30531         cause the child to be constructed piecewise.
30532         (vect_analyze_slp_cost_1): Adjust.
30533         (vect_detect_hybrid_slp_stmts): Likewise.
30534         (vect_bb_slp_scalar_cost): Likewise.
30535         (vect_get_constant_vectors): For piecewise constructed
30536         constants place them after the last def.
30537         (vect_get_slp_defs): Adjust.
30538         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
30539         externals for basic-block vectorization.
30540
30541 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30542
30543         PR target/63503
30544         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
30545         aarch64-*-*.
30546         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
30547         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
30548         (AARCH64_TUNE_FMA_STEERING): Likewise.
30549         * config/aarch64/aarch64-cores.def: Set
30550         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
30551         FMUL/FMADD instructions.
30552         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
30553         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
30554         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
30555         * config/aarch64/cortex-a57-fma-steering.h: New file.
30556         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
30557
30558 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
30559
30560         * gensupport.c (std_preds): Add missing codes to address_operand entry.
30561
30562 2015-04-28  Richard Biener  <rguenther@suse.de>
30563
30564         PR tree-optimization/65851
30565         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
30566         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
30567         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
30568         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
30569         (ccp_visit_phi_node): Adjust.
30570         (evaluate_stmt): For simplifications to SSA names return its
30571         lattice value if that isn't VARYING.  Return immediately when
30572         simplified to a constant.
30573         (visit_assignment): Adjust.
30574         (ccp_visit_stmt): Likewise.
30575
30576 2015-04-28  Tom de Vries  <tom@codesourcery.com>
30577
30578         PR tree-optimization/65818
30579         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
30580         evaluated.
30581
30582 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30583
30584         * calls.c (save_fixed_argument_area): Don't check
30585         ARGS_GROW_DOWNWARD with the preprocessor.
30586         (restore_fixed_argument_area): Likewise.
30587         (mem_overlaps_already_clobbered_arg_p): Likewise.
30588         (check_sibcall_argument_overlap): Likewise.
30589         (expand_call): Likewise.
30590         (emit_library_call_value_1): Likewise.
30591         (store_one_arg): Likewise.
30592         * function.c (assign_parms): Likewise.
30593         (locate_and_pad_parm): Likewise.
30594         (pad_to_arg_alignment): Likewise.
30595         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
30596
30597 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30598
30599         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
30600         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
30601         * calls.c (save_fixed_argument_area): Don't chekc if
30602         ARGS_GROW_DOWNWARD is defined.
30603         (restore_fixed_argument_area): Likewise.
30604         (mem_overlaps_already_clobbered_arg_p): Likewise.
30605         (check_sibcall_argument_overlap): Likewise.
30606         (expand_call): Likewise.
30607         (emit_library_call_value_1): Likewise.
30608         (store_one_arg): Likewise.
30609         * function.c (assign_parms): Likewise.
30610         (locate_and_pad_parm): Likewise.
30611         (pad_to_arg_alignment): Likewise.
30612         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
30613
30614 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30615
30616         * defaults.h (gen_epilogue): New function.
30617         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
30618         defined.
30619         * cfgrtl.c (cfg_layout_finalize): Likewise.
30620         * df-scan.c: Likewise.
30621         * function.c (thread_prologue_and_epilogue_insns): Likewise.
30622         (reposition_prologue_and_epilogue_notes): Likewise.
30623         * reorg.c (find_end_label): Likewise.
30624         * toplev.c: Likewise.
30625
30626 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30627
30628         * bb-reorder.c (HAVE_return): Don't check if its undefined.
30629         * defaults.h (gen_simple_return): New function.
30630         (gen_simple_return): Likewise.
30631         (HAVE_return): Add default definition to false.
30632         (HAVE_simple_return): Likewise.
30633         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
30634         HAVE_return and HAVE_simple_return are defined.
30635         * function.c (gen_return_pattern): Likewise.
30636         (convert_jumps_to_returns): Likewise.
30637         (thread_prologue_and_epilogue_insns): Likewise.
30638         * reorg.c (find_end_label): Likewise.
30639         (dbr_schedule): Likewise.
30640         * shrink-wrap.c: Likewise.
30641         * shrink-wrap.h: Likewise.
30642
30643 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30644
30645         * defaults.h (EPILOGUE_USES): Add default definition of false.
30646         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
30647         * resource.c (init_resource_info): Likewise.
30648
30649 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30650
30651         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
30652         to false.
30653         * dwarf2out.c (field_byte_offset): REmove check if
30654         PCC_BITFIELD_TYPE_MATTERS is defined.
30655         * stor-layout.c (layout_decl): Likewise.
30656         (update_alignment_for_field): Likewise.
30657         (place_field): Likewise.
30658
30659 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30660
30661         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
30662         true.
30663         * regrename.c (check_new_reg_p): Remove check if
30664         HARD_REGNO_RENAME_OK is defined.
30665         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
30666
30667 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
30668
30669         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
30670         * cse.c (fold_rtx): Likewise.
30671         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
30672         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
30673         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
30674         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
30675         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
30676         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
30677         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
30678         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
30679         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
30680         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
30681         * Likewise.
30682         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
30683         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
30684         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
30685         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
30686         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
30687         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
30688         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
30689         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
30690         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
30691         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
30692         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
30693         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
30694         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
30695         * doc/tm.texi: Regenerate.
30696         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
30697         either true or false.
30698
30699 2015-04-27  Jeff Law  <law@redhat.com>
30700
30701         PR tree-optimization/65217
30702         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
30703         of them has a single use, make sure it is the LHS of the implied
30704         copy.
30705
30706 2015-04-28  Alan Modra  <amodra@gmail.com>
30707
30708         PR target/65810
30709         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
30710         (offsettable_ok_by_alignment): Use minimum of decl and toc
30711         pointer alignment.  Replace dead code with assertion.
30712         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
30713         case if size exceeds toc pointer alignment.
30714         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
30715         (rs6000_emit_move): Likewise.
30716         * configure.ac: Add linker toc pointer alignment check.
30717         * configure: Regenerate.
30718         * config.in: Regenerate.
30719
30720 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
30721
30722         * config.gcc: Add h8300-*-linux.
30723         * config/h8300/linux.h: New.
30724         * config/h8300/t-linux: New.
30725         * config/h8300/h8300.c (h8300_option_override): Normal mode
30726         is not supported for h8300-*-linux.
30727         (h8300_file_start): Target priority change.
30728         (get_shift_alg): Likewise.
30729         (h8300_shift_need_scratch_p): Likewise.
30730         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
30731         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
30732
30733 2015-04-27  Caroline Tice  <cmtice@google.com>
30734
30735         * final.c (final_scan_insn):  Output cold_function_name as function
30736         type.
30737         * varasm.c (cold_function_name):  Make global.
30738         (assemble_start_function):  Re-set cold_function_name.
30739         (assemble_end_function): Output cold partition size.
30740         * varasm.h (cold_function_name):  Declare global.
30741
30742 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
30743
30744         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
30745         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
30746         constraint.
30747         (*movxi_internal_avx512f): Ditto.
30748         (define_split): Check for xmm16+, when splitting scalar float_extend.
30749         (*extendsfdf2_mixed): Use "v" constraint.
30750         (define_split): Check for xmm16+, when splitting scalar float_truncate.
30751         (*truncdfsf_fast_sse): Use "v" constraint.
30752         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
30753         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
30754         (define_peephole2): Check for xmm16+, when converting scalar
30755         float_truncate.
30756         (define_peephole2): Check for xmm16+, when converting scalar
30757         float_extend.
30758         (*fop_<mode>_comm_mixed): Use "v" constraint.
30759         (*fop_<mode>_comm_sse): Ditto.
30760         (*fop_<mode>_1_mixed): Ditto.
30761         (*sqrt<mode>2_sse): Ditto.
30762         (*ieee_s<ieee_maxmin><mode>3): Ditto.
30763
30764 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30765
30766         * combine.c (simplify_if_then_else): Use std::swap instead
30767         of manually swapping.
30768         (known_cond): Likewise.
30769         (simplify_comparison): Likewise.
30770
30771 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
30772
30773         PR target/64579
30774         * config/rs6000/htm.md: Remove all define_expands.
30775         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
30776         UNSPECV_HTM_TABORTWCI): Remove.
30777         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
30778         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
30779         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
30780         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
30781         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
30782         tabortwci_internal): Remove define_insns.
30783         (tabort<wd>c, tabort<wd>ci): New define_insns.
30784         (tabort): Use gpc_reg_operand.
30785         (tcheck): Remove operand.
30786         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
30787         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
30788         expected value.
30789         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
30790         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
30791         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
30792         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
30793         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
30794         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
30795         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
30796         (tcheck): Remove builtin argument.
30797         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
30798         not TARGET_64BIT.
30799         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
30800         tabortdc and tabortdci builtins when not in 64-bit mode.
30801         Modify code to handle the loss of the HTM define_expands.
30802         Emit code to copy the CR register to TARGET.
30803         (htm_init_builtins): Modify code to handle the loss of the HTM
30804         define_expands.
30805         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
30806         (RS6000_BTC_64BIT): Likewise.
30807         (RS6000_BTC_CR): New macro.
30808         * doc/extend.texi: Update documentation for htm builtins.
30809
30810 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30811
30812         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
30813         of manually swapping.
30814         (simplify_associative_operation): Likewise.
30815         (simplify_binary_operation): Likewise.
30816         (simplify_plus_minus): Likewise.
30817         (simplify_relational_operation): Likewise.
30818         (simplify_ternary_operation): Likewise.
30819
30820 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
30821
30822         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
30823         (xs_hi_nonmemory_operand): Remove error.
30824         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
30825         general_operand rather than xs_hi_general_operand.
30826
30827 2015-04-27  Richard Biener  <rguenther@suse.de>
30828
30829         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
30830         (record_equivalences_from_stmt): Valueize rhs.
30831         (record_equality): Canonicalize x and y order via
30832         tree_swap_operands_p.  Do not swap operands for same loop depth.
30833
30834 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
30835
30836         PR target/65296
30837         PR target/65895
30838         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
30839         Add hint how to use own spec file.
30840
30841 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
30842
30843         PR tree-optimization/65875
30844         * tree-vrp.c (update_value_range): If in is_new case setting
30845         old_vr to VR_VARYING, also set new_vr to it.  Remove
30846         old_vr->type == VR_VARYING test.
30847         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
30848         SSA_PROP_INTERESTING if update_value_range returned true,
30849         but new range is VR_VARYING.
30850
30851 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30852
30853         * combine.c (sign_extend_short_imm): New.
30854         (set_nonzero_bits_and_sign_copies): Use above new function for sign
30855         extension of src short immediate.
30856         (reg_nonzero_bits_for_combine): Likewise for tem.
30857
30858 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
30859
30860         * stor-layout.c (self_referential_component_ref_p): New predicate.
30861         (copy_self_referential_tree_r): Use it.
30862         (self_referential_size): Punt for simple operations directly involving
30863         self-referential component references.
30864         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
30865
30866 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
30867
30868         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
30869
30870 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
30871
30872         * vec.h (vec): Make splice arguments const.  Update definitions
30873         accordingly.
30874
30875 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
30876
30877         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
30878         alternatives.
30879
30880 2015-04-26  Tom de Vries  <tom@codesourcery.com>
30881
30882         PR tree-optimization/65826
30883         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
30884
30885 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
30886
30887         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
30888         (*madd3<mode>): Ditto.
30889         (*msub4<mode>): Ditto.
30890         (*msub3<mode>): Ditto.
30891         (*nmadd4<mode>): Ditto.
30892         (*nmadd3<mode>): Ditto.
30893         (*nmadd4<mode>_fastmath): Ditto.
30894         (*nmadd3<mode>_fastmath): Ditto.
30895         (*nmsub4<mode>): Ditto.
30896         (*nmsub3<mode>): Ditto.
30897         (*nmsub4<mode>_fastmath): Ditto.
30898         (*nmsub3<mode>_fastmath): Ditto.
30899
30900 2015-04-24  Jason Merrill  <jason@redhat.com>
30901
30902         PR c++/50800
30903         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
30904         down when building TYPE_CANONICAL.
30905         (build_pointer_type_for_mode): Likewise.
30906
30907 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
30908
30909         * genrecog.c (validate_pattern): Check matching constraint refers
30910         to a lower numbered operand.
30911
30912 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
30913
30914         PR target/65849
30915         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
30916         save to independent variables use the Save attribute.  This will
30917         allow these options to be modified with the #pragma/attribute
30918         target support.
30919         (-mallow-movmisalign): Likewise.
30920         (-mallow-df-permute): Likewise.
30921         (-msched-groups): Likewise.
30922         (-malways-hint): Likewise.
30923         (-malign-branch-targets): Likewise.
30924         (-mvectorize-builtins): Likewise.
30925         (-msave-toc-indirect): Likewise.
30926
30927         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
30928         can be set via the #pragma/attribute target support.
30929         (rs6000_opt_vars): Likewise.
30930         (rs6000_inner_target_options): If VSX was set, also set
30931         -mno-avoid-indexed-addresses.
30932
30933 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30934
30935         * config/arm/iterators.md (shiftable_ops): Rename to...
30936         (SHIFTABLE_OPS): ... This.  Update use in comments.
30937         (ior_xor): Rename to...
30938         (IOR_XOR): ... This.
30939         (vqh_ops): Rename to...
30940         (VQH_OPS): ... This.
30941         (vqhs_ops): Rename to...
30942         (VQHS_OPS): ... This.
30943         (rshifts): Rename to...
30944         (RSHIFTS): ... This.
30945         (returns): Rename to...
30946         (RETURNS): ... This.
30947         * config/arm/arm.md: Update uses of the above.
30948         * config/arm/neon.md: Likewise.
30949
30950 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30951
30952         * config.host (case ${host}): Add aarch64*-*-linux case.
30953         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
30954         fields to all the cores.
30955         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
30956         Add MCPU_MTUNE_NATIVE_SPECS.
30957         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
30958         field to all extensions.
30959         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
30960         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
30961         Adjust definition of AARCH64_OPT_EXTENSION.
30962         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
30963         (MCPU_MTUNE_NATIVE_SPECS): Define.
30964         * config/aarch64/driver-aarch64.c: New file.
30965         * config/aarch64/x-arch64: New file.
30966         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
30967         -mtune and -march.
30968
30969 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
30970             Wei Mi  <wmi@google.com>
30971
30972         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
30973         * config/i386/i386.c (extract_base_offset_in_addr): New function.
30974         (ix86_operands_ok_for_move_multiple): Ditto.
30975         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
30976         (movlpd/movhpd to movupd peephole2): Ditto.
30977
30978 2015-04-24  Marek Polacek  <polacek@redhat.com>
30979
30980         PR c/61534
30981         * input.h (from_macro_expansion_at): Define.
30982
30983         PR c/63357
30984         * doc/invoke.texi: Update description of -Wlogical-op.
30985
30986 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30987
30988         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
30989         ternary operator in fprintf and harmonize spacing.
30990
30991 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
30992
30993         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
30994         Mark operand1 commutative.
30995
30996 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
30997
30998         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
30999         input operands in memory.
31000         (*vec_concatv2si_sse4_1): Ditto.
31001         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
31002         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
31003         register_operand.
31004         (vec_extract_hi_v32hi): Ditto.
31005         (vec_extract_hi_v64hi): Ditto.
31006         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
31007
31008 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31009             Steven Bosscher <steven@gcc.gnu.org>
31010
31011         PR rtl-optimization/34503
31012         * cprop.c (cprop_reg_p): New.
31013         (hash_scan_set): Use above function to check if register can be
31014         propagated.
31015         (find_avail_set): Return up to two sets, one whose source is a
31016         register and one whose source is a constant.  Sets are returned in an
31017         array passed as parameter rather than as a return value.
31018         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
31019         sets returned by find_avail_set, starting with the one whose source is
31020         a constant. Use cprop_reg_p to check if register can be propagated.
31021         (do_local_cprop): Use cprop_reg_p to check if register can be
31022         propagated.
31023         (implicit_set_cond_p): Likewise.
31024
31025 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
31026
31027         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
31028         (sem_function::equals): IGNORED_NODES parameter is now unused;
31029         update call of equals_private.
31030         (sem_function::equals_private): Do not call equals_wpa; skip
31031         gimple body matching if there is no body.
31032         (sem_function::init): Add logic to hash tthunk info.
31033         (sem_function::parse): Also parse thunks.
31034         * ipa-icf.h (equals_private): Update declaration.
31035
31036 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31037
31038         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
31039         asterisk from name so this can be generated directly.
31040         (*altivec_stvx_<mode>_internal): Likewise.
31041         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
31042         that this is never called during or after reload/lra.
31043         (rs6000_frame_related): Remove split_reg
31044         argument and logic that references it.
31045         (emit_frame_save): Remove last parameter from call to
31046         rs6000_frame_related.
31047         (rs6000_emit_prologue): Remove last parameter from eight calls to
31048         rs6000_frame_related.  Force generation of stvx instruction for
31049         Altivec register saves.  Remove split_reg handling, which is no
31050         longer needed.
31051         (rs6000_emit_epilogue):  Force generation of lvx instruction for
31052         Altivec register restores.
31053
31054 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31055
31056         * config/rs6000/rs6000.opt (mcrypto): Change option description to
31057         match category changes in ISA 2.07B.
31058
31059 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31060
31061         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
31062         iterators.
31063         (cmp_op, cmp_type): New code attributes.
31064         (NEON_VCMP, NEON_VACMP): New int iterators.
31065         (cmp_op_unsp): New int attribute.
31066         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
31067         (neon_vceq<mode>): Delete.
31068         (neon_vc<cmp_op><mode>_insn): New pattern.
31069         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
31070         (neon_vcgeu<mode>): Delete.
31071         (neon_vcle<mode>): Likewise.
31072         (neon_vclt<mode>: Likewise.
31073         (neon_vcage<mode>): Likewise.
31074         (neon_vcagt<mode>): Likewise.
31075         (neon_vca<cmp_op><mode>): New define_expand.
31076         (neon_vca<cmp_op><mode>_insn): New pattern.
31077         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
31078
31079 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
31080
31081         * tree.h (attribute_value_equal): Declare.
31082         * tree.c (attribute_value_equal): Export.
31083
31084 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
31085
31086         * ipa-icf.c (sem_item::compare_attributes): New function.
31087         (sem_item::compare_referenced_symbol_properties): Compare variable
31088         attributes.
31089         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
31090         (sem_function::param_used_p): New function.
31091         (sem_function::equals_wpa): Fix attribute comparsion; match
31092         parameter type codes; do not compare paremter flags when
31093         they are not used; compare edge flags; compare indirect calls.
31094         (sem_item::update_hash_by_addr_refs): Hash reference type.
31095         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
31096         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
31097         reference use type.
31098         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
31099         * ipa-icf.h (compare_attributes, param_used_p): Declare.
31100
31101 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
31102
31103         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
31104         cleanup.
31105         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
31106         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
31107         (sem_item::compare_referenced_symbol_properties): New.
31108         (sem_item::hash_referenced_symbol_properties): New.
31109         (sem_item::compare_cgraph_references): Rename to ...
31110         (sem_item::compare_symbol_references): ... this one; use
31111         compare_referenced_symbol_properties.
31112         (sem_function::equals_wpa): Do not compare
31113         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
31114         DECL_IS_OPERATOR_NEW; compare pointer sizes.
31115         (sem_item::update_hash_by_addr_refs): Call
31116         hash_referenced_symbol_properties.
31117         (sem_item::update_hash_by_local_refs): Cleanup.
31118         (sem_function::merge): Do not mix up symbol properties.
31119         (sem_variable::equals_wpa): Use compare_symbol_references.
31120         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
31121         (sem_item::hash_referenced_symbol_properties): New.
31122         (sem_item::compare_symbol_references): New.
31123         (sem_item::compare_cgraph_references): Remove.
31124
31125 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
31126
31127         PR target/26702
31128         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
31129         Emit size of local.
31130
31131 2015-04-23  Nick Clifton  <nickc@redhat.com>
31132
31133         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
31134         ATTRIBUTE_UNUSED to x parameter.
31135         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
31136
31137 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31138
31139         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
31140         TARGET_CRYPTO to TARGET_P8_VECTOR>
31141         (crypto_vpermxor_<mode>): Likewise.
31142         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
31143         (BU_CRYPTO_3A): Likewise.
31144         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
31145         (BU_CRYPTO_OVERLOAD_3A): New #define.
31146         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
31147         (VPMSUMH): Likewise.
31148         (VPMSUMW): Likewise.
31149         (VPMSUMD): Likewise.
31150         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
31151         (VPERMXOR_V4SI): Likewise.
31152         (VPERMXOR_V8HI): Likewise.
31153         (VPERMXOR_V16QI): Likewise.
31154         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
31155         BU_CRYPTO_OVERLOAD_2A.
31156         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
31157         BU_CRYPTO_OVERLOAD_3A.
31158         * config/rs6000/rs6000.opt (mcrypto): Change description of
31159         option.
31160
31161 2015-04-23  Richard Biener  <rguenther@suse.de>
31162
31163         * passes.def: Remove copy propagation passes run directly after CCP.
31164         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
31165         SSA names.
31166         (ccp_visit_phi_node): Rework to handle first executable edge
31167         specially.
31168
31169 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
31170
31171         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
31172         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
31173         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
31174         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
31175         (thumb_legimitimize_reload_address): Remove.
31176         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
31177         Remove.
31178         (thumb_legimitimize_reload_address): Remove.
31179
31180 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31181
31182         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
31183
31184 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31185
31186         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
31187         MAX_LDM_STM_OPS.
31188         (store_multiple): Likewise.
31189
31190 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31191
31192         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
31193         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
31194         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
31195         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
31196         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
31197         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
31198         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
31199         Specify issue_rate value.
31200         (arm_issue_rate): Look up issue rate from tuning structs. Remove
31201         large switch statement.
31202         (arm_marvell_pj4_tune): New struct.
31203         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
31204         struct.
31205
31206 2015-04-23  Richard Biener  <rguenther@suse.de>
31207
31208         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
31209         (vect_find_last_store_in_slp_instance): Rename to ...
31210         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
31211         (vect_analyze_slp_cost_1): Use vector_load for constant defs
31212         and vec_construct for external defs when estimating prologue cost.
31213         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
31214         Compute costs here only when vectorizing loops.
31215         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
31216         have been determined.
31217         (vect_schedule_slp_instance): Simplify vectorized code placement
31218         and prepare for in-BB external defs.
31219         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
31220         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
31221         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
31222         guard.
31223         (vect_model_load_cost): Likewise.
31224         (vectorizable_store): Instead add it here.
31225         (vectorizable_load): Likewise.
31226         (vect_is_simple_use): Dump def type textually.
31227
31228 2015-04-23  Richard Biener  <rguenther@suse.de>
31229
31230         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
31231         * cfgloop.c (verify_loop_structure): Verify the root loop node.
31232         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
31233         instead of get_eh_region_from_lp_number.
31234         * loop-init.c (fix_loop_structure): If we removed a loop, reset
31235         the SCEV cache.
31236
31237 2015-04-23  Anton Blanchard  <anton@samba.org>
31238
31239         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
31240         need for -mprofile-kernel to save LR to stack.
31241
31242 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31243
31244         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
31245         adjustments.
31246         (insn_is_swappable_p): Return 1 for a convert from double to
31247         single precision when all of its uses are splats of BE element
31248         zero.
31249
31250 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
31251
31252         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
31253
31254 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31255
31256         PR target/65456
31257         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
31258         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
31259         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
31260         option.
31261         (rs6000_builtin_mask_for_load): Return 0 for targets with
31262         efficient unaligned VSX accesses so that the vectorizer will use
31263         direct unaligned loads.
31264         (rs6000_builtin_support_vector_misalignment): Always return true
31265         for targets with efficient unaligned VSX accesses.
31266         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
31267         stores on targets with efficient unaligned VSX accesses is almost
31268         always the same as the cost of an aligned load or store, so model
31269         it that way.
31270         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
31271         unaligned vectors if we have efficient unaligned VSX accesses.
31272         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
31273         undocumented option.
31274
31275 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31276
31277         Revert:
31278         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
31279
31280         * config.gcc (LIBC_MUSL): New tm_defines macro.
31281         * config/linux.h (OPTION_MUSL): Define.
31282         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
31283         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
31284         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
31285
31286         * config/linux.opt (mmusl): New option.
31287         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
31288         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
31289
31290         * configure: Regenerate.
31291
31292 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
31293
31294         * config.gcc (LIBC_MUSL): New tm_defines macro.
31295         * config/linux.h (OPTION_MUSL): Define.
31296         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
31297         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
31298         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
31299
31300         * config/linux.opt (mmusl): New option.
31301         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
31302         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
31303
31304         * configure: Regenerate.
31305
31306 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
31307
31308         * doc/invoke.texi (-fsanitize-sections): Update description.
31309         * asan.c (set_sanitized_sections): Parse incoming arg.
31310         (section_sanitized_p): Support wildcards.
31311
31312 2015-04-22  Tom de Vries  <tom@codesourcery.com>
31313
31314         PR tree-optimization/65823
31315         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
31316         equality between ap_copy and ap.
31317
31318 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31319
31320         PR target/47098
31321         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
31322
31323 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31324
31325         PR target/47122
31326         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
31327
31328 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31329
31330         PR target/55144
31331         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
31332         remove already contained t-files.
31333
31334 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31335
31336         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
31337         Remove unneeded forward declarations.
31338         (suitable_for_tail_call_opt_p): Commentary typo fix.
31339
31340 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31341
31342         * varasm.c (emit_bss): Remove redundant guard.
31343
31344 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31345
31346         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
31347
31348 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
31349
31350         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
31351
31352 2015-04-22  Hale Wang  <hale.wang@arm.com>
31353             Terry Guo  <terry.guo@arm.com>
31354
31355         PR rtl-optimization/64818
31356         * combine.c (can_combine_p): Don't combine user-specified
31357         register if it is in an asm input.
31358
31359 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
31360
31361         PR ipa/65076
31362         * passes.def (early_optimizations): Add pass_dse.
31363
31364 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31365
31366         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
31367         * reorg.c (redundant_insn): Remove ifdef
31368         INSN_REFERENCES_ARE_DELAYED.
31369         * resource.c (mark_referenced_resources): Likewise.
31370
31371 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31372
31373         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
31374         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
31375         * resource.c (mark_set_resources): Likewise.
31376
31377 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31378
31379         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
31380         * cfgcleanup.c (flow_find_cross_jump): Likewise.
31381         (flow_find_head_matching_sequence): Likewise.
31382         (try_head_merge_bb): Likewise.
31383         * combine.c (can_combine_p): Likewise.
31384         (try_combine): Likewise.
31385         (distribute_notes): Likewise.
31386         * df-problems.c (can_move_insns_across): Likewise.
31387         * final.c (final): Likewise.
31388         * gcse.c (insert_insn_end_basic_block): Likewise.
31389         * ira.c (find_moveable_pseudos): Likewise.
31390         * reorg.c (try_merge_delay_insns): Likewise.
31391         (fill_simple_delay_slots): Likewise.
31392         (fill_slots_from_thread): Likewise.
31393         * sched-deps.c (sched_analyze_2): Likewise.
31394
31395 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31396
31397         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
31398         PIC_OFFSET_TABLE_REGNUM.
31399
31400 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31401
31402         * alias.c (init_alias_target): Remove ifdef
31403         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
31404         * df-scan.c (df_insn_refs_collect): Likewise.
31405         (df_get_regular_block_artificial_uses): Likewise.
31406         (df_get_eh_block_artificial_uses): Likewise.
31407         (df_get_entry_block_def_set): Likewise.
31408         (df_get_exit_block_use_set): Likewise.
31409         * emit-rtl.c (gen_rtx_REG): Likewise.
31410         * ira.c (ira_setup_eliminable_regset): Likewise.
31411         * reginfo.c (init_reg_sets_1): Likewise.
31412         * regrename.c (rename_chains): Likewise.
31413         * reload1.c (reload): Likewise.
31414         (eliminate_regs_in_insn): Likewise.
31415         * resource.c (mark_referenced_resources): Likewise.
31416         (init_resource_info): Likewise.
31417
31418 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31419
31420         * defaults.h (MASK_RETURN_ADDR): New definition.
31421         * except.c (expand_builtin_extract_return_addr): Remove ifdef
31422         MASK_RETURN_ADDR.
31423
31424 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31425
31426         * defaults.h (RETURN_ADDR_OFFSET): New definition.
31427         * except.c (expand_builtin_extract_return_addr): Remove ifdef
31428         RETURN_ADDR_OFFSET.
31429         (expand_builtin_frob_return_addr): Likewise.
31430
31431 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31432
31433         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
31434         (try_redirect_by_replacing_jump): Likewise.
31435         (rtl_tidy_fallthru_edge): Likewise.
31436         * combine.c (insn_a_feeds_b): Likewise.
31437         (find_split_point): Likewise.
31438         (simplify_set): Likewise.
31439         * cprop.c (cprop_jump): Likewise.
31440         * cse.c (cse_extended_basic_block): Likewise.
31441         * df-problems.c (can_move_insns_across): Likewise.
31442         * function.c (emit_use_return_register_into_block): Likewise.
31443         * haifa-sched.c (sched_init): Likewise.
31444         * ira.c (find_moveable_pseudos): Likewise.
31445         * loop-invariant.c (find_invariant_insn): Likewise.
31446         * lra-constraints.c (curr_insn_transform): Likewise.
31447         * postreload.c (reload_combine_recognize_const_pattern):
31448         * Likewise.
31449         * reload.c (find_reloads): Likewise.
31450         * reorg.c (delete_scheduled_jump): Likewise.
31451         (steal_delay_list_from_target): Likewise.
31452         (steal_delay_list_from_fallthrough): Likewise.
31453         (redundant_insn): Likewise.
31454         (fill_simple_delay_slots): Likewise.
31455         (fill_slots_from_thread): Likewise.
31456         (delete_computation): Likewise.
31457         * sched-rgn.c (add_branch_dependences): Likewise.
31458
31459 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31460
31461         * genconfig.c (main): Always define HAVE_cc0.
31462         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
31463         HAVE_cc0.
31464         * cfgcleanup.c (flow_find_cross_jump): Likewise.
31465         (flow_find_head_matching_sequence): Likewise.
31466         (try_head_merge_bb): Likewise.
31467         * cfgrtl.c (rtl_merge_blocks): Likewise.
31468         (try_redirect_by_replacing_jump): Likewise.
31469         (rtl_tidy_fallthru_edge): Likewise.
31470         * combine.c (do_SUBST_MODE): Likewise.
31471         (insn_a_feeds_b): Likewise.
31472         (combine_instructions): Likewise.
31473         (can_combine_p): Likewise.
31474         (try_combine): Likewise.
31475         (find_split_point): Likewise.
31476         (subst): Likewise.
31477         (simplify_set): Likewise.
31478         (distribute_notes): Likewise.
31479         * cprop.c (cprop_jump): Likewise.
31480         * cse.c (cse_extended_basic_block): Likewise.
31481         * df-problems.c (can_move_insns_across): Likewise.
31482         * final.c (final): Likewise.
31483         (final_scan_insn): Likewise.
31484         * function.c (emit_use_return_register_into_block): Likewise.
31485         * gcse.c (insert_insn_end_basic_block): Likewise.
31486         * haifa-sched.c (sched_init): Likewise.
31487         * ira.c (find_moveable_pseudos): Likewise.
31488         * loop-invariant.c (find_invariant_insn): Likewise.
31489         * lra-constraints.c (curr_insn_transform): Likewise.
31490         * optabs.c (prepare_cmp_insn): Likewise.
31491         * postreload.c (reload_combine_recognize_const_pattern):
31492         * Likewise.
31493         * reload.c (find_reloads): Likewise.
31494         (find_reloads_address_1): Likewise.
31495         * reorg.c (delete_scheduled_jump): Likewise.
31496         (steal_delay_list_from_target): Likewise.
31497         (steal_delay_list_from_fallthrough): Likewise.
31498         (try_merge_delay_insns): Likewise.
31499         (redundant_insn): Likewise.
31500         (fill_simple_delay_slots): Likewise.
31501         (fill_slots_from_thread): Likewise.
31502         (delete_computation): Likewise.
31503         (relax_delay_slots): Likewise.
31504         * sched-deps.c (sched_analyze_2): Likewise.
31505         * sched-rgn.c (add_branch_dependences): Likewise.
31506
31507 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31508
31509         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
31510         that is trivially ded on non cc0 targets.
31511         (simplify_set): Likewise.
31512         (mark_used_regs_combine): Likewise.
31513         * cse.c (new_basic_block): Likewise.
31514         (fold_rtx): Likewise.
31515         (cse_insn): Likewise.
31516         (cse_extended_basic_block): Likewise.
31517         (set_live_p): Likewise.
31518         * rtlanal.c (canonicalize_condition): Likewise.
31519         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
31520
31521 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31522
31523         * conditions.h: Define macros even if HAVE_cc0 is undefined.
31524         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
31525         * final.c: Likewise.
31526         * jump.c: Likewise.
31527         * recog.c: Likewise.
31528         * recog.h: Declare functions even when HAVE_cc0 is undefined.
31529         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
31530
31531 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31532
31533         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
31534         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
31535         * builtins.c (expand_builtin): Remove check if
31536         EH_RETURN_DATA_REGNO is defined.
31537         * df-scan.c (df_bb_refs_collect): Likewise.
31538         (df_get_exit_block_use_set): Likewise.
31539         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
31540         * ira-lives.c (process_bb_node_lives): Likewise.
31541         * lra-lives.c (process_bb_lives): Likewise.
31542
31543 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
31544
31545         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
31546         FIRST_PSEUDO_REG): New.
31547         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
31548         (ARG_POINTER_REGNUM): Define to ARGP_REG.
31549         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
31550         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
31551         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
31552         (FIRST_INT_REG): New.
31553         (LAST_INT_REG): New.
31554         (FIRST_*_REG): Define using *_REG.
31555         (LAST_*_REG): Ditto.
31556         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
31557         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
31558         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
31559
31560 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31561
31562         * expmed.c: (synth_mult): Only assume overlapping
31563         shift with previous steps in alg_sub_t_m2 case.
31564
31565 2015-04-21  Richard Biener  <rguenther@suse.de>
31566
31567         PR tree-optimization/65650
31568         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
31569         transitions involving copies.
31570         (set_lattice_value): Adjust for copy lattice state.
31571         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
31572         if that doesn't dominate the merge point.
31573         (bit_value_unop): Adjust what we treat as varying mask.
31574         (bit_value_binop): Likewise.
31575         (bit_value_assume_aligned): Likewise.
31576         (evaluate_stmt): When we simplified to a SSA name record a copy
31577         instead of dropping to varying.
31578         (visit_assignment): Simplify.
31579
31580         * gimple-match.h (gimple_simplify): Add another callback.
31581         * gimple-fold.c (fold_stmt_1): Adjust caller.
31582         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
31583         for the 2nd callback.
31584         * gimple-match-head.c (gimple_simplify): Add a callback that is
31585         used to valueize the stmt operands and use it that way.
31586
31587 2015-04-21  Richard Biener  <rguenther@suse.de>
31588
31589         PR tree-optimization/65788
31590         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
31591
31592 2015-04-21  Richard Biener  <rguenther@suse.de>
31593
31594         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
31595         vec_construct cost by vec_stmt_cost.
31596
31597 2015-04-21  Richard Biener  <rguenther@suse.de>
31598
31599         * cfghooks.h (create_basic_block): Replace with two overloads
31600         for RTL and GIMPLE.
31601         (split_block): Likewise.
31602         * cfghooks.c (split_block): Rename to ...
31603         (split_block_1): ... this.
31604         (split_block): Add two type-safe overloads for RTL and GIMPLE.
31605         (split_block_after_labels): Call split_block_1.
31606         (create_basic_block): Rename to ...
31607         (create_basic_block_1): ... this.
31608         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
31609         (create_empty_bb): Call create_basic_block_1.
31610         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
31611         split_block_after_labels.
31612         * omp-low.c (expand_parallel_call): Likewise.
31613         (expand_omp_target): Likewise.
31614         (simd_clone_adjust): Likewise.
31615         * tree-chkp.c (chkp_get_entry_block): Likewise.
31616         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
31617         create_basic_block overload.
31618         (cgraph_node::expand_thunk): Likewise.
31619         * tree-cfg.c (make_blocks): Likewise.
31620         (handle_abnormal_edges): Likewise.
31621         * tree-inline.c (copy_bb): Likewise.
31622
31623 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31624
31625         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
31626         New pattern.
31627         (*xor_one_cmplsidi3_ze): Likewise.
31628
31629 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31630
31631         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
31632         use df_remove_problem rather than manually removing problems, leaving
31633         holes in df->problems_in_order[].
31634
31635 2015-04-21  Tom de Vries  <tom@codesourcery.com>
31636
31637         PR tree-optimization/65802
31638         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
31639
31640 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31641
31642         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
31643         Increase to 128.
31644         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
31645         at '.'.  Assert that there's enough space for everything.
31646
31647 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
31648
31649         PR tree-optimization/64950
31650         Revert:
31651         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
31652
31653         PR target/41089
31654         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
31655         as volatile.
31656
31657 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
31658
31659         PR rtl-optimization/64916
31660         * cfgcleanup.c (values_equal_p): New function.
31661         (can_replace_by): Use it.
31662
31663 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
31664
31665         PR c++/65801
31666         * doc/invoke.texi ([-Wnarrowing]): Update.
31667
31668 2015-04-20  Jeff Law  <law@redhat.com>
31669
31670         PR tree-optimization/65658
31671         * tree-ssa-threadupdate.c (redirection_block_p): Remove
31672         redundant test for GIMPLE_ASSIGN in last change.
31673
31674 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
31675
31676         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
31677         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
31678         (legitimize_tls_address): Ditto.
31679         (ix86_expand_move): Ditto.
31680         (ix86_expand_binary_operator): Remove reload_in_progress checks.
31681         (ix86_expand_unary_operator): Ditto.
31682         * config/i386/predicates.md (index_register_operand): Ditto.
31683
31684 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
31685
31686         * reorg.c (try_merge_delay_insns): Improve correctness checking
31687         for targets with multiple delay slots.
31688
31689 2015-04-20  Jeff Law  <law@redhat.com>
31690
31691         PR tree-optimization/65658
31692         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
31693         statements too.
31694
31695 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
31696
31697         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
31698         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
31699         Delete.
31700
31701 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
31702
31703         PR debug/65807
31704         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
31705
31706 2015-04-20  Richard Biener  <rguenther@suse.de>
31707
31708         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
31709         * gimple-fold.c (gimple_build_valueize): New function.
31710         (gimple_build): Always use gimple_build_valueize as valueize hook.
31711
31712 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
31713
31714         PR target/64134
31715         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
31716         and overwrite variable parts if <= 1/2 the elements are variable.
31717
31718 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
31719
31720         PR rtl-optimization/65805
31721         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
31722         Don't use difference of offset and previous offset if
31723         update_sp_offset is non-zero.
31724         (eliminate_regs_in_insn): Ditto.
31725         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
31726         lra_eliminate_regs_1 call.
31727         * lra-constraints.c (get_equiv_with_elimination): Ditto.
31728
31729 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
31730
31731         * hash-table.h: Remove version of hash_table that stored value_type *.
31732         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
31733         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
31734         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
31735         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
31736         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
31737         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
31738         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
31739         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
31740         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
31741         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
31742         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
31743         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
31744         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
31745         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
31746         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
31747         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
31748
31749 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31750             Jakub Jelinek  <jakub@redhat.com>
31751
31752         PR target/65787
31753         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
31754         subsequent SH_NONE operand does not overwrite an existing *special
31755         value.
31756         (adjust_extract): Handle case where a vec_extract operation is
31757         wrapped in a PARALLEL.
31758
31759 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
31760
31761         PR target/65780
31762         * config/i386/i386.c (ix86_binds_local_p): Define only if
31763         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
31764
31765 2015-04-17  Jeff Law  <law@redhat.com>
31766
31767         PR tree-optimization/47679
31768         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
31769         * tree-ssa-scopedtables.c: New file.
31770         * tree-ssa-scopedtables.h: New file.
31771         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
31772         (const_and_copies): Change name/type.
31773         (record_const_or_copy): Move into tree-ssa-scopedtables.c
31774         (record_const_or_copy_1): Similarly.
31775         (restore_vars_to_original_value): Similarly.
31776         (pass_dominator::execute): Create and destroy const_and_copies table.
31777         (thread_across_edge): Update passing of const_and_copies.
31778         (record_temporary_equivalence): Use method calls rather than
31779         manipulating const_and_copies directly.
31780         (record_equality, cprop_into_successor_phis): Similarly.
31781         (dom_opt_dom_walker::before_dom_children): Similarly.
31782         (dom_opt_dom_walker::after_dom_children): Similarly.
31783         (eliminate_redundant_computations): Similarly.
31784         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
31785         (record_temporary_equivalence): Likewise.
31786         (invalidate_equivalences): Likewise.
31787         (record_temporary_equivalences_from_phis): Update due to type
31788         change of const_and_copies.  Use method calls rather than
31789         manipulating the stack directly.
31790         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
31791         (thread_through_normal_block, thread_across_edge): Likewise.
31792         (thread_across_edge): Likewise.
31793         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
31794         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
31795         of equiv_stack.
31796         (identify_jump_threads): Update due to type change of equiv_stack.
31797         (finalize_jump_threads): Delete the equiv_stack when complete.
31798
31799 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
31800
31801         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
31802         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
31803         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
31804
31805 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
31806
31807         PR target/65535
31808         * config.gcc: Exit with a comment when we do not have a major version
31809         number for the FreeBSD target.
31810
31811 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
31812
31813         PR target/65689
31814         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
31815         maybe_allows_mem bitfields.
31816         (maybe_allows_none_start, maybe_allows_none_end,
31817         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
31818         maybe_allows_mem_end): New variables.
31819         (compute_maybe_allows): New function.
31820         (add_constraint): Use it to initialize maybe_allows_reg and
31821         maybe_allows_mem fields.
31822         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
31823         is_address constraints such that those that allow neither mem nor
31824         reg come first, then those that only allow reg but not mem, then
31825         those that only allow mem but not reg, then the rest.
31826         (write_allows_reg_mem_function): New function.
31827         (write_tm_preds_h): Call it.
31828         * stmt.c (parse_output_constraint, parse_input_constraint): Use
31829         the generated insn_extra_constraint_allows_reg_mem function
31830         instead of always setting *allows_reg = true; *allows_mem = true;
31831         for unknown extra constraints.
31832
31833 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
31834
31835         PR target/65780
31836         * output.h (default_binds_local_p_3): New.
31837         * varasm.c (default_binds_local_p_3): Make it public.  Take an
31838         argument to indicate if common symbol may be local.  If common
31839         symbol may be local, treat non-external variable as defined
31840         locally.
31841         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
31842         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
31843         * config/i386/i386.c (ix86_binds_local_p): New.
31844         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
31845         ix86_binds_local_p.
31846
31847 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
31848
31849         PR debug/65771
31850         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
31851         trying mem_loc_descriptor on XEXP (rtl, 0).
31852
31853 2015-04-17  Martin Liska  <mliska@suse.cz>
31854
31855         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
31856         Release symbol_compare_collection.
31857         * ipa-reference.c: Add TODO that a vector should be released.
31858
31859 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
31860
31861         PR target/65296
31862         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
31863         to new AVR-LibC file layout (bug #44574).
31864         (*avrlibc_devicelib): Same.
31865         * config/avr/avr-mcus.def: Adjust comments.
31866         * config/avr/avr.opt (nodevicelib): Adjust help.
31867
31868 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
31869
31870         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
31871
31872 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
31873
31874         PR c++/64527
31875         * gimplify.c (gimplify_init_constructor): Always emit a
31876         side-effecting constructor.
31877
31878 2015-04-17  Tom de Vries  <tom@codesourcery.com>
31879
31880         PR tree-optimization/64950
31881         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
31882         in cfun->curr_properties.
31883         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
31884         if we generate an IFN_VA_ARG.
31885         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
31886         function if PROP_gimple_lva is not set in src function.
31887
31888 2015-04-17  Tom de Vries  <tom@codesourcery.com>
31889             Michael Matz  <matz@suse.de>
31890
31891         PR tree-optimization/64950
31892         * gimple-iterator.c (update_modified_stmts): Remove static.
31893         * gimple-iterator.h (update_modified_stmts): Declare.
31894         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
31895         (gimplify_va_arg_internal): New function.
31896         (gimplify_va_arg_expr): Use IFN_VA_ARG.
31897         * gimplify.h (gimplify_va_arg_internal): Declare.
31898         * internal-fn.c (expand_VA_ARG): New unreachable function.
31899         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
31900         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
31901         (expand_ifn_va_arg): New function.
31902         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
31903         (pass_stdarg::execute): Call expand_ifn_va_arg.
31904         (pass_data_lower_vaarg): New pass_data.
31905         (pass_lower_vaarg): New gimple_opt_pass.
31906         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
31907         (make_pass_lower_vaarg): New function.
31908         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
31909         properties_required field.
31910         * passes.def (all_passes): Add pass_lower_vaarg.
31911         * tree-pass.h (PROP_gimple_lva): Add define.
31912         (make_pass_lower_vaarg): Declare.
31913
31914 2015-04-17  Tom de Vries  <tom@codesourcery.com>
31915
31916         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
31917         * calls.c (call_expr_flags): Same.
31918
31919 2015-04-17  Tom de Vries  <tom@codesourcery.com>
31920
31921         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
31922         (pass_stdarg::execute): ... here.
31923
31924 2015-04-17  Tom de Vries  <tom@codesourcery.com>
31925             Michael Matz  <matz@suse.de>
31926
31927         * tree-cfg.c (make_blocks_1): Factor out of ...
31928         (make_blocks): ... here.
31929         (make_edges_bb): Factor out of ...
31930         (make_edges): ... here.
31931         (gimple_find_sub_bbs): New function.
31932         * tree-cfg.h (gimple_find_sub_bbs): Declare.
31933
31934 2015-04-17  Tom de Vries  <tom@codesourcery.com>
31935
31936         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
31937
31938 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
31939
31940         * asan.c (set_sanitized_sections): New function.
31941         (section_sanitized_p): Ditto.
31942         (asan_protect_global): Optionally sanitize user-defined
31943         sections.
31944         * asan.h (set_sanitized_sections): Declare new function.
31945         * common.opt (fsanitize-sections): New option.
31946         * doc/invoke.texi (-fsanitize-sections): Document new option.
31947         * opts-global.c (handle_common_deferred_options): Handle new
31948         option.
31949
31950 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
31951
31952         PR debug/65771
31953         * dwarf2out.c (loc_list_from_tree): Return NULL
31954         for DEBUG_EXPR_DECL.
31955
31956 2015-04-17  Christian Bruel  <christian.bruel@st.com>
31957
31958         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
31959         same attributes.
31960
31961 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
31962
31963         * ira-color.c (setup_left_conflict_sizes_p): Do not process
31964         node itself when computing left conflict subnode size.
31965
31966 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
31967
31968         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
31969         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
31970         *fop_<mode>_1_sse using enabled attribute.  Use
31971         register_mixssei387nonimm_operand operand 1 predicate. Change
31972         alternative 3 constraints from "x" to "v".
31973
31974 2015-04-16  Richard Biener  <rguenther@suse.de>
31975
31976         PR tree-optimization/65774
31977         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
31978         bit-value tracking on.
31979
31980 2015-04-16  Richard Biener  <rguenther@suse.de>
31981
31982         PR tree-optimization/64277
31983         * tree-vrp.c (check_array_ref): Fix anti-range handling,
31984         simplify upper bound handling.
31985         (search_for_addr_array): Simplify.
31986         (check_array_bounds): Handle ADDR_EXPRs here.
31987         (check_all_array_refs): Simplify.
31988
31989 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
31990
31991         * config/i386/i386.c (print_reg): Rewrite function.
31992
31993 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31994
31995         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
31996         Invert the condition.
31997
31998 2015-04-16  Renlin Li  <renlin.li@arm.com>
31999
32000         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
32001         simplifications for UNSIGNED_FLOAT.
32002
32003 2015-04-16  Nick Clifton  <nickc@redhat.com>
32004
32005         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
32006         MUL_UNINIT.
32007         (enum rl78_cpu_type): New.
32008         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
32009         (umulhi3_shift_virt): Remove m constraint from operand 1.
32010         (umulqihi3_virt): Likewise.
32011         * config/rl78/rl78.c (rl78_option_override): Add code to process
32012         -mcpu and -mmul options.
32013         (rl78_alloc_physical_registers): Add code to handle divhi and
32014         divsi valloc attributes.
32015         (set_origin): Likewise.
32016         * config/rl78/rl78.h (RL78_MUL_G14): Define.
32017         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
32018         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
32019         __RL78_Gxx__.
32020         (ASM_SPEC): Pass -mcpu on to assembler.
32021         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
32022         (mulqi3_rl78): Likewise.
32023         (mulhi3_g13): Likewise.
32024         (mulhi3): Generate the G13 or G14 versions of the insn directly.
32025         (mulsi3): Likewise.
32026         (mulhi3_g14): Add clobbers of AX and BC.
32027         (mulsi3_g14): Likewise.
32028         (mulsi3_g13): Likewise.
32029         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
32030         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
32031         * config/rl78/rl78.opt (mmul): Initialise value to
32032         RL78_MUL_UNINIT.
32033         (mcpu): New option.
32034         (m13, m14, mrl78): New option aliases.
32035         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
32036         (MULTILIB_DIRNAMES): Add g13 and g14.
32037         * doc/invoke.texi: Document -mcpu and -mmul options.
32038
32039 2015-04-16  Richard Biener  <rguenther@suse.de>
32040
32041         * tree-ssa-ccp.c (likely_value): See if we have operands that
32042         are marked as never simulate again and return CONSTANT in this
32043         case.
32044         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
32045         not have any operands that will be simulated again as
32046         not being simulated again.
32047
32048 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
32049
32050         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
32051         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
32052         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
32053         attribute.
32054         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
32055         enabled attribute.
32056         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
32057         *float<SWI48:mode><MODEF:mode>2_sse.
32058         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
32059         enabled attribute.
32060         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
32061         enabled attribute.
32062
32063 2015-04-15  Tom de Vries  <tom@codesourcery.com>
32064
32065         PR other/65487
32066         * function.c (push_dummy_function): New function.
32067         (init_dummy_function_start): Use push_dummy_function.
32068         (pop_dummy_function): New function.  Factored out of ...
32069         (expand_dummy_function_end): ... here.
32070         * function.h (push_dummy_function, pop_dummy_function): Declare.
32071         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
32072         pop_dummy_function.
32073         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
32074
32075 2015-04-15  Jeff Law  <law@redhat.com>
32076
32077         PR tree-optimization/47679
32078         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
32079         need for forward declaration in upcoming changes.
32080         (record_conditions, record_edge_info): Likewise.
32081
32082         PR rtl-optimization/42522
32083         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
32084         SIGN_EXTRACT as a whole object rather than simplifying
32085         its operand.
32086
32087 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
32088
32089         PR ipa/65765
32090         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
32091         and GIMPLE_PREDICT use break instead of return true. For
32092         GIMPLE_EH_DISPATCH, compare dispatch region.
32093
32094 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
32095
32096         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
32097         details about the implementation.  Make clear preference for
32098         __atomic builtins.  Reduce possibility of future change.
32099
32100 2015-04-15  Nick Clifton  <nickc@redhat.com>
32101
32102         * config/rx/rx.opt (mallow-string-insns): New option.
32103         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
32104         builtin if string instructions are denied.
32105         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
32106         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
32107         appropriate.
32108         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
32109         * config/rx/rx.md (movstr): Enable pattern only if string
32110         instructions are allowed.
32111         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
32112         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
32113         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
32114         (MULTILIB_DIRNAMES): Add no-strings.
32115         * doc/invoke.texi: Document -mno-allow-string-insns.
32116
32117 2015-04-15  Alan Modra  <amodra@gmail.com>
32118
32119         PR target/65408
32120         PR target/58744
32121         PR middle-end/36043
32122         * calls.c (load_register_parameters): Don't load past end of
32123         mem unless suitably aligned.
32124
32125 2015-04-15  Nick Clifton  <nickc@redhat.com>
32126
32127         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
32128         decrement instruction as being frame related.
32129         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
32130         based addresses.
32131         If zero extending a function address enclose the operation in
32132         %code(...).
32133         (rl78_preferred_reload_class): New function.
32134         (TARGET_PREFERRED_RELOAD_CLASS): Define.
32135         * config/rl78/rl78.md: Remove useless constraints in expanders.
32136         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
32137         (mulhi3_rl78): Likewise.
32138         (mulhi3_g13): Likewise.
32139         (mulsi3_rl78): Likewise.
32140         (es_addr): Move to before the multiply patterns.
32141
32142 2015-04-15  Alan Modra  <amodra@gmail.com>
32143
32144         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
32145         and sequence_stack.  Add seq.
32146         (seq_stack): Delete.
32147         * function.c (prepare_function_start): Don't access x_last_insn.
32148         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
32149         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
32150         * emit_rtl.c (start_sequence, push_topmost_sequence,
32151         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
32152         sequence accessors.
32153         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
32154         remove_insn): Likewise.  Simplify.
32155         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
32156         and pop_topmost_sequence.
32157         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
32158         debug insns.
32159         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
32160
32161 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
32162
32163         PR target/65729
32164         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
32165         the assertiion.
32166
32167 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
32168
32169         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
32170         (LEGACY_INT_REGNO_P): Ditto.
32171         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
32172         (ANY_MASK_REG_P): Remove.
32173         (BND_REG_P): Rename from ANY_BND_REG_P.
32174         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
32175         legacy integer registers.  Do not handle MMX_REG_P in a special way.
32176         Merge 64byte and 32byte SSE handling.
32177
32178 2015-04-14  Nick Clifton  <nickc@redhat.com>
32179
32180         * expr.c (expand_assignment): Force an address offset computation
32181         into a register before changing its mode.
32182         (expand_expr_real_1): Likewise.
32183
32184 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
32185
32186         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
32187         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
32188         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
32189         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
32190         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
32191         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
32192         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
32193         and __aarch64_vget_lane_any.
32194
32195 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
32196
32197         PR rtl-optimization/65761
32198         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
32199         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
32200
32201 2015-04-14  Richard Biener  <rguenther@suse.de>
32202
32203         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
32204         (graphite_can_represent_scev): Use POINTER_TYPE_P.
32205
32206 2015-04-14  Richard Biener  <rguenther@suse.de>
32207
32208         PR tree-optimization/65758
32209         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
32210         against -1.
32211         (ccp_lattice_meet): Likewise.
32212         (bit_value_unop): Likewise.
32213         (bit_value_binop): Likewise.
32214         (bit_value_assume_aligned): Likewise.
32215
32216 2015-04-14  Christian Bruel  <christian.bruel@st.com>
32217
32218         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
32219         function.
32220
32221 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
32222
32223         PR tree-optimization/63387
32224         * match.pd ((x unord x) | (y unord y) -> (x unord y),
32225         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
32226
32227 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
32228
32229         * config/i386/predicates.md (any_QIreg_operand): Rename from
32230         q_regs_operand.  Do not process subregs.
32231         (QIreg_operand): Use QI_REGNO_P predicate.
32232         (ext_QIreg_operand): Ditto.
32233         (ext_register_operand): Ditto.
32234         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
32235         (AND splitters): Ditto.
32236         (AND with -65536 splitter): Add SWI48 mode for operand 0.
32237         (AND with -256 splitter): Use any_QIreg_operand predicate and
32238         SWI248 mode for operand 0.
32239         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
32240         mode for operand 0.
32241         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
32242
32243 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
32244
32245         * doc/plugins.texi: Rewrite first introductory paragraph.
32246
32247 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
32248
32249         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
32250         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
32251
32252 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
32253
32254         * ipa-profie.c (ipa_profile): Check number of parameters
32255         and possible polymorphic call targets before
32256         devirtualizing.
32257
32258 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
32259
32260         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
32261         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
32262
32263 2015-04-13  Richard Biener  <rguenther@suse.de>
32264
32265         PR tree-optimization/65204
32266         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
32267         takens for bit-CCP.
32268
32269 2015-04-13  Richard Biener  <rguenther@suse.de>
32270
32271         PR target/65660
32272         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
32273         and cond_not_taken_branch_cost to 4 and 2.
32274         (bdver2_cost): Likewise.
32275         (bdver3_cost): Likewise.
32276         (bdver4_cost): Likewise.
32277
32278 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
32279
32280         * hash-table.h (hash_table constructor): Add mem stats.
32281         (alloc_entries): Likewise.
32282
32283 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
32284
32285         * ipa-cp.c (ipcp_driver): Relase prev_edge.
32286         * passes.c (execute_one_pass): Only add transform if pass has one.
32287
32288 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
32289
32290         * config/i386/i386.c (ix86_option_override_internal): Don't set
32291         -fprefetch-loop-arrays if optimizing for size.
32292
32293 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
32294             Gerald Pfeifer  <gerald@pfeifer.com>
32295
32296         * doc/contrib.texi (Contributors): Add Martin Jambor and
32297         Michael Matz.
32298
32299 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
32300
32301         * BASE-VER: Set to 6.0.0.
32302
32303         PR tree-optimization/65747
32304         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
32305         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
32306
32307 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
32308
32309         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
32310         sentence.  Improve grammar.
32311
32312 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
32313
32314         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
32315
32316 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
32317
32318         PR ipa/65743
32319         * ipa-inline-transform.c (speculation_removed): Remove static var.
32320         (check_speculations): New function.
32321         (clone_inlined_nodes): Do not check spculations.
32322         (inline_call): Call check_speculations.
32323         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
32324         consider non-invariants.
32325
32326 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
32327             Martin Liska  <mliska@suse.cz>
32328
32329         PR ipa/65722
32330         * ipa-icf.c (sem_item::compare_cgraph_references): function and
32331         variable can not match.
32332         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
32333         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
32334
32335 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
32336
32337         PR tree-optimization/65735
32338         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
32339         Remove visited_phis argument, add visited_bbs, avoid recursing into the
32340         same bb rather than just into the same phi node.
32341         (thread_through_normal_block): Adjust caller.
32342
32343 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
32344
32345         * doc/contrib.texi (Contributors): Add Ira Rosen.
32346
32347 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
32348
32349         * gcov.c (find_source): Fix miswording in error message.
32350         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
32351         (ix86_expand_sse_comi_round): Fix typo in error message.
32352
32353 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
32354
32355         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
32356
32357 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
32358
32359         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
32360
32361 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
32362
32363         PR target/65710
32364         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
32365         Print bad_spills_num and insn_pseudos_num.
32366
32367 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32368
32369         PR target/65694
32370         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
32371         when creating +1 values for SImode.
32372
32373 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
32374
32375         PR target/65729
32376         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
32377         assert.
32378
32379 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
32380             Iain Sandoe  <iain@codesourcery.com>
32381
32382         PR target/65351
32383         * configure: Regenerate.
32384
32385 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
32386
32387         PR target/65671
32388         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
32389
32390 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
32391
32392         * doc/contrib.texi (Contributors): Add John Marino.
32393
32394 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
32395
32396         PR tree-optimization/65709
32397         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
32398         TREE_TYPE (TREE_TYPE (t)).
32399
32400 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
32401
32402         PR target/65710
32403         * lra-int.h (lra_bad_spill_regno_start): New.
32404         * lra.c (lra_bad_spill_regno_start): New.
32405         (lra): Set up lra_bad_spill_regno_start.  Set up
32406         lra_constraint_new_regno_start unconditionally.
32407         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
32408         spill preferences.
32409
32410 2015-04-09  Marek Polacek  <polacek@redhat.com>
32411             Jakub Jelinek  <jakub@redhat.com>
32412
32413         PR middle-end/65554
32414         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
32415         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
32416         of STRIP_NOPS.
32417
32418 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
32419
32420         PR rtl-optimization/65693
32421         * combine.c (is_parallel_of_n_reg_sets): Move outside of
32422         #ifndef HAVE_cc0.
32423
32424 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
32425
32426         PR target/65296
32427         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
32428         device specs file if "device-specs%s" didn't resolve to a path.
32429
32430 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
32431
32432         PR target/65676
32433         * config/i386/i386.c (fixup_modeless_constant): New.
32434         (ix86_expand_args_builtin): Fixup modeless constant operand.
32435         (ix86_expand_round_builtin): Ditto.
32436         (ix86_expand_special_args_builtin): Ditto.
32437         (ix86_expand_builtin): Ditto.
32438
32439 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
32440
32441         PR target/65693
32442         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
32443         any pow2 integer in between 2 and 0x80000000U inclusive.
32444
32445 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
32446
32447         PR rtl-optimization/65693
32448         * combine.c (is_parallel_of_n_reg_sets): Change first argument
32449         from an rtx_insn * to an rtx.
32450         (try_combine): Adjust both callers.  Use it once more.
32451
32452 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
32453
32454         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
32455         (chkp_make_static_const_bounds): Search existing
32456         symbol by assembler name.  Use make_decl_one_only.
32457         (chkp_get_zero_bounds_var): Remove node search which
32458         is now performed in chkp_make_static_const_bounds.
32459         (chkp_get_none_bounds_var): Likewise.
32460
32461 2015-04-08  Michael Witten  <mfwitten@gmail.com>
32462
32463         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
32464         to an example.
32465
32466 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32467
32468         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
32469
32470 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
32471
32472         * doc/extend.texi (__sync Builtins): Fix grammar.
32473
32474 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32475
32476         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
32477
32478 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
32479
32480         * varasm.c (emit_local): Move definition of align.
32481
32482 2015-04-08  Julian Brown  <julian@codesourcery.com>
32483
32484         * config/nvptx/mkoffload.c (process): Support variable mapping.
32485
32486 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
32487
32488         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
32489         alpha_links **.
32490         (alpha_write_one_linkage): Correct typo.
32491
32492 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
32493
32494         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
32495
32496 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
32497
32498         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
32499
32500 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
32501
32502         * tree-chkp.h (chkp_insert_retbnd_call): New.
32503         * tree-chkp.c (chkp_insert_retbnd_call): New.
32504         * ipa-split.c (insert_bndret_call_after): Remove.
32505         (split_function): Use chkp_insert_retbnd_call.
32506         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
32507         bounds for instrumented functions.
32508
32509 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
32510
32511         PR ipa/65540
32512         * calls.c (initialize_argument_information): When producing tail
32513         call also turn SSA_NAMES passed by references to original PARM_DECLs
32514
32515 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
32516
32517         PR target/65648
32518         * lra-remat.c (do_remat): Process input and non-input insn
32519         registers separately.
32520
32521 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
32522
32523         PR debug/65678
32524         * valtrack.c (debug_lowpart_subreg): New function.
32525         (dead_debug_insert_temp): Use it.
32526
32527         PR middle-end/65680
32528         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
32529         into signed HOST_WIDE_INT the same as negative bit_offset.
32530
32531 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
32532
32533         * ipa-comdats.c (ipa_comdats): Visit all thunks
32534         to set proper comdat group.
32535
32536 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32537
32538         PR target/65489
32539         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
32540         on constants for NEON VSTRUCT modes.
32541
32542 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
32543             Iain Sandoe  <iain@codesourcery.com>
32544
32545         PR target/65351
32546         * configure: Regenerate.
32547
32548 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
32549
32550         PR target/65614
32551         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
32552         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
32553         that LFD is used to load double constants instead of LFS.  Add
32554         defaults for all costs structures.  Add comments for missing
32555         initialization fields.
32556         (size32_cost): Likewise.
32557         (size64_cost): Likewise.
32558         (rs64a_cost): Likewise.
32559         (mpccore_cost): Likewise.
32560         (ppc403_cost): Likewise.
32561         (ppc405_cost): Likewise.
32562         (ppc440_cost): Likewise.
32563         (ppc476_cost): Likewise.
32564         (ppc601_cost): Likewise.
32565         (ppc603_cost): Likewise.
32566         (ppc604_cost): Likewise.
32567         (ppc604e_cost): Likewise.
32568         (ppc620_cost): Likewise.
32569         (ppc630_cost): Likewise.
32570         (ppccell_cost): Likewise.
32571         (ppc750_cost): Likewise.
32572         (ppc7450_cost): Likewise.
32573         (ppc8540_cost): Likewise.
32574         (ppce300c2c3_cost): Likewise.
32575         (ppce500mc_cost): Likewise.
32576         (ppce500mc64_cost): Likewise.
32577         (ppce5500_cost): Likewise.
32578         (ppce6500_cost): Likewise.
32579         (titan_cost): Likewise.
32580         (power4_cost): Likewise.
32581         (power6_cost): Likewise.
32582         (power7_cost): Likewise.
32583         (power8_cost): Likewise.
32584         (ppca2_cost): Likewise.
32585         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
32586
32587         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
32588         instead of XXLOR to copy SFmode to clear out dirty bits created
32589         when SFmode denormals are generated.
32590         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
32591         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
32592
32593 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
32594
32595         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
32596         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
32597         * config/aarch64/aarch64-tune.md: Regenerate.
32598
32599 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
32600
32601         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
32602         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
32603         * config/arm/arm-cores.def (exynos-m1): New core.
32604         * config/arm/arm-tune.md: Regenerate.
32605         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
32606         * config/arm/bpabi.h: Likewise.
32607
32608 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
32609
32610         * ipa-cp (set_single_call_flag): Remove too
32611         restrictive assert.
32612
32613 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
32614
32615         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
32616         GOMP_offload_unregister from the destructor.
32617
32618 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
32619
32620         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
32621         flags for instrumentation thunk.
32622         (chkp_produce_thunks): Likewise.
32623
32624 2015-04-05  Martin Liska  <mliska@suse.cz>
32625
32626         PR ipa/65665
32627         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
32628         has computed data structure.
32629         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
32630
32631 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
32632
32633         * invoke.texi (inline-unit-growth): Increase growth to 20%
32634         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
32635
32636 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
32637
32638         PR target/65647
32639         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
32640         value checking.
32641         (lra_rematerialization_iter): New.
32642         * lra.c (lra): Initialize lra_rematerialization_iter.
32643         Stop updating lra_constraint_new_regno_start after switching of
32644         inheritance and rematerialization.
32645         * lra-remat.c (lra_rematerialization_iter): New.
32646         (lra_remat): Add printing pass iteration.  Do rematerialization
32647         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
32648
32649 2015-04-04  Richard Biener  <rguenther@suse.de>
32650
32651         PR tree-optimization/64909
32652         PR tree-optimization/65660
32653         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
32654         to take a cost vector for scalar iteration cost.
32655         (vect_get_single_scalar_iteration_cost): Likewise.
32656         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
32657         Compute the scalar iteration cost into a cost vector.
32658         (vect_get_known_peeling_cost): Use the scalar cost vector to
32659         account for the cost of the peeled iterations.
32660         (vect_estimate_min_profitable_iters): Likewise.
32661         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
32662         Likewise.
32663
32664 2015-04-04  Alan Modra  <amodra@gmail.com>
32665
32666         PR target/65576
32667         PR target/65240
32668         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
32669         0.0 constant unless TARGET_VSX.
32670         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
32671         alternative.
32672
32673 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
32674
32675         PR ipa/65654
32676         * ipa-inline-transform.c (inline_call): Skip sanity check to work
32677         around the ICE
32678
32679 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
32680
32681         PR ipa/65655
32682         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
32683         speculative indirect edges to avoid ordering issue.
32684
32685 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
32686
32687         PR ipa/65076
32688         * ipa-inline.c (edge_badness): Add combined size to the denominator.
32689
32690 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
32691
32692         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
32693         TYPE_ARTIFICIAL on the .omp_data* types.
32694
32695 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
32696
32697         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
32698         instrumentation thunks.
32699
32700 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
32701
32702         * config/i386/i386.c (ix86_expand_call): Avoid nested
32703         PARALLEL in returned call value.
32704
32705 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
32706
32707         * lto-cgraph.c (input_cgraph_1): Always link instrumented
32708         assembler name with original one.
32709
32710 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
32711
32712         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
32713
32714 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
32715
32716         Revert parts of r216820.
32717         * config/i386/i386.md (movqi_internal): Correct type calculation
32718         for alternatives 3 and 5.
32719
32720 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
32721
32722         PR preprocessor/61977
32723         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
32724         predefine __vector/__bool/__pixel macros nor context sensitive
32725         macros for CLK_ASM.
32726         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
32727
32728 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
32729
32730         * config/pa/pa.c (pa_output_move_double): Directly handle register
32731         indexed memory operand.  Simplify handling of scaled register indexed
32732         memory operands.
32733
32734 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
32735
32736         PR driver/65444
32737         * config/i386/linux-common.h (MPX_SPEC): New.
32738         (CHKP_SPEC): Add MPX_SPEC.
32739         * doc/invoke.texi (-fcheck-pointer-boudns): Document
32740         possible issues with '-z bndplt' support in linker.
32741
32742 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
32743
32744         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
32745         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
32746         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
32747         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
32748         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
32749
32750 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
32751
32752         * config/i386/sync.md (UNSPEC_MOVA): Remove.
32753         (atomic_load<mode>): Change operand 0 predicate to
32754         nonimmediate_operand and fix up the destination when needed.
32755         Use UNSPEC_LDA.
32756         (atomic_loaddi_fpu): Use UNSPEC_LDA.
32757         (atomic_store<mode>): Change operand 1 predicate to
32758         nonimmendate_operand and move the source to register when needed.
32759         Use UNSPEC_STA.
32760         (atomic_store<mode>_1): Use UNSPEC_STA.
32761         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
32762         Fix moves from memory operand.  Use UNSPEC_STA.
32763
32764 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32765
32766         * expmed.c (strict_volatile_bitfield_p): Check that the access will
32767         not cross a MODESIZE boundary.
32768         (store_bit_field, extract_bit_field): Added assertions in the
32769         strict volatile bitfields code path.
32770
32771 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
32772
32773         PR target/65624
32774         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
32775         Increase args array size by one to avoid buffer overflow.
32776
32777 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
32778
32779         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
32780         split_part.
32781         * ipa-inline.c (edge_badness): Add wrapper penalty.
32782         (sum_callers): Move up.
32783         (inline_small_functions): Set single_caller.
32784         * ipa-inline.h (inline_summary): Add single_caller.
32785         * ipa-split.c (split_function): Set split_part.
32786         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
32787         * cgraph.h (cgraph_node): Add split_part.
32788
32789 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
32790
32791         PR target/58945
32792         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
32793         Do not split operands 0 and operands 2 to halfmode.
32794         (atomic_compare_and_swap<mode>): Update for
32795         atomic_compare_and_swap<dwi>_doubleword changes.
32796
32797 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
32798
32799         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
32800         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
32801         no caching is done.
32802
32803 2015-03-31  Martin Liska  <mliska@suse.cz>
32804
32805         PR ipa/65557
32806         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
32807         has already filled up function summary.
32808         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
32809
32810 2015-03-31  Richard Biener  <rguenther@suse.de>
32811
32812         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
32813         of types.
32814
32815 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
32816
32817         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
32818         nested functions.
32819         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
32820         (s390_asm_output_function_label): Adapt to new signature of
32821         s390_function_num_hotpatch_hw
32822         Optimise the code generating assembler output.
32823         Add comments to assembler file.
32824
32825 2015-03-31  Richard Biener  <rguenther@suse.de>
32826
32827         PR middle-end/65626
32828         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
32829         of the noreturn call so it is last and cleanup_control_flow_bb
32830         can do the CFG part.
32831
32832 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
32833
32834         PR target/65531
32835         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
32836         same_comdat_group for external symbols.
32837         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
32838         infinite same_comdat_group traversal loop.
32839
32840 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
32841
32842         PR plugins/61176
32843         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
32844         automatically to $headers.
32845
32846 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
32847
32848         PR ipa/65610
32849         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
32850         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
32851         function.
32852         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
32853         Use it.
32854         * ipa-prop.c (param_type_may_change_p): Likewise.
32855         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
32856         (remove_unused_scope_block_p): Add in_ctor_dtor_block
32857         argument.  Before inlining, preserve
32858         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
32859         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
32860         recursive calls.
32861         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
32862
32863 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
32864
32865         PR ipa/65076
32866         * ipa-inline.c (edge_badness): Base denominator on callee's
32867         grwoth squared.
32868
32869 2015-03-27  Martin Jambor  <mjambor@suse.cz>
32870
32871         PR ipa/65478
32872         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
32873         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
32874         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
32875         node_calling_single_call.
32876         * ipa-cp.c (count_callers): New function.
32877         (set_single_call_flag): Likewise.
32878         (initialize_node_lattices): Count callers and set single_flag_call if
32879         necessary.
32880         (incorporate_penalties): New function.
32881         (good_cloning_opportunity_p): Use it, dump new flags.
32882         (propagate_constants_topo): Set node_within_scc flag if appropriate.
32883         * doc/invoke.texi (ipa-cp-recursion-penalty,
32884         ipa-cp-single-call-pentalty): Document.
32885
32886 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
32887
32888         PR ipa/65588
32889         * symtab.c (symtab_node::get_partitioning_class): Register vars
32890         are duplicated.
32891         * varpool.c (symbol_table::output_variables) Do not assemble unefined
32892         decls for non-symbols.
32893
32894 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
32895
32896         PR target/65248
32897         * output.h (default_binds_local_p_2): New.
32898         * varasm.c (default_binds_local_p_2): Renamed to ...
32899         (default_binds_local_p_3): This.  Don't return true on protected
32900         data symbol if protected data may be external.
32901         (default_binds_local_p): Use default_binds_local_p_3.
32902         (default_binds_local_p_1): Likewise.
32903         (default_binds_local_p_2): New.
32904         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
32905         default_binds_local_p_2 if TARGET_MACHO is undefined.
32906
32907 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
32908
32909         PR target/65593
32910         * config/i386/i386.c (legitimize_pic_address): If base
32911         is SYMBOL_REF or LABEL_REF using %rip addressing, force
32912         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
32913
32914 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
32915
32916         PR target/65531
32917         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
32918         comdat groups.
32919
32920 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
32921
32922         PR ipa/65600
32923         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
32924         of optimized out indirect call.
32925         (redirect_to_unreachable): Always build symbol table node for
32926         BUILT_IN_UNREACHABLE
32927
32928 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
32929
32930         PR target/65407
32931         * ira-costs.c (record_reg_classes): Process all constraint string
32932         containing 0-9.
32933
32934 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
32935
32936         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
32937         memory_operand.
32938
32939         PR target/65052
32940         * config/c6x/constraints.md (S3): New constraint.
32941         * config/c6x/c6x.md (real_jump): Use it.
32942
32943 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
32944
32945         PR middle-end/65595
32946         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
32947         do redirection if the call is not optimized out.
32948
32949 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
32950
32951         PR target/65495
32952         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
32953         (fchkp-check-incomplete-type): Add LTO.
32954         (fchkp-zero-input-bounds-for-main): Likewise.
32955         (fchkp-first-field-has-own-bounds): Likewise.
32956         (fchkp-narrow-bounds): Likewise.
32957         (fchkp-narrow-to-innermost-array): Likewise.
32958         (fchkp-use-static-bounds): Likewise.
32959         (fchkp-use-static-const-bounds): Likewise.
32960         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
32961
32962 2015-03-27  Marek Polacek  <polacek@redhat.com>
32963
32964         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
32965
32966 2015-03-27  Marek Polacek  <polacek@redhat.com>
32967
32968         PR sanitizer/65583
32969         * ubsan.c (ubsan_create_edge): New function.
32970         (instrument_bool_enum_load): Call it.
32971         (instrument_nonnull_arg): Likewise.
32972         (instrument_nonnull_return): Likewise.
32973         (instrument_object_size): Likewise.
32974
32975 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
32976
32977         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
32978         auto_vec.
32979
32980 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
32981
32982         PR lto/65536
32983         * lto-streamer.h (class lto_location_cache): New.
32984         (struct data_in): Add location_cache.
32985         (lto_input_location): Update prototype.
32986         (stream_input_location_now): New.
32987         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
32988         pointer to location.
32989         (stream_input_location): Update.
32990         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
32991         (warn_odr): Apply location cache before warning.
32992         (lto_input_location): Update prototype.
32993         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
32994         Use stream_input_location_now.
32995         * lto-streamer-in.c (lto_location_cache::current_cache): New static
32996         variable.
32997         (lto_location_cache::cmp_loc): New function.
32998         (lto_location_cache::apply_location_cache): New function.
32999         (lto_location_cache::accept_location_cache): New function.
33000         (lto_location_cache::revert_location_cache): New function.
33001         (lto_location_cache::input_location): New function.
33002         (lto_input_location): Do location caching.
33003         (stream_input_location_now): New function.
33004         (input_eh_region, input_struct_function_base): Use
33005         stream_input_location_now.
33006         (lto_data_in_create): use new.
33007         (lto_data_in_delete): Use delete.
33008         * tree-streamer-in.c (unpack_ts_block_value_fields,
33009         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
33010         lto_input_ts_exp_tree_pointers): Update for cached location api.
33011
33012 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33013
33014         PR ipa/65076
33015         * passes.def: Add pass_nothrow.
33016         * ipa-pure-const.c: (pass_data_nothrow): New.
33017         (pass_nothrow): New.
33018         (pass_nothrow::execute): New.
33019         (make_pass_nothrow): New.
33020         * tree-pass.h (make_pass_nothrow): Declare.
33021
33022 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33023
33024         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
33025         edge to change by speculation resolution or redirection.
33026         (edge_set_predicate): Likewise.
33027         (inline_summary_t::duplicate): Likewise.
33028         (remap_edge_summaries): Likewise.
33029
33030 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33031
33032         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
33033         New macros.
33034         (can_inline_edge_p): Relax option matching for always inline functions.
33035
33036 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
33037
33038         PR target/65561
33039         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
33040         Check operand 4 and operand 0 for equality.
33041         (avx512f_vextract<shuffletype>32x4_1_maskm):
33042         Check operand 6 and operand 0 for equality.
33043         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
33044         for equality.
33045         (vec_extract_hi_<mode>_maskm): Ditto.
33046
33047 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33048
33049         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
33050         dead calls back to live.
33051         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
33052         cross check to ...
33053         (cgraph_node::verify_node): ... here; verify only callee edges,
33054         not caller.
33055         * cif-code.def (CILK_SPAWN): New code.
33056
33057 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
33058
33059         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
33060         (edge_set_predicate): Use it to mark unreachable edges.
33061         (inline_summary_t::duplicate): Remove unnecesary code.
33062         (remap_edge_summaries): Likewise.
33063         (dump_inline_summary): Report contains_cilk_spawn.
33064         (compute_inline_parameters): Compute contains_cilk_spawn.
33065         (inline_read_section, inline_write_summary): Stream
33066         contains_cilk_spawn.
33067         * ipa-inline.c (can_inline_edge_p): Do not touch
33068         DECL_STRUCT_FUNCTION that may not be available;
33069         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
33070         remove check for callee_fun->can_throw_non_call_exceptions and
33071         replace it by optimization attribute check; check for flag_exceptions.
33072         * ipa-inline-transform.c (inline_call): Maintain
33073         DECL_FUNCTION_PERSONALITY
33074         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
33075
33076 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
33077
33078         PR tree-optimization/65551
33079         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
33080         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
33081
33082 2015-03-26  Richard Biener  <rguenther@suse.de>
33083
33084         PR middle-end/65555
33085         * tree-cfg.c (verify_gimple_call): Do not require a call to
33086         have no LHS if it wasn't recognized as control altering yet.
33087
33088 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
33089
33090         PR tree-optimization/64715
33091         * passes.def: Add another instance of pass_object_sizes before ccp1.
33092         * tree-object-size.c (pass_object_sizes::execute): In
33093         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
33094         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
33095         __bos result and the computed constant.  Remove redundant
33096         checks, obsoleted by gimple_call_builtin_p test.
33097
33098         * var-tracking.c (variable_tracking_main_1): Don't track
33099         variables for targetm.no_register_allocation targets.
33100
33101 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
33102
33103         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
33104         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
33105
33106 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
33107
33108         PR target/65569
33109         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
33110         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
33111         0.0 is correctly setup.
33112         (extenddftf2_internal): Likewise.
33113
33114 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
33115
33116         PR tree-optimization/65177
33117         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
33118         (bb_in_bbs): New.
33119         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
33120         edges not adjacent on the path to the original code.
33121
33122 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
33123
33124         PR bootstrap/65537
33125         * doc/install.texi (Building a native compiler): Document new
33126         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
33127         configuration assumes that the host supports the linker plugin.
33128
33129 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
33130
33131         PR target/65508
33132         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
33133         chain for generated call.
33134
33135 2015-03-25  Richard Biener  <rguenther@suse.de>
33136
33137         * passes.c (pass_manager::execute_early_local_passes): Guard
33138         execution of pass_chkp_instrumentation_passes with
33139         flag_check_pointer_bounds.
33140         (pass_chkp_instrumentation_passes::gate): Likewise.
33141
33142 2015-03-25  Martin Liska  <mliska@suse.cz>
33143
33144         PR tree-optimization/65538
33145         * symbol-summary.h (function_summary::~function_summary):
33146         Relese memory for allocated summaries.
33147         (function_summary::release): New function.
33148
33149 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
33150
33151         PR lto/65515
33152         * lto-streamer-out.c (DFS::worklist): New struct.
33153         (DFS::worklist_vec): New data member.
33154         (DFS::next_dfs_num): Remove.
33155         (DFS::DFS): Rewritten using worklist instead of recursion,
33156         using most of code from DFS::DFS_write_tree.
33157         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
33158         pass it to DFS_write_tree calls.
33159         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
33160         quick initial checks push it into worklist_vec and return.
33161
33162 2015-03-25  Richard Biener  <rguenther@suse.de>
33163
33164         PR middle-end/65519
33165         * genmatch.c (expr::gen_transform): Re-write to avoid
33166         using gimple_build.
33167
33168 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
33169
33170         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
33171
33172 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
33173
33174         * config/arm/arm.opt (print_tune_info): New option.
33175         * config/arm/arm.c (arm_print_tune_info): New function.
33176         (arm_file_start): Call arm_print_tune_info.
33177         * config/arm/arm-protos.h (struct tune_params): Add comment.
33178         * doc/invoke.texi (@item -mprint-tune-info): New item.
33179         (-mtune): mention it in ARM Option Summary.
33180
33181 2015-03-25  DJ Delorie  <dj@redhat.com>
33182
33183         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
33184         correct clause.
33185
33186 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
33187             Martin Liska  <mliska@suse.cz>
33188
33189         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
33190         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
33191         (sem_item::add_type): New function.
33192         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
33193         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
33194         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
33195         (sem_function::equals_wpa): Fix typo.
33196         * ipa-icf.h (sem_item::add_type): New function.
33197         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
33198         order.
33199
33200 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
33201
33202         PR tree-optimization/65533
33203         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
33204         with swapped operands, call vect_free_slp_tree on
33205         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
33206         vector.
33207
33208 2015-03-24  Richard Biener  <rguenther@suse.de>
33209
33210         PR middle-end/65517
33211         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
33212         for fixup if necessary.
33213
33214 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
33215
33216         * doc/extend.texi (Function Attributes): Add @cindex entries
33217         for all attributes and regularize their format.  Delete text
33218         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
33219         information about "eightbit_data", "tiny_data", and "model"
33220         variable attributes to the Variable Attributes section.  Fix
33221         some obvious typos and copy-editing issues.
33222         (Variable Attributes, Type Attributes): Likewise add/fix
33223         @cindex entries for all attributes.
33224
33225 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
33226
33227         PR target/65523
33228         * tree-chkp.c (chkp_build_returned_bound): Ignore
33229         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
33230
33231 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
33232
33233         PR target/65505
33234         * config/sh/predicates.md (simple_mem_operand,
33235         displacement_mem_operand): Add test for reg.
33236         (short_displacement_mem_operand): Test for displacement_mem_operand
33237         before invoking sh_disp_addr_displacement.
33238         * config/sh/constraints.md (Sdd, Sra): Simplify.
33239         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
33240         Remove redundant displacement_mem_operand tests.
33241
33242 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
33243
33244         PR target/65296
33245         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
33246         the same -mmcu=MCU more than once.
33247
33248 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
33249
33250         PR bootstrap/65522
33251         * ipa-devirt.c: Remove duplicate demangle.h include.
33252
33253         PR target/65504
33254         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
33255         on the pseudo.
33256         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
33257         REG_POINTER on *destptr after adjusting it for prologue size.
33258
33259         PR ipa/65521
33260         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
33261         ultimate_alias_target ()->order ints instead of
33262         ultimate_alias_target () pointers.
33263
33264 2015-03-23  Richard Biener  <rguenther@suse.de>
33265
33266         PR tree-optimization/65518
33267         * tree-vect-stmts.c (vectorizable_load): Reject single-element
33268         interleaving cases we generate absymal code for.
33269
33270 2015-03-23  Richard Biener  <rguenther@suse.de>
33271
33272         PR tree-optimization/65494
33273         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
33274         matches here.
33275         (vect_analyze_slp_instance): But do that here, always and once.
33276
33277 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33278
33279         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
33280         adding T or multiplying by T+1 and subracting T.
33281
33282 2015-03-22  Jeff Law  <law@redhat.com>
33283
33284         PR rtl-optimization/64317
33285         * Makefile.in (OBJS): Add gcse-common.c
33286         * gcse.c: Include gcse-common.h
33287         (struct modify_pair_s): Move structure definition to gcse-common.h
33288         (compute_transp): Move function to gcse-common.c.
33289         (canon_list_insert): Similarly.
33290         (record_last_mem_set_info): Break out some code and put it into
33291         gcse-common.c.  Call into the new common code.
33292         (compute_local_properties): Pass additional arguments to compute_transp.
33293         * postreload-gcse.c: Include gcse-common.h and df.h
33294         (modify_mem_list_set, blocks_with_calls): New variables.
33295         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
33296         (get_bb_avail_insn): Pass in the expression index too.
33297         (alloc_mem): Allocate memory for the new bitmaps and lists.
33298         (free_mem): Free memory for the new bitmaps and lists.
33299         (insert_expr_in_table): Record a bitmap index for each entry we
33300         add to the table.
33301         (record_last_mem_set_info): Call into common code in gcse-common.c.
33302         (get_bb_avail_insn): If no available insn was found in the requested
33303         BB.  If BB has a single predecessor, see if the expression is
33304         transparent in BB and available in that single predecessor.
33305         (compute_expr_transp): New wrapper for compute_transp.
33306         (eliminate_partially_redundant_load): Pass expression's bitmap_index
33307         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
33308         (gcse_after_reload_main): If there are elements in the hash table,
33309         then compute transparency for all the elements in the hash table.
33310         * gcse-common.h: New file.
33311         * gcse-common.c: New file.
33312
33313 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
33314
33315         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
33316         as an adjective.
33317         (System Headers): Likewise.
33318         (Ifdef): Likewise.
33319         (Traditional macros): Likewise.
33320         (Invocation): Likewise.
33321         (Option Index): Likewise.
33322         * doc/cppopts.texi (-M): Likewise.
33323         (-finput-charset): Likewise.
33324         (--help): Likewise.
33325         * doc.invoke.texi (AVR Options): Likewise.
33326         (V850 Options): Likewise.
33327
33328 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
33329
33330         PR ipa/65475
33331         * ipa-devirt.c: Include demangle.h
33332         (odr_type_d): Add field rtti_broken.
33333         (odr_subtypes_equivalent_p): Do not require name to match.
33334         (compare_virtual_tables): Fix typo; if type already has ODR violation,
33335         bypass the tests; be ready for function referneces in vtables that are
33336         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
33337         (warn_odr): Give up for nameless types.
33338         (warn_types_mismatch): Report mismatch in mangled names;
33339         report mismatch in anonymous namespaces; look into component types to
33340         give useful error; report when mismatch is dragged in from other ODR
33341         type.
33342         (odr_types_equivalent_p): Match types for being polymorphic; avoid
33343         duplicated diagnostics.
33344         (add_type_duplicate): Reorder checks so more informative ones come
33345         first; fix typo; do not output "the extra base is defined here" when
33346         we did not warn.
33347         (BINFO_N_BASE_BINFOS): Relax sanity check.
33348
33349 2015-03-22  Martin Liska  <mliska@suse.cz>
33350             Jakub Jelinek  <jakub@redhat.com>
33351
33352         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
33353         masks that can potentially include a builtin.
33354         (ix86_add_new_builtins): Introduce fast filter for isa values
33355         that cannot trigger builtin inclusion.
33356
33357 2015-03-22  Martin Liska  <mliska@suse.cz>
33358
33359         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
33360         (sem_item::update_hash_by_local_refs): Likewise.
33361         (sem_variable::get_hash): Empty line is fixed.
33362         (sem_item_optimizer::execute): Include adding of hash references.
33363         (sem_item_optimizer::update_hash_by_addr_refs): New function.
33364         (sem_item_optimizer::build_hash_based_classes): Use local hash.
33365         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
33366         (sem_item::update_hash_by_local_refs): Likewise.
33367
33368 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
33369
33370         PR ipa/65502
33371         * ipa-comdats.c (enqueue_references): Walk through thunks.
33372         (ipa_comdats): Likewise.
33373         (set_comdat_group_1): New function.
33374
33375 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
33376
33377         PR ipa/65475
33378         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
33379         non-polymorphic
33380
33381 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
33382             Gerald Pfeifer  <gerald@pfeifer.com>
33383
33384         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
33385
33386 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
33387             Sandra Loosemore  <sandra@codesourcery.com>
33388
33389         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
33390         function parameter declaration.
33391         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
33392         Update arguments to nios2_adjust_call_address().
33393         (sibcall_internal): Rename from *sibcall.
33394         (sibcall_value_internal): Rename from *sibcall_value.
33395         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
33396         (nios2_large_got_address): Add target temp reg parameter.
33397         (nios2_got_address): Adjust call to nios2_large_got_address, add
33398         force_reg around it.
33399         (nios2_load_pic_address): Add target temp reg parameter, replace call
33400         to nios2_got_address with corresponding code.
33401         (nios2_legitimize_constant_address): Update call to
33402         nios2_load_pic_address.
33403         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
33404         to use temp reg for PIC loading purposes.
33405         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
33406         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
33407         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
33408
33409 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
33410
33411         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
33412         usage of "the @option{...}".
33413         (-Wopenmp-simd): Likewise.
33414         (-fsanitize-recover): Likewise.
33415         (-fsanitize-undefined-trap-on-error): Likewise.
33416         (-flto): Likewise.
33417         (tracer-dynamic-coverage-feedback): Likewise.
33418         (reorder-block-duplicate-feedback): Likewise.
33419         (loop-unroll-jam-size): Likewise.
33420         (-B): Likewise.
33421         (-I-): Likewise.
33422         (-mabs=legacy): Likewise.
33423         (-mupper-regs-df): Likewise.
33424         (-mupper-regs-sf): Likewise.
33425         (-mpointers-to-nested-functions): Likewise.
33426
33427 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
33428
33429         * doc/extend.texi (Cilk Plus Builtins): Add markup.
33430
33431 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
33432
33433         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
33434         additional index entries and cross-references.
33435         (-fchkp-check-incomplete-type): Likewise.
33436         (-fchkp-first-field-has-own-bounds): Likewise.
33437         (-fchkp-narrow-to-innermost-array): Likewise.
33438         (-fchkp-use-fast-string-functions): Likewise.
33439         (-fchkp-use-nochk-string-functions): Likewise.
33440         (-fchkp-use-static-const-bounds): Likewise.
33441         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
33442         (-fchkp-instrument-marked-only): Likewise.
33443         (-fchkp-use-wrappers): Likewise.
33444         (-static-libmpx): Likewise.
33445         (-static-libmpxwrappers): Likewise.
33446         * doc/extend.texi (bnd_legacy): Likewise.
33447         (bnd_instrument): Likewise.
33448         (bnd_variable_size): Likewise.
33449         (Pointer Bounds Checker builtins): Likewise.
33450
33451 2015-03-21  Tom de Vries  <tom@codesourcery.com>
33452
33453         PR tree-optimization/65458
33454         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
33455         * cgraph.h (cgraph_node): Add parallelized_function field.
33456         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
33457         (input_overwrite_node): Read parallelized_function field.
33458         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
33459         parallelized_function on cgraph_node for child_fn.
33460         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
33461         Remove include of gt-tree-parloops.h.
33462         (parallelized_functions): Remove static variable.
33463         (parallelized_function_p): Rewrite using parallelized_function field of
33464         cgraph_node.
33465         (create_loop_fn): Remove adding to parallelized_functions.
33466         * Makefile.in (GTFILES): Remove tree-parloops.c
33467
33468 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
33469
33470         PR rtl-optimization/64366
33471         * lra.c (lra_update_insn_regno_info): Consider regs in
33472         CALL_INSN_FUNCTION_USAGE memory.
33473
33474 2015-03-20  Richard Biener  <rguenther@suse.de>
33475
33476         PR middle-end/64715
33477         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
33478         for type comparison and gcc_checking_assert.
33479         (chrec_fold_plus_poly_poly): Likewise.
33480         (chrec_fold_multiply_poly_poly): Likewise.
33481         (chrec_convert_1): Likewise.
33482         * gimplify.c (gimplify_expr): Remove premature folding of
33483         &X + CST to &MEM[&X, CST].
33484
33485 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
33486
33487         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
33488         already is final.
33489         (ipa_inline): Recompute inline_failed codes.
33490         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
33491         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
33492         CIF_FINAL_ERROR.
33493
33494 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
33495
33496         PR rtl-optimization/60851
33497         * recog.c (constrain_operands): Accept a pseudo register before reload
33498         for LRA enabled targets.
33499
33500 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
33501
33502         PR target/65240
33503         * config/rs6000/predicates.md (easy_fp_constant): Remove special
33504         -ffast-math handling that kept non-0 constants live in the RTL
33505         until reload.  Remove logic testing the number of instructions it
33506         took to create a constant in a GPR that was never used, due to a
33507         test for soft-float earlier.
33508         (memory_fp_constant): Delete, no longer used.
33509
33510         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
33511         alternatives for loading non-0 constants into GPRs for hard
33512         floating point that is no longer needed due to changes in
33513         easy_fp_constant.  Add support for loading 0.0 into GPRs.
33514         (mov<mode>_hardfloat32): Likewise.
33515         (mov<mode>_hardfloat64): Likewise.
33516         (mov<mode>_64bit_dm): Likewise.
33517         (movtd_64bit_nodm): Likewise.
33518         (pre-reload move FP constant define_split): Delete define_split,
33519         since it is no longer used.
33520         (extenddftf2_internal): Remove GHF constraints that are not valid
33521         for extenddftf2.
33522
33523 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
33524
33525         PR rtl-optimization/63491
33526         * lra-constraints.c (check_and_process_move): Use src instead of
33527         sreg.  Remove some dead code.
33528
33529 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
33530
33531         PR ipa/65380
33532         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
33533         (sem_variable::merge): Likewise.
33534
33535 2015-03-19  Martin Liska  <mliska@suse.cz>
33536
33537         PR ipa/65465
33538         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
33539         all fields of cgraph_thunk_info.
33540
33541 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
33542
33543         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
33544         clone instrumented thunks.
33545
33546 2015-03-19  Richard Biener  <rguenther@suse.de>
33547
33548         Revert
33549         2015-03-10  Richard Biener  <rguenther@suse.de>
33550
33551         PR middle-end/63155
33552         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
33553         * tree-ssa-coalesce.c: Include timevar.h.
33554         (attempt_coalesce): Handle graph being NULL.
33555         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
33556         Split out abnormal coalescing to ...
33557         (perform_abnormal_coalescing): ... this function.
33558         (coalesce_ssa_name): Perform abnormal coalescing without computing
33559         live/conflict.
33560         (verify_ssa_coalescing_worker): New function.
33561         (verify_ssa_coalescing): Likewise.
33562
33563 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33564             Jakub Jelinek  <jakub@redhat.com>
33565
33566         PR sanitizer/65400
33567         * tsan.c (instrument_gimple): Clear tail call flag on
33568         calls.
33569
33570 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
33571
33572         PR sanitizer/65400
33573         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
33574         call in the return bb.
33575         (find_split_points): Add RETURN_BB argument, don't call
33576         find_return_bb.
33577         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
33578         if true append TSAN_FUNC_EXIT internal call after the call to
33579         the split off function.
33580         (execute_split_functions): Call find_return_bb here.
33581         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
33582         Adjust find_split_points and split_function calls.
33583
33584 2015-03-18  DJ Delorie  <dj@redhat.com>
33585
33586         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
33587         (iorqi3_virt): Likewise.
33588
33589 2015-03-18  Tom de Vries  <tom@codesourcery.com>
33590
33591         * tree-parloops.c (parallelize_loops): Make static.
33592         * tree-parloops.h (parallelize_loops): Remove extern declaration.
33593
33594 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
33595
33596         PR middle-end/64491
33597         Revert:
33598         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
33599
33600         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
33601         condition would be removed due to undefined behaviour.
33602
33603 2015-03-18  Martin Liska  <mliska@suse.cz>
33604
33605         PR ipa/65432
33606         * cgraph.c (cgraph_node::get_create): Remove unnecessary
33607         xstrdup_for_dump wrapper.
33608         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
33609         sem_item::name.
33610         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
33611         with xstrdup_for_dump.
33612         (sem_variable::equals): Likewise.
33613         (sem_item_optimizer::read_section): Use symtab_node::name instead of
33614         sem_item::name.
33615         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
33616         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
33617         symtab_node::asm_name with xstrdup_for_dump.
33618         (congruence_class::dump): Use symtab_node::name instead of
33619         sem_item::name.
33620         * ipa-icf.h (symtab_node::name): Remove.
33621         (symtab_node::asm_name): Likewise.
33622
33623 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
33624
33625         PR tree-optimization/65450
33626         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
33627         function.
33628         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
33629         it instead of duplicate_ssa_name_ptr_info.
33630
33631         PR target/65222
33632         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
33633
33634 2015-03-18  Richard Biener  <rguenther@suse.de>
33635
33636         * tree-data-ref.h (struct access_matrix): Remove.
33637         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
33638         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
33639         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
33640         (am_vector_index_for_loop): Likewise.
33641         (struct data_reference): Remove access_matrix member.
33642         (DR_ACCESS_MATRIX): Remove.
33643         (lambda_vector_new): Add comment.
33644         (lambda_matrix_new): Use XOBNEWVEC.
33645
33646 2015-03-18  Richard Biener  <rguenther@suse.de>
33647
33648         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
33649         (pass_ch::execute): Cleanup the CFG only if we did sth.
33650         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
33651
33652 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33653
33654         * expmed.c (synth_mult): Use std::swap instead of manually
33655         swapping algorithms.
33656
33657 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
33658
33659         PR target/65078
33660         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
33661
33662 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
33663
33664         PR target/65296
33665         * config/avr/avr.opt (-nodevicelib): New option.
33666         * doc/invoke.texi (AVR Options): Document it.
33667         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
33668         libgcc.a, libc.a, libm.a.
33669         * config/avr/specs.h: Same.
33670         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
33671         which don't (directly) depend on the device.  Print more help.
33672         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
33673         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
33674         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
33675         case of an error.
33676         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
33677         for specs file name.
33678         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
33679         * config/avr/avr-mcus.def: Adjust initializers and comments.
33680
33681 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
33682
33683         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
33684         DECL_ONE_ONLY to check if decl is one only.
33685         * ipa-split.c (consider_split): Limit splitt of one only functions.
33686
33687 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
33688
33689         PR tree-optimization/65427
33690         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
33691         functions.
33692         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
33693
33694 2015-03-16  Marek Polacek  <polacek@redhat.com>
33695
33696         * cgraph.h (add_new_static_var): Remove declaration.
33697         * varpool.c (add_new_static_var): Remove function.
33698
33699 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
33700
33701         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
33702         instead of vec<tree> * with vec_alloc and release for args.
33703         Adjust all users.
33704
33705         PR middle-end/65431
33706         * omp-low.c (delete_omp_context): Only splay_tree_delete
33707         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
33708         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
33709
33710 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
33711
33712         PR sanitizer/64820
33713         * cfgexpand.c (align_base): New function.
33714         (alloc_stack_frame_space): Call it.
33715         (expand_stack_vars): Align prev_frame to be sure
33716         data->asan_vec elements aligned properly.
33717
33718 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
33719
33720         PR middle-end/65409
33721         * expr.c (store_field): Do not do a direct block copy if the source is
33722         a PARALLEL with BLKmode.
33723
33724 2015-03-16  Tom de Vries  <tom@codesourcery.com>
33725
33726         PR middle-end/65414
33727         Revert:
33728         2015-03-12  Tom de Vries  <tom@codesourcery.com>
33729
33730         PR rtl-optimization/64895
33731         * lra-lives.c (check_pseudos_live_through_calls): Use
33732         actual_call_used_reg_set instead of call_used_reg_set, if available.
33733
33734 2015-03-16  Alan Modra  <amodra@gmail.com>
33735
33736         PR target/63150
33737         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
33738         Modify Z->r bswapdi splitter to use dest in place of scratch.
33739         In r->Z and Z->r bswapdi splitter rename word_high, word_low
33740         to word1, word2 and rearrange logic to suit.
33741         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
33742         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
33743         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
33744         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
33745         early clobber.
33746
33747 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
33748
33749         PR tree-optimization/65369
33750         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
33751         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
33752         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
33753
33754         PR tree-optimization/65418
33755         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
33756         are casts in the first PLUS_EXPR operand, ensure tbias and
33757         *totallowp are in the inner type.
33758
33759         PR rtl-optimization/65401
33760         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
33761         argument.  If true, adjust_address_nv of x with big-endian
33762         correction for the mode widening to GET_MODE (y).
33763         (make_field_assignment): Don't do MEM mode widening here.
33764         Use MEM_P instead of GET_CODE == MEM.
33765
33766 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
33767
33768         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
33769         the external decls.
33770
33771 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33772
33773         PR target/64600
33774         * config/arm/arm.c (arm_gen_constant, AND case): Use
33775         ARM_SIGN_EXTEND when constructing AND mask.
33776
33777 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33778
33779         * graph.c (print_graph_cfg): Make function names visible and append
33780         parenthesis to it.  Also make groups of basic blocks belonging to the
33781         same function visible.
33782
33783 2015-03-12  Richard Biener  <rguenther@suse.de>
33784
33785         PR middle-end/44563
33786         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
33787         to avoid quadratic behavior with inline expansion splitting blocks.
33788         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
33789         with the successor if the predecessor will be merged with it.
33790         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
33791         entry block with its successor.
33792
33793 2015-03-13  Richard Biener  <rguenther@suse.de>
33794
33795         PR middle-end/44563
33796         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
33797         (cleanup_tree_cfg_1): Do not call it.
33798         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
33799         (fixup_noreturn_call): Mark the stmt as control altering.
33800         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
33801         here.
33802         (pass_data_fixup_cfg): Produce a dump file.
33803         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
33804         (need_noreturn_fixup): New global.
33805         (pass_dominator::execute): Fixup queued noreturn calls.
33806         (optimize_stmt): Queue calls that became noreturn for fixup.
33807         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
33808         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
33809         (el_to_fixup): New global.
33810         (eliminate_dom_walker::before_dom_childre): Queue calls that
33811         became noreturn for fixup.
33812         (eliminate): Fixup queued noreturn calls.
33813         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
33814         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
33815         (substitute_and_fold_dom_walker::before_dom_children): Queue
33816         alls that became noreturn for fixup.
33817         (substitute_and_fold): Fixup queued noreturn calls.
33818
33819 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
33820
33821         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
33822         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
33823         are building; for methods check ODR type of class they belong to if
33824         they may lead to a polymorphic call.
33825         (sem_function::compare_polymorphic_p): Be bit smarter about testing
33826         when function may lead to a polymorphic call.
33827         (sem_function::compare_type_list): Remove.
33828         (sem_variable::equals): Update use of compatible_types_p.
33829         (sem_variable::parse_tree_refs): Remove.
33830         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
33831         cdtor.
33832         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
33833         matching here.
33834         (func_checker::compatible_polymorphic_types_p): Break out from ...
33835         (unc_checker::compatible_types_p): ... here.
33836         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
33837         Declare.
33838         (unc_checker::compatible_types_p): Update.
33839         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
33840         Remove.
33841
33842 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33843
33844         PR rtl-optimization/65235
33845         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
33846         When first element of vec_concat is const_int, calculate its size
33847         using second element.
33848
33849 2015-03-12  Richard Biener  <rguenther@suse.de>
33850
33851         PR middle-end/65270
33852         * fold-const.c (operand_equal_p): Fix ordering of resetting
33853         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
33854
33855 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33856
33857         * config/s390/s390.c (s390_reorg): Move code to output nops after label
33858         to s390_reorg ().
33859         (s390_asm_output_function_label): Likewise.
33860         * config/s390/s390.c (s390_asm_output_function_label):
33861         Fix function label alignment with -mhtopatch.
33862         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
33863         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
33864         ("nop_2_byte"): New define_insn.
33865         ("nop_4_byte"): Likewise.
33866         ("nop_6_byte"): Likewise.
33867         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
33868         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
33869
33870 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
33871
33872         PR target/65103
33873         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
33874         register.
33875
33876 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
33877
33878         PR target/65044
33879         * toplev.c (process_options): Restrict Pointer Bounds Checker
33880         usage with Address Sanitizer.
33881
33882 2015-03-12  Richard Biener  <rguenther@suse.de>
33883
33884         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
33885         to split on.
33886         * omp-low.c (expand_omp_taskreg): Split block before removing
33887         the stmt.
33888         (expand_omp_target): Likewise.
33889         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
33890         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
33891         stmt to split_block.
33892
33893 2015-03-12  Tom de Vries  <tom@codesourcery.com>
33894
33895         PR rtl-optimization/64895
33896         * lra-lives.c (check_pseudos_live_through_calls): Use
33897         actual_call_used_reg_set instead of call_used_reg_set, if available.
33898
33899 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
33900
33901         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
33902         (cgraph_node::remove): Likewise.
33903         (cgraph_node::get_untransformed_body): Likewise.
33904         * varpool.c (varpool_node::remove): Likewise.
33905         (varpool_node::get_constructor): Add sanity check.
33906
33907 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
33908
33909         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
33910         old GCC versions.
33911         (-fabi-compat-version): Likewise.
33912         (-ffriend-injection): Likewise.
33913         (-Wdeclaration-after-statement): Likewise.
33914         (-fomit-frame-pointer): Likewise.
33915         (-ftree-coalesce-inlined-vars): Likewise.
33916         (-fvisibility=): Likewise.
33917         * doc/extend.texi (Typeof): Likewise.
33918         (Zero Length): Likewise.
33919         (Escaped Newlines): Likewise.
33920         (Compound Literals): Likewise.
33921         (Function Attributes): Likewise.
33922         (Label Attributes): Likewise.
33923         (Type Attributes): Likewise.
33924         (Function Names): Likewise.
33925         (Other Builtins): Likewise.
33926         (Function Specific Option Pragmas): Likewise.
33927         (C++ Interface): Likewise.
33928
33929 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
33930
33931         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
33932
33933 2015-03-11  Marek Polacek  <polacek@redhat.com>
33934
33935         PR tree-optimization/65388
33936         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
33937
33938 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
33939
33940         PR target/65296
33941         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
33942         * configure: Regenerate.
33943         * config.in: Regenerate.
33944         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
33945         [-mn-flash]: Document it.
33946         [__AVR_ARCH__]: Document avrtiny.
33947
33948         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
33949         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
33950         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
33951
33952 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33953
33954         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
33955
33956 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
33957
33958         PR target/65242
33959         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
33960         allow reloads of PLUS in floating point/VSX registers.
33961
33962 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
33963
33964         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
33965         crypto_sha256_fast.
33966         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
33967
33968 2015-03-11  Richard Biener  <rguenther@suse.de>
33969
33970         PR tree-optimization/65310
33971         * tree-sra.c (build_ref_for_offset): Also preserve larger
33972         alignment.
33973
33974 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
33975
33976         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
33977
33978 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
33979
33980         PR target/65368
33981         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
33982         new define_expand.
33983         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
33984
33985 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
33986
33987         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
33988         (sem_function::equals_wpa): ... here.
33989
33990 2015-03-10  Marek Polacek  <polacek@redhat.com>
33991             Jakub Jelinek  <jakub@redhat.com>
33992
33993         PR sanitizer/65367
33994         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
33995         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
33996         separately.
33997
33998 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
33999
34000         PR target/65286
34001         * config/rs6000/t-linux: For powerpc64* target set
34002         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
34003
34004 2015-03-10  Richard Biener  <rguenther@suse.de>
34005
34006         PR middle-end/44563
34007         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
34008         for redirect_all_calls.
34009
34010 2015-03-10  Marek Polacek  <polacek@redhat.com>
34011
34012         * gdbinit.in (pcfun): Define and document.
34013
34014 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
34015
34016         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
34017         of libgomp-plugin.h.
34018         (find_target_compiler): Support a case when the path to gcc is
34019         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
34020         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
34021         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
34022         libgomp-plugin.h.
34023         (main): Use GCC_INSTALL_NAME as target_driver_name.
34024         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
34025         define.
34026         (mkoffload.o): Remove obsolete include path and defines.
34027         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
34028
34029 2015-03-10  Richard Biener  <rguenther@suse.de>
34030
34031         PR middle-end/63155
34032         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
34033         * tree-ssa-coalesce.c: Include timevar.h.
34034         (attempt_coalesce): Handle graph being NULL.
34035         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
34036         Split out abnormal coalescing to ...
34037         (perform_abnormal_coalescing): ... this function.
34038         (coalesce_ssa_name): Perform abnormal coalescing without computing
34039         live/conflict.
34040         (verify_ssa_coalescing_worker): New function.
34041         (verify_ssa_coalescing): Likewise.
34042
34043 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
34044
34045         PR target/65296
34046         * config.gcc (extra_options) [avr]: Remove.
34047         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
34048         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
34049         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
34050
34051         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
34052         (-mmcu=): Add Var and MissingArgError properties.
34053         (-march=): Remove.
34054         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
34055         * config/avr/t-multilib: Regenerate.
34056         * config/avr/specs.h: New file.
34057         * config/avr/driver-avr.c: New file.
34058         * config/avr/genopt.sh: Remove file.
34059         * config/avr/avr-tables.opt: Remove file.
34060         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
34061         * config/avr/avr-c.c: Same.
34062         * avr-arch.h: Same.
34063         (avr_current_device): Remove proto.
34064         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
34065         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
34066         (EXTRA_SPEC_FUNCTIONS): Define.
34067         (avr_devicespecs_file): New specs function proto.
34068         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
34069         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
34070         (avr_current_device): Remove definition and usage.
34071         (avr_set_core_architecture): New static function.
34072         (avr_option_override): Use it.
34073         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
34074         (mcu_name): New static array.
34075         (comparator, avr_archs_str, avr_mcus_str): New static functions.
34076         (avr_inform_devices, avr_inform_core_architectures): New functions.
34077         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
34078         (avrlibc.h) [WITH_AVRLIBC]: Include.
34079         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
34080         (print_mcu): Rewrite from scratch.
34081         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
34082         Forward to avr-specific specs defined in device-specs file.
34083         * config/avr/t-avr (driver-avr.o): New rule.
34084         (avr-devices.o): Depend on avr-arch.h.
34085         (avr-mcus): No more depend on avr-tables.opt.
34086         (avr-tables.opt): Remove rule.
34087         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
34088
34089 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
34090
34091         * c-family/c.opt (fchkp-use-wrappers): New.
34092         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
34093         (chkp_wrap_function): New.
34094         (chkp_build_instrumented_fndecl): Support wrapped
34095         functions.
34096         * doc/invoke.texi (-fcheck-pointer-bounds): New.
34097         (-fchkp-check-incomplete-type): New.
34098         (-fchkp-first-field-has-own-bounds): New.
34099         (-fchkp-narrow-bounds): New.
34100         (-fchkp-narrow-to-innermost-array): New.
34101         (-fchkp-optimize): New.
34102         (-fchkp-use-fast-string-functions): New.
34103         (-fchkp-use-nochk-string-functions): New.
34104         (-fchkp-use-static-bounds): New.
34105         (-fchkp-use-static-const-bounds): New.
34106         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
34107         (-fchkp-check-read): New.
34108         (-fchkp-check-write): New.
34109         (-fchkp-store-bounds): New.
34110         (-fchkp-instrument-calls): New.
34111         (-fchkp-instrument-marked-only): New.
34112         (-fchkp-use-wrappers): New.
34113         (-static-libmpx): New.
34114         (-static-libmpxwrappers): New.
34115
34116 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
34117
34118         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
34119         (CHKP_SPEC): Add wrappers library.
34120         * c-family/c.opt (static-libmpxwrappers): New.
34121
34122 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
34123
34124         * config/i386/linux-common.h (LIBMPX_LIBS): New.
34125         (LIBMPX_SPEC): New.
34126         (CHKP_SPEC): New.
34127         * gcc.c (CHKP_SPEC): New.
34128         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
34129         * c-family/c.opt (static-libmpx): New.
34130
34131 2015-03-10  Richard Biener  <rguenther@suse.de>
34132
34133         PR middle-end/44563
34134         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
34135         for compare_type.
34136         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
34137         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
34138         (cgraph_add_edge_to_call_site_hash): Likewise.
34139         (cgraph_node::get_edge): Likewise.
34140         (cgraph_edge::set_call_stmt): Likewise.
34141         (cgraph_edge::remove_caller): Likewise.
34142
34143 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
34144
34145         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
34146         (callee_saved_gpr_regs_size): ... this.
34147         (callee_saved_regs_first_regno): Rename to ...
34148         (callee_saved_first_gpr_regno): ... this.
34149         (callee_saved_regs_last_regno) Rename to ...
34150         (callee_saved_last_gpr_regno): ... this.
34151         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
34152         variables.
34153         (nds32_initial_elimination_offset): Likewise.
34154         (nds32_expand_prologue): Likewise.
34155         (nds32_expand_epilogue): Likewise.
34156         (nds32_expand_prologue_v3push): Likewise.
34157         (nds32_expand_epilogue_v3pop): Likewise.
34158         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
34159         Adjust renamed variables.
34160         (nds32_output_stack_pop): Likewise.
34161
34162 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34163
34164         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
34165         code in comment.
34166
34167 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
34168
34169         PR rtl-optimization/65321
34170         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
34171         than shift mode.
34172         * var-tracking.c (use_narrower_mode): Likewise.
34173
34174 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
34175
34176         PR tree-optimization/65355
34177         * varasm.c (notice_global_symbol): Do not produce RTL.
34178         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
34179         anchor.
34180         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
34181         check for section anchors.
34182
34183 2015-03-10  Alan Modra  <amodra@gmail.com>
34184
34185         PR target/65286
34186         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
34187         to be single-arch by default.  Set cpu_is_64bit for powerpc64
34188         given --with-cpu=native.
34189         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
34190         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
34191         and powerpc64le.
34192         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
34193         rs6000_isa_flags rather than TARGET_64BIT.
34194
34195 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
34196             Kaz Kojima  <kkojima@gcc.gnu.org>
34197
34198         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
34199
34200 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
34201
34202         PR lto/65361
34203         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
34204         on a TREE_BINFO, instead use BINFO_TYPE.
34205
34206 2015-03-09  Richard Biener  <rguenther@suse.de>
34207
34208         PR middle-end/65270
34209         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
34210         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
34211         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
34212         of that.  When comparing dereferences compare alignment.
34213         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
34214
34215 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
34216
34217         * ipa-inline-analysis.c (check_callers): Check
34218         node->can_remove_if_no_direct_calls_and_refs_p.
34219         (growth_likely_positive): Reorganize to call
34220         can_remove_if_no_direct_calls_p later.
34221         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
34222         will_be_removed_from_program_if_no_direct_calls_p): Add
34223         will_inline parameter.
34224         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
34225         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
34226         Handle inliner case correctly.
34227
34228 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34229
34230         PR tree-optimization/63743
34231         * cfgexpand.c (reorder_operands): Also reorder if only second operand
34232         had its definition forwarded by TER.
34233
34234 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
34235
34236         PR lto/65316
34237         * ipa-utils.h (types_odr_comparable): Add strict argument.
34238         * ipa-devirt.c: Fix whitespace;
34239         (odr_hasher): Remove.
34240         (odr_name_hasher, odr_vtable_hasher): New hashers.
34241         (can_be_name_hashed_p): New predicate.
34242         (hash_type_name): remove.
34243         (hash_odr_name): New.
34244         (odr_name_hasher::hash): new.
34245         (can_be_vtable_hashed_p): New.
34246         (hash_odr_vtable): New.
34247         (odr_vtable_hasher::hash): New.
34248         (types_same_for_odr): Add strict parameter.
34249         (types_odr_comparable): Likewise.
34250         (odr_name_hasher::equal): New.
34251         (odr_vtable_hasher::equal): New.
34252         (odr_name_hasher::remove): New.
34253         (odr_hash_type): Change to hash_table<odr_name_hasher>.
34254         (odr_vtable_hash_type): New.
34255         (odr_vtable_hash): New.
34256         (odr_subtypes_equivalent_p): Do strict comparsion.
34257         (add_type_duplicate): Merge type names; cleanup; avoid type
34258         duplicates.
34259         (register_odr_type): Initialize vtable hash.
34260         (build_type_inheritance_graph): Likewise
34261         (get_odr_type): Reorg to use two hashes.
34262         (dump_possible_polymorphic_call_targets): Move sanity check after debug
34263         output.
34264         (ipa_devirt): Dump type_inheritance_graph.
34265         (types_same_for_odr): Add strict mode.
34266
34267 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
34268
34269         PR ipa/65334
34270         * cgraph.h (symtab_node): Add definition_alignment,
34271         can_increase_alignment_p and increase_alignment.
34272         * symtab.c (symtab_node::can_increase_alignment_p,
34273         increase_alignment_1, symtab_node::increase_alignment,
34274         symtab_node::definition_alignment): New.
34275         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
34276         can_increase_alignment_p.
34277         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
34278         * tree-vect-stmts.c (ensure_base_align): Likewise.
34279         * varasm.c (function_section_1): Use definition_alignment.
34280         (assemble_start_function): Likewise.
34281         (emit_local): likewise.
34282         (build_constant_desc): Likewsie.
34283         (output_constant_def_contents): Likewise.
34284         (place_block_symbol): Likewise.
34285         (output_object_block): Likewise.
34286
34287 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
34288
34289         PR ipa/65316
34290         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
34291         when outputting debug.
34292
34293 2015-03-07  Marek Polacek  <polacek@redhat.com>
34294             Martin Uecker  <uecker@eecs.berkeley.edu>
34295
34296         PR sanitizer/65280
34297         * doc/invoke.texi: Update description of -fsanitize=bounds.
34298
34299 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
34300
34301         * tree-ssa-phiopt.c (neg_replacement): Remove.
34302         (tree_ssa_phiopt_worker): Remove negate optimization.
34303
34304 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
34305
34306         PR ipa/65302
34307         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
34308
34309 2015-03-06  Richard Biener  <rguenther@suse.de>
34310
34311         PR middle-end/64928
34312         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
34313         and liveout_obstack members.
34314         (calculate_live_on_exit): Remove.
34315         (calculate_live_ranges): Change declaration.
34316         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
34317         (new_tree_live_info): Adjust.
34318         (calculate_live_ranges): Delete livein when not wanted.
34319         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
34320         Deal with partly deleted live info.
34321         (loe_visit_block): Remove temporary bitmap by using
34322         bitmap_ior_and_compl_into.
34323         (live_worklist): Adjust accordingly.
34324         (calculate_live_on_exit): Make static.
34325         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
34326         we do not need livein.
34327
34328 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
34329
34330         * real.c (real_from_string): Fix typo in assertion.
34331
34332 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
34333
34334         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
34335         the patch.
34336
34337 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
34338
34339         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
34340
34341 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
34342
34343         PR target/64342
34344         * lra-assigns.c (find_hard_regno_for): Rename to
34345         find_hard_regno_for_1.  Add a new parameter.
34346         (find_hard_regno_for): New function using find_hard_regno_for_1.
34347
34348 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34349
34350         PR rtl-optimization/65067
34351         * expmed.c (store_bit_field, extract_bit_field): Reworked the
34352         strict volatile bitfield handling.
34353
34354 2015-03-05  Martin Liska  <mliska@suse.cz>
34355
34356         PR ipa/65318
34357         * ipa-icf.c (sem_variable::equals): Compare variables types.
34358
34359 2015-03-05  Richard Henderson  <rth@redhat.com>
34360
34361         PR target/65121
34362         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
34363         correctly check weak symbol binding.
34364
34365 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
34366
34367         PR middle-end/65315
34368         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
34369         needed alignment.
34370
34371 2015-03-05  Martin Liska  <mliska@suse.cz>
34372
34373         * ipa-inline.c (inline_small_functions): Set default value to
34374         prevent warning during bootstrap.
34375         * tree.h: Add pragma guard that ignores false positives during
34376         bootstrap.
34377
34378 2015-03-05  Richard Biener  <rguenther@suse.de>
34379
34380         PR tree-optimization/65310
34381         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
34382         Properly preserve alignment of the base of the access.
34383
34384 2015-03-05  Richard Biener  <rguenther@suse.de>
34385
34386         PR ipa/65270
34387         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
34388         Compare dependence info.
34389
34390 2015-03-05  Richard Biener  <rguenther@suse.de>
34391
34392         PR middle-end/65233
34393         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
34394         tree-into-ssa.h.
34395         (walk_ssa_copies): Revert last chage.  Instead do not walk
34396         SSA names registered for SSA update.
34397
34398 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
34399
34400         PR ipa/65270
34401         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
34402         vtable references for their containing type.
34403         (sem_function::equals_wpa): Compare TYPE_RESTRICT
34404         and type attributes.
34405
34406 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
34407
34408         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
34409         before negating it.
34410         * stor-layout.c (finalize_record_size): Revert latest change.
34411
34412 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
34413
34414         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
34415
34416 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
34417
34418         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
34419         for correct comdat handling.
34420         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
34421         Likewise.
34422         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
34423         (used_from_object_file_p_worker): Remove.
34424         (cgraph_node::only_called_directly_or_alised): Add
34425         used_from_object_file_p.
34426         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
34427         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
34428         can_remove_if_no_direct_calls_and_refs_p.
34429
34430 2015-03-04  Nick Clifton  <nickc@redhat.com>
34431
34432         * config/rl78/rl78.h (enum reg_class): Remove real registers from
34433         General register class.
34434         * config/rl78/rl78-real.md: Replace general register constraints
34435         with real+virtual register constraints.
34436
34437 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34438
34439         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
34440         from checking for -mhtm option.
34441
34442 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
34443
34444         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
34445         (struct ipa_sra_check_caller_data): Add has_thunk field.
34446         (ipa_sra_check_caller): Check for thunk.
34447         (ipa_sra_preliminary_function_checks): Give up on function with
34448         thunks.
34449         (ipa_early_sra): Use call_for_symbol_and_aliases.
34450
34451 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
34452
34453         PR target/65249
34454         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
34455         called for __stack_chk_guard symbol.
34456
34457 2015-03-03  DJ Delorie  <dj@redhat.com>
34458
34459         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
34460         inc/dec.
34461         (*addhi3_real): Likewise.
34462         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
34463         pattern to match incrementing memory.
34464         * config/rl78/predicates.md (rl78_1_2_operand): New.
34465         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
34466         it's the same and only mem.
34467         (rl78_alloc_physical_registers_op2): If there's effectively only
34468         one MEM, transcode it into HL.
34469         (rl78_far_p): Reject addresses that aren't legitimate.
34470
34471 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
34472
34473         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
34474         negating it.
34475
34476         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
34477
34478 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
34479
34480         Implement call0 ABI for xtensa
34481         * config/xtensa/constraints.md ("a" constraint): Include stack
34482         pointer in case of call0 ABI.
34483         ("q" constraint): Make empty in case of call0 ABI.
34484         ("D" constraint): Include stack pointer in case of call0 ABI.
34485         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
34486         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
34487         prototypes.
34488         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
34489         variable.
34490         (xtensa_regno_to_class): Make it a local variable in the
34491         function xtensa_regno_to_class.
34492         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
34493         macro, function prototype and implementation.
34494         (reg_nonleaf_alloc_order): Make it a local variable in the
34495         function order_regs_for_local_alloc.
34496         (xtensa_conditional_register_usage): New function.
34497         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
34498         (xtensa_valid_move): Allow direct moves to stack pointer
34499         register in call0 ABI.
34500         (xtensa_setup_frame_addresses): Only spill register windows in
34501         windowed ABI.
34502         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
34503         call0 ABI respectively.
34504         (xtensa_function_arg_1): Only mark a7 register for copying in
34505         windowed ABI.
34506         (xtensa_call_save_reg): New function.
34507         (compute_frame_size): Add space for callee saved register
34508         storage to the frame size in call0 ABI.
34509         (xtensa_expand_prologue): Generate code to set up stack frame
34510         and save callee-saved registers in call0 ABI.
34511         (xtensa_expand_epilogue): New function.
34512         (xtensa_set_return_address): New function.
34513         (xtensa_return_addr): Calculate return address in call0 ABI.
34514         (xtensa_builtin_saveregs): Only mark a7 register for copying and
34515         emit copying code in windowed ABI.
34516         (order_regs_for_local_alloc): Add preferred register allocation
34517         order for non-leaf function in call0 ABI.
34518         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
34519         (xtensa_asm_trampoline_template): Add trampoline generation for
34520         call0 ABI.
34521         (xtensa_trampoline_init): Add trampoline initialization for
34522         call0 ABI.
34523         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
34524         functions.
34525         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
34526         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
34527         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
34528         ABI call-used registers.
34529         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
34530         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
34531         call0 ABI.
34532         (REG_CLASS_CONTENTS): Include all registers into the preferred
34533         reload registers set, adjust the set in the
34534         xtensa_conditional_register_usage.
34535         (xtensa_regno_to_class): Drop variable declaration.
34536         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
34537         function.
34538         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
34539         respectively.
34540         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
34541         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
34542         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
34543         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
34544         location in call0 ABI.
34545         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
34546         stack adjustment size when handling exception.
34547         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
34548         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
34549         definitions.
34550         ("return" pattern): Generate ret.n/ret in call0 ABI.
34551         ("epilogue" pattern): Expand epilogue.
34552         ("nonlocal_goto" pattern): Use default in call0 ABI.
34553         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
34554         emit eh_set_a0_* depending on ABI.
34555         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
34556         ("eh_set_a0_call0", "blockage"): New patterns.
34557
34558 2015-03-03  Martin Liska  <mliska@suse.cz>
34559
34560         PR ipa/65287
34561         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
34562
34563 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
34564
34565         PR 65138/target
34566         * config/rs6000/rs6000-tables.opt: Regenerate table.
34567
34568 2015-03-03  Renlin Li  <renlin.li@arm.com>
34569
34570         * doc/md.texi (@item ^): Change ? into ^.
34571
34572 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
34573
34574         * doc/tm.texi: Regenerated.
34575
34576 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
34577
34578         * builtins.c (expand_builtin_return_addr): Add
34579         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
34580         surrounding #ifdef.
34581         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
34582         definition to 1.
34583         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
34584         Likewise.
34585         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
34586         undefined.
34587         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
34588         paragraph.
34589
34590 2015-03-03  Martin Jambor  <mjambor@suse.cz>
34591             Eric Botcazou  <ebotcazou@adacore.com>
34592
34593         * tree-sra.c (ipa_sra_check_caller_data): New type.
34594         (has_caller_p): Removed.
34595         (ipa_sra_check_caller): New function.
34596         (ipa_sra_preliminary_function_checks): Use it.
34597
34598 2015-03-03  Martin Liska  <mliska@suse.cz>
34599
34600         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
34601         instead of if branch.
34602
34603 2015-03-03  Martin Liska  <mliska@suse.cz>
34604
34605         PR ipa/65282
34606         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
34607
34608 2015-03-23  Jeff Law  <law@redhat.com>
34609
34610         PR tree-optimization/65241
34611         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
34612         hash table if INSERT is true.
34613
34614 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
34615
34616         PR target/65296
34617         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
34618
34619 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
34620
34621         PR target/64331
34622         * config/avr/avr.c (context.h, tree-pass.h): Include them.
34623         (avr_pass_data_recompute_notes): New static variable.
34624         (avr_pass_recompute_notes): New class.
34625         (avr_register_passes): New static function.
34626         (avr_option_override): Call it.
34627
34628 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
34629
34630         Fix various problems with specs file generation.
34631
34632         PR target/65296
34633         * config.gcc (extra_gcc_objs) [avr]: Remove.
34634         * config/avr/driver-avr.c: Remove file.
34635         * config/avr/t-avr (driver-avr.o): Remove rule.
34636         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
34637         INCLUDES to build.  Depend on TM_H.
34638         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
34639         build warnings.  Fix non-matching types and non-existing %-codes.
34640         (tm.h): Include.
34641         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
34642         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
34643         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
34644         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
34645         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
34646         (LIBGCC_SPEC): Remove definitions.
34647
34648 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
34649
34650         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
34651         to create a register in testing mode.
34652
34653 2015-03-03  Martin Liska  <mliska@suse.cz>
34654             Jan Hubicka  <hubicka@ucw.cz>
34655
34656         PR ipa/65263
34657         * cgraph.c (cgraph_node::has_thunk_p): New function.
34658         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
34659         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
34660         (sem_function::merge): Assert is changed.
34661
34662 2015-03-03  Martin Liska  <mliska@suse.cz>
34663             Martin Jambor  <mjambor@suse.cz>
34664
34665         PR ipa/65087
34666         * ipa-icf.c (sem_item_optimizer::execute): Change function
34667         return value to boolean.
34668         (sem_item_optimizer::merge_classes): Likewise.
34669         (ipa_icf_driver): Return TODO_remove_functions in case there's
34670         a merge operation processed.
34671         * ipa-icf.h: Change function return value to boolean.
34672
34673 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
34674
34675         PR 65138/target
34676         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
34677         processor type for 64-bit little endian PowerPC.
34678
34679         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
34680         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
34681         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
34682         printing built-in mask so it does not pass NULL pointers.
34683
34684         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
34685         -mcpu=powerpc64le.
34686
34687 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
34688
34689         PR target/58158
34690         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
34691         !ISA_HAS_FP_CONDMOVE.
34692
34693 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
34694
34695         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
34696         reload_completed.
34697
34698 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
34699
34700         * doc/invoke.texi (Options for Code Generation Conventions):
34701         Fix URL of DSO paper.
34702
34703 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
34704
34705         PR ipa/65130
34706         * ipa-inline.c (check_callers): Looks for recursion.
34707         (inline_to_all_callers): Give up on uninlinable or recursive edges.
34708         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
34709         summary of inline clones.
34710         (do_estimate_growth_1): Fix recursion check.
34711
34712 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
34713
34714         PR ipa/64988
34715         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
34716         comdat groups.
34717
34718 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
34719             Aldy Hernandez  <aldyh@redhat.com>
34720
34721         PR lto/65276
34722         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
34723         when checking TYPE_BINFO.
34724
34725 2015-03-02  Richard Biener  <rguenther@suse.de>
34726
34727         PR ipa/65270
34728         * ipa-icf-gimple.c: Include builtins.h.
34729         (func_checker::compare_memory_operand): Compare base alignment.
34730
34731 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
34732
34733         PR target/65184
34734         * config/i386/i386.c (ix86_pass_by_reference): Bounds are never
34735         passed by reference.
34736
34737 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
34738
34739         PR target/65183
34740         * tree-chkp.c (chkp_check_lower): Don't check against
34741         zero bounds for already instrumented functions.
34742         (chkp_check_upper): Likewise.
34743         (chkp_fini): Clean pass local data to avoid wrong reusage.
34744
34745 2015-02-28  Martin Liska  <mliska@suse.cz>
34746             Jan Hubicka  <hubicka@ucw.cz>
34747
34748         * ipa-icf.c (sem_variable::equals): Improve debug output;
34749         get variable constructor.
34750         (sem_variable::parse): Do not filter out too early; give up on
34751         volatile and register vars.
34752         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
34753         variables.
34754         * ipa-icf.h (sem_variable::init): Do not set ctor.
34755         (sem_variable::ctor): Remove.
34756
34757 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
34758
34759         PR middle-end/65233
34760         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
34761
34762 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
34763
34764         * ipa-icf.c: Include stor-layout.h
34765         (sem_function::compare_cgraph_references): Rename to ...
34766         (sem_item::compare_cgraph_references): ... this one.
34767         (sem_variable::equals_wpa): New function
34768         (sem_variable::equals): Do not check stuff already verified by
34769         equals_wpa.
34770         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
34771         * ipa-icf.h (sem_item): Add compare_cgraph_references.
34772         (sem_function): Remove compare_cgraph_references.
34773         (sem_variable): Turns equals_wpa into non-inline.
34774
34775 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
34776
34777         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
34778         (sem_item::add_expr): New function.
34779         (sem_function::hash_stmt): Handle operands of most statements.
34780         (sem_variable::get_hash): Hash the actual constructor.
34781         * ipa-icf.h (sem_item): Add add_expr.
34782         (sem_function): Update prototype of hash_stmt
34783
34784 2015-02-28  Martin Liska  <mliska@suse.cz>
34785             Jan Hubicka  <hubicka@ucw.cz>
34786
34787         PR ipa/65245
34788         * ipa-icf-gimple.c (func_checker::compare_function_decl):
34789         Remove.
34790         (func_checker::compare_variable_decl): Skip symtab vars.
34791         (func_checker::compare_cst_or_decl): Update.
34792         * ipa-icf.c (sem_function::parse): Do not consider aliases.
34793         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
34794         use correct symtab predicates.
34795         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
34796         (sem_variable::parse):  Update comment.
34797         (sem_item_optimizer::build_graph): Consider ultimate aliases
34798         for references.
34799
34800 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
34801
34802         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
34803         of OBJ_TYPE_REF.
34804
34805 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
34806
34807         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
34808         (sem_variable::merge) Likewise.
34809
34810 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
34811
34812         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
34813         target; also match flag_ipa_devirt.
34814
34815 2015-03-01  Martin Liska  <mliska@suse.cz>
34816             Jan Hubicka  <hubicka@ucw.cz>
34817
34818         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
34819         Validate variable alignment.
34820         * ipa-icf.c (sem_function::equals_private): Be more precise
34821         about non-common function attributes.
34822         (sem_variable::equals): Likewise.
34823
34824 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
34825
34826         PR ipa/65237
34827         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
34828         across COMDAT group boundary.
34829
34830 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
34831
34832         PR ipa/65232
34833         * ipa-icf.c (clear_decl_rtl): New function.
34834         (sem_function::merge): Clear RTL before forming alias.
34835         (sem_variable::merge): Clear RTL before forming alias.
34836
34837 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
34838
34839         PR ipa/65236
34840         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
34841
34842 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
34843
34844         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
34845         to neon_to_gp<q>.
34846
34847 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
34848
34849         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
34850         a typo in the description.
34851
34852 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
34853
34854         PR target/64317
34855         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
34856         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
34857         * lra-constraints.c: Include "params.h".
34858         (EBB_PROBABILITY_CUTOFF): Use
34859         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
34860         (lra_inheritance): Use '<' instead of '<=' for
34861         EBB_PROBABILITY_CUTOFF.
34862         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
34863         Document change.
34864
34865 2015-02-27  Martin Liska  <mliska@suse.cz>
34866
34867         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
34868         vector length condition.
34869
34870 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
34871
34872         * doc/extend.texi (x86 transactional memory intrinsics):
34873         Reorganize discussion of _xbegin.  Clarify that the return
34874         value is a bit mask.  Expand example and move to end of section.
34875
34876 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
34877             Aldy Hernandez  <aldyh@redhat.com>
34878
34879         PR rtl-optimization/65220
34880         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
34881
34882 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
34883
34884         PR target/65032
34885         * lra-remat.c (update_scratch_ops): New.
34886         (do_remat): Call it.
34887         * lra.c (lra_register_new_scratch_op): New. Take code from ...
34888         (remove_scratches): ... here.
34889         * lra-int.h (lra_register_new_scratch_op): New prototype.
34890
34891 2015-02-27  Marek Polacek  <polacek@redhat.com>
34892
34893         PR c/65040
34894         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
34895         -Wformat-signedness anymore.
34896
34897 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34898
34899         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
34900         function.
34901         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
34902
34903 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34904
34905         * config/s390/s390.c (enum s390_builtin):
34906         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
34907         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
34908         (s390_init_builtins): Generate new builtin functions.
34909         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
34910         (s390_sfpc, s390_efpc): New pattern definitions.
34911
34912 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34913
34914         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
34915         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
34916         (s390_builtin_decls): New array.
34917         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
34918         (s390_builtin_decl): New function.
34919         (TARGET_BUILTIN_DECL): Define macro.
34920
34921 2015-02-27  Richard Biener  <rguenther@suse.de>
34922
34923         PR middle-end/63175
34924         * builtins.c (get_object_alignment_2): Make sure to re-apply
34925         the ANDed mask after recursing to its operand gets us a new
34926         misalignment bit position.
34927
34928 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
34929             Martin Liska  <mliska@suse.cz>
34930
34931         PR bootstrap/65150
34932         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
34933         Use address_matters_p.
34934         (redirect_all_callers, set_addressable): New functions.
34935         (sem_function::merge): Reorganize and fix merging issues.
34936         (sem_variable::merge): Likewise.
34937         (sem_variable::compare_sections): Remove.
34938         * common.opt (fmerge-all-constants, fmerge-constants): Remove
34939         Optimization flag.
34940         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
34941         redirect them.
34942         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
34943         decl is used.
34944         (address_matters_1): New function.
34945         (symtab_node::address_matters_p): New function.
34946         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
34947         check for merged flag.
34948         * cgraph.h (address_matters_p): Declare.
34949         (symtab_node::address_taken_from_non_vtable_p): Remove.
34950         (symtab_node::address_can_be_compared_p): New method.
34951         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
34952         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
34953         Remove.
34954         (comdat_can_be_unshared_p_1) Use address_matters_p.
34955         (update_vtable_references): Fix formating.
34956         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
34957         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
34958         * cgraphclones.c: Preserve merged and icf_merged flags.
34959
34960 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
34961
34962         * doc/extend.texi (Function Attributes): Fix spelling and typos.
34963         (Label Attributes): Likewise.
34964         (Cilk Plus Builtins): Likewise.
34965         (ARC SIMD Built-in Functions): Likewise.
34966         (ARM C Language Extensions (ACLE)): Likewise.
34967         (PowerPC Built-in Functions): Likewise.
34968         (PowerPC Hardware Transactional Memory Built-in Functions):
34969         Likewise.
34970
34971 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
34972
34973         PR tree-optimization/65216
34974         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
34975         new stmt and new SSA_NAME for lhs whenever the arguments have
34976         changed and weren't just swapped.  Fix comment typo.
34977
34978         PR tree-optimization/65215
34979         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
34980         for PDP endian targets.
34981         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
34982         Fix up formatting issues.
34983         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
34984         size is smaller than the original, adjust MEM_REF offset by the
34985         difference of sizes.  Use is_gimple_mem_ref_addr instead of
34986         is_gimple_min_invariant test to avoid adding address temporaries.
34987
34988 2015-02-26  Martin Liska  <mliska@suse.cz>
34989             Jan Hubicka  <hubicka@ucw.cz>
34990
34991         PR ipa/64693
34992         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
34993         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
34994         (sem_item_optimizer::process_cong_reduction): Include division by
34995         sensitive references.
34996         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
34997         * ipa-ref.c (ipa_ref::address_matters_p): New function.
34998         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
34999
35000 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
35001
35002         PR target/65192
35003         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
35004         Remove.
35005         * config/avr/avr.c: Same.
35006         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
35007         Refuse any constant address not in 0..0xbf.
35008         * config/avr/avr.md (*mov<mode>, *movsf): Remove
35009         tiny_valid_direct_memory_access_range from insn conditions.
35010         (mov<mode>): Don't special-case expansion of avrtiny addresses.
35011
35012 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
35013
35014         PR target/61142
35015         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
35016         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
35017         * config/sh/predicates.md (const_logical_operand): New predicate.
35018         * config/sh/sh.md: Add new peephole2 patterns.
35019
35020 2015-02-26  Marek Polacek  <polacek@redhat.com>
35021
35022         PR ipa/65008
35023         * ipa-inline.c (early_inliner): Recompute inline parameters.
35024
35025 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35026
35027         PR target/65171
35028         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
35029         instructions with TImode operands are included in the analysis.
35030
35031 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
35032
35033         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
35034         of an EDGE_FSM_THREAD.
35035
35036 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
35037
35038         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
35039
35040 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
35041
35042         PR debug/46102
35043         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
35044
35045 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
35046
35047         PR tree-optimization/65048
35048         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
35049         (thread_through_all_blocks): Call valid_jump_thread_path.
35050         Remove invalid FSM jump-thread paths.
35051
35052 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
35053
35054         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
35055         (ipa_write_optimization_summaries): Likewise.
35056         * tree-streamer.h: Include data-streamer.h.
35057         (streamer_mode_table): Declare extern variable.
35058         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
35059         * lto-streamer-out.c (lto_output_init_mode_table,
35060         lto_write_mode_table): New functions.
35061         (produce_asm_for_decls): Call lto_write_mode_table when streaming
35062         offloading LTO.
35063         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
35064         (lto_create_simple_input_block): Add mode_table argument to the
35065         lto_input_block constructors.
35066         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
35067         Likewise.
35068         * data-streamer-in.c (string_for_index): Likewise.
35069         * ipa-inline-analysis.c (inline_read_section): Likewise.
35070         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
35071         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
35072         * lto-streamer-in.c (lto_read_body_or_constructor,
35073         lto_input_toplevel_asms): Likewise.
35074         (lto_input_mode_table): New function.
35075         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
35076         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
35077         Use bp_pack_machine_mode.
35078         * real.h (struct real_format): Add name field.
35079         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
35080         (class lto_input_block): Add mode_table member.
35081         (lto_input_block::lto_input_block): Add mode_table_ argument,
35082         initialize mode_table.
35083         (struct lto_file_decl_data): Add mode_table field.
35084         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
35085         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
35086         unpack_ts_decl_common_value_fields,
35087         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
35088         * tree-streamer.c (streamer_mode_table): New variable.
35089         * real.c (ieee_single_format, mips_single_format,
35090         motorola_single_format, spu_single_format, ieee_double_format,
35091         mips_double_format, motorola_double_format,
35092         ieee_extended_motorola_format, ieee_extended_intel_96_format,
35093         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
35094         ibm_extended_format, mips_extended_format, ieee_quad_format,
35095         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
35096         decimal_single_format, decimal_double_format, decimal_quad_format,
35097         ieee_half_format, arm_half_format, real_internal_format): Add name
35098         field.
35099         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
35100
35101 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
35102
35103         PR target/65161
35104         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
35105         reordering for selective scheduling.
35106
35107 2015-02-26  Terry Guo  <terry.guo@arm.com>
35108
35109         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
35110         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
35111         (arm_arch_no_volatile_ce): Declare new global variable.
35112         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
35113         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
35114         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
35115         (TARGET_NO_VOLATILE_CE): New macro.
35116         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
35117         volatile memory access in IT block
35118
35119 2015-02-25  Kai Tietz  <ktietz@redhat.com>
35120
35121         PR tree-optimization/61917
35122         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
35123         that reduc_def_stmt is null.
35124
35125 2015-02-25  Martin Liska  <mliska@suse.cz>
35126
35127         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
35128         hard register variables.
35129
35130 2015-02-25  Kai Tietz  <ktietz@redhat.com>
35131
35132         PR target/64212
35133         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
35134         (symtab::noninterposable_alias): Likewise.
35135
35136 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
35137
35138         PR target/65167
35139         * config/i386/i386.c (ix86_function_arg_regno_p): Support
35140         bounds registers.
35141         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
35142
35143 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
35144
35145         PR target/64997
35146         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
35147         as split condition; force split via '#' in output pattern.
35148
35149 2015-02-25  Richard Biener  <rguenther@suse.de>
35150             Kai Tietz  <ktietz@redhat.com>
35151
35152         PR tree-optimization/61917
35153         * tree-vect-loop.c (vectorizable_reduction): Allow
35154         vect_internal_def without reduction to exit graceful.
35155
35156 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
35157
35158         PR target/65196
35159         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
35160         only with NONDEBUG_INSN_P.
35161
35162 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
35163
35164         Use variadic macros with avr-log.c.
35165
35166         * config/avr/avr-protos.h (avr_vdump): New prototype.
35167         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
35168         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
35169         * config/avr/avr-log.c: Adjust comments.
35170         (avr_vdump): New function.
35171         (avr_vadump): Pass caller as 2nd argument instead of format string.
35172         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
35173         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
35174
35175 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
35176
35177         PR lto/64374
35178         * target.def (target_option_stream_in): New target hook.
35179         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
35180         targetm.target_option.post_stream_in if non-NULL.
35181         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
35182         * doc/tm.texi: Updated.
35183         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
35184         function.
35185         (TARGET_OPTION_POST_STREAM_IN): Redefine.
35186
35187 2015-02-24  Jeff Law  <law@redhat.com>
35188
35189         PR target/65117
35190         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
35191         of operand 0 and operand 2.
35192         (zero_cost_loop_end, loop_end): Similarly.
35193
35194 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
35195
35196         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
35197         CXX_MEM_STAT_INFO.
35198
35199 2015-02-24  DJ Delorie  <dj@redhat.com>
35200
35201         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
35202         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
35203         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
35204         instead of hardcoding SImode.
35205
35206 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
35207
35208         * omp-low.c (create_omp_child_function): Tag entrypoint
35209         functions with a special attribute.
35210
35211 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
35212
35213         PR target/65058
35214         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
35215
35216 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
35217
35218         PR rtl-optimization/65123
35219         * lra-remat.c (operand_to_remat): Check hard regs in insn
35220         definition too.
35221
35222 2015-02-24  Nick Clifton  <nickc@redhat.com>
35223
35224         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
35225         to the assembler.
35226
35227 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
35228
35229         PR libgomp/64625
35230         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
35231         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
35232         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
35233         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
35234         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
35235         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
35236         (BUILT_IN_GOACC_PARALLEL): Specify as
35237         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
35238         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
35239         * builtin-types.def
35240         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
35241         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
35242         Remove function types.
35243         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
35244         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
35245         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
35246         New function types.
35247
35248 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
35249
35250         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
35251
35252 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
35253
35254         PR tree-optimization/65170
35255         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
35256         if val[1] < 0, clear also val[2] and return 3.
35257
35258 2015-02-24  Alan Modra  <amodra@gmail.com>
35259
35260         PR target/65172
35261         * config/rs6000/rs6000.c (get_memref_parts): Only return true
35262         when *base is a reg.  Handle nested plus addresses.  Simplify
35263         pre_modify test.
35264
35265 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
35266
35267         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
35268         use natural alignment when optimizing for size.
35269
35270 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
35271
35272         PR target/65153
35273         * config/sh/sh.md (movsicc_true+3): Remove peephole.
35274         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
35275         * config/sh/sh.c (replace_n_hard_rtx): Remove.
35276
35277 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
35278
35279         PR fortran/63427
35280         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
35281         too big for a wide_int.  Implement missing wrapping operation.
35282
35283 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
35284
35285         PR target/65163
35286         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
35287         instead of const_int 4294901760.
35288
35289 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
35290
35291         * config/avr/t-avr: Fix typo in comment.
35292
35293 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
35294
35295         * doc/rtl.texi (fma): Clarify documentation.
35296
35297 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
35298
35299         PR debug/58123
35300         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
35301         over input_location.
35302
35303 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
35304
35305         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
35306         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
35307         restrict alignments to absolute_biggest_alignment.
35308         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
35309         Define.
35310         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
35311         * doc/tm.texi: Regenerate.
35312         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
35313
35314 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
35315
35316         PR target/64172
35317         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
35318
35319 2015-02-20  Richard Biener  <rguenther@suse.de>
35320
35321         PR tree-optimization/65136
35322         * tree-ssa-propagate.c: Include cfgloop.h.
35323         (replace_phi_args_in): Avoid replacing loop latch edge PHI
35324         arguments with constants.
35325
35326 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
35327             Martin Liska  <mliska@suse.cz>
35328
35329         PR target/63892
35330         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
35331         don't try to create_thunk if stdarg_p.  If
35332         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
35333         redirect_callers if possible.
35334         (sem_item_optimizer::execute): Call unregister_hooks here...
35335         (ipa_icf_driver): ... instead of here.
35336
35337 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35338
35339         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
35340         Mark operand 0 as earlyclobber in 2nd alternative.
35341         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
35342         Write negated shift amount into QI lowpart operand 0 and use it
35343         in the shift step.
35344         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
35345
35346 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
35347
35348         * cgraph.h (clone_function_name_1): Declare.
35349         * cgraphclones.c (clone_function_name_1): New function.
35350         (clone_function_name): Use it.
35351         * lto-partition.c: Include "stringpool.h".
35352         (must_not_rename, maybe_rewrite_identifier)
35353         (validize_symbol_for_target): New static functions.
35354         (privatize_symbol_name): Use must_not_rename.
35355         (promote_symbol): Call validize_symbol_for_target.
35356         (lto_promote_cross_file_statics): Likewise.
35357         (lto_promote_statics_nonwpa): Likewise.
35358
35359 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
35360
35361         PR target/64452
35362         * config/avr/avr.md (pushhi_insn): New insn.
35363         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
35364
35365 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
35366             Jakub Jelinek  <jakub@redhat.com>
35367
35368         * tree-streamer.c (preload_common_nodes): Don't preload
35369         TI_VA_LIST* for offloading.
35370         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
35371         in_lto_p.
35372
35373 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
35374
35375         * config/pa/pa.c (pa_emit_move_sequence): Always force
35376         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
35377         note on insn.
35378
35379         * config/pa/pa.c (pa_reloc_rw_mask): New function.
35380         (TARGET_ASM_RELOC_RW_MASK): Define.
35381         (pa_cannot_force_const_mem): Revert previous change.
35382
35383 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
35384             Jan Hubicka  <hubicka@ucw.cz>
35385
35386         PR ipa/65028
35387         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
35388         across jump functions.
35389
35390 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
35391
35392         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
35393
35394 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
35395
35396         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
35397
35398 2015-02-19  Richard Henderson  <rth@redhat.com>
35399
35400         PR middle-end/65074
35401         * varasm.c (default_binds_local_p_2): Don't test node->definition;
35402         test DECL_EXTERNAL independent of symtab_node.
35403
35404 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
35405
35406         PR lto/65012
35407         * varpool.c (varpool_node::get_constructor): Return early
35408         if this->lto_file_data is NULL.
35409
35410 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
35411
35412         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
35413         (rank_for_schedule_debug): Update.
35414         (ready_sort): Make static.  Move sorting logic to ...
35415         (ready_sort_debug, ready_sort_real): New static functions.
35416         (schedule_block): Sort both debug insns and real insns in preparation
35417         for ready list trimming.  Improve debug output.
35418         * sched-int.h (ready_sort): Remove global declaration.
35419
35420 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
35421
35422         * ipa-icf.c (sem_function::equals_private): Adjust.
35423         (sem_function::bb_dict_test): Take a vec<int> * instead of
35424         auto_vec<int>.
35425         * ipa-icf.h (bb_dict_test): Likewise.
35426
35427 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
35428
35429         PR gcov-profile/64634
35430         * tree-eh.c (frob_into_branch_around): Fix up typos
35431         in function comment.
35432         (lower_catch): Put eh_seq resulting from EH lowering of
35433         the cleanup sequence after the cleanup rather than before it.
35434
35435 2015-02-18  Tom de Vries  <tom@codesourcery.com>
35436
35437         * common.opt (fstdarg-opt): New option.
35438         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
35439         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
35440         (@item -fstdarg-opt): New item.
35441
35442 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
35443
35444         PR target/65064
35445         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
35446         for common symbols.
35447
35448 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
35449
35450         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
35451         insn-modes.h.
35452         (ALL_HOST_OBJS): Add mkoffload.o.
35453         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
35454
35455 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
35456
35457         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
35458         (compare_virtual_tables): Be smarter about skipping typeinfos;
35459         do sane output on virtual table table mismatch.
35460         (warn_odr): Be ready for forward declarations of enums;
35461         output sane info on base mismatch and virtual table mismatch.
35462         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
35463         when only one type is polymorphic.
35464         (get_odr_type): Fix hashtable corruption.
35465         (dump_odr_type): Dump mangled names.
35466
35467 2015-02-18  Richard Biener  <rguenther@suse.de>
35468
35469         PR tree-optimization/65063
35470         * tree-predcom.c (determine_unroll_factor): Return 1 if we
35471         have replaced looparound PHIs.
35472
35473 2015-02-18  Martin Liska  <mliska@suse.cz>
35474
35475         * lto-streamer.c (lto_streamer_init): Encapsulate
35476         streamer_check_handled_ts_structures with checking macro.
35477
35478 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
35479
35480         PR ipa/65087
35481         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
35482         section if !implicit_section.
35483         (cgraph_node::create_version_clone_with_body): Likewise.
35484         * trans-mem.c (ipa_tm_create_version): Likewise.
35485
35486 2015-02-18  Richard Biener  <rguenther@suse.de>
35487
35488         PR tree-optimization/62217
35489         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
35490         into BIVs.
35491
35492 2015-02-18  Marek Polacek  <polacek@redhat.com>
35493
35494         PR sanitizer/65081
35495         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
35496         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
35497         is in range [-16K, -1].  Don't issue run-time error if
35498         (ptr > ptr + offset).
35499
35500 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
35501
35502         * doc/install.texi (nvptx-*-none): New section.
35503         * doc/invoke.texi (Nvidia PTX Options): Likewise.
35504         * config/nvptx/nvptx.opt: Update.
35505
35506         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
35507         (access_check): New functions, copied from
35508         config/i386/intelmic-mkoffload.c.
35509         (main): For non-installed testing, look in all COMPILER_PATHs for
35510         GCC_INSTALL_NAME.
35511
35512         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
35513
35514 2015-02-18  Andrew Pinski  <apinski@cavium.com>
35515             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
35516
35517         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
35518         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
35519
35520 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
35521
35522         * ipa-visibility.c (function_and_variable_visibility): Only
35523         check locality if node is not already local.
35524         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
35525         call_for_symbol_and_aliases instead of
35526         call_for_symbol_thunks_and_aliases.
35527         (ipa_inline): Likewise.
35528         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
35529         first walk aliases.
35530         * ipa.c (symbol_table::remove_unreachable_nodes): Use
35531         call_for_symbol_and_aliases.
35532         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
35533         (ipa_propagate_frequency_1): Use it; use opt_for_fn
35534         (ipa_propagate_frequency): Update.
35535         (ipa_profile): Add opt_for_fn gueards.
35536
35537 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
35538
35539         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
35540         * doc/invoke.texi (SH options): Document it.
35541         * config/sh/sh.c (sh_insn_length_adjustment): Check
35542         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
35543
35544 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
35545
35546         * common.opt (fipa-cp-alignment): New.
35547         * ipa-cp.c (ipcp_store_alignment_results): Check
35548         flag_ipa_cp_alignment.
35549         * opts.c (default_options_table): Enable -fipa-cp-alignment for
35550         -O2.
35551         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
35552         * doc/invoke.texi: Document -fipa-cp-alignment.
35553
35554 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
35555
35556         PR target/64793
35557         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
35558         to nil.  Adjust comments.
35559
35560 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
35561
35562         * ipa-visibility.c (function_and_variable_visibility): Only
35563         check locality if node is not already local.
35564         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
35565         call_for_symbol_and_aliases instead of
35566         call_for_symbol_thunks_and_aliases.
35567         (ipa_inline): Likewise.
35568         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
35569         first walk aliases.
35570         * ipa.c (symbol_table::remove_unreachable_nodes): Use
35571         call_for_symbol_and_aliases.
35572         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
35573         (ipa_propagate_frequency_1): Use it; use opt_for_fn
35574         (ipa_propagate_frequency): Update.
35575         (ipa_profile): Add opt_for_fn guards.
35576
35577 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
35578
35579         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
35580         skipping of "strange" tokens.
35581
35582 2015-02-17  Jeff Law  <law@redhat.com>
35583
35584         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
35585         obsolete comment.
35586
35587 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
35588
35589         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
35590         as forcing a HARD_DEP between instructions, thereby
35591         disallowing rewriting to break dependencies.
35592
35593 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
35594
35595         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
35596         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
35597         variables in boundary that have no inlitalizer encoded and are
35598         not aliases.
35599         * varasm.c (default_binds_local_p_2): External definitions do not
35600         count as definitions here.
35601
35602 2015-02-16  Jeff Law  <law@redhat.com>
35603
35604         PR tree-optimization/64823
35605         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
35606         statements.
35607         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
35608         threading through blocks with PHIs, but no statements.
35609         (thread_through_normal_block): Distinguish between blocks where
35610         we did not process all the statements and blocks with no statements.
35611
35612 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
35613             James Greenhalgh  <james.greenhalgh@arm.com>
35614
35615         PR ipa/64963
35616         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
35617         section if not linkonce.  Fix up formatting.
35618         (cgraph_node::create_version_clone_with_body): Copy section.
35619         * trans-mem.c (ipa_tm_create_version): Likewise.
35620
35621 2015-02-16  Richard Biener  <rguenther@suse.de>
35622
35623         PR tree-optimization/65077
35624         * tree-ssa-structalias.c (get_constraint_for_1): Handle
35625         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
35626         (find_func_aliases): Allow float values to carry pointers again.
35627
35628 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
35629
35630         * doc/install.texi (Specific): Reorder targets list to put
35631         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
35632         from the top menu.
35633
35634 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
35635             David Edelsohn  <dje.gcc@gmail.com>
35636
35637         PR target/65058
35638         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
35639         mapping class to external variable or function reference.
35640         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
35641         mapping class.
35642
35643 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
35644
35645         PR target/53348
35646         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
35647         ASM_WEAKEN_DECL if defined.
35648
35649 2015-02-16  Richard Biener  <rguenther@suse.de>
35650
35651         PR lto/65015
35652         * varasm.c (default_file_start): For LTO produced units
35653         emit <artificial> as file directive.
35654
35655 2015-02-16  Richard Biener  <rguenther@suse.de>
35656
35657         PR tree-optimization/63593
35658         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
35659         stmts and releasing SSA names until...
35660         (execute_pred_commoning): ... after processing all chains.
35661
35662 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
35663
35664         PR ipa/65059
35665         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
35666         external functions.
35667
35668 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
35669
35670         * doc/bugreport.texi: Adjust section titles throughout the file
35671         to use "Title Case".
35672         * doc/extend.texi: Likewise.
35673         * doc/gcov.texi: Likewise.
35674         * doc/implement-c.texi: Likewise.
35675         * doc/implement-cxx.texi: Likewise.
35676         * doc/invoke.texi: Likewise.
35677         * doc/objc.texi: Likewise.
35678         * doc/standards.texi: Likewise.
35679         * doc/trouble.texi: Likewise.
35680
35681 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
35682
35683         * cgraph.h (symtab_node::has_aliases_p): Simplify.
35684         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
35685         * tree.c (lookup_binfo_at_offset): Make static.
35686         (get_binfo_at_offset): Do not shadow offset; add explanatory
35687         comment.
35688
35689 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
35690
35691         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
35692         for all floading point loads and stores except those using a register
35693         index address.
35694         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
35695         to a register.
35696
35697 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
35698
35699         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
35700         (do_estimate_growth_1): Record if any uninlinable edge was seen.
35701         (estimate_growth): Handle uninlinable edges correctly.
35702         (check_callers): New.
35703         (growth_likely_positive): Handle aliases correctly.
35704
35705 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
35706
35707         * ipa-chkp.c: Use iterate_direct_aliases.
35708         * symtab.c (resolution_used_from_other_file_p): Move inline.
35709         (symtab_node::create_reference): Fix formating.
35710         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
35711         (symtab_node::iterate_reference): Move inline.
35712         (symtab_node::iterate_referring): Move inline.
35713         (symtab_node::iterate_direct_aliases): Move inline.
35714         (symtab_node::used_from_object_file_p_worker): Inline into ...
35715         (symtab_node::used_from_object_file_p): ... this one; move inline.
35716         (symtab_node::call_for_symbol_and_aliases): Move inline;
35717         use iterate_direct_aliases.
35718         (symtab_node::call_for_symbol_and_aliases_1): New method.
35719         (cgraph_node::call_for_symbol_and_aliases): Move inline;
35720         use iterate_direct_aliases.
35721         (cgraph_node::call_for_symbol_and_aliases_1): New method.
35722         (varpool_node::call_for_node_and_aliases): Rename to ...
35723         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
35724         use iterate_direct_aliases.
35725         (varpool_node::call_for_symbol_and_aliases_1): New method.
35726         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
35727         (ipa_discover_readonly_nonaddressable_var): Update.
35728         * ipa-devirt.c: Fix formating.
35729         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
35730         Move inline.
35731         (cgraph_node::call_for_symbol_and_aliases): Move inline.
35732         (cgraph_node::call_for_symbol_and_aliases_1): New function..
35733         * cgraph.h (used_from_object_file_p_worker): Remove.
35734         (resolution_used_from_other_file_p): Move inline.
35735         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
35736         (symtab_node::iterate_reference): Move inline.
35737         (symtab_node::iterate_referring): Move inline.
35738         (symtab_node::iterate_direct_aliases): Move inline.
35739         (symtab_node::used_from_object_file_p_worker): Inline into ...
35740         (symtab_node::used_from_object_file_p): Move inline.
35741         * tree-emutls.c (ipa_lower_emutls): Update.
35742         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
35743         (varpool_node::call_for_node_and_aliases): Remove.
35744
35745 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
35746
35747         PR tree-optimization/62209
35748         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
35749         op == range->exp, insert seq and gimplified code after labels
35750         instead of after the phi.
35751
35752 2015-02-13  Jeff Law  <law@redhat.com>
35753
35754         PR bootstrap/65060
35755         Revert my change for tree-optimization/64823.
35756
35757 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
35758
35759         PR tree-optimization/65053
35760         * tree-ssa-phiopt.c (value_replacement): When moving assign before
35761         cond, either reset VR on lhs or set it to phi result VR.
35762
35763 2015-02-13  Jeff Law  <law@redhat.com>
35764
35765         PR tree-optimization/64823
35766         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
35767         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
35768         threading through blocks with PHIs, but no statements.
35769         (thread_through_normal_block): Distinguish between blocks where
35770         we did not process all the statements and blocks with no statements.
35771
35772         PR rtl-optimization/47477
35773         * match.pd (convert (plus/minus (convert @0) (convert @1): New
35774         simplifier to narrow arithmetic.
35775
35776 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
35777
35778         PR ipa/65028
35779         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
35780         polymorphic call info when type is not known to be preserved.
35781
35782 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
35783
35784         PR ipa/65028
35785         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
35786         (inline_call): Use it.
35787
35788 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
35789
35790         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
35791         GOMP_DEVICE_NVIDIA_PTX.
35792
35793 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
35794
35795         PR ipa/65034
35796         * stmt.c (emit_case_nodes): Use void_type_node instead of
35797         NULL_TREE as LABEL_DECL type.
35798
35799 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
35800
35801         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
35802         constraints.
35803         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
35804         symbolic references to data to be forced to constant memory on the
35805         SOM target.
35806
35807 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
35808
35809         PR tree-optimization/65002
35810         * tree-cfg.c (pass_data_fixup_cfg): Don't update
35811         SSA on start.
35812         * tree-sra.c (some_callers_have_no_vuse_p): New.
35813         (ipa_early_sra): Reject functions whose callers
35814         assume function is read only.
35815
35816 2015-02-13  Richard Biener  <rguenther@suse.de>
35817
35818         PR lto/65015
35819         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
35820         for LTO produced CUs.
35821
35822 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
35823
35824         PR tree-optimization/64705
35825         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
35826         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
35827         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
35828         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
35829         expand_simple_operations.
35830
35831 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
35832             Richard Henderson  <rth@redhat.com>
35833
35834         PR rtl/32219
35835         * cgraphunit.c (cgraph_node::finalize_function): Set definition
35836         before notice_global_symbol.
35837         (varpool_node::finalize_decl): Likewise.
35838         * varasm.c (default_binds_local_p_2): Rename from
35839         default_binds_local_p_1, add weak_dominate argument.  Use direct
35840         returns instead of assigning to local variable.  Unify varpool and
35841         cgraph paths via symtab_node.  Reject undef weak variables before
35842         testing visibility.  Reorder tests for simplicity.
35843         (default_binds_local_p): Use default_binds_local_p_2.
35844         (default_binds_local_p_1): Likewise.
35845         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
35846         via symtab_node.
35847         (default_elf_asm_output_external): Emit visibility when specified.
35848
35849 2015-02-13  Alan Modra  <amodra@gmail.com>
35850
35851         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
35852         code setting up r11 for out-of-line fp restore.
35853
35854 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
35855
35856         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
35857         (muser-mode): Likewise.
35858
35859 2015-02-13  Alan Modra  <amodra@gmail.com>
35860
35861         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
35862         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
35863
35864 2015-02-12  David Howells  <dhowells@redhat.com>
35865
35866         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
35867         warning.
35868         * tree-ssa-uninit.c (dump_predicates): Likewise.
35869         * opts.c (print_filtered_help): Likewise.
35870
35871 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
35872
35873         * dwarf2out.c (output_die): Use "%s", name instead of name to
35874         avoid -Wformat-security warning.
35875
35876         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
35877         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
35878         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
35879         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
35880
35881 2015-02-12  Jason Merrill  <jason@redhat.com>
35882
35883         * common.opt (-flifetime-dse): New.
35884
35885 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
35886
35887         PR sanitizer/65019
35888         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
35889
35890         PR tree-optimization/65014
35891         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
35892         use original second operand of arg0 or arg1 instead of
35893         that adjusted by STRIP_NOPS.
35894
35895 2015-02-11  Jeff Law  <law@redhat.com>
35896
35897         PR target/63347
35898         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
35899         that needs to be queued, just queue it for a single cycle.
35900
35901 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
35902
35903         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
35904         bodies of thunks; comment on why.
35905         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
35906         symbols are extern.
35907
35908 2015-02-11  Richard Henderson  <rth@redhat.com>
35909
35910         PR sanitize/65000
35911         * tree-eh.c (mark_reachable_handlers): Mark source and destination
35912         regions of __builtin_eh_copy_values.
35913
35914 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
35915
35916         PR middle-end/65003
35917         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
35918         ultimate alias is MEM with SYMBOL_REF satisfying
35919         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
35920         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
35921
35922 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
35923
35924         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
35925         "diagnostic-core.h".
35926         (main): Initialize progname, and call diagnostic_initialize.
35927
35928         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
35929         instead of __OPENMP_TARGET__.
35930
35931         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
35932         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
35933         hard-coding PTX_ID.
35934
35935 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
35936
35937         * doc/sourcebuild.texi (pie_enabled): Document.
35938
35939 2015-02-11  Martin Liska  <mliska@suse.cz>
35940
35941         PR ipa/64813
35942         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
35943         a return value for call to a function that is noreturn.
35944
35945 2015-02-11  Richard Biener  <rguenther@suse.de>
35946
35947         PR lto/65015
35948         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
35949         and -fresolution.
35950
35951 2015-02-11  Andrew Pinski  <apinski@cavium.com>
35952
35953         PR target/64893
35954         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
35955         Change the first argument type to size_type_node and add another
35956         size_type_node.
35957         (aarch64_simd_expand_builtin): Handle the new argument to
35958         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
35959         print an out when the first two arguments are not
35960         nonzero integer constants.
35961         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
35962         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
35963
35964 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
35965
35966         PR target/61925
35967         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
35968         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
35969         (ix86_set_current_function): Rewritten.
35970         (ix86_add_new_builtins): Temporarily clear current_target_pragma
35971         when creating builtin fndecls.
35972
35973 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
35974
35975         PR ipa/65005
35976         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
35977         function.
35978         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
35979         have no comdat group.
35980         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
35981         (lto_output_varpool_node): Always output alias info.
35982         (output_refs): Output refs of boundary aliases, too.
35983         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
35984         (output_symtab): Output call eges in thunks in boundary.
35985         (get_alias_symbol): Remove.
35986         (input_node, input_varpool_node): Do not special case weakrefs.
35987         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
35988         alias and thunks targets in the boundary; do not take removed symbols
35989         from their comdat groups.
35990         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
35991         (cgraph_node::global_info): Remove.
35992         (cgraph_node::rtl_info): Look through aliases and thunks.
35993         * cgrpah.h (global_info): Remove.
35994         (non_local_p): Remove.
35995
35996 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
35997             Sandra Loosemore  <sandra@codesourcery.com>
35998
35999         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
36000         to inline asm.  List dialects in proper order.
36001
36002 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
36003             Sandra Loosemore  <sandra@codesourcery.com>
36004
36005         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
36006
36007 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
36008
36009         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
36010         modified) reference to Solaris.
36011
36012 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
36013
36014         * doc/extend.texi (Extended Asm): Fix typos.
36015
36016 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
36017
36018         PR sanitizer/65004
36019         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
36020
36021 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
36022
36023         PR target/64661
36024         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
36025         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
36026         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
36027         * config/sh/constraints.md (Ara, Add): New constraints.
36028         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
36029         predicates.
36030         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
36031         atomic_mem_operand_0.  Don't use force_reg on the memory address.
36032         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
36033         Sra constraint.  Convert to insn_and_split.  Add workaround for
36034         PR 64974.
36035         (atomic_compare_and_swap<mode>_hard): Copy to
36036         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
36037         Use atomic_mem_operand_0 predicate.
36038         (atomic_compare_and_swap<mode>_soft_gusa,
36039         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
36040         AraAdd constraints.
36041         (atomic_compare_and_swap<mode>_soft_tcb,
36042         atomic_compare_and_swap<mode>_soft_imask,
36043         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
36044         atomic_mem_operand_0 predicate and SraSdd constraints.
36045         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
36046         constraint.
36047         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
36048         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
36049         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
36050         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
36051         force_reg on the memory address.
36052         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
36053         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
36054         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
36055         atomic_mem_operand_1 predicate and Sra constraint.
36056         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
36057         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
36058         Use atomic_mem_operand_1 predicate.
36059         (atomic_<fetchop_name><mode>_hard): Copy to
36060         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
36061         Use atomic_mem_operand_1 predicate.
36062         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
36063         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
36064         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
36065         insn_and_split.  Use atomic_mem_operand_1 predicate.
36066         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
36067         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
36068         Use atomic_mem_operand_1 predicate.
36069         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
36070         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
36071         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
36072         in generated insn with original mem operand before emitting the insn.
36073         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
36074         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
36075         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
36076         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
36077         Use atomic_mem_operand_1 predicate and AraAdd constraints.
36078         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
36079         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
36080         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
36081         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
36082         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
36083         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
36084         atomic_not_fetch<mode>_soft_tcb,
36085         atomic_<fetchop_name>_fetch<mode>_soft_imask,
36086         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
36087         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
36088         Use atomic_mem_operand_1 predicate and SraSdd constraints.
36089
36090 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
36091
36092         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
36093         and 3 earlyclobber operands.
36094
36095 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
36096
36097         * common.opt (fstack-reuse): Mark as optimization.
36098
36099 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
36100
36101         PR ipa/64982
36102         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
36103
36104 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
36105
36106         PR tree-optimization/64326
36107         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
36108
36109 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
36110
36111         PR gcov-profile/61889
36112         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
36113
36114 2015-02-10  Richard Biener  <rguenther@suse.de>
36115
36116         PR tree-optimization/64995
36117         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
36118         value we use is final.
36119         (visit_reference_op_store): Always valueize op.
36120         (visit_use): Properly valueize vuses.
36121
36122 2015-02-10  Richard Biener  <rguenther@suse.de>
36123
36124         PR tree-optimization/64909
36125         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
36126         pass a scalar-stmt count estimate to the cost model.
36127         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
36128
36129 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
36130
36131         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
36132         enabled by default together with var-tracking.
36133
36134 2015-02-10  Nick Clifton  <nickc@redhat.com>
36135
36136         * config/rl78/rl78.c: Remove DIV attribute code accidentally
36137         included in previous rl78 commit.
36138
36139 2015-02-10  Richard Biener  <rguenther@suse.de>
36140
36141         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
36142         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
36143         return the bitpack.
36144
36145 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
36146
36147         PR gcov-profile/61889
36148         * config.in: regenerate.
36149         * configure.in: Likewise.
36150         * configure.ac: Check for ftw.h.
36151         * gcov-tool.c: Check for ftw.h before using nftw.
36152
36153 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
36154
36155         PR lto/64076
36156         * ipa-visibility.c (update_visibility_by_resolution_info): Only
36157         assert when not in lto mode.
36158
36159 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
36160
36161         * ira-color.c (setup_left_conflict_sizes_p): Simplify
36162         initialization/assignment of conflict_size.
36163
36164 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
36165
36166         PR ipa/64978
36167         * ipa-cp.c (gather_caller_stats): Skip thunks.
36168         (propagate_constants_topo): Skip aliases.
36169
36170 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
36171
36172         PR target/64761
36173         * config/sh/sh.c (sh_option_override): Don't change
36174         -freorder-blocks-and-partition to -freorder-blocks even when
36175         unwinding is enabled.
36176         (sh_can_follow_jump): Return false if the followee jump is
36177         a crossing jump when -freorder-blocks-and-partition is specified.
36178         * config/sh/sh.md (*jump_compact_crossing): New insn.
36179
36180 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
36181             Kaz Kojima  <kkojima@gcc.gnu.org>
36182
36183         PR target/64761
36184         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
36185         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
36186         (sh_can_redirect_branch): Rename to ...
36187         (sh_can_follow_jump): ... this.  Constify argument types.
36188         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
36189         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
36190         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
36191         * doc/tm.texi: Regenerate.
36192
36193 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
36194
36195         PR sanitizer/64981
36196         * builtins.c (expand_builtin): Call targetm.expand_builtin
36197         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
36198
36199 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36200
36201         PR ipa/61548
36202         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
36203
36204 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36205
36206         PR ipa/63566
36207         * ipa-icf.c (set_local): New function.
36208         (sem_function::merge): Use it.
36209
36210 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36211
36212         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
36213         (add_type_duplicate): Fix comparison of BINFOs.
36214
36215 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36216
36217         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
36218         on getting VOID pointer.
36219
36220 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
36221
36222         PR target/64979
36223         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
36224         va_list escapes.
36225
36226 2015-02-09  Richard Biener  <rguenther@suse.de>
36227
36228         * genmatch.c (replace_id): Copy expr_type.
36229
36230 2015-02-09  Richard Biener  <rguenther@suse.de>
36231
36232         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
36233         (streamer_write_tree_bitfields): Declare.
36234         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
36235         properly unpack padding.
36236         (unpack_value_fields): Inline ...
36237         (streamer_read_tree_bitfields): ... here.
36238         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
36239         and properly add padding bits.
36240         (streamer_pack_tree_bitfields): Fold into ...
36241         (streamer_write_tree_bitfields): ... this new function,
36242         exposing the bitpack object.
36243         * lto-streamer-out.c (lto_write_tree_1): Call
36244         streamer_write_tree_bitfields.
36245
36246 2015-02-09  Richard Biener  <rguenther@suse.de>
36247
36248         PR tree-optimization/54000
36249         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
36250         (struct ivopts_data): Add loop_loc member.
36251         (tree_ssa_iv_optimize_loop): Dump loop location.
36252         (create_new_ivs): Likewise, also dump number of IVs generated.
36253
36254 2015-02-09  Martin Liska  <mliska@suse.cz>
36255
36256         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
36257         just if not yet registered.
36258         (ipa_icf_generate_summary): Register callgraph hooks.
36259
36260 2015-02-08  Andrew Pinski  <apinski@cavium.com>
36261
36262         * config/aarch64/aarch64.c (gty_dummy): Delete.
36263
36264 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36265
36266         PR ipa/63566
36267         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
36268         (cgraph_node::local_p): Remove thunk related FIXME.
36269
36270 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36271
36272         PR ipa/63566
36273         * i386.c (ix86_function_regparm): Look through aliases to see if callee
36274         is local and optimized.
36275         (ix86_function_sseregparm): Likewise; also use target's SSE math
36276         settings; error out instead of silently generating wrong code
36277         on mismatches.
36278         (init_cumulative_args): Look through aliases.
36279
36280 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36281
36282         PR ipa/63566
36283         * ipa-split.c (execute_split_functions): Split if function has aliases.
36284
36285 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
36286
36287         PR ipa/63566
36288         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
36289         aliases before trying to expand it.
36290         (cgraph_node::expand_thunk): Fix formating.
36291
36292 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
36293
36294         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
36295         (Using Assembly Language with C): Expand introduction.
36296         (Basic Asm): Copy-edit.  Add more information about uses of
36297         basic asm.
36298         (Extended Asm): Copy-edit.  Document new escape syntax and
36299         %l[label] syntax.
36300         (Global Reg Vars): Copy-edit.
36301         (Local Reg Vars): Likewise.
36302
36303 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
36304
36305         PR debug/2714
36306         PR bootstrap/64256
36307         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
36308         (DBX_CONTIN_CHAR): Define.
36309
36310 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
36311             Brian Rzycki  <b.rzycki@samsung.com>
36312
36313         PR tree-optimization/64878
36314         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
36315         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
36316         Stop recursion at loop phi nodes after having visited a loop phi node.
36317
36318 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
36319
36320         * toplev.c (process_options): Change flag_ipa_ra before creating
36321         optimization_{default,current}_node.
36322
36323         PR ipa/64896
36324         * cgraphunit.c (cgraph_node::expand_thunk): If
36325         restype is not is_gimple_reg_type nor the thunk_fndecl
36326         returns aggregate_value_p, set restmp to a temporary variable
36327         instead of resdecl.
36328
36329 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
36330
36331         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
36332
36333 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
36334
36335         PR target/64205
36336         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
36337         add a general secondary reload handler for SDmode, unless we have
36338         both read/write support for SDmode.
36339
36340 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
36341
36342         PR middle-end/64937
36343         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
36344         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
36345         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
36346         1 before, push it to abstract_vec.
36347         (dwarf2out_abstract_function): Adjust caller.  Don't call
36348         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
36349         DECL_ABSTRACT_P flags for all abstract_vec elts.
36350
36351 2015-02-06  Renlin Li  <renlin.li@arm.com>
36352
36353         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
36354         complex gimple.
36355         * tree-ssa.c (execute_update_addresses_taken): Likewise.
36356
36357 2015-02-06  Jeff Law  <law@redhat.com>
36358
36359         PR target/64889
36360         * config/h8300/h8300.c (push): New argument "in_prologue".
36361         Pass "in_prologue" along to "F".
36362         (h8300_push_pop): Corresponding changes.
36363         (h8300_expand_prologue): Likewise.
36364         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
36365
36366 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
36367
36368         PR rtl-optimization/64957
36369         PR debug/64817
36370         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
36371         IOR rather than for AND.
36372
36373 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
36374
36375         PR target/62631
36376         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
36377         of shift-add and (add + shift) operations.  Rename local variable.
36378
36379 2015-02-05  Jeff Law  <law@redhat.com>
36380
36381         PR target/17306
36382         * config/h8300/constraints.md (U): Correctly dectect
36383         "eightbit_data" memory addresses.
36384         * config/h8300/h8300.c (eightbit_constant_address_p): Also
36385         handle (const (plus (symbol_ref (x)))) where x is declared
36386         as an 8-bit data memory address.
36387         * config/h8300/h8300.md (call, call_value): Correctly detect
36388         "funcvec" functions.
36389
36390         PR target/43264
36391         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
36392         24 to 28 bits for the H8/300.
36393
36394 2015-02-06  Alan Modra  <amodra@gmail.com>
36395
36396         PR target/64876
36397         * config/rs6000/rs6000.c (chain_already_loaded): New function.
36398         (rs6000_call_aix): Use it.
36399
36400 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
36401
36402         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
36403         check.
36404
36405 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
36406
36407         * config/h8300/constraints.md ("U" constraint): Use strict
36408         variant of REG_OK_FOR_BASE_P after reload has started.
36409
36410 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
36411
36412         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
36413         define to zero if !TARGET_NEON.
36414         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
36415
36416 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36417             Trevor Saunders  <tsaunders@mozilla.com>
36418
36419         PR ipa/61548
36420         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
36421
36422 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36423
36424         PR ipa/61548
36425         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
36426         when removing varpool nodes.
36427
36428 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36429
36430         PR ipa/61548
36431         * varpool.c (varpool_node::remove): Fix order of variables.
36432
36433 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36434
36435         PR ipa/64686
36436         * ipa-inline.c (inline_small_functions): Fix ordering issue between
36437         speculation resolution and key updates.
36438
36439 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36440
36441         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
36442         about not letting any speculative edges unupdated.
36443
36444 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36445
36446         PR gcov/64123
36447         * gcov-io.c (gcov_var): Export.
36448
36449 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36450
36451         PR middle-end/64922
36452         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
36453         edges that become speculative.
36454
36455 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
36456
36457         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
36458         or DW_LANG_Fortran08.
36459         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
36460         DW_LANG_Fortran08.
36461         (gen_compile_unit_die): Handle "GNU Fortran2003" and
36462         "GNU Fortran2008" language strings.
36463         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
36464         * langhooks.h (lang_GNU_Fortran): New prototype.
36465         * langhooks.c (lang_GNU_Fortran): New function.
36466         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
36467         lang_GNU_Fortran.
36468
36469 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
36470
36471         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
36472         (RTX_OK_FOR_OLO10_P): Likewise.
36473
36474 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
36475
36476         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
36477
36478 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
36479
36480         PR middle-end/64922
36481         * gimple.c: Include gimple-ssa.h.
36482         (maybe_remove_unused_call_args): New function.
36483         * gimple.h (maybe_remove_unused_call_args): Declare.
36484         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
36485         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
36486         * gimple-fold.c (gimple_fold_call): Likewise.
36487
36488 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
36489
36490         PR rtl-optimization/64905
36491         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
36492         pointer alignment if it isn't needed.
36493
36494 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
36495
36496         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
36497         cortex-a72.cortex-a53.
36498         * config/aarch64/aarch64-tune.md: Regenerate.
36499         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
36500
36501 2015-02-04  Nick Clifton  <nickc@redhat.com>
36502
36503         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
36504         inside a MEM.
36505
36506 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
36507
36508         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
36509         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
36510         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
36511         of DEF_BUILTIN.
36512         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
36513         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
36514         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
36515         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
36516         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
36517         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
36518         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
36519         * tree-core.h (enum built_in_function): In between
36520         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
36521         for builtins that use DEF_BUILTIN_CHKP macro.
36522
36523 2015-02-04  Alexandre Oliva  <aoliva@redhat.com>
36524
36525         PR debug/64817
36526         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
36527         operands for tcc_comparison exprs.  Fix typos.
36528
36529         PR debug/64817
36530         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
36531         of two XORs that have an intervening AND or IOR.
36532
36533         PR debug/64817
36534         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
36535         simplification of XOR of AND to not allocate new rtx before
36536         committing to a simplification.
36537
36538 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36539
36540         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
36541         manual swaps in all peepholes.
36542
36543 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36544
36545         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
36546         of manual swapping implementation.
36547         (aarch64_expand_vec_perm_const_1): Likewise.
36548
36549 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
36550
36551         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
36552         (generic_addrcost_table): Remove NAMED_PARAM.
36553         (cortexa57_addrcost_table): Likewise.
36554         (xgene1_addrcost_table): Likewise.
36555         (generic_regmove_table): Likewise.
36556         (cortexa53_regmove_table): Likewise.
36557         (xgene1_regmove_table): Likewise.
36558         (generic_vector_table): Likewise.
36559         (cortexa57_vector_table): Likewise.
36560         (xgene1_vector_table): Likewise.
36561         (generic_tunings): Likewise.
36562         (cortexa53_tunings): Likewise.
36563         (cortexa57_tunings): Likewise.
36564         (xgene1_tunings): Likewise.
36565
36566 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
36567
36568         * config/arm/arm-cores.def: Add cortex-a72 and
36569         cortex-a72.cortex-a53.
36570         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
36571         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
36572         * config/arm/arm-tune.md: Regenerate.
36573         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
36574         "cortex-a72.cortex-a53".
36575         * doc/invoke.texi (ARM Options/-mtune): Likewise.
36576
36577 2015-02-04  Nick Clifton  <nickc@redhat.com>
36578
36579         PR target/64408
36580         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
36581         of accepted codes.
36582         (nonimmediate_di_operand): Likewise.
36583
36584         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
36585         prefixes of known F5 using MSP430 MCUs.
36586
36587 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36588
36589         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
36590         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
36591         instead of __builtin_sqrt.
36592
36593 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
36594
36595         * varasm.c (do_assemble_alias): Follow transparent alias
36596         chain for target.
36597         (default_assemble_visibility): Follow transparent alias
36598         chain for decl name.
36599
36600 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
36601
36602         PR middle-end/62103
36603         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
36604         to compute size of referenced value in the constant case.
36605
36606 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
36607
36608         PR rtl-optimization/64756
36609         * cse.c (invalidate_dest): New function.
36610         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
36611         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
36612         invalidate and do not record it.
36613
36614 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
36615
36616         PR target/64660
36617         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
36618         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
36619         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
36620         atomic_nand<mode>_soft_tcb): New insns.
36621         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
36622         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
36623         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
36624         Split into atomic_not_fetchsi_hard if operands[0] is unused.
36625         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
36626         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
36627         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
36628         atomic_not<mode>_hard if operands[0] is unused.
36629         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
36630         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
36631         if operands[0] is unused.
36632         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
36633         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
36634         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
36635         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
36636         unused.
36637         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
36638         into atomic_not<mode>_soft_tcb if operands[0] is unused.
36639         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
36640         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
36641         if operands[0] is unused.
36642         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
36643         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
36644         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
36645         atomic_nand_fetchsi_hard if operands[0] is unused.
36646         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
36647         atomic_nand<mode>_hard if operands[0] is unused.
36648         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
36649         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
36650         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
36651         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
36652         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
36653         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
36654         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
36655         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
36656         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
36657         atomic_not<mode>_hard if operands[0] is unused.
36658         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
36659         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
36660         unused.
36661         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
36662         into atomic_not<mode>_soft_tcb if operands[0] is unused.
36663         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
36664         atomic_nand<mode>_hard if operands[0] is unused.
36665         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
36666         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
36667
36668 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
36669
36670         PR jit/64810
36671         * Makefile.in (GCC_OBJS): Add gcc-main.o.
36672         * gcc-main.c: New file, containing "main" taken from gcc.c.
36673         * gcc.c (do_self_spec): Free decoded_options.
36674         (class driver): Move declaration to gcc.h.
36675         (main): Move declaration and implementation to new file
36676         gcc-main.c.
36677         (driver_get_configure_time_options): New function.
36678         * gcc.h (class driver): Move this declaration here, from
36679         gcc.c.
36680         (driver_get_configure_time_options): New declaration.
36681
36682 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
36683
36684         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
36685         cross-module inlining.
36686         * cgraph.h (cgraph_node): Add flag merged.
36687         * ipa-icf.c (sem_function::merge): Maintain it.
36688
36689 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
36690
36691         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
36692         instead of OBJECT_P.
36693
36694 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
36695
36696         PR target/62631
36697         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
36698         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
36699         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
36700         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
36701
36702 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
36703
36704         PR other/63504
36705         * combine.c (reg_n_sets_max): New variable.
36706         (can_change_dest_mode, reg_nonzero_bits_for_combine,
36707         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
36708         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
36709         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
36710         (rest_of_handle_combine): Initialize reg_n_sets_max.
36711
36712 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
36713
36714         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
36715         if some always_inline was inlined, apply changes before inlining
36716         heuristically.
36717
36718 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
36719
36720         PR jit/64810
36721         * config/arm/arm.c (arm_option_override): Set
36722         arm_selected_arch/cpu/tune to NULL on entry.
36723
36724 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
36725             Andrew Pinski  <pinskia@gcc.gnu.org>
36726             Jakub Jelinek  <jakub@gcc.gnu.org>
36727
36728         PR target/64231
36729         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
36730         integer typing for small model. Use IN_RANGE.
36731
36732 2015-02-02  Richard Biener  <rguenther@suse.de>
36733
36734         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
36735         * tree-vrp.c (vrp_valueize_1): Likewise.
36736
36737 2015-02-02  Alan Modra  <amodra@gmail.com>
36738
36739         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
36740         than mem for toc_restore.
36741         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
36742         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
36743         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
36744
36745 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
36746
36747         PR target/64047
36748         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
36749         explicit default options.
36750
36751 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
36752
36753         PR ipa/64872
36754         * ipa-utils.c (ipa_merge_profiles): Add release argument.
36755         * ipa-icf.c (sem_function::merge): Do not release body when merging.
36756         * ipa-utils.h (ipa_merge_profiles): Update prototype.
36757
36758 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
36759
36760         PR debug/64817
36761         * cfgexpand.c (deep_ter_debug_map): New variable.
36762         (avoid_deep_ter_for_debug): New function.
36763         (expand_debug_expr): If TERed SSA_NAME is in
36764         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
36765         instead of trying to expand SSA_NAME's def stmt.
36766         (expand_debug_locations): When expanding debug bind
36767         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
36768         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
36769         value.
36770         (pass_expand::execute): Call avoid_deep_ter_for_debug on
36771         all debug bind stmts.  Delete deep_ter_debug_map after
36772         expand_debug_location if non-NULL and clear it.
36773
36774 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
36775
36776         PR target/64851
36777         * config/sh/sync.md (atomic_fetch_notsi_hard,
36778         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
36779         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
36780         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
36781         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
36782         atomic_not_fetch<mode>_soft_imask): New insns.
36783
36784 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36785
36786         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
36787         (rank_for_schedule_debug): Split from ...
36788         (rank_for_schedule): ... this.
36789         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
36790         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
36791
36792 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
36793
36794         * doc/md.texi (Machine Constraints): Alphabetize table by target.
36795         * doc/extend.texi (x86 Variable Attributes): Move section to
36796         correct alphabetization after renaming.
36797         (x86 Type Attributes): Likewise.
36798         (Target Builtins): Re-alphabetize menu.
36799         (x86 Built-in Functions): Move section to correct alphabetization
36800         after renaming.
36801         (x86 transactional memory intrinsics): Likewise.
36802         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
36803         and x86 Windows Options in table and menu.
36804         (x86 Options): Move section to correct alphabetization after
36805         renaming.
36806         (x86 Windows Options): Likewise.
36807
36808 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
36809
36810         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
36811         preferred names of the architecture and its 32- and 64-bit
36812         variants.
36813         * doc/invoke.texi: Likewise.
36814         * doc/md.texi: Likewise.
36815
36816 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
36817
36818         PR target/64882
36819         * config/i386/predicates.md (address_no_seg_operand): Reject
36820         non-CONST_INT_P operands in invalid mode.
36821
36822 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
36823
36824         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
36825         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
36826         * config/i386/predicates.md (address_no_seg_operand): Call
36827         address_operand with VOIDmode.
36828         (vsib_address_operand): Ditto.
36829         (address_mpx_no_base_operand): Ditto.
36830         (address_mpx_no_index_operand): Ditto.
36831
36832 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
36833
36834         PR target/64688
36835         * lra-constraints.c (original_subreg_reg_mode): New.
36836         (simplify_operand_subreg): Try to simplify subreg of const.  Use
36837         original_subreg_reg_mode for it.
36838         (swap_operands): Update original_subreg_reg_mode.
36839         (curr_insn_transform): Set up original_subreg_reg_mode.
36840
36841 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
36842
36843         PR target/64617
36844         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
36845         function.
36846         (process_alt_operands): Use it.
36847         (curr_insn_transform): Check the optional reload pseudo class is
36848         ok for the mode.
36849
36850 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
36851
36852         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
36853         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
36854         prototype.
36855         * toplev.h (init_asm_output): Update comment on use of
36856         UNKNOWN_LOCATION with fatal_error.
36857         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
36858         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
36859         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
36860         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
36861         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
36862         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
36863         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
36864         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
36865         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
36866         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
36867         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
36868         fatal_error changed to pass input_location as first argument.
36869
36870 2015-01-30  Martin Liska  <mliska@suse.cz>
36871
36872         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
36873         in #pragma GCC diagnostic guards.
36874
36875 2015-01-30  Richard Biener  <rguenther@suse.de>
36876
36877         PR tree-optimization/64829
36878         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
36879         not add a widening conversion pattern but hand off extra
36880         widenings to callers.
36881         (vect_recog_widen_mult_pattern): Handle extra widening produced
36882         by vect_handle_widen_op_by_const.
36883         (vect_recog_widen_shift_pattern): Likewise.
36884         (vect_pattern_recog_1): Remove excess vertical space in dumping.
36885         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
36886         (vect_init_vector_1): Likewise.
36887         (vect_get_vec_def_for_operand): Likewise.
36888         (vect_finish_stmt_generation): Likewise.
36889         (vectorizable_load): Likewise.
36890         (vect_analyze_stmt): Likewise.
36891         (vect_is_simple_use): Likewise.
36892
36893 2015-01-29  Jeff Law  <law@redhat.com>
36894
36895         * combine.c (try_combine): Fix typo in comment.
36896
36897 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
36898
36899         PR target/64580
36900         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
36901         (rs6000_stack_info): Add assert.
36902         (rs6000_output_savres_externs): New function, split off from...
36903         (rs6000_output_function_prologue): ... here.  Do not call it for
36904         thunks.
36905
36906 2015-01-29  Jeff Law  <law@redhat.com>
36907
36908         PR target/15184
36909         * combine.c (try_combine): If I0 is a memory load and I3 a store
36910         to a related address, increase the "goodness" of doing a 4-insn
36911         combination with I0-I3.
36912         (make_field_assignment): Handle SUBREGs in the ior+and case.
36913
36914 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
36915
36916         PR tree-optimization/64746
36917         * tree-if-conv.c (mask_exists): New function.
36918         (predicate_mem_writes): Save created mask with given size for further
36919         use.
36920         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
36921         (ifcvt_repair_bool_pattern): Collect all statements that are root
36922         of bool pattern and use iterative algorithm to remove multiple uses
36923         of predicates, display number of required iterations.
36924
36925 2015-01-29  Richard Biener  <rguenther@suse.de>
36926
36927         PR tree-optimization/64853
36928         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
36929         stmt will get simulated again.
36930         * tree-ssa-ccp.c (valueize_op_1): Likewise.
36931
36932 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36933
36934         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
36935         return_in_pc.  Remove redundant assignments.
36936         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
36937         (arm_expand_epilogue): Don't compare boolean with true in if condition.
36938
36939 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
36940
36941         * config/i386/i386.c (ix86_mode_after): Make static.
36942
36943 2015-01-29  Richard Biener  <rguenther@suse.de>
36944
36945         PR tree-optimization/64844
36946         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
36947         dump cost model analysis.
36948         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
36949         Do not register adjusted load/store costs here.
36950
36951 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
36952             Uros Bizjak  <ubizjak@gmail.com>
36953
36954         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
36955         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
36956         using x86_use_pseudo_pic_reg.
36957         * config/i386/i386.c (ix86_conditional_register_usage): Remove
36958         support for fixed PIC register.
36959         (ix86_use_pseudo_pic_reg): Not static any more.
36960
36961 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
36962
36963         PR middle-end/64805
36964         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
36965         to avoid error in cgraph node verification.
36966
36967 2015-01-29  Marek Polacek  <polacek@redhat.com>
36968
36969         * doc/standards.texi: Reflect that the default for C is gnu11.
36970
36971 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
36972
36973         PR target/64761
36974         * reorg.c (switch_text_sections_between_p): New function.
36975         (relax_delay_slots): Call it when testing if the jump insn
36976         is removable.  Use targetm.can_follow_jump when testing if
36977         the conditional branch can follow an unconditional jump.
36978
36979 2015-01-27  Caroline Tice  <cmtice@google.com>
36980
36981         Committing VTV Cywin/Ming patch for Patrick Wollgast
36982         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
36983         if -fvtable-verify=preinit/std is used.
36984         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
36985         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
36986         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
36987         if -fvtable-verify=preinit/std is used.
36988         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
36989         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
36990         if -fvtable-verify=preinit/std is used.
36991         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
36992         * config/i386/mingw32.h (LIB_SPEC): Likewise.
36993         * varasm.c (assemble_variable): Add code to properly set the comdat
36994         section and name for the .vtable_map_vars section in case the
36995         target is PE or COFF.
36996
36997 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
36998
36999         PR ipa/64801
37000         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
37001         make sane BB profile.
37002         (cgraph_node::expand_thunk): Make sane BB profile.
37003         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
37004         * cgraph.h (init_lowered_empty_function): Update prototype.
37005         * config/i386/i386.c (make_resolver_func): Update call.
37006         * predict.c (gate): Disable branch prediction pass if
37007         profile is already there.
37008
37009 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
37010
37011         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
37012         * opth-gen.awk: Likewise.
37013         * common.opt: Mark flag_fp_contract_mode as Optimization.
37014
37015 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
37016
37017         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
37018         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
37019
37020 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
37021
37022         PR target/64659
37023         * config/sh/predicates.md (atomic_arith_operand,
37024         atomic_logical_operand): Remove.
37025         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
37026         (atomic_arith_operand_0): New predicate.
37027         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
37028         Use atomic_arith_operand_0 for input values.
37029         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
37030         atomic_compare_and_swap<mode>_soft_gusa,
37031         atomic_compare_and_swap<mode>_soft_tcb,
37032         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
37033         arith_reg_operand instead of register_operand.
37034         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
37035         atomic_arith_operand_0 for newval input.
37036         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
37037         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
37038         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
37039         arith_reg_operand instead of register_operand.
37040         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
37041         fetchop_predicate_1, fetchop_constraint_1_llcs,
37042         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
37043         fetchop_constraint_1_imask): New code iterator attributes.
37044         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
37045         register_operand.  Use fetchop_predicate_1.
37046         (atomic_fetch_<fetchop_name>si_hard,
37047         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
37048         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
37049         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
37050         and arith_reg_operand instead of register_operand.  Use
37051         fetchop_predicate_1, fetchop_constraint_1_gusa.
37052         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
37053         and arith_reg_operand instead of register_operand.  Use
37054         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
37055         to allow R0 usage.
37056         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
37057         and arith_reg_operand instead of register_operand.  Use
37058         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
37059         to allow R0 usage.
37060         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
37061         register_operand.  Use atomic_logical_operand_1.
37062         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
37063         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
37064         arith_reg_operand instead of register_operand.
37065         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
37066         Use arith_reg_dest and arith_reg_operand instead of register_operand.
37067         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
37068         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
37069         register_operand.  Use fetchop_predicate_1.
37070         (atomic_<fetchop_name>_fetchsi_hard,
37071         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
37072         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
37073         fetchop_constraint_1_llcs.
37074         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
37075         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
37076         fetchop_constraint_1_gusa.
37077         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
37078         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
37079         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
37080         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
37081         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
37082         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
37083         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
37084         register_operand.  Use atomic_logical_operand_1.
37085         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
37086         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
37087         arith_reg_operand instead of register_operand.
37088         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
37089         arith_reg_operand instead of register_operand.  Use logical_operand
37090         and K08.  Adjust asm sequence to allow R0 usage.
37091         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
37092         arith_reg_operand instead of register_operand.  Use logical_operand
37093         and K08.
37094
37095 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
37096
37097         PR other/63504
37098         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
37099         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
37100         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
37101         only get_full_len HOST_WIDE_INTs from get_val () array rather than
37102         all bits in *val_wide.
37103
37104 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
37105
37106         * varpool.c (tls_model_names): Fix names.
37107         (varpool_node::dump): Dump tls- prefix for tls models.
37108
37109 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
37110             Bernd Schmidt  <bernds@codesourcery.com>
37111             Nathan Sidwell  <nathan@codesourcery.com>
37112
37113         * config/nvptx/mkoffload.c: New file.
37114         * config/nvptx/t-nvptx: Add build rules for it.
37115         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
37116         (extra_programs): Add mkoffload.
37117         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
37118         function.
37119         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
37120
37121 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
37122
37123         PR middle-end/64809
37124         * cfgexpand.c (reorder_operands): Skip debug gimples.
37125
37126 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
37127
37128         PR tree-optimization/64277
37129         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
37130         range info when possible to refine estimation.
37131
37132 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
37133
37134         PR tree-optimization/64718
37135         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
37136         be a 16bit unsigned integer when n->range is 16.
37137         (bswap_replace): Convert src to that type if necessary for all bswap
37138         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
37139         set in pass_optimize_bswap::execute ().
37140
37141 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
37142
37143         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
37144         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
37145         integer and floating point variants.
37146         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
37147
37148 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
37149
37150         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
37151         for all vector modes.
37152
37153 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
37154
37155         PR bootstrap/64612
37156         * doc/sourcebuild.texi (comdat_group): Document.
37157
37158 2015-01-28  Terry Guo  <terry.guo@arm.com>
37159
37160         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
37161
37162 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
37163
37164         * toplev.c (print_version): Add param "show_global_state", and
37165         only print GGC and plugin information if it is true.
37166         (init_asm_output): Pass in "true" for the new param when calling
37167         print_version.
37168         (process_options): Likewise.
37169         (toplev::main): Likewise.
37170         * toplev.h (print_version): Add new param to decl.
37171
37172 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
37173
37174         PR ipa/60871
37175         PR ipa/64139
37176         * tree.c (lookup_binfo_at_offset): New function.
37177         (get_binfo_at_offset): Use it.
37178
37179 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
37180
37181         PR ipa/64282
37182         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
37183         on vtable being vtable.
37184
37185 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37186
37187         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
37188         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
37189         -mhotpatch= option.
37190         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
37191         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
37192         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
37193         Renamed.
37194         (s390_hotpatch_trampoline_halfwords_max): Renamed.
37195         (s390_hotpatch_hw_max): New name.
37196         (s390_hotpatch_trampoline_halfwords): Renamed.
37197         (s390_hotpatch_hw_before_label): New name.
37198         (get_hotpatch_attribute): Removed.
37199         (s390_hotpatch_hw_after_label): New name.
37200         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
37201         attribute.
37202         (s390_attribute_table): Ditto.
37203         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
37204         (s390_function_num_hotpatch_hw): New name.
37205         Remove special handling of inline functions and hotpatching.
37206         Return number of nops before and after the function label.
37207         (s390_can_inline_p): Removed.
37208         (s390_asm_output_function_label): Emit a configurable number of nops
37209         after the function label.
37210         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
37211         (TARGET_CAN_INLINE_P) Removed.
37212         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
37213
37214 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37215             Jiong Wang  <jiong.wang@arm.com>
37216
37217         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
37218         of scratch reg.
37219         (cb<optab><mode>1): Likewise.
37220         * config/aarch64/iterators.md (bcond): New define_code_attr.
37221
37222 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37223
37224         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
37225         memory accesses.
37226
37227 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37228
37229         * config/s390/s390.c (s390_register_move_cost): Increase costs for
37230         FPR->GPR moves.
37231
37232 2015-01-27  Richard Biener  <rguenther@suse.de>
37233
37234         * tree-vrp.c (update_value_range): Intersect the range with
37235         old recorded SSA name range information.
37236
37237 2015-01-27  Nick Clifton  <nickc@redhat.com>
37238
37239         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
37240         BC, DE and HL registers directly, not via AX.
37241         When decrementing the stack pointer by a large amount, transfer SP
37242         into AX and perform the subtraction there.
37243         (rl78_expand_epilogue): Perform the inverse of the above
37244         enhancements.
37245
37246 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37247
37248         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
37249
37250 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
37251             Yury Gribov  <y.gribov@samsung.com>
37252
37253         PR ubsan/64741
37254         * ubsan.c (ubsan_source_location): Refactor code.
37255         (ubsan_type_descriptor): Update type size. Refactor code.
37256
37257 2015-01-27  Richard Biener  <rguenther@suse.de>
37258
37259         PR tree-optimization/56273
37260         PR tree-optimization/59124
37261         PR tree-optimization/64277
37262         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
37263         from the first VRP pass.
37264
37265 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
37266
37267         PR ipa/64776
37268         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
37269         handle the first argument in the same loop as all the other arguments.
37270
37271         PR rtl-optimization/61058
37272         * jump.c (cleanup_barriers): Update basic block boundaries
37273         if BLOCK_FOR_INSN is non-NULL on PREV.
37274
37275 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
37276
37277         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
37278         bounds narrowing, already instrumented calls and calls to
37279         not instrumentable functions.
37280
37281 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
37282
37283         PR tree-optimization/64807
37284         * wide-int.cc (wi::divmod_internal): Clear
37285         b_dividend[dividend_blocks_needed].
37286
37287 2015-01-26  DJ Delorie  <dj@redhat.com>
37288
37289         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
37290         volatile memory references.
37291
37292 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
37293
37294         PR target/49263
37295         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
37296         remove_insn.
37297         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
37298         shifts if it already fits into K08.
37299
37300 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
37301
37302         PR ipa/64730
37303         * ipa-inline.c (inline_small_functions): Print "unknown" even
37304         if edge->call_stmt is non-NULL, but has builtins or unknown
37305         location.
37306
37307         PR middle-end/64421
37308         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
37309         with asterisk, skip the first character.
37310
37311 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
37312
37313         PR target/64806
37314         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
37315         order change.
37316
37317 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
37318
37319         PR target/64795
37320         * config/i386/i386.md (*movdi_internal): Also check operand 0
37321         to determine TYPE_LEA operand.
37322         (*movsi_internal): Ditto.
37323
37324 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
37325
37326         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
37327         OPTION_MASK_QUAD_MEMORY_ATOMIC.
37328
37329 2015-01-26  Renlin Li  <renlin.li@arm.com>
37330
37331         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
37332         the comment.
37333         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
37334         for higher part.
37335
37336 2015-01-26  Richard Biener  <rguenther@suse.de>
37337
37338         PR middle-end/64764
37339         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
37340         combining two BIT_AND_EXPR predicates.
37341
37342 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
37343
37344         PR bootstrap/64754
37345         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
37346
37347 2015-01-26  Terry Guo  <terry.guo@arm.com>
37348
37349         * config/arm/arm.c (arm_file_start): Update the assignment of
37350         Tag_ABI_HardFP_use.
37351
37352 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
37353
37354         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
37355         pipeline model.
37356         config/arm/arm.md: Include the new Cortex-A57 model.
37357         (generic_sched): Don't use generic_sched when tuning for
37358         Cortex-A57.
37359
37360 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
37361             Uros Bizjak  <ubizjak@gmail.com>
37362
37363         * config/i386/i386.c (get_builtin_code_for_version): Add
37364         support for BMI and BMI2 multiversion functions.
37365
37366 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
37367
37368         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
37369         (extract_bit_field): Likewise.
37370         (extract_low_bits): Likewise.
37371         (expand_mult): Likewise.
37372         (expand_mult_highpart_adjust): Likewise.
37373
37374 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
37375
37376         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
37377         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
37378         * config/i386/i386.c (processor_model): Add
37379         M_INTEL_COREI7_BROADWELL.
37380         (arch_names_table): Add "broadwell".
37381
37382 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
37383
37384         PR target/49263
37385         PR target/53987
37386         PR target/64345
37387         PR target/59533
37388         PR target/52933
37389         PR target/54236
37390         PR target/51244
37391         * config/sh/sh-protos.h
37392         (sh_extending_set_of_reg::can_use_as_unextended_reg,
37393         sh_extending_set_of_reg::use_as_unextended_reg,
37394         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
37395         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
37396         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
37397         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
37398         (sh_treg_insns): New class.
37399         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
37400         (scope_counter): New class.
37401         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
37402         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
37403         sh_extending_set_of_reg::can_use_as_unextended_reg,
37404         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
37405         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
37406         sh_split_treg_set_expr): New functions.
37407         (addsubcosts): Handle treg_set_expr.
37408         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
37409         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
37410         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
37411         (sh_insn_operands_modified_between_p): Make non-static.
37412         * config/sh/predicates.md (zero_extend_movu_operand): Allow
37413         simple_mem_operand in addition to displacement_mem_operand.
37414         (zero_extend_operand): Don't allow zero_extend_movu_operand.
37415         (treg_set_expr, treg_set_expr_not_const01,
37416         arith_reg_or_treg_set_expr): New predicates.
37417         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
37418         arith_or_int_operand instead of logical_operand.  Convert to
37419         insn_and_split.  Try to optimize constant operand in splitter.
37420         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
37421         (*tstqi_t_zero): Delete.
37422         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
37423         (tstsi_t_and_not): Delete.
37424         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
37425         Convert to insn_and_split.
37426         (unnamed split, tstsi_t_zero_extract_xor,
37427         tstsi_t_zero_extract_subreg_xor_little,
37428         tstsi_t_zero_extract_subreg_xor_big): Delete.
37429         (*tstsi_t_shift_mask): New insn_and_split.
37430         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
37431         to recombine with surrounding insns when splitting.
37432         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
37433         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
37434         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
37435         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
37436         (*cbranch_div0s: Delete.
37437         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
37438         Try to recombine with surrounding insns when splitting.  Add operand
37439         order variants.
37440         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
37441         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
37442         *addc_r_r_msb, *addc_2r_msb): Delete.
37443         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
37444         order variant.
37445         (*addc_negreg_t): New insn_and_split.
37446         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
37447         Try to recombine with surrounding insns when splitting.
37448         Add operand order variants.
37449         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
37450         insn_and_split patterns.
37451         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
37452         surrounding insns when splitting.
37453         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
37454         (*rotcl): Likewise.  Add zero_extract variant.
37455         (*ashrsi2_31): New insn_and_split.
37456         (*negc): Convert to insn_and_split.  Use treg_set_expr.
37457         (*zero_extend<mode>si2_disp_mem): Update comment.
37458         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
37459         condition.
37460         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
37461         with surrounding insns when splitting.
37462         (any_treg_expr_to_reg): New insn_and_split.
37463         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
37464         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
37465         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
37466         *zero_extract_2): New single bit zero extract patterns.
37467         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
37468         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
37469         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
37470         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
37471         set destination.
37472         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
37473         register_operand for set source.
37474
37475 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
37476
37477         * i386.opt (prefetch_sse): New targetsave.
37478         * i386.c (ix86_function_specific_save): Save prefetch_sse.
37479         (ix86_function_specific_restore): Restore prefetch_sse and initialize
37480         ix86_cost/ix86_tune_cost.
37481
37482 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
37483
37484         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
37485         Support the JIT by using 0 as the language type.
37486
37487 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
37488
37489         PR target/64317
37490         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
37491         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
37492         (mark_regno_live, process_bb_lives): Pass new parameter value to
37493         make_hard_regno_born.
37494
37495 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
37496
37497         PR rtl-optimization/63637
37498         PR rtl-optimization/60663
37499         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
37500         if elt->cost is MAX_COST for ASM_OPERANDS.
37501         (find_sets_in_insn): Fix up comment typo.
37502         (cse_insn): Don't set src_volatile for all non-volatile
37503         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
37504         or with "memory" clobber.  Set elt->cost to MAX_COST
37505         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
37506         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
37507
37508 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
37509
37510         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
37511         alternative 1.
37512
37513 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
37514
37515         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
37516         libgcc/config/i386/elf-lib.h.
37517
37518 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
37519
37520         PR driver/64737
37521         * gcc.c (print_configuration): Don't print a blank line at the end
37522         here...
37523         (run_attempt): ... but here unstead.
37524
37525         PR middle-end/64734
37526         * omp-low.c (scan_sharing_clauses): Don't ignore
37527         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
37528         on target data/update constructs.
37529
37530 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
37531
37532         PR target/50928
37533         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
37534         (DEBUG_RELOAD): Removed define.
37535         (m32c_limit_reload_class): Enable traces with if DEBUG0.
37536         (m32c_function_arg): Added a type cast.
37537         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
37538         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
37539         * config/m32c/bitops.md (andqi3_16): Likewise.
37540         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
37541         (push_a01_l): Likewise.
37542
37543 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
37544
37545         PR jit/64721
37546         * main.c (main): Construct toplev instances with init_signals=true.
37547         * toplev.c (general_init): Add param "init_signals", and use it to
37548         conditionalize the calls to signal and host_hooks.extra_signals.
37549         (toplev::toplev): Add param "init_signals".
37550         (toplev::main): When invoking general_init, pass m_init_signals
37551         to control whether signal-handlers are installed.
37552         * toplev.h (toplev::toplev): Add param "init_signals".
37553         (toplev::m_init_signals): New field.
37554
37555 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
37556
37557         PR jit/64722
37558         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
37559         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
37560         latter may be affected by the former (e.g. on i686).
37561
37562 2015-01-23  Martin Liska  <mliska@suse.cz>
37563
37564         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
37565         false positive during profiledbootstrap.
37566
37567 2015-01-23  Tom de Vries  <tom@codesourcery.com>
37568
37569         PR libgomp/64672
37570         * lto-opts.c (lto_write_options): Output non-explicit conservative
37571         -fno-openacc.
37572         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
37573         (append_compiler_options): Pass -fopenacc through.
37574
37575 2015-01-23  Tom de Vries  <tom@codesourcery.com>
37576
37577         PR libgomp/64707
37578         * lto-opts.c (lto_write_options): Output non-explicit conservative
37579         -fno-openmp.
37580         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
37581         (append_compiler_options): Pass -fopenmp through.
37582
37583 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
37584
37585         PR debug/64511
37586         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
37587         GTY markup.
37588
37589         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
37590         * diagnostic.def (DK_ICE_NOBT): New kind.
37591         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
37592         like DK_ICE, but never print backtrace.
37593         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
37594         (internal_error_no_backtrace): New function.
37595         * gcc.c (execute): Use internal_error_no_backtrace instead of
37596         internal_error.
37597
37598 2015-01-22  Jeff Law  <law@redhat.com>
37599
37600         PR target/52076
37601         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
37602         improve code density for small immediate to memory case.
37603         (insv): Better handle bitfield assignments when the field is
37604         being set to all ones.
37605         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
37606         operand predicate.
37607
37608 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37609             Jakub Jelinek  <jakub@redhat.com>
37610
37611         PR middle-end/64729
37612         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
37613         for !TARGET_LIBC_PROVIDES_SSP version and
37614         -fstack-protector-{all,strong,explicit} otherwise.
37615         * config/freebsd.h (LINK_SSP_SPEC): Handle
37616         -fstack-protector-{strong,explicit}.
37617
37618 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
37619             H.J. Lu  <hongjiu.lu@intel.com>
37620
37621         PR ipa/64694
37622         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
37623         heap.
37624
37625 2015-01-22  Wei Mi  <wmi@google.com>
37626
37627         PR rtl-optimization/64557
37628         * dse.c (record_store): Call get_addr for mem_addr.
37629         (check_mem_read_rtx): Likewise.
37630
37631 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
37632
37633         * fold-const.c (const_binop): Add early return for non-tcc_binary.
37634
37635 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
37636
37637         * toplev.c (init_local_tick): Process the failure when read
37638         fails for random_seed.
37639
37640         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
37641         'pretty_name' to avoid memory overflow.
37642
37643 2015-01-22  Richard Biener  <rguenther@suse.de>
37644
37645         PR middle-end/64728
37646         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
37647         abnormal coalescing on undefined SSA names.
37648
37649 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
37650
37651         PR target/64688
37652         PR target/64477
37653         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
37654         for alternative 3.
37655         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
37656
37657 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
37658
37659         PR middle-end/63325
37660         * fold-const.c (fold_checksum_tree): Don't include value of
37661         expr->decl_with_vis.symtab_node in the checksum.
37662
37663 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
37664
37665         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
37666
37667 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
37668
37669         PR driver/64690
37670         * gcc.c (insert_comments): New function.
37671         (try_generate_repro): Call it.
37672         (append_text): Removed.
37673
37674 2015-01-22  Richard Biener  <rguenther@suse.de>
37675
37676         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
37677         with IL incompatible options.  Properly honor user optimize
37678         attributes.
37679
37680 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
37681
37682         PR rtl-optimization/64682
37683         * combine.c (distribute_notes): When moving a death note for
37684         a register that is set in the new I2, make sure to put it
37685         before that new I2.
37686
37687 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
37688
37689         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
37690         not TARGET_DEFAULT.
37691
37692 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
37693
37694         PR debug/64511
37695         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
37696         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
37697         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
37698
37699         PR sanitizer/64706
37700         * doc/invoke.texi (-fsanitize=vptr): Document.
37701
37702         PR rtl-optimization/62078
37703         * dse.c: Include cfgcleanup.h.
37704         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
37705         anything call purge_all_dead_edges and cleanup_cfg at the end
37706         of the pass.
37707
37708 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
37709
37710         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
37711         edges.
37712
37713 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
37714
37715         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
37716         decl attribute.
37717
37718 2015-01-21  David Sherwood  <david.sherwood@arm.com>
37719             Tejas Belagod <Tejas.Belagod@arm.com>
37720
37721         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
37722         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
37723         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
37724         Removed.
37725
37726 2015-01-21  David Sherwood  <david.sherwood@arm.com>
37727             Tejas Belagod <Tejas.Belagod@arm.com>
37728
37729         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
37730         (aarch64_reverse_mask): New decls.
37731         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
37732         (insn_count): New mode_attr.
37733         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
37734         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
37735         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
37736         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
37737         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
37738         (aarch64_simd_st4): New patterns.
37739         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
37740         (aarch64_reverse_mask): New functions.
37741
37742 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
37743
37744         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
37745         Declare.
37746         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
37747         addressing modes for BE.
37748         (aarch64_print_operand): Add 'R' specifier.
37749         (aarch64_simd_disambiguate_copy): Delete.
37750         (aarch64_simd_emit_reg_reg_move): New function.
37751         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
37752         in define_splits for structural moves.
37753         (mov<mode>): Use less restrictive predicates.
37754         (*aarch64_mov<mode>): Simplify and only allow for LE.
37755         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
37756
37757 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
37758
37759         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
37760
37761 2015-01-21  Richard Henderson  <rth@redhat.com>
37762
37763         PR target/64669
37764         * ccmp.c (used_in_cond_stmt_p): Remove.
37765         (expand_ccmp_expr): Don't use it.
37766
37767 2015-01-21  Nick Clifton  <nickc@redhat.com>
37768
37769         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
37770         PARALLELs.
37771
37772 2015-01-21  Richard Biener  <rguenther@suse.de>
37773
37774         PR middle-end/64313
37775         * tree-core.h (builtin_info, builtin_info_type): Turn from
37776         an object with two arrays into an array of an object with
37777         decl and two flags, implicit_p and declared_p.
37778         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
37779         set_builtin_decl, set_builtin_decl_implicit_p,
37780         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
37781         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
37782         * builtins.c (builtin_info): Adjust.
37783         * gimplify.c (gimplify_addr_expr): References to builtins
37784         that have been declared by the user makes them eligible for
37785         use by the compiler.  Call set_builtin_decl_implicit_p on them.
37786
37787 2015-01-20  Jeff Law  <law@redhat.com>
37788
37789         PR target/59946
37790         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
37791         allow pc-relative addresses in operand predicates or constraints.
37792
37793 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
37794
37795         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
37796         neon on aarch32 processors for stringops.
37797
37798 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
37799
37800         PR ipa/63576
37801         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
37802
37803 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
37804
37805         PR lto/45375
37806         * ipa-inline.c: Include lto-streamer.h
37807         (report_inline_failed_reason): Output source file differences and
37808         flags on optimization/target node mismatch.
37809         (can_inline_edge_p): Consider caller to be the outer inline function;
37810         be less restrictive about matching opimize and optimize_size attributes.
37811         (inline_account_function_p): Break out from ...
37812         (inline_small_functions): ... here.
37813         * ipa-inline-transform.c (clone_inlined_nodes): Use
37814         inline_account_function_p.
37815         (inline_call): Use optimize attribution; use inline_account_function_p.
37816         (inline_transform): Use opt_for_fn.
37817         * ipa-inline.h (inline_account_function_p): Declare.
37818
37819 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
37820
37821         PR debug/64663
37822         * dwarf2out.c (decl_piece_node): Don't put bitsize into
37823         mode if bitsize <= 0.
37824         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
37825         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
37826         sizes and positions.
37827
37828 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
37829
37830         * config/nios2/nios2.c (nios2_asm_file_end): Implement
37831         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
37832         needed.
37833         (TARGET_ASM_FILE_END): Define.
37834
37835 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
37836
37837         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
37838         (struct tune_params): Use the enum.
37839         * arm.c (arm_*_tune): Update.
37840         (arm_option_override): Update.
37841
37842 2015-01-20  Richard Biener  <rguenther@suse.de>
37843
37844         PR ipa/64684
37845         * ipa-reference.c (add_static_var): Inline ...
37846         (analyze_function): ... here after splitting out from ...
37847         (is_proper_for_analysis): ... this.
37848
37849 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
37850
37851         PR target/64149
37852         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
37853         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
37854         replace the conditional with it's true branch.
37855         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
37856         (arm_lra_p): Remove.
37857
37858 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
37859
37860         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
37861
37862 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
37863
37864         * config/tilegx/mul-tables.c: Move symtab.h include after
37865         coretypes.h include.
37866         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
37867         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
37868         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
37869         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
37870         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
37871
37872 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
37873
37874         PR bootstrap/64676
37875         Revert:
37876         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
37877
37878         PR rtl-optimization/64081
37879         * loop-iv.c (def_pred_latch_p): New function.
37880         (latch_dominating_def): Allow specific cases with non-single
37881         definitions.
37882         (iv_get_reaching_def): Likewise.
37883         (check_complex_exit_p): New function.
37884         (check_simple_exit): Use check_complex_exit_p to allow certain cases
37885         with exits not executing on any iteration.
37886
37887 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
37888
37889         PR lto/45375
37890         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
37891         to set branch cost.
37892
37893 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
37894
37895         PR lto/45375
37896         * i386.c (gate): Check flag_expensive_optimizations and
37897         optimize_size.
37898         (ix86_option_override_internal): Drop optimize_size condition
37899         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
37900         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
37901         MASK_PREFER_AVX128.
37902         (ix86_avx256_split_vector_move_misalign,
37903         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
37904         * sse.md (all uses of TARGET_PREFER_AVX128): Add
37905         optimize_insn_for_speed_p check.
37906
37907 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
37908
37909         * config/mips/mips.h (FP_ASM_SPEC): New define.
37910         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
37911         instead.
37912
37913 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
37914
37915         PR target/53988
37916         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
37917         nullptr for insn when reaching the first insn.
37918         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
37919         (sh_insn_operands_modified_between_p): Add nullptr check.
37920         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
37921         sign extending mem load if the insn contains any UNSPEC or
37922         UNSPEC_VOLATILE.
37923
37924 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
37925
37926         * params.def (inline-unit-growth): Drop to 15%.
37927         * invoke.texi (inline-unit-growth): Document change.
37928
37929 2015-01-19  Martin Liska  <mliska@suse.cz>
37930
37931         PR ipa/64668
37932         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
37933         function for second argument of OBJ_TYPE_REF.
37934
37935 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
37936
37937         PR ipa/64218
37938         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
37939         whether function is an alias.
37940
37941 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
37942
37943         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
37944         cases.
37945
37946 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
37947
37948         PR rtl-optimization/64671
37949         * lra-remat.c (operand_to_remat): Don't consider jump and call
37950         insns.
37951
37952 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
37953
37954         PR target/59828
37955         * config/rs6000/default64.h: Include rs6000-cpus.def.
37956         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
37957         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
37958         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
37959         and POWER8.
37960         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
37961         POWER8.
37962         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
37963         pseudo-op to specify assembler dialect.
37964
37965 2015-01-19  Martin Liska  <mliska@suse.cz>
37966
37967         PR ipa/64664
37968         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
37969         Handle safe potentially removed nodes during filtering.
37970
37971 2015-01-19  Martin Liska  <mliska@suse.cz>
37972
37973         * doc/extend.texi (no_icf): Add new attribute description.
37974         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
37975         where the pass attempts to merge a function with no_icf attribute.
37976
37977 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
37978
37979         PR target/64532
37980         * doc/md.texi (ARM Options): Document register constraints.
37981
37982 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
37983             Andrew Pinski  <apinski@cavium.com>
37984
37985         PR target/64304
37986         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
37987         (ashl<mode>3): Don't expand if operands[2] is not constant.
37988
37989 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37990
37991         PR target/64448
37992         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
37993         Match xor-and-xor RTL pattern.
37994
37995 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
37996
37997         PR rtl-optimization/64081
37998         * loop-iv.c (def_pred_latch_p): New function.
37999         (latch_dominating_def): Allow specific cases with non-single
38000         definitions.
38001         (iv_get_reaching_def): Likewise.
38002         (check_complex_exit_p): New function.
38003         (check_simple_exit): Use check_complex_exit_p to allow certain cases
38004         with exits not executing on any iteration.
38005
38006 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
38007
38008         * common.opt (fgraphite): Fix a typo.
38009
38010 2015-01-19  Felix Yang  <felix.yang@huawei.com>
38011
38012         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
38013         pattern.
38014         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
38015         uminp, smax_nanp, smin_nanp): New builtins.
38016         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
38017         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
38018         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
38019         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
38020         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
38021         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
38022         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
38023         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
38024         vpminnms_f32): Rewrite using builtin functions.
38025
38026 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
38027
38028         PR libgomp/64625
38029         * omp-low.c (offload_symbol_decl): Remove variable.
38030         (get_offload_symbol_decl): Remove function.
38031         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
38032         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
38033         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
38034         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
38035         BUILT_IN_GOACC_UPDATE don't pass it at all.
38036
38037 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
38038
38039         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
38040         callers.
38041
38042 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
38043
38044         * ipa-chkp.c (chkp_produce_thunks): Add early param
38045         to split thunks production into two passes.  Keep
38046         'always_inline' function bodies after the first pass.
38047         (pass_data_ipa_chkp_early_produce_thunks): New.
38048         (pass_ipa_chkp_early_produce_thunks): New.
38049         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
38050         chkp_produce_thunks signature.
38051         (make_pass_ipa_chkp_early_produce_thunks): New.
38052         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
38053         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
38054         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
38055
38056 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
38057
38058         * cgraph.c (cgraph_node::dump): Dump profile flags.
38059
38060 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
38061
38062         PR target/64652
38063         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
38064         reg appear first in the parallel.
38065
38066 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
38067
38068         * ipa-reference.c (set_reference_optimization_summary,
38069         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
38070         disabled.
38071         (ignore_module_statics): New static var.
38072         (propagate_bits): If ipa-reference is disabled, do not look into local
38073         properties.
38074         (analyze_function): Disable analysis when ipa_reference is disabled.
38075         (generate_summary): Do not dump when reference is disabled;
38076         collect vars accessed from functions with ipa-reference disabled.
38077         (get_read_write_all_from_node): When ipa-reference is disabled, use the
38078         node flags.
38079         (gate): Enable for LTO.
38080         (ignore_edge_p): New function.
38081         (propagate): Skip functions w/o ipa-reference analysis.
38082         * optc-save-gen.awk: Handle optimize_debug correctly.
38083         * opth-gen.awk: Likewise.
38084         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
38085         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
38086         fira-share-save-slots, fira-share-spill-slots,
38087         fmodulo-sched-allow-regmoves, fpartial-inlining,
38088         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
38089         ftracer, ftree-parallelize-loops, fassociative-math,
38090         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
38091         Optimization
38092         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
38093         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
38094         Optimization.
38095         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
38096         Fix for IPA.
38097
38098 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
38099
38100         PR ipa/64378
38101         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
38102         flag correctly.
38103         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
38104
38105 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
38106
38107         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
38108         Remove duplicate option listings.
38109
38110 2015-01-18  Felix Yang  <felix.yang@huawei.com>
38111
38112         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
38113         (autofdo_source_profile::get_callsite_total_count,
38114         function_instance::get_function_instance_by_decl,
38115         string_table::get_index, string_table::get_index_by_decl,
38116         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
38117         Fix comment typos. Reformatting and minor code rearrangement.
38118
38119 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
38120
38121         * config/rs6000/rs6000.md (probe_stack): Delete.
38122         (probe_stack_address): New.
38123
38124 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
38125
38126         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
38127         to test for 32-bit ABIs, not !TARGET_POWERPC64.
38128
38129 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
38130
38131         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
38132         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
38133         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
38134         snafu.
38135         (rs6000_libcall_value): Use the new function.
38136
38137 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
38138
38139         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
38140
38141 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
38142
38143         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
38144         implement a more precise life analysis for it during backward scan.
38145
38146 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
38147
38148         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
38149
38150 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
38151
38152         PR rtl-optimization/52773
38153         * calls.c (emit_library_call_value): When pushing arguments use
38154         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
38155         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
38156         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
38157
38158 2015-01-17  Jeff Law  <law@redhat.com>
38159
38160         PR rtl-optimization/32790
38161         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
38162         not ZERO_EXTEND in SET_DESTs.
38163
38164 2015-01-17  Alan Modra  <amodra@gmail.com>
38165
38166         * cprop.c (do_local_cprop): Revert last change.
38167
38168 2015-01-16  DJ Delorie  <dj@redhat.com>
38169             Nick Clifton  <nickc@redhat.com>
38170
38171         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
38172         (addhi3_real): Likewise.  Fix [HL+0] syntax.
38173         (subqi3_real): Likewise.
38174         (subhi3_real): Likewise.
38175         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
38176         (cbranchhi4_real): Likewise.
38177         (cbranchhi4_real_inverted): Likewise.
38178         (cbranchsi4_real_lt): Likewise.
38179         (cbranchsi4_real_ge): Likewise.
38180         (cbranchsi4_real_ge): Likewise.
38181         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
38182         (sub<mode>3_virt): Likewise.
38183         (cbranchqi4_virt): Likewise.
38184         (cbranchhi4_virt): Likewise.
38185         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
38186         always use '[reg+imm]' even when imm is zero.
38187         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
38188         (rl78_general_operand): New.
38189         (rl78_nonimmediate_operand): New.
38190         (rl78_nonfar_operand): Use them.
38191         (rl78_nonfar_nonimm_operand): Likewise.
38192         (rl78_stack_based_mem): Fix.
38193         * config/rl78/constraints.md (Ibqi): New.
38194         (IBqi): New.
38195         (Wsa): New.
38196         (Wsf): New.
38197         (Cs1): Fix.
38198         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
38199         (iorqi3): Likewise.
38200         (xorqi3): Likewise.
38201         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
38202
38203         * config/rl78/constrains (Qs8): New constraint.
38204         * config/rl78/rl78.c (rl78_flags_already_set): New function.
38205         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
38206         * config/rl78/rl78-real.md (update_Z): New attribute.
38207         Update patterns to set it.
38208         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
38209         shorter compare and branch sequence can be used.
38210         (cbranchhi4_real): Likewise.
38211         (cbranchhi4_real_inverted): Likewise.
38212
38213         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
38214         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
38215         address space.
38216         * config/rl78/rl78.c (rl78_get_name_encoding): New.
38217         (rl78_option_override): Allow -mes0 only if C.
38218         (characterize_address): Support subregs of symbol_refs.
38219         (rl78_addr_space_address_mode): Move.  Add __near.
38220         (rl78_far_p): Likewise.
38221         (rl78_addr_space_pointer_mode): Likewise.
38222         (rl78_as_legitimate_address): Likewise.
38223         (rl78_addr_space_subset_p): Likewise.
38224         (rl78_addr_space_convert): Likewise.
38225         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
38226         symbols with -mes0.
38227         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
38228         addressing.
38229         (rl78_alloc_physical_registers_op1): Change logic to prefer
38230         symbol[BC] addressing.
38231         (frodata_section): New.
38232         (rl78_asm_init_sections): Initialize it.
38233         (rl78_select_section): Put __far readonly symbols in .frodata.
38234         (rl78_make_type_far): New.
38235         (rl78_insert_attributes): Force all readonly symbols to be
38236         __far when -mes0.
38237         (rl78_asm_out_integer): New.
38238         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
38239         * config/rl78/rl78.opt (-mes0): New.
38240
38241         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
38242         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
38243         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
38244         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
38245         (rl78_saddr_p): New.
38246         (rl78_output_aligned_common): New.
38247         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
38248         (rl78_handle_saddr_attribute): New.
38249         (rl78_handle_naked_attribute): New.
38250         (rl78_attribute_table): Add saddr.
38251         (rl78_print_operand_1): Don't print '!' on saddr operands.
38252         (rl78_print_operand_1): Strip encodings.
38253         (rl78_sfr_p): New.
38254         (rl78_strip_name_encoding): New.
38255         (rl78_attrlist_to_encoding): New.
38256         (rl78_encode_section_info): New.
38257         (rl78_asm_init_sections): New.
38258         (rl78_select_section): New.
38259         (rl78_output_labelref): New.
38260         (rl78_output_aligned_common): New.
38261         (rl78_asm_out_integer): New.
38262         (rl78_asm_ctor_dtor): New.
38263         (rl78_asm_constructor): New.
38264         (rl78_asm_destructor): New.
38265
38266         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
38267         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
38268         (transcode_memory_rtx): Update.
38269         (rl78_expand_epilogue): Use A_REG instead of 0.
38270
38271 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
38272
38273         * config/arm/arm-protos.h (struct tune_params): New field
38274         sched_autopref_queue_depth.
38275         * config/arm/arm.c (sched-int.h): Include header.
38276         (arm_first_cycle_multipass_dfa_lookahead_guard,)
38277         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
38278         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
38279         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
38280         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
38281         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
38282         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
38283         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
38284         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
38285         * config/arm/t-arm (arm.o): Update.
38286         * haifa-sched.c (update_insn_after_change): Update.
38287         (rank_for_schedule): Use auto-prefetcher model, if requested.
38288         (autopref_multipass_init): New static function.
38289         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
38290         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
38291         variable for debug dumps.
38292         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
38293         (autopref_multipass_dfa_lookahead_guard): New global function that
38294         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
38295         (init_h_i_d): Update.
38296         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
38297         * sched-int.h (enum autopref_multipass_data_status): New const enum.
38298         (autopref_multipass_data_): Structure for auto-prefetcher data.
38299         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
38300         (struct _haifa_insn_data:autopref_multipass_data): New field.
38301         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
38302         (autopref_multipass_dfa_lookahead_guard): Declare.
38303
38304 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
38305
38306         * rtlanal.c (get_base_term): Handle SCRATCH.
38307
38308 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
38309
38310         * config/aarch64/aarch64.c
38311         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
38312         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
38313         * config/arm/arm.c
38314         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
38315         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
38316
38317 2015-01-17  Alan Modra  <amodra@gmail.com>
38318
38319         * cprop.c (do_local_cprop): Disallow replacement of fixed
38320         hard registers.
38321
38322 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38323
38324         PR target/62066
38325         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
38326         early return 0.
38327
38328 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
38329
38330         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
38331         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
38332
38333 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38334
38335         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
38336         * config/arm/thumb1.md: ... Here.
38337
38338 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
38339
38340         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
38341         TImode for TARGET_32BIT.
38342
38343 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
38344
38345         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
38346         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
38347         as ...
38348         (rs6000_abi_word_mode): New function.
38349
38350 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
38351
38352         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
38353         instead of UNITS_PER_WORD to describe the size of stack slots.
38354
38355 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
38356
38357         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
38358         as rs6000_promote_function_mode.  Move comment to there.
38359         (rs6000_promote_function_mode): New function.
38360
38361 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
38362
38363         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
38364         -mpowerpc64 is active.
38365
38366 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
38367
38368         PR middle-end/64353
38369         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
38370         virtuals on start.
38371
38372 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
38373
38374         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
38375         introduced in revision 219724.
38376
38377 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38378             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
38379
38380         PR target/64263
38381         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
38382         destination is not a GP reg.
38383         (*movdi_aarch64): Likewise.
38384
38385 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
38386
38387         PR target/64623
38388         * config/rs6000/default64.h: Revert ISA change.
38389
38390 2015-01-16  Richard Biener  <rguenther@suse.de>
38391
38392         PR middle-end/64614
38393         * tree-ssa-uninit.c: Include tree-cfg.h.
38394         (MAX_SWITCH_CASES): New define.
38395         (convert_control_dep_chain_into_preds): Handle switch statements.
38396         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
38397         (normalize_one_pred_1): Do not split bit-manipulations.
38398         Record (x & CST).
38399
38400 2015-01-16  Richard Biener  <rguenther@suse.de>
38401
38402         PR tree-optimization/64568
38403         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
38404         complex load rewriting for TARGET_MEM_REFs.
38405
38406 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
38407
38408         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
38409
38410 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
38411
38412         PR target/64149
38413         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
38414         variable.
38415         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
38416         (aarch64_lra_p): Remove.
38417
38418 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
38419
38420         PR target/64363
38421         * ipa-chkp.h (chkp_instrumentable_p): New.
38422         * ipa-chkp.c: Include tree-inline.h.
38423         (chkp_instrumentable_p): New.
38424         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
38425         Fix processing of not instrumentable functions.
38426         (chkp_versioning): Use chkp_instrumentable_p. Warn about
38427         not instrumentable functions.
38428         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
38429         chkp_instrumentable_p.
38430         * tree-inline.h (copy_forbidden): New.
38431         * tree-inline.c (copy_forbidden): Not static anymore.
38432
38433 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38434
38435         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
38436         ptr1, ptr2 unused.
38437
38438 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
38439
38440         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
38441         type OP_OUT to OP_INOUT.
38442
38443 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
38444
38445         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
38446         (high x) y) to y if x and y have the same base.
38447
38448 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
38449
38450         * config/arm/cortex-a57.md: New.
38451         * config/aarch64/aarch64.md: Include it.
38452         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
38453         * config/aarch64/aarch64-tune.md: Regenerate.
38454
38455 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
38456
38457         PR target/64015
38458         * ccmp.c (expand_ccmp_next): New function.
38459         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
38460         and compare insn sequence.
38461         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
38462         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
38463         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
38464         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
38465         (*ccmp_ior): Changed to ccmp_ior<mode>.
38466         (cmp<mode>): New pattern.
38467         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
38468         parameters.
38469         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
38470
38471 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
38472
38473         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
38474         _mm256_bsrli_epi128): New.
38475         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
38476
38477 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
38478
38479         * expmed.c (store_bit_field_using_insv): Improve warning message.
38480         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
38481
38482 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
38483
38484         PR rtl-optimization/64011
38485         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
38486         there is partial overflow.
38487
38488 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
38489
38490         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
38491         prototype.
38492         (nds32_expand_epilogue_v3pop): Likewise.
38493         * config/nds32/nds32.md (sibcall): Define this for sibling call
38494         optimization.
38495         (sibcall_register): Likewise.
38496         (sibcall_immediate): Likewise.
38497         (sibcall_value): Likewise.
38498         (sibcall_value_register): Likewise.
38499         (sibcall_value_immediate): Likewise.
38500         (sibcall_epilogue): Likewise.
38501         (epilogue): Pass false to indicate this is not a sibcall epilogue.
38502         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
38503         (nds32_expand_epilogue_v3pop): Likewise.
38504
38505 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
38506
38507         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
38508         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
38509         (return_internal): New.
38510         (return): Define this named pattern.
38511         (simple_return): Define this named pattern.
38512         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
38513         pattern instead of unspec_volatile_func_return.
38514         (nds32_expand_epilogue_v3pop): Likewise.
38515         (nds32_can_use_return_insn): New function.
38516
38517 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
38518
38519         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
38520         * config/nds32/nds32.md (pop25return): New.
38521         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
38522         pop25return pattern.
38523
38524 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
38525
38526         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
38527         -mforbid-fp-as-gp, and -mex9 options.
38528
38529 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
38530
38531         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
38532         remove -mgp-direct option.
38533
38534 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
38535
38536         * doc/invoke.texi (--param early-inlining-insns): Update default value.
38537         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
38538
38539 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
38540
38541         * ipa-inline.c (inline_small_functions): Work around hints
38542         cache issue.
38543
38544 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
38545
38546         PR target/59710
38547         * doc/invoke.texi (Option Summary): Document new Nios II
38548         -mgpopt= syntax.
38549         (Nios II Options): Likewise.
38550         * config/nios2/nios2.opt: Add -mgpopt= option support.
38551         Modify existing -mgpopt and -mno-gpopt options to be aliases.
38552         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
38553         * config/nios2/nios2.c (nios2_option_override): Adjust
38554         -mgpopt defaulting.
38555         (nios2_in_small_data_p): Return true for explicit small data
38556         sections even with -G0.
38557         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
38558         option choices.
38559
38560 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
38561
38562         PR ipa/64612
38563         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
38564         of comdat locals.
38565         (inline_call): Fix removal of aliases.
38566
38567 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
38568
38569         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
38570         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
38571         * opts.c (common_handle_option): Add -fsanitize=vptr.
38572         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
38573         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
38574         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
38575         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
38576         (ubsan_expand_vptr_ifn): New prototype.
38577         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
38578         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
38579         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
38580         expand_LOOP_VECTORIZED): Make argument nameless, remove
38581         ATTRIBUTE_UNUSED.
38582         (expand_UBSAN_VPTR): New function.
38583         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
38584         in fn spec.
38585         (UBSAN_VPTR): New internal function.
38586         * sanopt.c (tree_map_traits): Renamed to ...
38587         (sanopt_tree_map_traits): ... this.
38588         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
38589         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
38590         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
38591         (maybe_optimize_ubsan_vptr_ifn): New function.
38592         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
38593         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
38594         -fsanitize=vptr.
38595         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
38596         internal calls like pure functions for aliasing, even when they
38597         have other side-effects that prevent making them ECF_PURE.
38598         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
38599         (ubsan_expand_vptr_ifn): New function.
38600
38601 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
38602
38603         PR rtl-optimization/64110
38604         * stmt.c (parse_output_constraint): Process '^' and '$'.
38605         (parse_input_constraint): Ditto.
38606         * lra-constraints.c (process_alt_operands): Process the new
38607         constraints.
38608         * ira-costs.c (record_reg_classes): Process the new constraint
38609         '^'.
38610         * genoutput.c (indep_constraints): Add '^' and '$'.
38611         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
38612         * doc/md.texi: Add description of the new constraints.
38613
38614 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
38615             Bernd Schmidt  <bernds@codesourcery.com>
38616             Cesar Philippidis  <cesar@codesourcery.com>
38617             James Norris  <jnorris@codesourcery.com>
38618             Tom de Vries  <tom@codesourcery.com>
38619             Ilmir Usmanov  <i.usmanov@samsung.com>
38620             Dmitry Bocharnikov  <dmitry.b@samsung.com>
38621             Evgeny Gavrin  <e.gavrin@samsung.com>
38622             Jakub Jelinek  <jakub@redhat.com>
38623
38624         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
38625         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
38626         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
38627         New function types.
38628         * builtins.c: Include "gomp-constants.h".
38629         (expand_builtin_acc_on_device): New function.
38630         (expand_builtin, is_inexpensive_builtin): Handle
38631         BUILT_IN_ACC_ON_DEVICE.
38632         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
38633         New macros.
38634         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
38635         flag_openmp.
38636         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
38637         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
38638         i386/intelmic-offload.h.
38639         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
38640         to libgomp and its dependencies.
38641         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
38642         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
38643         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
38644         * config/ia64/hpux.h (LIB_SPEC): Likewise.
38645         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
38646         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
38647         * doc/generic.texi: Update for OpenACC changes.
38648         * doc/gimple.texi: Likewise.
38649         * doc/invoke.texi: Likewise.
38650         * doc/sourcebuild.texi: Likewise.
38651         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
38652         GF_OMP_FOR_KIND_OACC_LOOP.
38653         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
38654         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
38655         GF_OMP_TARGET_KIND_OACC_UPDATE,
38656         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
38657         Dump more data.
38658         * gimple.c: Update comments for OpenACC changes.
38659         * gimple.def: Likewise.
38660         * gimple.h: Likewise.
38661         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
38662         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
38663         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
38664         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
38665         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
38666         appropriate place.
38667         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
38668         * gimplify.c: Include "gomp-constants.h".
38669         Update comments for OpenACC changes.
38670         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
38671         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
38672         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
38673         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
38674         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
38675         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
38676         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
38677         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
38678         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
38679         OMP_CLAUSE_SEQ.
38680         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
38681         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
38682         OMP_CLAUSE_SET_MAP_KIND.
38683         (gimplify_oacc_cache): New function.
38684         (gimplify_omp_for): Handle OACC_LOOP.
38685         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
38686         OACC_DATA.
38687         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
38688         OACC_EXIT_DATA, OACC_UPDATE.
38689         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
38690         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
38691         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
38692         (gimplify_body): Consider flag_openacc next to flag_openmp.
38693         * lto-streamer-out.c: Include "gomp-constants.h".
38694         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
38695         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
38696         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
38697         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
38698         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
38699         (BUILT_IN_ACC_ON_DEVICE): New builtins.
38700         * omp-low.c: Include "gomp-constants.h".
38701         Update comments for OpenACC changes.
38702         (struct omp_context): Add reduction_map, gwv_below, gwv_this
38703         members.
38704         (extract_omp_for_data, use_pointer_for_field, install_var_field)
38705         (new_omp_context, delete_omp_context, scan_sharing_clauses)
38706         (create_omp_child_function, scan_omp_for, scan_omp_target)
38707         (check_omp_nesting_restrictions, lower_reduction_clauses)
38708         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
38709         Update for OpenACC changes.
38710         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
38711         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
38712         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
38713         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
38714         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
38715         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
38716         OMP_CLAUSE_MAP_*.
38717         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
38718         Handle GF_OMP_FOR_KIND_OACC_LOOP.
38719         (expand_omp_target, lower_omp_target): Handle
38720         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
38721         GF_OMP_TARGET_KIND_OACC_UPDATE,
38722         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
38723         GF_OMP_TARGET_KIND_OACC_DATA.
38724         (pass_expand_omp::execute, execute_lower_omp)
38725         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
38726         flag_openmp.
38727         (offload_symbol_decl): New variable.
38728         (oacc_get_reduction_array_id, oacc_max_threads)
38729         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
38730         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
38731         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
38732         (oacc_gimple_assign, oacc_initialize_reduction_data)
38733         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
38734         functions.
38735         (is_targetreg_ctx): Remove function.
38736         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
38737         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
38738         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
38739         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
38740         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
38741         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
38742         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
38743         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
38744         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
38745         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
38746         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
38747         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
38748         * tree-core.h: Update comments for OpenACC changes.
38749         (enum omp_clause_map_kind): Remove.
38750         (struct tree_omp_clause): Change type of map_kind member from enum
38751         omp_clause_map_kind to unsigned char.
38752         * tree-inline.c: Update comments for OpenACC changes.
38753         * tree-nested.c: Likewise.  Include "gomp-constants.h".
38754         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
38755         (convert_tramp_reference_stmt, convert_gimple_call): Update for
38756         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
38757         OMP_CLAUSE_SET_MAP_KIND.
38758         * tree-pretty-print.c: Include "gomp-constants.h".
38759         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
38760         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
38761         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
38762         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
38763         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
38764         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
38765         instead of OMP_CLAUSE_MAP_*.
38766         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
38767         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
38768         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
38769         * tree-streamer-in.c: Include "gomp-constants.h".
38770         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
38771         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
38772         * tree-streamer-out.c: Include "gomp-constants.h".
38773         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
38774         OMP_CLAUSE_MAP_*.
38775         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
38776         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
38777         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
38778         * tree.c (omp_clause_num_ops): Update accordingly.
38779         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
38780         Likewise.
38781         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
38782         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
38783         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
38784         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
38785         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
38786         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
38787         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
38788         (OMP_CLAUSE_SET_MAP_KIND): New macro.
38789         * varpool.c (varpool_node::get_create): Consider flag_openacc next
38790         to flag_openmp.
38791         * config/i386/intelmic-offload.h: New file.
38792         * config/nvptx/offload.h: Likewise.
38793
38794 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
38795
38796         * explow.h: Remove duplicate contents.
38797         * dojump.h: Likewise.
38798
38799 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
38800
38801         * arm.c (arm_xgene_tune): Add default initializer for instruction
38802         fusion.
38803
38804 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
38805
38806         PR ipa/64068
38807         PR ipa/64559
38808         * ipa.c (symbol_table::remove_unreachable_nodes):
38809         Do not put abstract origins into boundary.
38810
38811 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
38812
38813         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
38814         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
38815
38816 2015-01-15  Steve Ellcey  <sellcey@mips.com>
38817
38818         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
38819         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
38820         builtins.def, and chkp-builtins.def.
38821
38822 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
38823
38824         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
38825         ISA 2.7 (POWER8).
38826
38827 2015-01-15  Richard Biener  <rguenther@suse.de>
38828
38829         PR tree-optimization/61743
38830         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
38831         information on PHIs for some simple cases.
38832
38833 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38834
38835         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
38836         Include xgene1.md.
38837         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
38838         * config/arm/arm-cores.def (xgene1): New entry.
38839         * config/arm/arm-tables.opt: Regenerate.
38840         * config/arm/arm-tune.md: Regenerate.
38841         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
38842
38843 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
38844
38845         * tree-if-conv.c: Include hash-map.h.
38846         (aggressive_if_conv): New variable.
38847         (fold_build_cond_expr): Add simplification of non-zero condition.
38848         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
38849         destination block is not always executed.
38850         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
38851         than two predecessors if AGGRESSIVE_IF_CONV is true.
38852         (if_convertible_stmt_p): Fix commentary.
38853         (all_preds_critical_p): New function.
38854         (has_pred_critical_p): New function.
38855         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
38856         BB can have more than two predecessors and all incoming edges can be
38857         critical.
38858         (predicate_bbs): Skip predication for loop exit block, use build2_loc
38859         to compute predicate for true edge.
38860         (find_phi_replacement_condition): Delete this function.
38861         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
38862         Allow interchange PHI arguments if EXTENDED is false.
38863         Change check that block containing reduction statement candidate
38864         is predecessor of phi-block since phi may have more than two arguments.
38865         (phi_args_hash_traits): New helper structure.
38866         (struct phi_args_hash_traits): New type.
38867         (phi_args_hash_traits::hash): New function.
38868         (phi_args_hash_traits::equal_keys): New function.
38869         (gen_phi_arg_condition): New function.
38870         (predicate_scalar_phi): Add handling of phi nodes with more than two
38871         arguments, delete COND and TRUE_BB arguments, insert body of
38872         find_phi_replacement_condition to predicate ordinary phi nodes.
38873         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
38874         delete call of find_phi_replacement_condition and invoke
38875         predicate_scalar_phi with two arguments.
38876         (insert_gimplified_predicates): Add assert that non-predicated block
38877         don't have statements to insert.
38878         (ifcvt_split_critical_edges): New function.
38879         (ifcvt_split_def_stmt): Likewise.
38880         (ifcvt_walk_pattern_tree): Likewise.
38881         (stmt_is_root_of_bool_pattern): Likewise.
38882         (ifcvt_repair_bool_pattern): Likewise.
38883         (ifcvt_local_dce): Likewise.
38884         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
38885         is copy of inner or outer loop force_vectorize field, invoke
38886         ifcvt_split_critical_edges, ifcvt_local_dce and
38887         ifcvt_repair_bool_pattern for aggressive if-conversion.
38888
38889 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
38890
38891         * config/aarch64/aarch64.md: Include xgene1.md.
38892         * config/aarch64/xgene1.md: New file.
38893
38894 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
38895
38896         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
38897         xgene1 (APM XGene-1) core definition.
38898         * config/aarch64/aarch64.c: Add cost tables for APM XGene-1
38899         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
38900         * doc/invoke.texi: Document -mcpu=xgene1.
38901
38902 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
38903
38904         * dojump.h: New header file.
38905         * explow.h: Likewise.
38906         * expr.h: Remove includes.
38907         Move expmed.c prototypes to expmed.h.
38908         Move dojump.c prototypes to dojump.h.
38909         Move alias.c prototypes to alias.h.
38910         Move explow.c prototypes to explow.h.
38911         Move calls.c prototypes to calls.h.
38912         Move emit-rtl.c prototypes to emit-rtl.h.
38913         Move varasm.c prototypes to varasm.h.
38914         Move stmt.c prototypes to stmt.h.
38915         (saved_pending_stack_adjust): Move to dojump.h.
38916         (adjust_address): Move to explow.h.
38917         (adjust_address_nv): Move to emit-rtl.h.
38918         (adjust_bitfield_address): Likewise.
38919         (adjust_bitfield_address_size): Likewise.
38920         (adjust_bitfield_address_nv): Likewise.
38921         (adjust_automodify_address_nv): Likewise.
38922         * explow.c (expr_size): Move to expr.c.
38923         (int_expr_size): Likewise.
38924         (tree_expr_size): Likewise.
38925         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
38926         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
38927         * genemit.c (main): Generate includes statistics.h, real.h,
38928         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
38929         stmt.h.
38930         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
38931         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
38932         explow.h, emit-rtl.h, stmt.h.
38933         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
38934         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
38935         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
38936         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
38937         emit-rtl.h, varasm.h, stmt.h.
38938         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
38939         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
38940         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
38941         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
38942         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
38943         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
38944         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
38945         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
38946         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
38947         tm.h tree.h varasm.h vec.h wide-int.h.
38948         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
38949         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
38950         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
38951         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
38952         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
38953         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
38954         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
38955         * loop-iv.c: Likewise.
38956         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
38957         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
38958         statistics.h stmt.h tree.h varasm.h wide-int.h.
38959         * lra-constraints.c: Likewise.
38960         * lra-eliminations.c: Likewise.
38961         * lra-lives.c: Likewise.
38962         * lra-remat.c: Likewise.
38963         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
38964         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
38965         statistics.h stmt.h tree.h varasm.h wide-int.h.
38966         * hw-doloop.c: Likewise.
38967         * ira-color.c: Likewise.
38968         * ira-emit.c: Likewise.
38969         * loop-doloop.c: Likewise.
38970         * loop-invariant.c: Likewise.
38971         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
38972         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
38973         statistics.h stmt.h tree.h varasm.h wide-int.h.
38974         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
38975         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
38976         statistics.h stmt.h tree.h varasm.h wide-int.h.
38977         * combine-stack-adj.c: Likewise.
38978         * cse.c: Likewise.
38979         * ddg.c: Likewise.
38980         * ifcvt.c: Likewise.
38981         * ira-costs.c: Likewise.
38982         * jump.c: Likewise.
38983         * lra-coalesce.c: Likewise.
38984         * lra-spills.c: Likewise.
38985         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
38986         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
38987         stmt.h varasm.h wide-int.h.
38988         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
38989         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
38990         varasm.h.
38991         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
38992         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
38993         statistics.h stmt.h varasm.h wide-int.h.
38994         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
38995         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
38996         varasm.h wide-int.h.
38997         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
38998         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
38999         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
39000         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
39001         statistics.h stmt.h.
39002         * config/tilepro/tilepro.c: Likewise.
39003         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
39004         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
39005         * config/pdp11/pdp11.c: Likewise.
39006         * config/xtensa/xtensa.c: Likewise.
39007         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
39008         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
39009         varasm.h.
39010         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39011         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
39012         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
39013         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39014         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
39015         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
39016         * rtl-chkp.c: Likewise.
39017         * tree-chkp-opt.c: Likewise.
39018         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
39019         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
39020         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
39021         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39022         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
39023         statistics.h stmt.h.
39024         * tree-vect-data-refs.c: Likewise.
39025         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
39026         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
39027         rtl.h statistics.h stmt.h varasm.h.
39028         * internal-fn.c: Likewise.
39029         * ipa-icf-gimple.c: Likewise.
39030         * lto-section-out.c: Likewise.
39031         * tree-data-ref.c: Likewise.
39032         * tree-nested.c: Likewise.
39033         * tree-outof-ssa.c: Likewise.
39034         * tree-predcom.c: Likewise.
39035         * tree-pretty-print.c: Likewise.
39036         * tree-scalar-evolution.c: Likewise.
39037         * tree-ssa-strlen.c: Likewise.
39038         * tree-vect-loop.c: Likewise.
39039         * tree-vect-patterns.c: Likewise.
39040         * tree-vect-slp.c: Likewise.
39041         * tree-vect-stmts.c: Likewise.
39042         * tsan.c: Likewise.
39043         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39044         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
39045         stmt.h.
39046         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
39047         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
39048         statistics.h stmt.h varasm.h.
39049         * loop-unroll.c: Likewise.
39050         * ubsan.c: Likewise.
39051         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
39052         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
39053         stmt.h varasm.h.
39054         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39055         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
39056         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
39057         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
39058         statistics.h stmt.h.
39059         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
39060         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
39061         statistics.h stmt.h varasm.h.
39062         * gimple-match-head.c: Likewise.
39063         * lto-cgraph.c: Likewise.
39064         * lto-section-in.c: Likewise.
39065         * lto-streamer-in.c: Likewise.
39066         * lto-streamer-out.c: Likewise.
39067         * tree-affine.c: Likewise.
39068         * tree-cfg.c: Likewise.
39069         * tree-cfgcleanup.c: Likewise.
39070         * tree-if-conv.c: Likewise.
39071         * tree-into-ssa.c: Likewise.
39072         * tree-ssa-alias.c: Likewise.
39073         * tree-ssa-copyrename.c: Likewise.
39074         * tree-ssa-dse.c: Likewise.
39075         * tree-ssa-forwprop.c: Likewise.
39076         * tree-ssa-live.c: Likewise.
39077         * tree-ssa-math-opts.c: Likewise.
39078         * tree-ssa-pre.c: Likewise.
39079         * tree-ssa-sccvn.c: Likewise.
39080         * tree-tailcall.c: Likewise.
39081         * tree-vect-generic.c: Likewise.
39082         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39083         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
39084         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39085         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
39086         * varasm.c: Likewise.
39087         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39088         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
39089         varasm.h.
39090         * init-regs.c: Likewise.
39091         * ira.c: Likewise.
39092         * omp-low.c: Likewise.
39093         * stack-ptr-mod.c: Likewise.
39094         * tree-ssa-reassoc.c: Likewise.
39095         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39096         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
39097         varasm.h.
39098         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39099         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
39100         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39101         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
39102         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39103         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
39104         * tree-ssa-phiopt.c: Likewise.
39105         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39106         fixed-value.h hashtab.h real.h statistics.h stmt.h.
39107         * config/fr30/fr30.c: Likewise.
39108         * config/frv/frv.c: Likewise.
39109         * expr.c: Likewise.
39110         * final.c: Likewise.
39111         * optabs.c: Likewise.
39112         * passes.c: Likewise.
39113         * simplify-rtx.c: Likewise.
39114         * stmt.c: Likewise.
39115         * toplev.c: Likewise.
39116         * var-tracking.c: Likewise.
39117         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39118         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
39119         * lower-subreg.c: Likewise.
39120         * postreload-gcse.c: Likewise.
39121         * ree.c: Likewise.
39122         * reginfo.c: Likewise.
39123         * store-motion.c: Likewise.
39124         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39125         fixed-value.h hashtab.h real.h stmt.h varasm.h.
39126         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39127         fixed-value.h hashtab.h statistics.h stmt.h.
39128         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39129         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
39130         * except.c: Likewise.
39131         * explow.c: Likewise.
39132         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39133         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
39134         varasm.h.
39135         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39136         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
39137         * tree-ssa-structalias.c: Likewise.
39138         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39139         fixed-value.h insn-config.h real.h statistics.h.
39140         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39141         fixed-value.h insn-config.h real.h statistics.h stmt.h.
39142         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39143         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
39144         * cfgbuild.c: Likewise.
39145         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39146         fixed-value.h real.h rtl.h statistics.h stmt.h.
39147         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39148         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
39149         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39150         fixed-value.h real.h statistics.h stmt.h.
39151         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
39152         fixed-value.h real.h statistics.h stmt.h varasm.h.
39153         * cprop.c: Likewise.
39154         * modulo-sched.c: Likewise.
39155         * postreload.c: Likewise.
39156         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
39157         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
39158         statistics.h stmt.h varasm.h.
39159         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
39160         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
39161         rtl.h statistics.h stmt.h varasm.h.
39162         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
39163         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
39164         varasm.h.
39165         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
39166         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
39167         varasm.h.
39168         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
39169         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
39170         varasm.h.
39171         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
39172         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
39173         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
39174         function.h real.h statistics.h stmt.h varasm.h.
39175         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
39176         insn-config.h real.h statistics.h stmt.h.
39177         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
39178         statistics.h stmt.h.
39179         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
39180         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
39181         statistics.h stmt.h varasm.h.
39182         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
39183         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
39184         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
39185         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
39186         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
39187         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
39188         statistics.h stmt.h varasm.h.
39189         * ipa-polymorphic-call.c: Likewise.
39190         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
39191         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
39192         statistics.h stmt.h.
39193         * config/c6x/c6x.c: Likewise.
39194         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
39195         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
39196         statistics.h stmt.h varasm.h.
39197         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
39198         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
39199         stmt.h varasm.h.
39200         * ipa-split.c: Likewise.
39201         * tree-eh.c: Likewise.
39202         * tree-ssa-dce.c: Likewise.
39203         * tree-ssa-loop-niter.c: Likewise.
39204         * tree-vrp.c: Likewise.
39205         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
39206         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
39207         stmt.h.
39208         * config/nds32/nds32-fp-as-gp.c: Likewise.
39209         * config/nds32/nds32-intrinsic.c: Likewise.
39210         * config/nds32/nds32-isr.c: Likewise.
39211         * config/nds32/nds32-md-auxiliary.c: Likewise.
39212         * config/nds32/nds32-memory-manipulation.c: Likewise.
39213         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
39214         * config/nds32/nds32-predicates.c: Likewise.
39215         * config/nds32/nds32.c: Likewise.
39216         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
39217         fixed-value.h hashtab.h real.h statistics.h.
39218         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
39219         fixed-value.h hashtab.h real.h statistics.h stmt.h.
39220         * config/arm/arm.c: Likewise.
39221         * config/avr/avr.c: Likewise.
39222         * config/bfin/bfin.c: Likewise.
39223         * config/h8300/h8300.c: Likewise.
39224         * config/i386/i386.c: Likewise.
39225         * config/ia64/ia64.c: Likewise.
39226         * config/iq2000/iq2000.c: Likewise.
39227         * config/m32c/m32c.c: Likewise.
39228         * config/m32r/m32r.c: Likewise.
39229         * config/m68k/m68k.c: Likewise.
39230         * config/mcore/mcore.c: Likewise.
39231         * config/mep/mep.c: Likewise.
39232         * config/mips/mips.c: Likewise.
39233         * config/mn10300/mn10300.c: Likewise.
39234         * config/moxie/moxie.c: Likewise.
39235         * config/pa/pa.c: Likewise.
39236         * config/rl78/rl78.c: Likewise.
39237         * config/rx/rx.c: Likewise.
39238         * config/s390/s390.c: Likewise.
39239         * config/sh/sh.c: Likewise.
39240         * config/sparc/sparc.c: Likewise.
39241         * config/spu/spu.c: Likewise.
39242         * config/stormy16/stormy16.c: Likewise.
39243         * config/v850/v850.c: Likewise.
39244         * config/vax/vax.c: Likewise.
39245         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
39246         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
39247         * config/msp430/msp430.c: Likewise.
39248         * predict.c: Likewise.
39249         * value-prof.c: Likewise.
39250         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
39251         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
39252         * config/microblaze/microblaze.c: Likewise.
39253         * config/nios2/nios2.c: Likewise.
39254         * config/rs6000/rs6000.c: Likewise.
39255         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
39256         insn-config.h real.h rtl.h statistics.h stmt.h.
39257         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
39258         insn-config.h real.h statistics.h stmt.h.
39259         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
39260         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
39261         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
39262         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
39263         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
39264         fixed-value.h real.h statistics.h stmt.h.
39265         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
39266         fixed-value.h statistics.h stmt.h.
39267         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
39268         stmt.h.
39269
39270 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
39271
39272         * gengtype.c (create_user_defined_type): Workaround
39273         -Wmaybe-uninitialized false positives.
39274         * cse.c (fold_rtx): Likewise.
39275         * loop-invariant.c (gain_for_invariant): Likewise.
39276
39277 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
39278
39279         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
39280         set the memory attributes in all cases but clear MEM_EXPR if need be.
39281
39282 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
39283
39284         PR tree-optimization/64434
39285         * cfgexpand.c (reorder_operands): New function.
39286         (expand_gimple_basic_block): Insert call of reorder_operands if
39287         optimized is true.
39288
39289 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
39290
39291         * config/mips/micromips.md (*swp): Remove explicit parallel.
39292         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
39293         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
39294         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
39295         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
39296         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
39297         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
39298         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
39299         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
39300         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
39301         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
39302         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
39303         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
39304         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
39305         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
39306         (mips_wrdsp): Likewise.
39307         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
39308         parallel.
39309         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
39310         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
39311         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
39312         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
39313         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
39314         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
39315         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
39316         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
39317         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
39318
39319 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
39320
39321         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
39322         (mips_print_operand): Support 'y' to print exact log2 in decimal
39323         of a const_int.
39324         * config/mips/mips.h (ISA_HAS_LSA): New define.
39325         (ISA_HAS_DLSA): Likewise.
39326         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
39327         * config/mips/predicates.md (const_immlsa_operand): New predicate.
39328
39329 2015-01-15  Martin Liska  <mliska@suse.cz>
39330
39331         PR target/64377
39332         * optc-save-gen.awk: Add support for array types.
39333
39334 2015-01-15  Richard Biener  <rguenther@suse.de>
39335
39336         PR middle-end/64365
39337         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
39338         for MEM_REF access functions with the same base can never partially
39339         overlap.
39340
39341 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
39342
39343         * common.opt: New option -fstack-protector-explicit.
39344         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
39345         (stack_protect_decl_phase): Handle stack_protect attribute for
39346         explicit stack protection requests.
39347         (expand_used_vars): Similarly.
39348         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
39349         * doc/extend.texi: Add documentation for "stack_protect" attribute.
39350         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
39351
39352 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
39353
39354         PR target/53988
39355         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
39356         reg-reg copies.
39357         (sh_extending_set_of_reg): New struct.
39358         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
39359         sh_remove_reg_dead_or_unused_notes): New Declarations.
39360         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
39361         sh_find_extending_set_of_reg, sh_split_tst_subregs,
39362         sh_extending_set_of_reg::use_as_extended_reg): New functions.
39363         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
39364         convert to insn_and_split and use new function sh_split_tst_subregs.
39365
39366 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
39367
39368         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
39369         option.
39370         (Optimization Options): Move -fuse-ld documentation to...
39371         (Link Options): ...here.
39372
39373 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
39374
39375         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
39376         offsets.
39377         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
39378         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
39379         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
39380         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
39381         instead of ZR for the memory operand of LL/SC.
39382         (compare_and_swap_12, sync_add<mode>): Likewise.
39383         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
39384         (sync_new_<optab>_12, sync_nand_12): Likewise.
39385         (sync_old_nand_12, sync_new_nand_12): Likewise.
39386         (sync_sub<mode>, sync_old_add<mode>): Likewise.
39387         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
39388         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
39389         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
39390         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
39391         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
39392         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
39393         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
39394         * doc/md.texi (ZC): Update description.
39395
39396 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
39397
39398         * builtins.c (expand_builtin_atomic_exchange): Remove error when
39399         memory model is CONSUME.
39400         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
39401         expand_builtin_atomic_store): Change invalid memory model errors to
39402         warnings.
39403         (expand_builtin_atomic_clear): Change invalid model errors to warnings
39404         and issue warning for CONSUME.
39405
39406 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
39407
39408         * lto-cgraph: Update function comments for
39409         lto_symtab_encoder_encode_*.
39410
39411 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
39412
39413         * Makefile.in (site.exp): Do not set ENABLE_LTO.
39414
39415 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
39416
39417         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
39418         * lto-cgraph.c (select_what_to_stream): Remove argument, use
39419         lto_stream_offload_p instead.
39420         * lto-streamer.h (select_what_to_stream): Remove argument.
39421         * passes.c (ipa_write_summaries): Likewise.
39422         * tree-pass.h (ipa_write_summaries): Likewise.
39423
39424 2015-01-14  Richard Biener  <rguenther@suse.de>
39425
39426         PR tree-optimization/59354
39427         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
39428         groups larger than the slp group size as having gaps.
39429
39430 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
39431
39432         PR middle-end/59448
39433         * builtins.c (get_memmodel): Promote consume to acquire always.
39434
39435 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
39436
39437         PR target/64386
39438         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
39439         V32HImode.
39440
39441 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
39442
39443         PR target/64393
39444         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
39445         Enable AVX512BW.
39446         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
39447         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
39448         AVX512VBMI, as it implies AVX512BW.
39449
39450 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
39451
39452         PR target/64387
39453         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
39454         (vec_unpacks_hi_v16sf): Ditto.
39455
39456 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39457
39458         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
39459         is not available.
39460
39461 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39462
39463         * doc/invoke.texi (mapcs): Mention deprecation.
39464         (mapcs-frame): Likewise.
39465
39466 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
39467
39468         PR target/64453
39469         * config/arm/arm.c (callee_saved_reg_p): Define.
39470         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
39471         register is callee saved instead of !call_used_regs[reg].
39472         (thumb1_compute_save_reg_mask): Likewise.
39473
39474 2015-01-14  Hale Wang  <hale.wang@arm.com>
39475
39476         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
39477         Cortex-M7.
39478
39479 2015-01-14  Richard Biener  <rguenther@suse.de>
39480
39481         PR lto/64415
39482         * tree-inline.c (insert_debug_decl_map): Check destination
39483         function MAY_HAVE_DEBUG_STMTS.
39484         (insert_init_debug_bind): Likewise.
39485         (insert_init_stmt): Remove redundant check.
39486         (remap_gimple_stmt): Drop debug stmts if the destination
39487         function has var-tracking assignments disabled.
39488
39489 2015-01-14  Martin Liska  <mliska@suse.cz>
39490
39491         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
39492         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
39493
39494 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39495
39496         PR target/64460
39497         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
39498         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
39499
39500 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
39501
39502         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
39503         level from an ARCH; do not inject the default.
39504         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
39505         MIPS_ISA_LEVEL_SPEC.
39506         (MIPS_ISA_NAN2008_SPEC): Update comment.
39507         (BASE_DRIVER_SELF_SPECS): Likewise.
39508         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
39509         MIPS_DEFAULT_ISA_LEVEL_SPEC.
39510         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
39511         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
39512         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
39513
39514 2015-01-14  Richard Biener  <rguenther@suse.de>
39515
39516         PR tree-optimization/64493
39517         PR tree-optimization/64495
39518         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
39519         assign the proper vectorized PHI to the inner loop exit PHIs.
39520
39521 2015-01-14  Joey Ye  <joey.ye@arm.com>
39522
39523         * config/arm/arm.c (arm_compute_save_reg_mask):
39524         Do not save lr in case of tail call.
39525         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
39526
39527 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
39528
39529         * tree-vrp.c (check_array_ref): Emit more warnings
39530         for warn_array_bounds >= 2.
39531         * common.opt: New option -Warray-bounds=.
39532         * doc/invoke.texi: Document -Warray-bounds=.
39533
39534 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
39535
39536         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
39537         (mforbid-fp-as-gp): Remove.
39538         (mex9): Remove.
39539         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
39540         (nds32_symbol_load_store_p): Remove.
39541         (nds32_fp_as_gp_check_available): Clean up implementation.
39542         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
39543         cases.
39544         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
39545         fp-as-gp and ex9 cases.
39546
39547 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
39548
39549         * tree-profile.c (init_ic_make_global_vars): Drop workaround
39550         for bintuils bug 14342.
39551         (init_ic_make_global_vars): Likewise.
39552         (gimple_init_edge_profiler): Likewise.
39553         (gimple_gen_ic_func_profiler): Likewise.
39554
39555 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
39556
39557         * ipa-inline.c (inline_small_functions): Swap the operands in
39558         enum.
39559
39560 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
39561
39562         PR ipa/64481
39563         * ipa-inline-analysis.c (node_growth_cache): Remove.
39564         (initialize_growth_caches): Do not initialize it.
39565         (free_growth_caches): Do not free it.
39566         (do_estimate_growth): Rename to ...
39567         (estimate_growth): ... this one; drop growth cache code.
39568         (growth_likely_positive): Always go the heuristics way.
39569         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
39570         (reset_edge_caches): Do not reset node growth.
39571         (heap_edge_removal_hook): Do not maintain cache.
39572         (inline_small_functions): Likewise; strenghten sanity check.
39573         (ipa_inline): Do not maintain caches.
39574         * ipa-inline.h (node_growth_cache): Remove.
39575         (do_estimate_growth): Remove to ...
39576         (estimate_growth): this one; remove inline version.
39577         (reset_node_growth_cache): Remove.
39578
39579 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
39580
39581         PR ipa/64565
39582         * ipa-inline.c (inline_small_functions): Update callee keys after
39583         resolving speculation
39584         (inline_small_functions): Always check monotonicity of the queue.
39585
39586 2015-01-13  Marek Polacek  <polacek@redhat.com>
39587
39588         PR middle-end/64391
39589         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
39590
39591 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
39592
39593         PR rtl-optimization/64286
39594         * ree.c (combine_reaching_defs): Move part of comment earlier,
39595         remove !SCALAR_INT_MODE_P check.
39596         (add_removable_extension): Don't add vector mode
39597         extensions if all uses of the source register aren't the same
39598         vector extensions.
39599
39600 2015-01-13  Renlin Li  <renlin.li@arm.com>
39601
39602         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
39603         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
39604
39605 2015-01-13  Martin Liska  <mliska@suse.cz>
39606
39607         * ipa-icf.c (sem_function::equals_private): Call new functions
39608         cl_target_option_print_diff and cl_optimization_print_diff.
39609         * optc-save-gen.awk (cl_target_option_print_diff): New function.
39610         (cl_optimization_print_diff): Likewise.
39611         * opth-gen.awk: Likewise.
39612
39613 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
39614
39615         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
39616         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
39617         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
39618         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
39619         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
39620         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
39621
39622 2015-01-13  Andrew Pinski  <apinski@cavium.com>
39623
39624         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
39625         instead of src mode.
39626
39627 2015-01-13  Richard Biener  <rguenther@suse.de>
39628
39629         PR lto/64373
39630         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
39631         DECL_CONTEXT.
39632
39633 2015-01-13  Andrew Pinski  <apinski@cavium.com>
39634
39635         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
39636         volatile mems.
39637         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
39638
39639 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
39640
39641         PR middle-end/63974
39642         * cfgexpand.c (expand_computed_goto): Don't call
39643         convert_memory_address here.
39644
39645 2015-01-13  Richard Biener  <rguenther@suse.de>
39646
39647         PR tree-optimization/64406
39648         * tree-loop-distibution.c (pass_loop_distribution::execute):
39649         Reset the SCEV hashtable if we distributed anything.
39650
39651 2015-01-13  Richard Biener  <rguenther@suse.de>
39652
39653         PR tree-optimization/64404
39654         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
39655         SLP types for CSEd loads.
39656
39657 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
39658
39659         PR tree-optimization/64436
39660         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
39661         merge of two symbolic numbers for a bitwise OR to ...
39662         (perform_symbolic_merge): This. Also fix computation of the range and
39663         end of the symbolic number corresponding to the result of a bitwise OR.
39664
39665 2015-01-13  Richard Biener  <rguenther@suse.de>
39666
39667         PR tree-optimization/64568
39668         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
39669         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
39670
39671 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
39672
39673         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
39674         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
39675
39676 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
39677
39678         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
39679         target-specific symbol_ref flag.
39680         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
39681         resides in rodata section.
39682         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
39683         (nds32_encode_section_info): New function.
39684
39685 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
39686
39687         * config/nds32/nds32.md (call): Use pseudo instruction bal which
39688         clobbers TA_REGNUM if large code model is specified.
39689         (call_register): Likewise.
39690         (call_immediate): Likewise.
39691         (call_value): Likewise.
39692         (call_value_register): Likewise.
39693         (call_value_immediate): Likewise.
39694
39695 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
39696
39697         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
39698         (TARGET_CMODEL_MEDIUM): New macro.
39699         (TARGET_CMODEL_LARGE): New macro.
39700         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
39701         code model setting in assembly code.
39702
39703 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
39704
39705         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
39706         Remove MASK_GP_DIRECT flag.
39707         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
39708         one of the multilib default options.
39709         * config/nds32/nds32.opt (mgp-direct): Remove.
39710         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
39711         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
39712
39713 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
39714
39715         * config/nds32/nds32.opt (mcmodel): Add new option.
39716         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
39717         to describe code model.
39718
39719 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
39720
39721         PR target/64479
39722         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
39723
39724 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
39725
39726         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
39727         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
39728         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
39729         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
39730         __builtin_sh_set_fpscr.
39731
39732 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
39733
39734         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
39735         after a funtion name just to indicate it is a function.
39736         ([-fsanitize-undefined-trap-on-error]): Likewise.
39737         ([-fdbg-cnt=]): Likewise.
39738         ([-mmemcpy]): Likewise.
39739         ([-mflush-func]): Likewise.
39740         ([-msynci]): Likewise.
39741
39742 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
39743
39744         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
39745         example.
39746
39747 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
39748
39749         PR tree-optimization/64563
39750         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
39751         instead of != VR_VARYING.
39752
39753         PR target/64513
39754         * config/i386/i386.c (ix86_expand_prologue): Add
39755         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
39756
39757         PR tree-optimization/64454
39758         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
39759         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
39760         for signed or [0, op1 - 1] for unsigned modulo.
39761         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
39762         even if op1 does not satisfy integer_pow2p.
39763
39764         PR other/64370
39765         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
39766
39767 2015-01-12  Jeff Law  <law@redhat.com>
39768
39769         PR target/64461
39770         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
39771         (trunchiqi2, truncsihi2): Similarly.
39772
39773         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
39774         rather than calling F.
39775
39776 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
39777
39778         * tsan.c (instrument_expr): Use force_gimple_operand.
39779         Use may_be_nonaddressable_p instead of is_gimple_addressable.
39780
39781 2015-01-12  Richard Biener  <rguenther@suse.de>
39782
39783         PR tree-optimization/64530
39784         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
39785         back dr1.
39786
39787 2015-01-12  Richard Biener  <rguenther@suse.de>
39788
39789         PR middle-end/64357
39790         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
39791         latches properly.
39792
39793 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39794
39795         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
39796         Cortex-A17 tuning parameters.
39797         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
39798
39799 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39800
39801         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
39802         * config/arm/arm.c (arm_macro_fusion_p): New function.
39803         (arm_macro_fusion_pair_p): Likewise.
39804         (TARGET_SCHED_MACRO_FUSION_P): Define.
39805         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
39806         (ARM_FUSE_NOTHING): Likewise.
39807         (ARM_FUSE_MOVW_MOVT): Likewise.
39808         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
39809         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
39810         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
39811         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
39812         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
39813         arm_cortex_a5_tune): Specify fuseable_ops value.
39814
39815 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
39816
39817         PR bootstrap/64561
39818         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
39819         test for PIE with copy reloc.
39820         * configure: Regenerated.
39821
39822 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39823
39824         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
39825         in gen_rtx_REG.
39826         (arm_tls_descseq_addr): Likewise.
39827         (arm_gen_movmemqi): Likewise.
39828         (arm_expand_epilogue_apcs_frame): Likewise.
39829         (arm_expand_epilogue): Likewise.
39830         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
39831         in gen_rtx_REG.
39832
39833 2015-01-12  Martin Liska  <mliska@suse.cz>
39834
39835         PR ipa/64550
39836         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
39837         volatility for correct operands.
39838
39839 2015-01-12  Martin Liska  <mliska@suse.cz>
39840
39841         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
39842         indication that a function is not leaf.
39843         (sem_function::compare_polymorphic_p): Likewise.
39844
39845 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
39846
39847         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
39848         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
39849         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
39850         fold-const.h, tree-check.h.
39851
39852 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
39853
39854         PR ipa/63967
39855         PR ipa/64425
39856         * ipa-inline.c (compute_uninlined_call_time,
39857         compute_inlined_call_time): Use counts for extra precision when
39858         needed possible.
39859         (big_speedup_p): Fix formating.
39860         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
39861         (relative_time_benefit): Remove.
39862         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
39863         merge guessed and read profile paths.
39864         (inline_small_functions): Count only !optimize_size functions into
39865         initial size; be more lax about sanity check when profile is used;
39866         be sure to update inlined function profile when profile is read.
39867
39868 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
39869
39870         PR ipa/63470
39871         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
39872         cost when edge becomes direct.
39873         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
39874         is resolved or when introducing new speculation.
39875
39876 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
39877
39878         PR ipa/64551
39879         PR ipa/64552
39880         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
39881         '||' to fix typo issue.
39882
39883         * tree.h (target_opts_for_fn): Check NULL_TREE since it can
39884         accept and return NULL.
39885
39886 2015-01-12  Martin Liska  <mliska@suse.cz>
39887
39888         * cgraph.c (cgraph_edge::remove_callee): Move function to header
39889         file for being inlined.
39890         (cgraph_set_edge_callee): Delete.
39891         (cgraph_edge::redirect_callee): Move function to header file
39892         for being inlined.
39893         (cgraph_edge::make_direct): Use new function.
39894         (cgraph_edge::dump_edge_flags): New function created from
39895         static dump_edge_flags function.
39896         (cgraph_node::dump): Use new function.
39897         (cgraph_edge::verify_count_and_frequency): New function created
39898         from verify_edge_count_and_frequency.
39899         (cgraph_edge::verify_corresponds_to_fndecl): New function created
39900         from verify_edge_corresponds_to_fndecl.
39901         (verify_edge_corresponds_to_fndecl): Delete.
39902         (cgraph_node::verify_node): Use new function.
39903         * cgraph.h (cgraph_edge::set_callee): New function.
39904         (cgraph_edge::dump_edge_flags): Likewise.
39905         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
39906
39907 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
39908
39909         * ipa-utils.c (estimate_function_body_sizes): Do not
39910         free node params when called late with early=true.
39911
39912 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
39913
39914         * doc/md.texi (Instruction Patterns): Rewrite text for
39915         clarity.
39916         (Example): Likewise.
39917
39918 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
39919
39920         * doc/invoke.texi (Option Summary): Break long lines.
39921         [(-fdiagnostics-color)]: Put long literal in @smallexample
39922         instead of inline.
39923         [(-fsanitize-recover)]: Likewise.
39924         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
39925         [(-ffast-math)]: Likewise.
39926         [(--param max-inline-insns-recursive)]: Likewise.
39927         [(--param max-inline-recursive-depth)]: Likewise.
39928         [(-mno-text-section-literals)]: Likewise.
39929
39930 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
39931
39932         * doc/install.texi: Update for libgomp being renamed from "GNU
39933         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
39934         Runtime Library".
39935         * doc/sourcebuild.texi: Likewise.
39936
39937 2015-01-10  Anthony Green  <green@moxielogic.com>
39938
39939         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
39940         mul.x availability for moxiebox configuration.
39941
39942 2015-01-09  Anthony Green  <green@moxielogic.com>
39943
39944         * config/moxie/moxie.md: Tabify assembly output.
39945
39946 2015-01-09  Anthony Green  <green@moxielogic.com>
39947
39948         * config/moxie/moxie.md (CC_REG): Correct register definition.
39949
39950 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
39951
39952         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
39953         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
39954         of log files.
39955
39956 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
39957
39958         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
39959
39960 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
39961             Jakub Jelinek  <jakub@redhat.com>
39962
39963         PR middle-end/64412
39964         * lto-streamer.h (lto_stream_offload_p): New declaration.
39965         * lto-streamer.c (lto_stream_offload_p): New variable.
39966         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
39967         at the same time as section_name_prefix.
39968         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
39969         if lto_stream_offload_p.
39970         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
39971         stream TREE_TARGET_OPTION if lto_stream_offload_p.
39972         (write_ts_function_decl_tree_pointers): Don't
39973         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
39974         * tree-streamer-in.c (unpack_value_fields): Don't stream
39975         TREE_TARGET_OPTION in if ACCEL_COMPILER.
39976         (lto_input_ts_function_decl_tree_pointers): Don't stream
39977         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
39978         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
39979         instead of section_name_prefix string comparisons.
39980
39981 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
39982
39983         PR rtl-optimization/64536
39984         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
39985         tablejumps.
39986
39987 2015-01-09  Michael Collison  <michael.collison@linaro.org>
39988
39989         PR tree-optimization/64322
39990         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
39991         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
39992
39993 2015-01-09  Tom de Vries  <tom@codesourcery.com>
39994
39995         PR rtl-optimization/64539
39996         * regcprop.c (kill_clobbered_values): Factor out of ...
39997         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
39998         instead of note_stores with kill_clobbered_value.
39999
40000 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
40001
40002          * ginclude/unwind-arm-common.h: Revert previous commit.
40003
40004 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
40005
40006         * config.gcc (arm*-*-freebsd*): New configuration.
40007         * config/arm/freebsd.h: New file.
40008         * config.host: Add extra components for arm*-*-freebsd*.
40009         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
40010         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
40011
40012 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40013
40014         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
40015         for -mcpu=e6500.
40016         * config/rs6000/t-rtems: Add e6500 multilibs.
40017
40018 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40019
40020         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
40021         MPC8540.
40022
40023 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40024
40025         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
40026         MULTILIB_EXCEPTIONS.
40027
40028 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40029
40030         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
40031         MULTILIB_EXCEPTIONS.
40032
40033 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
40034
40035         * config/arm/t-rtems-eabi: Rename to...
40036         * config/arm/t-rtems: ...this.
40037         * config/arm/rtems-eabi.h: Rename to...
40038         * config/arm/rtems.h: ...this.
40039         * config.gcc (arm*-*-rtems*): Reflect changes above.
40040
40041 2015-01-09  Richard Biener  <rguenther@suse.de>
40042
40043         PR tree-optimization/64410
40044         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
40045         on the LHS.
40046         (execute_update_addresses_taken): Deal with that.
40047         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
40048         loads/stores for complex variables.
40049
40050 2015-01-09  Martin Liska  <mliska@suse.cz>
40051
40052         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
40053         name comparison.
40054         (func_checker::compare_memory_operand): New function.
40055         (func_checker::compare_operand): Split case to newly
40056         added functions.
40057         (func_checker::compare_cst_or_decl): New function.
40058         (func_checker::compare_gimple_call): Identify
40059         memory operands.
40060         (func_checker::compare_gimple_assign): Likewise.
40061         * ipa-icf-gimple.h: New function.
40062
40063 2015-01-09  Martin Liska  <mliska@suse.cz>
40064
40065         PR ipa/64503
40066         * sreal.c (sreal::dump): Change unsigned format to signed for
40067         m_exp value.
40068         (sreal::to_double): Replace exp2 with scalbln.
40069
40070 2015-01-09  Martin Liska  <mliska@suse.cz>
40071
40072         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
40073         * ipa-icf.c (sem_function::equals_private): Add support for target and
40074         (sem_item_optimizer::merge_classes): Remove redundant function
40075         optimization flags comparison.
40076         * tree.h (target_opts_for_fn): New function.
40077
40078 2015-01-09  Tom de Vries  <tom@codesourcery.com>
40079
40080         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
40081
40082 2015-01-09  Kito Cheng  <kito@0xlab.org>
40083
40084         PR rtl-optimization/64348
40085         * lra-constraints.c (split_reg): Fix caller-save store/restore
40086         instruction generation.
40087
40088 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
40089
40090         PR gcov-profile/61790
40091         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
40092         long long.  Fallback to int64_t if host doesn't have long long and
40093         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
40094
40095 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
40096
40097         PR tree-optimization/63989
40098         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
40099         from 1000 to 10000.
40100         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
40101         (get_stridx): If we don't have a record for certain SSA_NAME,
40102         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
40103         constant offset, call get_stridx_plus_constant.
40104         (get_stridx_plus_constant): New function.
40105         (zero_length_string): Don't use get_stridx here.
40106
40107         PR target/55023
40108         PR middle-end/64388
40109         * dse.c (struct insn_info): Mention frame_read set also
40110         before reload for tail calls on some targets.
40111         (scan_insn): Revert 2014-12-22 change.  Set frame_read
40112         also before reload for tail calls if
40113         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
40114         instead of add_non_frame_wild_read for non-const/memset
40115         tail calls after reload.
40116
40117 2015-01-08  Jason Merrill  <jason@redhat.com>
40118
40119         * ubsan.c (do_ubsan_in_current_function): New.
40120         (pass_ubsan::gate): Use it.
40121         * ubsan.h: Declare it.
40122         * convert.c (convert_to_integer): Use it.
40123
40124 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
40125
40126         PR target/64338
40127         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
40128         compare_code when it is unconditionally overwritten afterwards.
40129         Use ix86_reverse_condition instead of reverse_condition.  Don't
40130         change code if *reverse_condition* returned UNKNOWN and don't
40131         swap ct/cf and negate diff in that case.
40132
40133 2015-01-08  Mike Stump  <mikestump@comcast.net>
40134
40135         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
40136         (pass_tsan_O0::gate): Likewise.
40137         * extend.texi (Function Attributes): Add no_sanitize_thread
40138         documentation.
40139
40140 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
40141
40142         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
40143         for registering builtins.
40144         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
40145         add -fopenmp to the argv_obstack used when invoking
40146         compile_for_target.
40147
40148         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
40149         add "-m32" or "-m64" to argv_obstack.
40150         (generate_host_descr_file): Likewise, when invoking host_compiler.
40151         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
40152         ld.
40153
40154 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
40155
40156         * config/sh/sh-mem.cc: Use constant as second operand when emitting
40157         tstsi_t insns.
40158
40159 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
40160
40161         PR target/55212
40162         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
40163         constant load if constant operand fits into I08.
40164
40165 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
40166
40167         PR sanitizer/64336
40168         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
40169         and TREE_THIS_VOLATILE for MEM_REFs.
40170         (build5_stat): Fix up initialization of TREE_READONLY and
40171         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
40172
40173 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
40174
40175         PR target/64533
40176         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
40177         of r for the second alternative of the destination operand.
40178
40179 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
40180
40181         PR target/36557
40182         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
40183
40184 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40185
40186         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
40187         keywords.
40188         ([-fivar-visibility], [-fvisibility]): Likewise.
40189
40190 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
40191
40192         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
40193         the file where @code, @command, etc is more appropriate.
40194
40195 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
40196
40197         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
40198         of -mrecip= documentation.
40199
40200 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
40201
40202         PR target/64505
40203         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
40204         correct reload handler if -m32 -mpowerpc64 is used.
40205
40206 2015-01-06  Tom de Vries  <tom@codesourcery.com>
40207
40208         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
40209
40210 2015-01-08  Christian Bruel  <christian.bruel@st.com>
40211
40212         PR target/64507
40213         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
40214
40215 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
40216
40217         PR tree-optimization/63259
40218         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
40219         if optab exists for 16bit byteswap.
40220
40221 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
40222
40223         * opts.c (common_handle_option): Add support for
40224         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
40225         * doc/invoke.texi: Document -fno-sanitize=all,
40226         -f{,no-}sanitize-recover=all.  Document that
40227         -fsanitize=float-cast-overflow is not enabled
40228         by -fsanitize=undefined.  Fix up documentation
40229         of -f{,no-}sanitize-recover.
40230
40231 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
40232
40233         * config.gcc: Add Visium support.
40234         * configure.ac: Likewise.
40235         * configure: Regenerate.
40236         * doc/extend.texi (interrupt attribute): Add Visium.
40237         * doc/invoke.texi: Document Visium options.
40238         * doc/install.texi: Document Visium target.
40239         * doc/md.texi: Document Visium constraints.
40240         * common/config/visium: New directory.
40241         * config/visium: Likewise.
40242
40243 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
40244
40245         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
40246         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
40247
40248 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
40249
40250         * combine.c (combine_validate_cost): Do not count the cost of a
40251         split I2 twice.  Do not display it twice in the dump, either.
40252
40253 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
40254
40255         Revert parts of r219199.
40256         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
40257         <inttypes.h>.
40258         ([-Wtraditional]): Restore markup on <limits.h>.
40259
40260 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
40261
40262         PR c++/31397
40263         * doc/invoke.texi: Document -Wsuggest-override.
40264
40265 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
40266
40267         PR rtl-optimization/64287
40268         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
40269         (process_options): Disable flag_ipa_ra if profiling.
40270
40271 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
40272
40273         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
40274
40275 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
40276
40277         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
40278         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
40279         put under #if TARGET_LOOPS guard.
40280
40281 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
40282
40283         * config/i386/i386.c (output_387_binary_op): Use std::swap.
40284
40285 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
40286
40287         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
40288         * rtl.h (refers_to_regno_p): Add overload.
40289         * cse.c: Use it.
40290         * bt-load.c: Likewise.
40291         * combine.c: Likewise.
40292         * df-scan.c: Likewise.
40293         * sched-deps.c: Likewise.
40294         * config/s390/s390.c: Likewise.
40295         * config/m32r/m32r.c: Likewise.
40296         * config/rs6000/spe.md: Likewise.
40297         * config/rs6000/rs6000.c: Likewise.
40298         * config/pa/pa.c: Likewise.
40299         * config/stormy16/stormy16.c: Likewise.
40300         * config/cris/cris.c: Likewise.
40301         * config/arc/arc.md: Likewise.
40302         * config/arc/arc.c: Likewise.
40303         * config/sh/sh.md: Likewise.
40304         * config/sh/sh.c: Likewise.
40305         * config/frv/frv.c: Likewise.
40306
40307 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
40308
40309         PR sanitizer/64265
40310         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
40311         call as cleanup of the whole body.
40312         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
40313         * tsan.c (replace_func_exit): New function.
40314         (instrument_func_exit): Moved earlier.
40315         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
40316         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
40317         been found.
40318         (tsan_pass): Don't call instrument_func_exit.
40319         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
40320         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
40321         inlining.
40322
40323         PR sanitizer/64344
40324         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
40325         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
40326         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
40327         if the result is integer_zerop, return NULL_TREE.
40328         * convert.c (convert_to_integer): Pass expr as ARG.
40329
40330         PR tree-optimization/64465
40331         * tree-inline.c (redirect_all_calls): During inlining
40332         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
40333         changed the stmt to a non-throwing call.
40334
40335 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
40336
40337         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
40338         etc markup throughout the file.
40339
40340 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
40341
40342         Enable experimental TSAN support for Ada.
40343         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
40344
40345 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
40346
40347         PR tree-optimization/64494
40348         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
40349         clear SSA_NAME_ANTI_RANGE_P flag.
40350
40351 2015-01-05  Marek Polacek  <polacek@redhat.com>
40352
40353         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
40354
40355 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
40356
40357         Update copyright years.
40358
40359         * gcc.c (process_command): Update copyright notice dates.
40360         * gcov-dump.c: Ditto.
40361         * gcov.c: Ditto.
40362         * doc/cpp.texi: Bump @copying's copyright year.
40363         * doc/cppinternals.texi: Ditto.
40364         * doc/gcc.texi: Ditto.
40365         * doc/gccint.texi: Ditto.
40366         * doc/gcov.texi: Ditto.
40367         * doc/install.texi: Ditto.
40368         * doc/invoke.texi: Ditto.
40369
40370         * auto-profile.c, auto-profile.h: Fix up Copyright line.
40371
40372 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
40373
40374         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
40375         verb tense, etc.
40376         ([-fvtable-verify], [-fvtv-debug]): Likewise.
40377         ([-Wabi]): Likewise.
40378         ([-fmessage-length]): Likewise.
40379         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
40380         ([-Wno-discarded-qualifiers]): Likewise.
40381         ([-Wnodiscarded-array-qualifiers]): Likewise.
40382         ([-Wno-virtual-move-assign]): Likewise.
40383         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
40384         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
40385         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
40386         ([-fsanitize-undefined-trap-on-error]): Likewise.
40387         ([-floop-interchange]): Likewise.
40388         ([-ftree-coalesce-inlined-vars]): Likewise.
40389         ([-fvect-cost-model]): Likewise.
40390         ([-flto]): Likewise.
40391         ([--param]): Likewise.
40392         (Spec Files): Likewise.
40393         ([-mstrict-align]): Likewise.
40394         ([-mfix-cortex-a53-835769]): Likewise.
40395         ([-march], [-mtune]): Likewise.
40396         ([-mpic-register]): Likewise.
40397         ([-munaligned-access]): Likewise.
40398         ([-msp8]): Likewise.
40399         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
40400         (AVR Built-in Macros): Likewise.
40401         ([-mpreferred-stack-boundary]): Likewise.
40402         ([-mtune-crtl]): Likewise.
40403         ([-mashf]): Likewise.
40404         ([-mmcu=]): Likewise.
40405         ([-minrt]): Likewise.
40406         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
40407         ([-mupper-regs]): Likewise.
40408         ([-matomic-model]): Likewise.
40409         ([-mdiv]): Likewise.
40410         ([-mzdcbranch]): Likewise.
40411         ([-mdisable-callt]): Likewise.
40412         ([-msoft-float]): Likewise.
40413         ([-m8byte-align]): Likewise.
40414         ([-fstack-reuse]): Likewise.
40415
40416 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
40417
40418         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
40419         Fix markup, light copy-editing.
40420         ([-fauto-profile]): Rewrite to fix formatting and content
40421         problems.
40422
40423 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
40424
40425         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
40426         Copy-edit description.
40427         ([-fisolate-erroneous-paths-attribute]): Likewise.
40428         * common.opt (fisolate-erroneous-paths-dereference):
40429         Copy-edit description.
40430         (fisolate-erroneous-paths-attribute): Likewise.
40431
40432 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
40433
40434         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
40435         tidy grammar.
40436
40437 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
40438
40439         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
40440         ([-fvtv-debug]): Likewise.
40441         ([-Wc++-compat]): Likewise.
40442         ([-Wc++11-compat]): Likewise.
40443         ([-Wc++14-compat]): Likewise.
40444         ([-Wno-sized-deallocation]): Likewise.
40445         ([-femit-class-debug-always]): Likewise.
40446         ([-femit-struct-debug-detailed]): Likewise.
40447         ([-fno-keep-inline-dllexport]): Likewise.
40448         ([-fira-algorithm]): Likewise.
40449         ([-fira-region]): Likewise.
40450         ([-flra-remat]): Likewise.
40451         ([-fipa-ra]): Likewise.
40452         ([-fhoist-adjacent-loads]): Likewise.
40453         ([-fisolate-erroneous-paths-dereference]): Likewise.
40454         ([-fisolate-erroneous-paths-attribute]): Likewise.
40455         ([-ftree-switch-conversion]): Likewise.
40456         ([-ftree-tail-merge]): Likewise.
40457         ([-ftree-loop-if-convert]): Likewise.
40458         ([-ftree-loop-if-convert-stores]): Likewise.
40459         ([-ftree-loop-distribution]): Likewise.
40460         ([-ftree-loop-distribute-patterns]): Likewise.
40461         ([-flto-compression-level]): Likewise.
40462         ([-flto-report]): Likewise.
40463         ([-flto-report-wpa]): Likewise.
40464         ([-fuse-linker-plugin]): Likewise.
40465         ([-mfix-cortex-a53-835769]): Likewise.
40466         ([-mno-fix-cortex-a53-835769]): Likewise.
40467         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
40468         explicit listing; add a note to the discussion indicating they
40469         exist.  Reorder table to group similar options.  Add missing
40470         @opindex entries.  Add @need commands throughout the table to
40471         allow it to be split across multiple pages.
40472         ([-m8bit-idiv]): Fix @opindex.
40473         ([-mavx256-split-unaligned-load]): Likewise.
40474         ([-mavx256-split-unaligned-store]): Likewise.
40475         ([-mstack-protector-guard]): Likewise.
40476         ([-mcpu=]): Likewise.
40477         ([-mcpu]): Likewise.
40478         ([-mpointer-size=]): Likewise.
40479
40480 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
40481
40482         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
40483         instead of `m' constraint.  Likewise for unnamed movb comparison
40484         patterns using reg_before_reload_operand predicate.
40485         * config/pa/predicates.md (reg_before_reload_operand): Tighten
40486         predicate to reject register index and LO_SUM DLT memory forms
40487         after reload.
40488
40489 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
40490
40491         * doc/invoke.texi (Option Summary): Fix spelling of
40492         -fdevirtualize-at-ltrans.
40493         ([-fdevirtualize]): Fix markup.
40494         ([-fdevirtualize-speculatively]): Fix typo.
40495         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
40496         implementor-speaky.
40497         * common.opt (fdevirtualize-at-ltrans): Likewise.
40498         * ipa-devirt.c: Fix typos in comments throughout the file.
40499         (ipa_devirt): Fix typos in format strings for dump output.
40500
40501 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
40502
40503         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
40504         discussion of defaults, light copy-editing.
40505
40506 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
40507
40508         * tsan.c (instrument_expr): corrected previous checkin.
40509
40510 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
40511
40512         Instrument bit field and unaligned accesses for TSAN.
40513         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
40514         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
40515         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
40516         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
40517         unaligned memory regions.
40518
40519 2015-01-01  Anthony Green  <green@moxielogic.com>
40520
40521         * config/moxie/predicates.md (moxie_general_movsrc_operand):
40522         Restrict move source register offsets to 16 bits.
40523 \f
40524 Copyright (C) 2015 Free Software Foundation, Inc.
40525
40526 Copying and distribution of this file, with or without modification,
40527 are permitted in any medium without royalty provided the copyright
40528 notice and this notice are preserved.