[PATCH] Fix abort in write_eligible_delay
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-10-22  Jeff Law  <law@redhat.com>
2
3         * genattrtab.c (main): If we do not have any annul-true or annul-false
4         slots, then write out a dummy eligible_for_annul_true or
5         eligible_for_annul_false as needed.
6
7 2015-10-22  Nick Clifton  <nickc@redhat.com>
8
9         * config/msp430/msp430.opt: Add -msilicon-errata and
10         -msilicon-errata-warn.
11         * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
12         assembler.
13         * doc/invoke.texi: Document new options.
14
15 2015-10-22  Richard Biener  <rguenther@suse.de>
16
17         PR tree-optimization/58497
18         * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
19         (expand_vector_operations_1): Use it.  Lower operations on
20         all uniform vectors to scalar operations if the HW supports it.
21
22 2015-10-22  Richard Biener  <rguenther@suse.de>
23
24         PR tree-optimization/19049
25         PR tree-optimization/65962
26         * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
27         to strided accesses if single-element interleaving doesn't work.
28
29 2015-10-22  Richard Biener  <rguenther@suse.de>
30
31         PR middle-end/68046
32         PR middle-end/61893
33         * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
34         (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
35         (expand_unop): Likewise.
36
37 2015-10-22  Richard Biener  <rguenther@suse.de>
38
39         * fold-const.c (fold_addr_of_array_ref_difference): Properly
40         convert operands before folding a MINUS_EXPR.
41         (fold_binary_loc): Move simplification of MINUS_EXPR on
42         converted POINTER_PLUS_EXPRs ...
43         * match.pd: ... here.
44
45 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
46
47         * builtins.c (fold_builtin_tan): Delete.
48         (fold_builtin_1): Handle constant tan arguments here.
49         * match.pd: Simplify (tan (atan x)) to x.
50
51 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
52
53         * builtins.c (fold_builtin_cproj): Delete.
54         (fold_builtin_1): Handle constant arguments here.
55         (build_complex_cproj): Move and rename to...
56         * tree.c: (build_complex_inf): ...this.
57         * tree.h (build_complex_inf): Declare.
58         * match.pd: Fold cproj(x)->x if x has no infinity.
59         Use build_complex_inf for existing cproj rules.
60
61 2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
62
63         PR target/68015
64         * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
65         already have a comparison result.
66
67 2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
68
69         PR target/63304
70         * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
71         (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
72         (aarch64_classify_address): Likewise.
73         (aarch64_secondary_reload): Likewise.
74         (aarch64_override_options_after_change_1): Adjust.
75         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
76         Use aarch64_nopcrelative_literal_loads.
77         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
78         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
79         Declare.
80
81 2015-10-21  Martin Sebor  <msebor@redhat.com>
82
83         PR driver/68043
84         * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
85         (print_filtered_help): Reference aliased option's name and encourage
86         readers to use it in preference to the alias if the former is not
87         documented.  Mention when using an option is diagnosed.
88         * gcc.c (display_help): End each sentence with a period.
89
90         * ada/gcc-interface/lang.opt: End each sentence that describes
91         an option with a period.
92         * c-family/c.opt: Same.
93         * common.opt: Same.
94         * config/aarch64/aarch64.opt: Same.
95         * config/alpha/alpha.opt: Same.
96         * config/arc/arc.opt: Same.
97         * config/arm/arm.opt: Same.
98         * config/avr/avr.opt: Same.
99         * config/bfin/bfin.opt: Same.
100         * config/c6x/c6x.opt: Same.
101         * config/cr16/cr16.opt: Same.
102         * config/cris/cris.opt: Same.
103         * config/cris/linux.opt: Same.
104         * config/darwin.opt: Same.
105         * config/epiphany/epiphany.opt: Same.
106         * config/fr30/fr30.opt: Same.
107         * config/frv/frv.opt: Same.
108         * config/ft32/ft32.opt: Same.
109         * config/g.opt: Same.
110         * config/h8300/h8300.opt: Same.
111         * config/i386/cygming.opt: Same.
112         * config/i386/djgpp.opt: Same.
113         * config/i386/i386.opt: Same.
114         * config/i386/interix.opt: Same.
115         * config/i386/mingw-w64.opt: Same.
116         * config/i386/mingw.opt: Same.
117         * config/ia64/ia64.opt: Same.
118         * config/ia64/ilp32.opt: Same.
119         * config/iq2000/iq2000.opt: Same.
120         * config/linux.opt: Same.
121         * config/lm32/lm32.opt: Same.
122         * config/lynx.opt: Same.
123         * config/m32c/m32c.opt: Same.
124         * config/m32r/m32r.opt: Same.
125         * config/m68k/ieee.opt: Same.
126         * config/m68k/m68k.opt: Same.
127         * config/mcore/mcore.opt: Same.
128         * config/mep/mep.opt: Same.
129         * config/microblaze/microblaze.opt: Same.
130         * config/mips/mips.opt: Same.
131         * config/mmix/mmix.opt: Same.
132         * config/mn10300/mn10300.opt: Same.
133         * config/moxie/moxie.opt: Same.
134         * config/msp430/msp430.opt: Same.
135         * config/nios2/elf.opt: Same.
136         * config/nios2/nios2.opt: Same.
137         * config/nvptx/nvptx.opt: Same.
138         * config/pa/pa-hpux.opt: Same.
139         * config/pa/pa-hpux1010.opt: Same.
140         * config/pa/pa-hpux1111.opt: Same.
141         * config/pa/pa-hpux1131.opt: Same.
142         * config/pa/pa.opt: Same.
143         * config/pa/pa64-hpux.opt: Same.
144         * config/pdp11/pdp11.opt: Same.
145         * config/rl78/rl78.opt: Same.
146         * config/rs6000/476.opt: Same.
147         * config/rs6000/aix64.opt: Same.
148         * config/rs6000/darwin.opt: Same.
149         * config/rs6000/linux64.opt: Same.
150         * config/rs6000/rs6000.opt: Same.
151         * config/rs6000/sysv4.opt: Same.
152         * config/s390/s390.opt: Same.
153         * config/s390/tpf.opt: Same.
154         * config/sh/sh.opt: Same.
155         * config/sol2.opt: Same.
156         * config/sparc/long-double-switch.opt: Same.
157         * config/sparc/sparc.opt: Same.
158         * config/spu/spu.opt: Same.
159         * config/stormy16/stormy16.opt: Same.
160         * config/tilegx/tilegx.opt: Same.
161         * config/tilepro/tilepro.opt: Same.
162         * config/v850/v850.opt: Same.
163         * config/vax/vax.opt: Same.
164         * config/visium/visium.opt: Same.
165         * config/vms/vms.opt: Same.
166         * config/vxworks.opt: Same.
167         * config/xtensa/xtensa.opt: Same.
168         * fortran/lang.opt: Same.
169
170 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
171             Sebastian Pop  <s.pop@samsung.com>
172
173         * graphite-scop-detection.c (parameter_index_in_region): Update call to
174         invariant_in_sese_p_rec.
175         * graphite-sese-to-poly.c (extract_affine): Same.
176         * sese.c (invariant_in_sese_p_rec): Pass in an extra
177         parameter has_vdefs.
178         (scalar_evolution_in_region): Return chrec_dont_know when the scalar
179         variable depends on virtual definitions in the current region.
180         * sese.h (invariant_in_sese_p_rec): Update declaration.
181
182 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
183             Sebastian Pop  <s.pop@samsung.com>
184
185         * graphite-scop-detection.c (build_scops): Do not handle scops
186         with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
187         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
188
189 2015-10-21  Mikhail Maltsev  <maltsevm@gmail.com>
190
191         * config.in: Regenerate.
192         * configure: Regenerate.
193         * configure.ac (CHECKING_P): Define.
194         * system.h: Use CHECKING_P.
195
196 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
197
198         PR ipa/67056
199         * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
200         is negative we don't know the type.
201         (check_stmt_for_type_change): Skip constructors of non-polymorphic
202         types as those won't help devirutalization.
203
204 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
205
206         * fold-const.c (operand_equal_p): Add code matching empty constructors.
207
208 2015-10-21  Eric Botcazou  <ebotcazou@adacore.com>
209
210         * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
211         comments.
212         (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
213         Add comments on sign of the result.
214         * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
215         Recurse on operand #1 instead of operand #0.
216         <CEIL_MOD_EXPR>: Do not recurse.
217         <ROUND_MOD_EXPR>: Likewise.
218
219 2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
220
221         * cfgrtl.c (pass_free_cfg::execute): Adjust.
222         * final.c (dbr_sequence_length): Always define.
223         (shorten_branches): Adjust.
224         * genattr-common.c (main): Always define DELAY_SLOTS.
225         * genattr.c (main): Unconditionally declare functions and define
226         macros related to delay slots.
227         * genattrtab.c (write_eligible_delay): Adjust.
228         (main): Always write out delay slot functions.
229         * opts.c (default_options_table): Adjust.
230         * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
231         (redirect_with_delay_list_safe_p): Likewise.
232         (fill_simple_delay_slots): Likewise.
233         (fill_slots_from_thread): Likewise.
234         (make_return_insns): Likewise.
235         (dbr_schedule): Likewise.
236         (rest_of_handle_delay_slots): Likewise.
237         (pass_delay_slots::gate): Likewise.
238         * toplev.c (process_options): Likewise.
239
240 2015-10-21  Richard Henderson  <rth@redhat.com>
241
242         * targhooks.c (default_addr_space_pointer_mode): Remove check
243         for generic address space.
244         (default_addr_space_address_mode): Likewise.
245         (default_addr_space_valid_pointer_mode): Likewise.
246         (default_addr_space_legitimate_address_p): Likewise.
247         (default_addr_space_legitimize_address): Likewise.
248         * target.def (addr_space.pointer_mode): Update documentation
249         of default behavior.
250         (addr_space.address_mode): Likewise.
251         * tm.texi: Update.
252
253         * expr.c (expand_expr_real_2): Use convert_modes on disjoint
254         address spaces.
255
256 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
257
258         * builtins.c (fold_builtin_cabs): Delete.
259         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
260         * match.pd: Add rules previously handled by fold_builtin_cabs.
261
262 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
263
264         * fold-const.h (fold_strip_sign_ops): Delete.
265         * fold-const.c (fold_strip_sign_ops): Likewise.
266         (fold_unary_loc, fold_binary_loc): Remove calls to it.
267         * builtins.c (fold_builtin_cos, fold_builtin_cosh)
268         (fold_builtin_ccos): Delete.
269         (fold_builtin_pow): Don't call fold_strip_sign_ops.
270         (fold_builtin_hypot, fold_builtin_copysign): Likewise.
271         Remove fndecl argument.
272         (fold_builtin_1): Update calls accordingly.  Handle constant
273         cos, cosh, ccos and ccosh here.
274
275 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
276
277         * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
278         * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
279         * common.opt (fssa-backprop): New option.
280         * fold-const.h (negate_mathfn_p): Declare.
281         * fold-const.c (negate_mathfn_p): Make public.
282         * timevar.def (TV_TREE_BACKPROP): New.
283         * tree-pass.h (make_pass_backprop): Declare.
284         * passes.def (pass_backprop): Add.
285         * gimple-ssa-backprop.c: New file.
286
287 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
288             Sebastian Pop  <s.pop@samsung.com>
289
290         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
291         Do not call create_empty_if_region_on_edge when cond_expr is true.
292         (translate_isl_ast_node_for): Check whether a guard has been generated.
293
294 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
295
296         * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
297         (operator=): Removed.
298         (dr_info): Make alias_set number the last argument with default
299         value of invalid_alias_set.
300         * graphite-sese-to-poly.c (build_scop_drs): Update constructor
301         of dr_info.
302         (rewrite_reductions_out_of_ssa): Iterate only through the
303         basic blocks which are inside region.
304         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
305         * sese.h (struct sese_l): Removed assignment operator.
306         (split_region_for_bb): Removed dead code.
307
308 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
309
310         * graphite-poly.h (struct dr_info): Removed conversion constructor.
311         (struct scop): Renamed scop::region to scop::scop_info
312         (scop_set_region): Same.
313         (SCOP_REGION): Removed
314         (SCOP_CONTEXT): Removed.
315         (POLY_SCOP_P): Removed.
316         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
317         Rename scop->region to scop->scop_info.
318         (add_parameters_to_ivs_params): Same.
319         (graphite_regenerate_ast_isl): Same.
320         * graphite-poly.c (new_scop): Same.
321         (free_scop): Same.
322         (print_scop_params): Same.
323         * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
324         (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
325         (dot_all_scops_1): Rename scop->region to scop->scop_info.
326         (scop_detection::nb_pbbs_in_loops): Same.
327         (find_scop_parameters): Same.
328         (try_generate_gimple_bb): Same.
329         (gather_bbs::before_dom_children): Same.
330         (gather_bbs::after_dom_children): Same.
331         (build_scops): Same.
332         * graphite-sese-to-poly.c (build_scop_scattering): Same.
333         (extract_affine_chrec): Same.
334         (extract_affine): Same.
335         (set_scop_parameter_dim): Same.
336         (build_loop_iteration_domains): Same.
337         (create_pw_aff_from_tree): Same.
338         (add_param_constraints): Same.
339         (build_scop_iteration_domain): Same.
340         (build_scop_drs): Same.
341         (analyze_drs_in_stmts): Same.
342         (insert_out_of_ssa_copy_on_edge): Same.
343         (rewrite_close_phi_out_of_ssa):Same.
344         (rewrite_reductions_out_of_ssa):Same.
345         (handle_scalar_deps_crossing_scop_limits):Same.
346         (rewrite_cross_bb_scalar_deps):Same.
347         (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
348         (build_poly_scop):Same.
349         (build_alias_set): Use pointer to dr_info.
350         * graphite.c (print_graphite_scop_statistics):
351         (graphite_transform_loops):
352         * sese.h (struct sese_l): Remove conversion constructor.
353
354 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
355
356         PR middle-end/67966
357         * tree.c (verify_type): Verify that TYPE_MODE match
358         between TYPE_CANONICAL and type.
359         * expr.c (store_expr_with_bounds): Revert my previous change.
360         * expmed.c (store_bit_field_1): Revert prevoius change.
361         * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
362         to match for all types.
363
364 2015-10-21  Nathan Sidwell  <nathan@codesourcery.com>
365
366         * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
367         nesting.
368
369 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
370
371         * doc/tm.texi: Regenerated.
372         * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
373         * stor-layout.c (layout_type): Use mode to get vector mask size.
374         * target.def (get_mask_mode): New.
375         * targhooks.c (default_get_mask_mode): New.
376         * targhooks.h (default_get_mask_mode): New.
377         * gcc/tree-vect-stmts.c (get_same_sized_vectype): Add special case
378         for boolean vector.
379         * tree.c (MAX_BOOL_CACHED_PREC): New.
380         (nonstandard_boolean_type_cache): New.
381         (build_nonstandard_boolean_type): New.
382         (make_vector_type): Vector mask has no canonical type.
383         (build_truth_vector_type): New.
384         (build_same_sized_truth_vector_type): New.
385         (truth_type_for): Support vector masks.
386         * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
387         (build_truth_vector_type): New.
388         (build_same_sized_truth_vector_type): New.
389         (build_nonstandard_boolean_type): New.
390         * tree-cfg.c (verify_gimple_comparison) Require boolean
391         vector type for vector comparison.
392         (verify_gimple_assign_ternary): Likewise.
393         * optabs.c (expand_vec_cond_expr): Accept boolean vector as
394         condition operand.
395         * tree-vect-stmts.c (vectorizable_condition): Use boolean
396         vector type for vector comparison.
397         * tree-vect-generic.c (elem_op_func): Add new operand to hold
398         vector type.
399         (do_unop): Adjust to modified function type.
400         (do_binop): Likewise.
401         (do_plus_minus): Likewise.
402         (do_negate); Likewise.
403         (expand_vector_piecewise): Likewise.
404         (do_cond): Likewise.
405         (do_compare): Use comparison instead of condition.
406         (expand_vector_divmod): Use boolean vector type for comparison.
407         (expand_vector_operations_1): Skip scalar mask operations.
408
409 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
410
411         * omp-low.c (simd_clone_create): Set in_other_partition
412         for created clones.
413
414 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
415
416         * doc/extend.exp (Local Register Variables): Rewrite.
417
418 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
419
420         * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
421         and x*x in cases where the operands are sign ops.  Extend these
422         rules to handle copysign as a sign op (including for cos, cosh
423         and pow, which already treated negate and abs as sign ops).
424
425 2015-10-21  Uros Bizjak  <ubizjak@gmail.com>
426
427         PR target/68018
428         * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
429         for 64-bit MS_ABI targets also when default incoming stack boundary
430         is overriden.
431
432 2015-10-21  Richard Biener  <rguenther@suse.de>
433
434         * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
435         cond stmts, enhanced and split out from ...
436         (vn_phi_eq): ... here.
437
438 2015-10-21  Richard Biener  <rguenther@suse.de>
439
440         PR middle-end/68031
441         * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
442         (tree_ssa_name_nonnegative_warnv_p): Fold into ...
443         (tree_single_nonnegative_warnv_p): ... here.  For SSA names
444         make sure they are not registered for update.
445
446 2015-10-21  Richard Biener  <rguenther@suse.de>
447
448         PR tree-optimization/68026
449         * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
450         unsigned VARYING values.
451
452 2015-10-21  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
453
454         * asan.c (asan_emit_stack_protection): Don't pass local stack to
455         asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
456         NULL and use local stack than.
457         (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
458         in addition to __asan_init.
459         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
460         (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
461         * asan.h (asan_intercepted_p): Handle new string builtins.
462         * ubsan.c (ubsan_use_new_style_p): New function.
463         (ubsan_instrument_float_cast): If location is unknown, assign
464         input_location to loc. Propagate loc to ubsan_create_data if
465         ubsan_use_new_style_p returned true.
466
467 2015-10-21  Jeff Law  <law@redhat.com>
468
469         * Makefile.in (OBJS): Remove sched-vis.c
470         * sched-vis.c: Removed.  Code moved into...
471         * print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
472         * rtl.h: Remove prototypes for functions now living in print-rtl.c
473         * print-rtl.h Add prototypes for new functions in print-rtl.c.
474         * auto-inc-dec.c: Include print-rtl.h
475         * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
476         * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
477
478         * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
479         ATTRIBUTE_UNUSED.
480
481 2015-10-21  Richard Biener  <rguenther@suse.de>
482             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
483
484         * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
485         to match.pd.
486         Move (a * (1 << b)) is (a << b) to match.pd.
487         Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
488         Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
489         Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
490
491         * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
492         New simplifier.
493         (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
494         (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
495         (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
496         : New simplifier.
497         (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
498         New simplifier.
499         (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
500
501 2015-10-21  Gregor Richards  <gregor.richards@uwaterloo.ca>
502             Szabolcs Nagy  <szabolcs.nagy@arm.com>
503             Alan Modra  <amodra@gmail.com>
504
505         * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
506         * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
507         (LINK_SPEC): Add %(link_secure_plt).
508         (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
509         * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
510
511 2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
512             Szabolcs Nagy  <szabolcs.nagy@arm.com>
513
514         * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
515         (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
516
517 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
518
519         * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
520         New function.
521         (fusion_load_store): Use it.
522         * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
523         ldp and stp in VD modes.
524         * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
525         (store_pair<mode>, VD): Likewise.
526
527 2015-10-20  Vladimir Makarov  <vmakarov@redhat.com>
528
529         PR rtl-optimization/67609
530         * lra-splill.c (lra_final_code_change): Don't remove all
531         sub-registers.
532
533 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
534
535         * simplify-rtx.c (simplify_binary_operation): If either operand was
536         a constant pool reference use them if all other simplifications failed.
537
538 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
539
540         * config/aarch64/aarch64.md
541         (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
542         * config/aarch64/aarch64-simd.md
543         (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
544         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
545         (aarch64_fpconst_pow_of_2): New function.
546         (aarch64_vec_fpconst_pow_of_2): Likewise.
547         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
548         prototype.
549         (aarch64_vec_fpconst_pow_of_2): Likewise.
550         * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
551         (aarch64_fp_vec_pow2): Likewise.
552
553 2015-10-20  Uros Bizjak  <ubizjak@gmail.com>
554
555         * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
556         (ALPHA_ARG_SIZE): Ditto.  Remove unused NAMED argument.
557         * config/alpha/alpha.c (alpha_function_arg_advance): Update
558         ALPHA_ARG_SIZE usage.
559         (alpha_arg_partial_bytes): Ditto.
560
561 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
562
563         PR target/66810
564         * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
565         error_mark_node decls.
566
567 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
568
569         PR target/67963
570         PR target/67985
571         * common/config/i386/i386-common.c (ix86_handle_option): Remove
572         OPT_miamcu handling.
573         * config/i386/i386.c (PTA_NO_80387): New macro.
574         (processor_alias_table): Add PTA_NO_80387 to lakemont.
575         (ix86_option_override_internal): Update MASK_80387 from
576         PTA_NO_80387.  Don't warn x87/MMX/SSE/AVX for -miamcu.  Warn
577         SSE math only if 80387 is supported.  Don't change
578         MASK_FLOAT_RETURNS.
579         (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
580         80387 is supported.
581         * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
582         if TARGET_80387 is true and TARGET_IAMCU is false.
583         (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
584         is true and TARGET_IAMCU_P is false.
585
586 2015-10-20  Richard Biener  <rguenther@suse.de>
587
588         PR tree-optimization/68017
589         * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
590
591 2015-10-20  Martin Liska  <mliska@suse.cz>
592
593         * cgraphclones.c (cgraph_node::create_virtual_clone):
594         Verify cgraph_node.local.versionable instead of calling
595         tree_versionable_function_p.
596         * ipa-cp.c (determine_versionability): Save the information
597         to ipa_node_params summary.
598         (ipcp_versionable_function_p): Use it.
599         (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
600         (ipcp_generate_summary): Do not compute cgraph_node
601         versionability.
602         * ipa-inline-analysis.c (inline_generate_summary): Compute
603         versionability for all cgraph nodes.
604         * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
605         ipa_node_params::versionability.
606         * ipa-prop.h (struct ipa_node_params): Declare it.
607
608 2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
609
610         PR other/67868
611         * varasm.c (assemble_variable): Move special vtv handling to..
612         (handle_vtv_comdat_sections): .. here. New function.
613         (output_object_block): Handle vtv sections.
614
615 2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>
616
617         PR target/66912
618         * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
619
620 2015-10-20  Arkadiusz Drabczyk  <arkadiusz@drabczyk.org>
621
622         * doc/extend.texi: Update documentation WRT inline functions.
623
624 2015-10-20  Alan Modra  <amodra@gmail.com>
625
626         PR go/66870
627         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
628         * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
629         (TARGET_CAN_SPLIT_STACK_64BIT): Define.
630
631 2015-10-19  Pierre-Marie de Rodat  <derodat@adacore.com>
632
633         PR rtl-optimization/66790
634         * df.h (DF_MIR): New macro.
635         (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
636         (DF_MIR_INFO_BB): New macro.
637         (DF_MIR_IN, DF_MIR_OUT): New macros.
638         (struct df_mir_bb_info): New.
639         (df_mir): New macro.
640         (df_mir_add_problem, df_mir_simulate_one_insn): New forward
641         declarations.
642         (df_mir_get_bb_info): New.
643         * df-problems.c (struct df_mir_problem_data): New.
644         (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
645         df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
646         df_mir_confluence_0, df_mir_confluence_n,
647         df_mir_transfer_function, df_mir_free, df_mir_top_dump,
648         df_mir_bottom_dump, df_mir_verify_solution_start,
649         df_mir_verify_solution_end): New.
650         (problem_MIR): New.
651         (df_mir_add_problem, df_mir_simulate_one_insn): New.
652         * timevar.def (TV_DF_MIR): New.
653         * ree.c: Include bitmap.h
654         (add_removable_extension): Add an INIT_REGS parameter.  Use it
655         to skip zero-extensions that may get an uninitialized register.
656         (find_removable_extensions): Compute must-initialized registers
657         using the MIR dataflow problem. Update the call to
658         add_removable_extension.
659         (find_and_remove_re): Call df_mir_add_problem.
660
661 2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
662
663         * common/config/mn10300/mn10300-common.c
664         (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
665         Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
666
667 2015-10-19  David Wohlferd  <dw@LimeGreenSocks.com>
668
669         * doc/extend.texi (Explicit Register Variables): Simplify and
670         avoid unnecessary and confusion abbreviations.  Update cross
671         references.
672         doc/implement-c.tex: Update cross reference.
673
674 2015-10-19  Jeff Law  <law@redhat.com>
675
676         * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
677         that create irreducible loops unless the path elimiantes a multiway
678         branch.
679
680 2015-10-19  Richard Biener  <rguenther@suse.de>
681
682         PR tree-optimization/67975
683         * tree-cfg.h (extract_true_false_controlled_edges): Declare.
684         * tree-cfg.c (extract_true_false_controlled_edges): Split out
685         core worker from ...
686         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
687         * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
688         instead of block number for PHIs with two or one args.
689         (vn_phi_eq): Compare edge predicates of PHIs that are in different
690         blocks.
691
692 2015-10-19  Richard Biener  <rguenther@suse.de>
693
694         * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
695         (gimple_stmt_nonnegative_warnv_p): Use it.
696         * match.pd (CPROJ): New operator list.
697         (cproj (complex ...)): Move simplifications from ...
698         * builtins.c (fold_builtin_cproj): ... here.
699
700 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
701
702         * config/i386/i386.c (ix86_expand_vector_move): Use
703         GET_MODE_BITSIZE for IA MCU psABI to get vector natural
704         alignment.
705
706 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
707
708         * doc/invoke.texi: Replace @optindex with @opindex.
709
710 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
711
712         PR target/67995
713         * config/i386/i386.c (ix86_valid_target_attribute_tree): If
714         arch= is set,  clear all bits in x_ix86_isa_flags, except for
715         ISA_64BIT, ABI_64, ABI_X32, and CODE16.
716
717 2015-10-19  Joost VandeVondele  <vondele@gnu.gcc.org>
718
719         PR middle-end/68002
720         * common.opt (fkeep-static-functions): New option.
721         * doc/invoke.texi: Document it.
722         * cgraphunit.c (cgraph_node::finalize_function): Use it.
723
724 2015-10-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
725
726         * sched-int.h (struct autopref_multipass_data_): Remove offset
727         field.  Add min_offset, max_offset, multi_mem_insn_p fields.
728         * haifa-sched.c (analyze_set_insn_for_autopref): New function.
729         (autopref_multipass_init): Use it.  Handle PARALLEL sets.
730         (autopref_rank_data): New function.
731         (autopref_rank_for_schedule): Use it.
732         (autopref_multipass_dfa_lookahead_guard_1): Likewise.
733
734 2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>
735
736         PR other/65800
737         * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
738
739 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
740
741         * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
742         (HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New.
743         (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
744         (STANDARD_STARTFILE_PREFIX_1): New.
745         (STANDARD_STARTFILE_PREFIX_2): New.
746
747 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
748
749         * config/darwin-driver.c (darwin_default_min_version): Refactor code.
750         (darwin_driver_init): Note a version-min when provided on the c/l.
751         * config/darwin.h (%darwin_minversion): Remove.
752         * config/i386/darwin.h: Likewise.
753         * config/rs6000/darwin.h: Likewise.
754         * config/darwin.opt (mmacosx-version-min=): Use the configured default,
755         rather than an arbitrary constant.
756
757 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
758
759         * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
760         PPC, detect conflicts between -arch and multilib settings.  Detect
761         and warn about conflicts between multiple -arch definitions.
762
763 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
764
765         * config/darwin-driver.c: Adjust includes to add diagnostic-core.
766
767 2015-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
768
769         * lra-constraints.c (add_next_usage_insn): Change argument type
770         from rtx to rtx_insn *.
771
772 2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>
773
774         * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
775         for Lakemont.
776
777 2015-10-16  Andrew MacLeod  <amacleod@redhat.com>
778
779         * config/tilepro/gen-mul-tables.cc: Adjust include files.
780         * config/tilegx/mul-tables.c: Regenerate.
781         * config/tilepro/mul-tables.c: Regenerate.
782
783         * config/tilegx/tilegx-c.c: Adjust include files.
784         * config/tilegx/tilegx.c: Likewise.
785         * config/tilepro/tilepro-c.c: Likewise.
786         * config/tilepro/tilepro.c: Likewise.
787         * config/aarch64/aarch64-builtins.c: Likewise.
788         * config/aarch64/aarch64.c: Likewise.
789         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
790         * config/alpha/alpha.c: Likewise.
791         * config/arc/arc.c: Likewise.
792         * config/arm/aarch-common.c: Likewise.
793         * config/arm/arm-builtins.c: Likewise.
794         * config/arm/arm-c.c: Likewise.
795         * config/arm/arm.c: Likewise.
796         * config/avr/avr-c.c: Likewise.
797         * config/avr/avr-devices.c: Likewise.
798         * config/avr/avr-log.c: Likewise.
799         * config/avr/avr.c: Likewise.
800         * config/bfin/bfin.c: Likewise.
801         * config/c6x/c6x.c: Likewise.
802         * config/cr16/cr16.c: Likewise.
803         * config/cris/cris.c: Likewise.
804         * config/darwin-c.c: Likewise.
805         * config/darwin-driver.c: Likewise.
806         * config/darwin.c: Likewise.
807         * config/default-c.c: Likewise.
808         * config/epiphany/epiphany.c: Likewise.
809         * config/epiphany/mode-switch-use.c: Likewise.
810         * config/epiphany/resolve-sw-modes.c: Likewise.
811         * config/fr30/fr30.c: Likewise.
812         * config/frv/frv.c: Likewise.
813         * config/ft32/ft32.c: Likewise.
814         * config/glibc-c.c: Likewise.
815         * config/h8300/h8300.c: Likewise.
816         * config/i386/host-cygwin.c: Likewise.
817         * config/i386/host-mingw32.c: Likewise.
818         * config/i386/i386-c.c: Likewise.
819         * config/i386/i386.c: Likewise.
820         * config/i386/msformat-c.c: Likewise.
821         * config/i386/winnt-cxx.c: Likewise.
822         * config/i386/winnt-stubs.c: Likewise.
823         * config/i386/winnt.c: Likewise.
824         * config/ia64/ia64-c.c: Likewise.
825         * config/ia64/ia64.c: Likewise.
826         * config/iq2000/iq2000.c: Likewise.
827         * config/lm32/lm32.c: Likewise.
828         * config/m32c/m32c-pragma.c: Likewise.
829         * config/m32c/m32c.c: Likewise.
830         * config/m32r/m32r.c: Likewise.
831         * config/mcore/mcore.c: Likewise.
832         * config/mep/mep-pragma.c: Likewise.
833         * config/mep/mep.c: Likewise.
834         * config/microblaze/microblaze-c.c: Likewise.
835         * config/microblaze/microblaze.c: Likewise.
836         * config/mips/mips-tables.opt
837         * config/mips/mips.c: Likewise.
838         * config/mmix/mmix.c: Likewise.
839         * config/mn10300/mn10300.c: Likewise.
840         * config/moxie/moxie.c: Likewise.
841         * config/msp430/msp430-c.c: Likewise.
842         * config/msp430/msp430.c: Likewise.
843         * config/nds32/nds32-cost.c: Likewise.
844         * config/nds32/nds32-fp-as-gp.c: Likewise.
845         * config/nds32/nds32-intrinsic.c: Likewise.
846         * config/nds32/nds32-isr.c: Likewise.
847         * config/nds32/nds32-md-auxiliary.c: Likewise.
848         * config/nds32/nds32-memory-manipulation.c: Likewise.
849         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
850         * config/nds32/nds32-predicates.c: Likewise.
851         * config/nds32/nds32.c: Likewise.
852         * config/nios2/nios2.c: Likewise.
853         * config/nvptx/mkoffload.c: Likewise.
854         * config/nvptx/nvptx.c: Likewise.
855         * config/pa/pa.c: Likewise.
856         * config/pdp11/pdp11.c: Likewise.
857         * config/rl78/rl78-c.c: Likewise.
858         * config/rl78/rl78.c: Likewise.
859         * config/rs6000/host-darwin.c: Likewise.
860         * config/rs6000/rs6000-c.c: Likewise.
861         * config/rs6000/rs6000-linux.c: Likewise.
862         * config/rs6000/rs6000.c: Likewise.
863         * config/rx/rx.c: Likewise.
864         * config/s390/s390-c.c: Likewise.
865         * config/s390/s390.c: Likewise.
866         * config/sh/sh-c.c: Likewise.
867         * config/sh/sh-mem.cc: Likewise.
868         * config/sh/sh.c: Likewise.
869         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
870         * config/sh/sh_treg_combine.cc: Likewise.
871         * config/sol2-c.c: Likewise.
872         * config/sol2-cxx.c: Likewise.
873         * config/sol2-stubs.c: Likewise.
874         * config/sol2.c: Likewise.
875         * config/sparc/sparc-c.c: Likewise.
876         * config/sparc/sparc.c: Likewise.
877         * config/spu/spu-c.c: Likewise.
878         * config/spu/spu.c: Likewise.
879         * config/stormy16/stormy16.c: Likewise.
880         * config/v850/v850-c.c: Likewise.
881         * config/v850/v850.c: Likewise.
882         * config/vax/vax.c: Likewise.
883         * config/visium/visium.c: Likewise.
884         * config/vms/vms-c.c: Likewise.
885         * config/vms/vms.c: Likewise.
886         * config/vxworks.c: Likewise.
887         * config/winnt-c.c: Likewise.
888         * config/xtensa/xtensa.c: Likewise.
889
890 2015-10-16  Christian Bruel  <christian.bruel@st.com>
891
892         PR target/67745
893         * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
894         (FUNCTION_BOUNDARY_P): New macro:
895         * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
896         New hook.
897         * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
898         * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
899         * gcc/target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
900         * gcc/function.c (allocate_struct_function): Call
901         relayout_function hook.
902         * gcc/passes.c (rest_of_decl_compilation): Likewise.
903
904 2015-10-16  Christian Bruel  <christian.bruel@st.com>
905
906         PR target/67745
907         * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
908         * config/arm/arm.c (arm_option_override_internal): Call
909         arm_override_options_after_change_1.
910         (arm_override_options_after_change): New function.
911         (arm_override_options_after_change_1): Likewise.
912         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
913
914 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
915
916         Revert:
917         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
918         empty constructors.
919
920 2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>
921
922         * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
923         argument is an ADDR_EXPR.
924
925 2015-10-16  Richard Biener  <rguenther@suse.de>
926
927         * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
928         and get rid of force_gimple_operand_gsi.
929         (gimple_fold_builtin_memory_chk): Likewise.
930         (gimple_fold_builtin_stxcpy_chk): Likewise.
931         (rewrite_to_defined_overflow): Likewise.
932         (gimple_convert_to_ptrofftype): New function.
933         * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
934
935 2015-10-16  Richard Biener  <rguenther@suse.de>
936
937         * tree-nested.h (build_addr): Adjust prototype.
938         * tree-nested.c (build_addr): Remove context argument and use
939         mark_addressable.
940         (get_static_chain): Adjust calls to build_addr.
941         (convert_nl_goto_reference): Likewise.
942         (convert_tramp_reference_op): Likewise.
943         (finalize_nesting_tree_1): Likewise.
944         * value-prof.c (gimple_ic): Likewise.
945         * gimple-low.c (lower_builtin_setjmp): Likewise.
946         * tree-parloops.c (take_address_of): Likewise.
947         (create_call_for_reduction_1): Likewise.
948         * tree-profile.c (gimple_gen_interval_profiler): Likewise.
949         (gimple_gen_ic_func_profiler): Likewise.
950
951 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
952
953         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
954         empty constructors.
955
956 2015-10-16  Michael Collison  <michael.collison@linaro.org>
957             Andrew Pinski <andrew.pinski@caviumnetworks.com>
958
959         * match.pd ((x < y) && (x < z) -> x < min (y,z),
960         (x > y) and (x > z) -> x > max (y,z))
961
962 2015-10-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
963             Szabolcs Nagy  <szabolcs.nagy@arm.com>
964
965         * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
966         (DYNAMIC_LINKER): Renamed to ...
967         (GLIBC_DYNAMIC_LINKER): This.
968         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
969
970 2015-10-15  Marek Polacek  <polacek@redhat.com>
971
972         * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
973         gimple_call_builtin instead of is_gimple_call.
974
975 2015-10-15  Richard Biener  <rguenther@suse.de>
976
977         * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
978
979 2015-10-15  Richard Biener  <rguenther@suse.de>
980
981         * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
982         * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
983         * tree-vect-loop.c (get_initial_def_for_induction): Drop
984         use of force_gimple_operand in favor of gimple_build.
985         Use vect_get_new_ssa_name.
986         * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
987         (vectorizable_mask_load_store): Likewise.
988         (vectorizable_call): Likewise.
989         (vectorizable_store): Likewise.
990         (vectorizable_load): Likewise.
991         (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
992
993 2015-10-15  Richard Sandiford  <richard.sandiford@arm.com>
994
995         PR tree-optimization/67945
996         * tree-pass.h (PROP_gimple_opt_math): New property flag.
997         * generic-match-head.c (canonicalize_math_p): New function.
998         * gimple-match-head.c: Include tree-pass.h.
999         (canonicalize_math_p): New function.
1000         * match.pd: Group math built-in rules into simplifications
1001         and canonicalizations.  Guard the latter with canonicalize_math_p.
1002         * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
1003         PROP_gimple_opt_math property.
1004
1005 2015-10-15  Marek Polacek  <polacek@redhat.com>
1006
1007         PR tree-optimization/67953
1008         * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
1009
1010 2015-10-15  Jiong Wang  <jiong.wang@arm.com>
1011
1012         * config.gcc: Recognize "." in architecture base name for AArch64.
1013
1014 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
1015
1016         * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
1017         ROUND_UP macro.
1018         * config/mips/mips.c (mips_setup_incoming_varargs): Use
1019         ROUND_DOWN to calculate off.
1020         (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
1021         (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
1022         rounded_size.
1023
1024 2015-10-14  Eric Botcazou  <ebotcazou@adacore.com>
1025
1026         * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
1027
1028 2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
1029             Torvald Riegel  <triegel@redhat.com>
1030
1031         PR target/67281
1032         * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
1033         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
1034         trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
1035         (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
1036         *trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
1037         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
1038         trechkpt, treclaim, tsr, ttest): New define_expands.
1039         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
1040         __TM_FENCE__ for htm.
1041         * doc/extend.texi: Update documentation for htm builtins.
1042
1043 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
1044
1045         PR target/67967
1046         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
1047         REG_CFA_EXPRESSION to aligned SSE stores.
1048
1049 2015-10-14  Jeff Law  <law@redhat.com>
1050
1051         * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
1052         num_threaded_edges for successful FSM threads too.
1053
1054 2015-10-14  Richard Biener  <rguenther@suse.de>
1055
1056         * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
1057         (vect_is_simple_use_1): Likewise.  Make overload of vect_is_simple_use.
1058         (vect_get_vec_def_for_operand): Remove unused parameter.
1059         * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
1060         (vect_create_epilog_for_reduction): Likewise.
1061         (vectorizable_reduction): Likewise.
1062         (vectorizable_live_operation): Likewise.
1063         * tree-vect-patterns.c (type_conversion_p): Likewise.
1064         (vect_recog_vector_vector_shift_pattern): Likewise.
1065         (check_bool_pattern): Likewise.
1066         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
1067         (vect_analyze_slp_cost_1): Likewise.
1068         * tree-vect-stmts.c (process_use): Likewise.
1069         (vect_get_vec_def_for_operand): Do not handle reductions.
1070         (vect_get_vec_defs): Adjust.
1071         (vectorizable_mask_load_store): Likewise.
1072         (vectorizable_call): Likewise.
1073         (vectorizable_simd_clone_call): Likewise.
1074         (vect_get_loop_based_defs): Likewise.
1075         (vectorizable_conversion): Likewise.
1076         (vectorizable_assignment): Likewise.
1077         (vectorizable_shift): Likewise.
1078         (vectorizable_operation): Likewise.
1079         (vectorizable_store): Likewise.
1080         (vectorizable_load): Likewise.
1081         (vect_is_simple_cond): Likewise.
1082         (vectorizable_condition): Likewise.
1083         (vect_is_simple_use): Remove unused parameters.
1084         (vect_is_simple_use_1): Adjust and rename.
1085
1086 2015-10-14  Richard Biener  <rguenther@suse.de>
1087
1088         PR tree-optimization/67915
1089         * match.pd: Handle comparisons of addresses of STRING_CSTs.
1090         * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
1091         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
1092         stmt folding in favor of GIMPLE one.
1093
1094 2015-10-14  Marek Polacek  <polacek@redhat.com>
1095
1096         PR tree-optimization/67815
1097         * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
1098         (reassociate_bb): Call it.
1099
1100 2015-10-14  Richard Biener  <rguenther@suse.de>
1101
1102         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1103         Reset info at start.
1104         (vect_analyze_group_access_1): Add debug print.
1105         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
1106         (vect_compute_single_scalar_iteration_cost): ... to this.
1107         (vect_analyze_loop_2): Adjust.
1108         * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
1109         * tree-vectorizer.h: ... here.
1110         (add_stmt_info_to_vec): Remove.
1111         * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
1112
1113 2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1114
1115         * targhooks.c (default_target_option_pragma_parse): Do not warn if
1116         called on behalf of "#pragma GCC pop_options".
1117
1118 2015-10-14  Tom de Vries  <tom@codesourcery.com>
1119
1120         * cfganal.c (verify_no_unreachable_blocks): New function.
1121         (inverted_post_order_compute) [ENABLE_CHECKING]: Call
1122         verify_no_unreachable_blocks.
1123         cfganal.h (verify_no_unreachable_blocks): Declare.
1124
1125 2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
1126
1127         * common.opt: Add flag_checking.
1128         * system.h (CHECKING_P): Define.
1129
1130 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
1131             Aldy Hernandez  <aldyh@redhat.com>
1132             Ilya Verbin  <ilya.verbin@intel.com>
1133
1134         * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
1135         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
1136         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
1137         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
1138         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
1139         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
1140         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
1141         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
1142         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
1143         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
1144         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
1145         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
1146         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
1147         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
1148         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
1149         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
1150         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
1151         (struct cgraph_simd_clone_arg): Adjust comment.
1152         * coretypes.h (struct gomp_ordered): New forward decl.
1153         * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
1154         set critical clauses to it.
1155         (gimple_build_omp_ordered): Return gomp_ordered * instead of
1156         gimple *.  Add CLAUSES argument, set ordered clauses to it.
1157         (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
1158         GIMPLE_OMP_ORDERED.
1159         * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
1160         GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
1161         * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
1162         to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
1163         GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
1164         GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
1165         Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
1166         GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
1167         renumber
1168         GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
1169         (gomp_critical): Add clauses field.
1170         (gomp_ordered): New struct.
1171         (is_a_helper <gomp_ordered *>::test): New inline.
1172         (gimple_build_omp_critical): Add CLAUSES argument.
1173         (gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
1174         instead of gimple *.
1175         (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
1176         gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
1177         gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
1178         gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
1179         inline functions.
1180         * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
1181         (dump_gimple_omp_target): Handle enter data and exit data.
1182         (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
1183         (dump_gimple_omp_critical): Print clauses.
1184         (dump_gimple_omp_ordered): New function.
1185         (dump_gimple_omp_task): Handle taskloop.
1186         (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
1187         GIMPLE_OMP_ORDERED.
1188         * gimple-walk.c (walk_gimple_op): Walk clauses on
1189         GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
1190         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
1191         (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
1192         (struct gimplify_omp_ctx): Add loop_iter_var,
1193         target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
1194         and target_firstprivatize_array_bases fields.
1195         (delete_omp_context): Release loop_iter_var.
1196         (gimplify_bind_expr): Handle ORT_NONE.
1197         (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
1198         ORT_COMBINED_TARGET.
1199         (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
1200         OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
1201         (omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
1202         ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
1203         ctx->target_map_scalars_firstprivate.
1204         (omp_add_variable): Handle ORT_NONE.  Allow map clause together with
1205         data sharing clauses.  For data sharing clause with VLA decl
1206         on omp target/target data don't add firstprivate for the pointer.
1207         Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
1208         (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
1209         the addition of ORT_COMBINED_TARGET.
1210         (omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
1211         for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
1212         pointers as zero length array sections and
1213         ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
1214         data sharing.
1215         (omp_check_private): Handle omp_member_access_dummy_var vars.
1216         (find_decl_expr): New function.
1217         (gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
1218         complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
1219         Handle OMP_CLAUSE_GANG separately.  Handle
1220         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
1221         clauses.  Diagnose linear clause on combined
1222         distribute {, parallel for} simd construct, unless it is the loop
1223         iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
1224         Handle map clauses with COMPONENT_REF.  Initialize
1225         ctx->target_map_scalars_firstprivate,
1226         ctx->target_firstprivatize_array_bases and
1227         ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
1228         linear clause even to target region if combined.  Remove
1229         map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
1230         OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
1231         map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
1232         Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
1233         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
1234         For linear clause on worksharing loop combined with parallel add
1235         shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
1236         with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
1237         omp_member_access_dummy_var vars.  Add lastprivate clause to outer
1238         taskloop if needed.
1239         (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
1240         If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
1241         GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
1242         GOMP_MAP_POINTER.
1243         (gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
1244         of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
1245         in target body.  Handle removal of struct mapping if struct is not
1246         seen in target body.  Remove GOMP_MAP_STRUCT map clause on
1247         OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
1248         addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
1249         instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
1250         for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
1251         clause appear together.  Handle
1252         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
1253         clause if it has map-type-modifier always.  Handle
1254         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
1255         clauses.
1256         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
1257         Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
1258         callers.
1259         (gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
1260         loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
1261         iterators in doacross loops.
1262         (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
1263         gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
1264         for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
1265         for the addition of ORT_COMBINED_TARGET.
1266         (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
1267         gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
1268         and OMP_TARGET_EXIT_DATA.
1269         (gimplify_omp_ordered): New function.
1270         (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
1271         OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
1272         Gimplify clauses on OMP_CRITICAL.
1273         * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
1274         expand_GOMP_SIMD_ORDERED_END): New functions.
1275         * internal-fn.def (GOMP_SIMD_ORDERED_START,
1276         GOMP_SIMD_ORDERED_END): New internal functions.
1277         * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
1278         BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
1279         BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
1280         BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
1281         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
1282         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
1283         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
1284         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
1285         BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
1286         BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
1287         BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
1288         BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
1289         (BUILT_IN_GOMP_TASK): Add INT argument to the end.
1290         (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
1291         adjust type.
1292         (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
1293         GOMP_target_data_41, adjust type.
1294         (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
1295         GOMP_target_update_41, adjust type.
1296         * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
1297         field.
1298         (struct omp_for_data): Add ordered and simd_schedule fields.
1299         (omp_member_access_dummy_var, unshare_and_remap_1,
1300         unshare_and_remap, is_taskloop_ctx): New functions.
1301         (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
1302         (extract_omp_for_data): Handle taskloops and doacross loops
1303         and simd schedule modifier.
1304         (omp_adjust_chunk_size): New function.
1305         (get_ws_args_for): Use it.
1306         (lookup_sfield): Change first argument to splay_tree_key,
1307         add overload with first argument tree.
1308         (maybe_lookup_field): Likewise.
1309         (use_pointer_for_field): Handle omp_member_access_dummy_var.
1310         (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
1311         task_shared_vars, clear TREE_ADDRESSABLE on the copy.
1312         (build_outer_var_ref): Add LASTPRIVATE argument, handle
1313         taskloops and omp_member_access_dummy_var vars.
1314         (build_sender_ref): Change first argument to splay_tree_key,
1315         add overload with first argument tree.
1316         (install_var_field): For mask & 8 use &DECL_UID as key instead
1317         of the tree itself.
1318         (fixup_child_record_type): Const qualify *.omp_data_i.
1319         (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
1320         C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
1321         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
1322         OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
1323         on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
1324         (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
1325         (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
1326         kinds.
1327         (add_taskreg_looptemp_clauses): New function.
1328         (scan_omp_parallel): Use it.
1329         (scan_omp_task): Likewise.
1330         (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
1331         For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
1332         (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
1333         and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
1334         sandwiched taskloop constructs.  Type check
1335         OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
1336         region.  Diagnose depend(source) or depend(sink:...) on
1337         target constructs or task/taskloop.
1338         (handle_simd_reference): Use get_name.
1339         (lower_rec_input_clauses): Likewise.  Ignore all
1340         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
1341         Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
1342         before passing it to omp_clause_{default,copy}_ctor.  Handle
1343         OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
1344         lastprivate_firstprivate flag for linear that needs copyin and
1345         copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
1346         (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
1347         on taskloop lookup decl in outer context.  Pass true to
1348         build_outer_var_ref lastprivate argument.  Handle
1349         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
1350         outside of outer taskloop for.
1351         (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
1352         OMP_CLAUSE_DECL.
1353         (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
1354         GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
1355         omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
1356         with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
1357         (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
1358         abstract origin.  Handle omp_member_access_dummy_var vars.
1359         (expand_parallel_call): Use expand_omp_build_assign.
1360         (expand_task_call): Handle taskloop construct expansion.  Add
1361         REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
1362         integers.  Add priority argument to GOMP_task* calls.  Or in
1363         GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
1364         GOMP_task call.
1365         (expand_omp_build_assign): Add prototype.  Add AFTER
1366         argument, if true emit statements after *GSI_P and continue linking.
1367         (expand_omp_taskreg): Adjust expand_task_call caller.
1368         (expand_omp_for_init_counts): Rename zero_iter_bb argument to
1369         zero_iter1_bb and first_zero_iter to first_zero_iter1, add
1370         zero_iter2_bb and first_zero_iter2 arguments, handle computation
1371         of counts even for ordered loops.
1372         (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
1373         (expand_omp_ordered_source, expand_omp_ordered_sink,
1374         expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
1375         functions.
1376         (expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
1377         clauses on worksharing loop.  Handle DOACROSS loop expansion.
1378         (expand_omp_for_static_nochunk): Handle linear clauses on
1379         worksharing loop.  Adjust expand_omp_for_init_counts
1380         callers.
1381         (expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
1382         (expand_omp_simd): Handle addressable fd->loop.v.  Adjust
1383         expand_omp_for_init_counts callers.
1384         (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
1385         functions.
1386         (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
1387         Handle doacross loops.
1388         (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1389         GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
1390         GOMP_target_{41,update_41,enter_exit_data} libcalls.
1391         (expand_omp): Don't expand ordered depend constructs here, record
1392         ord_stmt instead for later expand_omp_for_generic.
1393         (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1394         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
1395         clause as stand-alone directive.
1396         (lower_omp_ordered_clauses): New function.
1397         (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
1398         don't lower anything.
1399         (lower_omp_for_lastprivate): Use last _looptemp_ clause
1400         on taskloop for comparison.
1401         (lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
1402         and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
1403         expansion for linear adjustments.
1404         (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
1405         (lower_depend_clauses): Assert not seeing sink/source depend kinds.
1406         Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
1407         to tree * pointing to the stmt's clauses.
1408         (lower_omp_taskreg): Adjust lower_depend_clauses caller.
1409         (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
1410         and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
1411         GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
1412         map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
1413         clauses.  Always use short kind and 8-bit align shift.
1414         (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
1415         (struct lower_omp_regimplify_operands_data): New type.
1416         (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
1417         New functions.
1418         (lower_omp_1): Use lower_omp_regimplify_operands instead of
1419         gimple_regimplify_operands.
1420         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1421         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
1422         clause as stand-alone directive.
1423         (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
1424         (simd_clone_mangle): Mangle the various linear kinds
1425         per the new ABI.
1426         (simd_clone_adjust_argument_types): Handle
1427         SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
1428         (simd_clone_init_simd_arrays): Don't do anything for uval.
1429         (simd_clone_adjust): Handle
1430         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
1431         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
1432         Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
1433         * omp-low.h (omp_member_access_dummy_var): New prototype.
1434         * passes.def (pass_simduid_cleanup): Schedule another copy of the
1435         pass after all optimizations.
1436         * tree.c (omp_clause_code_name): Add entries for
1437         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1438         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
1439         (omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
1440         arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
1441         (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
1442         OMP_CLAUSE_REDUCTION 5 arguments.  Handle
1443         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1444         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
1445         clauses.
1446         * tree-core.h (enum omp_clause_linear_kind): New.
1447         (struct tree_omp_clause): Change type of map_kind
1448         from unsigned char to unsigned int.  Add subcode.if_modifier
1449         and subcode.linear_kind fields.
1450         (enum omp_clause_code): Add
1451         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1452         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
1453         (OMP_CLAUSE_REDUCTION): Document
1454         OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
1455         (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
1456         * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
1457         (OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
1458         operand.
1459         (OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
1460         operand.
1461         (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
1462         codes.
1463         * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
1464         (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
1465         char.
1466         (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
1467         (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
1468         (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
1469         (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
1470         OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
1471         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
1472         OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
1473         OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
1474         OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
1475         OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
1476         OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
1477         OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
1478         OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
1479         * tree-inline.c (remap_gimple_stmt): Handle clauses on
1480         GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
1481         IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
1482         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
1483         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
1484         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
1485         clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
1486         (convert_local_omp_clauses): Likewise.
1487         * tree-pretty-print.c (dump_omp_clause): Handle
1488         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
1489         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
1490         clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
1491         OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
1492         OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
1493         GOMP_MAP_FORCE_DEALLOC.  Handle
1494         GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
1495         (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
1496         and clauses on OMP_ORDERED and OMP_CRITICAL.
1497         * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
1498         Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
1499         (vectorize_loops): Adjust comments.
1500         (pass_simduid_cleanup::execute): Likewise.
1501         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
1502         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
1503         * wide-int.h (wi::gcd): New.
1504
1505 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
1506
1507         * config/i386/i386.c (classify_argument): Use CEIL where applicable.
1508         (ix86_function_arg_advance): Ditto.
1509         (ix86_function_arg): Ditto.
1510         (ix86_gimplify_va_arg): Ditto.
1511         (ix86_class_max_nregs): Ditto.
1512         (inline_memory_move_cost): Ditto.
1513         (ix86_set_reg_reg_cost): Ditto.
1514         * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
1515
1516 2015-10-13  Alexandre Oliva <aoliva@redhat.com>
1517
1518         PR middle-end/67912
1519         * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
1520
1521 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
1522
1523         * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
1524         ROUND_UP macro and UNITS_PER_WORD * 2.
1525         * config/sparc/sparc.c (sparc_compute_frame_size):
1526         Use ROUND_UP and ROUND_DOWN macros where applicable.
1527         (function_arg_record_value, function_arg_record_value_1)
1528         (function_arg_record_value_1): Ditto.
1529         (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
1530         alignment to double-word.
1531         (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
1532         (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
1533         rounded_size.
1534
1535 2015-10-13  Nikolai Bozhenov  <n.bozhenov@samsung.com>
1536
1537         * gcc/rtl.h (print_insn): Fix prototype.
1538
1539 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1540
1541         * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
1542         -1.  Add assert that returned entry matches phi argument.
1543         (parallelize_loops): Move calls to init_stmt_vec_info_vec and
1544         free_stmt_vec_info_vec ...
1545         (gather_scalar_reductions): ... here.  Initialize gimple_uids of phis
1546         with -1.
1547
1548 2014-10-13  Yuri Rumyantsev  <ysrumyan@gmail.com>
1549
1550         PR tree-optimization/67909, 67947
1551         * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
1552         really skip the inner loop.
1553
1554 2015-10-13  Jeff Law  <law@redhat.com>
1555
1556         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
1557         Allow single block jump threading paths.
1558
1559 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1560
1561         PR tree-optimization/67476
1562         * doc/invoke.texi (@item parloops-schedule): New item.
1563         * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
1564         * tree-parloops.c: Include params-enum.h.
1565         (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
1566
1567 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1568
1569         * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
1570         * params-enum.h: New file.
1571         * opts.c (handle_param): Handle case that param arg is a string.
1572         * params-list.h: Handle DEFPARAMENUM5 in params.def.
1573         * params.c (find_param): New function, factored out of ...
1574         (set_param_value): ... here.
1575         (param_string_value_p): New function.
1576         * params.h (struct param_info): Add value_names field.
1577         (find_param, param_string_value_p): Declare.
1578
1579 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1580
1581         PR tree-optimization/67476
1582         * omp-low.c (expand_omp_for_generic): Handle original loop tree.
1583
1584 2015-10-13  Richard Biener  <rguenther@suse.de>
1585
1586         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
1587         the data dependence vector.
1588         (vect_peeling_hash_insert): Get the peeling hash table as argument.
1589         (vect_peeling_hash_get_lowest_cost): Likewise.
1590         (vect_enhance_data_refs_alignment): Adjust.
1591         (struct _vect_peel_info, struct _vect_peel_extended_info,
1592         struct peel_info_hasher): Move from ...
1593         * tree-vectorizer.h: ... here.
1594         (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
1595         (LOOP_VINFO_PEELING_HTAB): Likewise.
1596         (struct _loop_vec_info): Remove min_profitable_iters and
1597         peeling_htab members.
1598         * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
1599         here.
1600         (destroy_loop_vec_info): Adjust.
1601         (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
1602         (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
1603         to estimate alias versioning cost.
1604         * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
1605
1606 2015-10-13  Richard Sandiford  <richard.sandiford@arm.com>
1607
1608         * real.h (real_isinteger): Declare.
1609         * real.c (real_isinteger): New function.
1610         * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
1611         if y is an even integer.
1612
1613 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1614
1615         revert:
1616         2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1617         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
1618         counts when these are more informative.
1619
1620 2015-10-12  Jeff Law  <law@redhat.com>
1621
1622         * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
1623         (fsm_find_control_stmt_paths): Change name of first argument to
1624         more accurately relfect what it really is.  Handle simplification
1625         of GIMPLE_COND after finding a thread path for NAME.
1626         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
1627         nontrivial conditions to be handled by FSM threader.
1628         (thread_through_normal_block): Extract the name to looup via
1629         FSM threader from COND_EXPR.
1630
1631         * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
1632         restriction that traced SSA_NAME is a user variable.
1633
1634 2015-10-12  Tom de Vries  <tom@codesourcery.com>
1635
1636         PR tree-optimization/67476
1637         * omp-low.c (expand_omp_for_generic): Add missing phis.
1638
1639 2015-10-12  Tom de Vries  <tom@codesourcery.com>
1640
1641         PR tree-optimization/67476
1642         * omp-low.c (expand_omp_for_generic): Handle simple latch.
1643
1644 2015-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
1645
1646         * config/aarch64/aarch64-simd-builtins.def: Update builtins
1647         tables: add tbl3 and tbx4.
1648         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
1649         (aarch64_tbx4v8qi): New.
1650         * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
1651         (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
1652         Rewrite using builtin functions.
1653         * config/aarch64/iterators.md (UNSPEC_TBX): New.
1654
1655 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
1656
1657         * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
1658         ROUND_UP macro.
1659         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
1660         Use ROUND_UP and ROUND_DOWN macros where applicable.
1661         (rs6000_darwin64_record_arg_flush): Ditto.
1662         (rs6000_function_arg): Use ROUND_UP to calculate align_words.
1663         (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
1664         rounded_size.
1665
1666 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
1667
1668         * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
1669         (AARCH64_ROUND_DOWN): Ditto.
1670         * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
1671
1672 2015-10-12  Richard Biener  <rguenther@suse.de>
1673
1674         PR ipa/67783
1675         * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
1676         code that analyzes IVs on each stmt but in a cheaper way avoiding
1677         quadratic behavior.
1678
1679 2015-10-12  Nick Clifton  <nickc@redhat.com>
1680
1681         * config/msp430/msp430.c (msp430_mcu_names): Rename to
1682         msp430_mcu_data, add fields for ISA and hardware multiply
1683         support.  Import latest data from the devices.csv file.
1684         (msp430_override_option): Use the data from the new array.
1685         (msp430_use_f5_series_hwmult): Likewise.
1686         (use_32bit_hwmult): Likewise.
1687         (msp430_no_hwmult): Likewise.
1688         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
1689         MCU names.
1690         * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
1691         not recognised then no hardware multiply support is assumed and
1692         that only the MSP430 ISA is allowed.
1693
1694 2015-10-12  Richard Biener  <rguenther@suse.de>
1695
1696         * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
1697         related code ...
1698         (vect_analyze_loop_2): ... here.
1699
1700 2015-10-11  Jason Merrill  <jason@redhat.com>
1701
1702         PR c++/67557
1703         * expr.c (store_field): Call store_constructor directly when
1704         storing a CONSTRUCTOR into a target smaller than its type.
1705         Guard against unsafe bitwise copy.
1706
1707 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1708
1709         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
1710         counts when these are more informative.
1711
1712 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1713
1714         * tree-profile.c (tree_profiling): Do not clear
1715         pure/const when not instrumenting.
1716         (pass tree_profile): Add dump of symtab.
1717
1718 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1719
1720         * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
1721         addresses.
1722         (fold_addr_of_array_ref_difference): Likewise.
1723
1724 2015-10-11  Jeff Law  <law@redhat.com>
1725
1726         * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
1727         tree-ssa-threadbackward.c.
1728         (fsm_find_control_statement_thread_paths): Likewise.
1729         (thread_through_normal_block): Break out FSM bits and move them
1730         into a new function in tree-ssa-threadbackward.c.  Call new function
1731         instead.
1732         Minimize header file usage.
1733         * tree-ssa-threadbackward.h: New file.
1734         * tree-ssa-threadbackward.c: Likewise.
1735         * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
1736
1737 2015-10-11  Uros Bizjak  <ubizjak@gmail.com>
1738
1739         * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
1740
1741 2015-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
1742
1743         PR rtl-optimization/67864
1744         * gcc/bb-reorder (reorder_basic_blocks_simple): Prefer existing
1745         fallthrough edges for conditional jumps.  Don't sort candidate
1746         edges if not optimizing for speed.
1747
1748 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1749
1750         * defaults.h (REVERSE_CONDITION): New default definition.
1751         * jump.c (reversed_comparison_code_parts): Adjust.
1752
1753 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1754
1755         * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
1756         check HARD_FRAME_POINTER_IS_ARG_POINTER.
1757
1758 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1759
1760         * defaults.h (FRAME_ADDR_RTX): New default definition.
1761         * builtins.c (expand_builtin_return_addr): Adjust.
1762
1763 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1764
1765         * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
1766         * builtins.c (expand_builtin_return_addr): Adjust.
1767
1768 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1769
1770         * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
1771         * builtins.c (expand_builtin_return_addr): Adjust.
1772         * doc/tm.texi: Likewise.
1773         * doc/tm.texi.in: Likewise.
1774         * except.c (expand_builtin_unwind_init): Likewise.
1775
1776 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1777
1778         * builtins.c (expand_builtin_return_addr): Adjust.
1779         * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
1780
1781 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
1782
1783         * tree.c (type_with_interoperable_signedness): New.
1784         (gimple_canonical_types_compatible_p): Use it.
1785         * tree.h (type_with_interoperable_signedness): Declare
1786
1787 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
1788
1789         * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
1790         and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
1791         when OEP_ADDRESS_OF is se.
1792
1793 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
1794             Sebastian Pop  <s.pop@samsung.com>
1795
1796         * graphite-dependences.c (scop_get_dependences): Add dump of the
1797         data dependence graph.
1798         * graphite-poly.c (print_isl_union_map): New.
1799         (debug_isl_union_map): New.
1800         * graphite-poly.h (print_isl_union_map): Declare.
1801         (debug_isl_union_map): Declare.
1802
1803 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
1804             Sebastian Pop  <s.pop@samsung.com>
1805
1806         * graphite-poly.c (print_iteration_domain): Remove verbosity.
1807         Remove OpenScop formatting.
1808         (print_iteration_domains): Same.
1809         (debug_iteration_domain): Same.
1810         (debug_iteration_domains): Same.
1811         (print_pdr): Same.
1812         (debug_pdr): Same.
1813         (dump_gbb_cases): Same.
1814         (dump_gbb_conditions): Same.
1815         (print_pdrs): Same.
1816         (debug_pdrs): Same.
1817         (print_pbb_body): Same.
1818         (print_pbb): Same.
1819         (print_scop_params): Same.
1820         (print_scop_context): Same.
1821         (print_scop): Same.
1822         (debug_pbb_domain): Same.
1823         (debug_pbb): Same.
1824         (debug_scop_context): Same.
1825         (debug_scop): Same.
1826         (debug_scop_params): Same.
1827         * graphite-poly.h: Same.
1828         * graphite.c (graphite_transform_loops): Same.
1829
1830 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1831
1832         * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
1833         call that isn't needed.
1834
1835 2015-10-09  Jeff Law  <law@redhat.com>
1836
1837         * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
1838         rather than moving each name to the freelist individually.
1839
1840 2015-10-09  Steve Ellcey  <sellcey@imgtec.com>
1841
1842         * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
1843         * frame-header-opt.c: New file.
1844         * config/mips/mips-proto.h (mips_register_frame_header_opt):
1845         Add prototype.
1846         * config/mips/mips.c (mips_compute_frame_info): Check
1847         optimize_call_stack flag.
1848         (mips_option_override): Register new frame_header_opt pass.
1849         (mips_frame_info, mips_int_mask, mips_shadow_set,
1850         machine_function): Move these types to...
1851         * config/mips/mips.h: here.
1852         (machine_function): Add does_not_use_frame_header and
1853         optimize_call_stack fields.
1854         * config/mips/t-mips (frame-header-opt.o): Add new make rule.
1855         * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
1856         Document new flags.
1857         * config/mips/mips.opt (mframe-header-opt): Add new option.
1858
1859 2015-10-09  Uros Bizjak  <ubizjak@gmail.com>
1860
1861         * config/i386/i386.c
1862         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
1863         ROUND_DOWN where applicable.
1864
1865 2015-10-09  Jeff Law  <law@redhat.com>
1866
1867         * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
1868         correct statement.
1869
1870 2015-10-09  Renlin Li  <renlin.li@arm.com>
1871
1872         * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
1873         operands[0] and operands[2].
1874         (neon_vtrn<mode>_insn): Likewise.
1875         (neon_vzip<mode>_insn): Likewise.
1876
1877 2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1878
1879         * match.pd: ((X inner_op C0) outer_op C1) New pattern.
1880         ((X & C2) << C1): Expand to...
1881         (X {&,^,|} C2 << C1): ...This.
1882         ((X & C2) >> C1): Expand to...
1883         (X {&,^,|} C2 >> C1): ...This.
1884
1885 2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>
1886
1887         PR target/67895
1888         * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
1889         Adjust embedded rounding/SAE specifier position.
1890         (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
1891         (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
1892         (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
1893         (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
1894         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
1895         Likewise.
1896         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
1897
1898 2015-10-09  Martin Jambor  <mjambor@suse.cz>
1899
1900         tree-optimization/67794
1901         * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
1902         between types of state,ents but accept original definitions as a
1903         parameter.
1904         (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
1905         iterate over definitions.
1906
1907 2015-10-09  James Norris  <jnorris@codesourcery.com>
1908
1909         * config/rs6000/rs6000.c (rs6000_offload_options): New.
1910         (TARGET_OFFLOAD_OPTIONS): New.
1911
1912 2015-10-09  Alexandre Oliva <aoliva@redhat.com>
1913
1914         PR middle-end/67891
1915         * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
1916
1917         PR middle-end/67766
1918         * function.c (expand_function_end): Move return value
1919         promotion past the handling of PARALLELs and CONCATs.
1920
1921         PR rtl-optimization/67828
1922         * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
1923         (tree_may_unswitch_on): Don't unswitch on expressions
1924         involving undefined values.
1925
1926 2015-10-09  Richard Biener  <rguenther@suse.de>
1927
1928         * genmatch.c (print_operand): Fix formatting.
1929         (dt_node::append_simplify): Warn for multiple simplifiers
1930         that match the same pattern.
1931         * match.pd (log (exp @0)): Remove duplicates.
1932
1933 2015-10-09  Richard Biener  <rguenth@suse.de>
1934
1935         PR target/67366
1936         * gimple-fold.c (optabs-query.h): Include
1937         (gimple_fold_builtin_memory_op): Allow unaligned stores
1938         when movmisalign_optabs are available.
1939
1940 2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1941
1942         PR target/67366
1943         * config/arm/arm.md (movmisalign<mode>): New.
1944         * config/arm/iterators.md (HSI): New.
1945
1946 2015-10-09  Richard Biener  <rguenther@suse.de>
1947
1948         PR tree-optimization/67891
1949         * gimple-match.h (gimple_simplified_result_is_gimple_val):
1950         New helper.
1951         (gimple_resimplify1): Declare.
1952         (gimple_resimplify2): Likewise.
1953         (gimple_resimplify3): Likewise.
1954         * gimple-match-head.c (gimple_resimplify1): Export.
1955         (gimple_resimplify2): Likewise.
1956         (gimple_resimplify3): Likewise.
1957         (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
1958         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
1959         * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
1960         to avoid creating stmts without VN info.
1961
1962 2015-10-08  Jan Hubicka  <hubicka@ucw.cz>
1963
1964         * ipa-icf.c (sem_item::compare_symbol_references): Fix use
1965         of availability.
1966
1967 2015-10-08  Jeff Law  <law@redhat.com>
1968
1969         * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
1970         and release_ssa_name in two places.
1971         (gimple_stringop_fixed_value): Similarly.
1972
1973         * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
1974         release_defs.
1975
1976         * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
1977         unlink_stmt_vdef and release_ssa_name_fn.
1978
1979         * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
1980         release_defs.
1981
1982 2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>
1983
1984         * config/i386/i386.c (ix86_compute_frame_layout): Round up the
1985         SSE register save area to 16 bytes only if the incoming stack
1986         boundary is no less than 16 bytes.
1987
1988 2015-10-08  Jeff Law  <law@redhat.com>
1989
1990         * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
1991         release_ssa_name.  Fix typo in comment.
1992
1993 2015-10-08  Nathan Sidwell  <nathan@acm.org>
1994
1995         * config/nvptx/nvptx.h (struct machine_function): Add comment.
1996         * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
1997         may return pointer as well as in memory.
1998         (nvptx_output_return): Likewise.
1999
2000 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
2001
2002         * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
2003         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
2004         * match.pd: Add rules previously handled by fold_builtin_sqrt
2005         and fold_builtin_cbrt.
2006
2007 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
2008
2009         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
2010         * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
2011         * fold-const.h (tree_unary_nonnegative_warnv_p)
2012         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
2013         (tree_expr_nonnegative_warnv_p): Add depth parameters.
2014         * fold-const.c: Include gimple-fold.h and params.h.
2015         (tree_ssa_name_nonnegative_warnv_p): New function.
2016         (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
2017         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
2018         (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
2019         Add a depth parameter and increment it for recursive calls to
2020         tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
2021         to handle SSA names.
2022         * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
2023         (gimple_stmt_nonnegative_warnv_p): Declare.
2024         * tree-vrp.c (remove_range_assertions): Remove assert that condition
2025         cannot be proven false.
2026         (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
2027         (gimple_stmt_nonnegative_warnv_p): Move to...
2028         * gimple-fold.c: ...here.  Add depth parameters and pass them
2029         down to the tree routines.  Accept statements that aren't
2030         assignments or calls but just return false for them.
2031         (gimple_val_nonnegative_real_p): Delete.
2032         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
2033         tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
2034         Check HONOR_NANs first.
2035
2036 2015-10-08  Martin Jambor  <mjambor@suse.cz>
2037
2038         * ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
2039         unnecessary MIN.
2040
2041 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
2042
2043         * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
2044         in the tail of outer-loop.
2045
2046 2015-10-08  David Edelsohn  <dje.gcc@gmail.com>
2047
2048         * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
2049         return UI_NONE.
2050
2051 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
2052
2053         * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
2054         "cfghooks.h", add prototypes for introduced new functions.
2055         (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
2056         checks on ability of loop unswitching to tree_unswitch_single_loop;
2057         invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
2058         on innermost loop check.
2059         (tree_unswitch_single_loop): Add all required checks on ability of
2060         loop unswitching under zero recursive level guard.
2061         (tree_unswitch_outer_loop): New function.
2062         (find_loop_guard): Likewise.
2063         (empty_bb_without_guard_p): Likewise.
2064         (used_outside_loop_p): Likewise.
2065         (get_vop_from_header): Likewise.
2066         (hoist_guard): Likewise.
2067         (check_exit_phi): Likewise.
2068
2069 2015-10-08  Marek Polacek  <polacek@redhat.com>
2070
2071         * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
2072         ops element.
2073
2074 2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2075
2076         PR c/65345
2077         * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
2078         create_tmp_var_raw instead of create_tmp_var.
2079
2080 2015-10-07  Jan Hubicka  <hubicka@ucw.cz>
2081
2082         * expr.c (store_expr_with_bounds): Handle aggregate moves from
2083         BLKmode.
2084         * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
2085         to define gimple type system; compare aggregates only by size.
2086
2087 2015-10-07  Jeff Law  <law@redhat.com>
2088
2089         * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
2090         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
2091         here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
2092         unnecessarily.
2093
2094 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2095             Sebastian Pop  <s.pop@samsung.com>
2096
2097         * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
2098         * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
2099         (generate_isl_schedule): Same.
2100         * graphite-optimize-isl.c (scop_get_domains): Same.
2101         (apply_schedule_map_to_scop): Same.
2102         * graphite-poly.c (print_iteration_domains): Same.
2103         (remove_gbbs_in_scop): Same.
2104         (new_scop): Same.
2105         (free_scop): Same.
2106         (print_scop): Same.
2107         * graphite-poly.h (struct scop): Rename bbs to pbbs.
2108         (SCOP_BBS): Remove.
2109         * graphite-scop-detection.c (compare_bb_depths): Remove.
2110         (graphite_sort_dominated_info): Remove.
2111         (try_generate_gimple_bb): Move out of scop_detection.
2112         (all_non_dominated_preds_marked_p): Remove.
2113         (build_scop_bbs_1): Remove.
2114         (build_scop_bbs): Remove.
2115         (nb_pbbs_in_loops): Do not use SCOP_BBS.
2116         (find_scop_parameters): Same.
2117         (sese_dom_walker): Rename gather_bbs.
2118         (before_dom_children): Call try_generate_gimple_bb and collect gbb
2119         and pbb.
2120         (build_scops): Call gather_bbs.
2121         * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
2122         (add_conditions_to_constraints): Same.
2123         (build_scop_iteration_domain): Same.
2124         (build_scop_drs): Same.
2125         (new_pbb_from_pbb): Same.
2126         * sese.c (new_sese_info): Create bbs.
2127         * sese.h (struct sese_info_t): Add bbs.
2128
2129 2015-10-07  David Edelsohn  <dje.gcc@gmail.com>
2130
2131         * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
2132         encoding in 64-bit mode.
2133
2134 2015-10-07  Uros Bizjak  <ubizjak@gmail.com>
2135
2136         PR target/66697
2137         * config/i386/i386.c (ix86_option_override_internal): Always use
2138         8-byte minimum stack boundary in 64-bit mode.
2139         (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
2140         (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
2141         Add a REG_CFA_EXPRESSION note if needed.
2142         (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
2143         (ix86_handle_force_align_arg_pointer_attribute): New.
2144         (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
2145         (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
2146         with ix86_handle_force_align_arg_pointer_attribute.
2147         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
2148
2149 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2150             Sebastian Pop  <s.pop@samsung.com>
2151
2152         * graphite-scop-detection.c (parameter_index_in_region): Remove
2153         use of SESE_ADD_PARAMS.
2154         (find_scop_parameters): Same.
2155         * sese.c (new_sese_info): Same.
2156         * sese.h (struct sese_info_t): Remove add_params.
2157         (SESE_ADD_PARAMS): Remove.
2158
2159 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2160             Sebastian Pop  <s.pop@samsung.com>
2161
2162         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
2163         an sese_info_p.
2164         (copy_def): Same.
2165         (copy_internal_parameters): Same.
2166         (translate_isl_ast_to_gimple): Use an sese_l.
2167         (build_iv_mapping): Same.
2168         * graphite-poly.c (new_sese): Rename new_sese_info.
2169         (free_sese): Rename free_sese_info.
2170         * graphite-poly.h (struct scop): Use an sese_info_p.
2171         (scop_set_region): Same.
2172         * graphite-scop-detection.c (struct sese_l): Moved...
2173         (get_entry_bb): Moved...
2174         (get_exit_bb): Moved...
2175         (parameter_index_in_region_1): Use an sese_info_p.
2176         (parameter_index_in_region): Same.
2177         (scan_tree_for_params): Same.
2178         (find_params_in_bb): Same.
2179         (sese_dom_walker): Use an sese_l.
2180         * graphite-sese-to-poly.c (remove_invariant_phi): Same.
2181         (reduction_phi_p): Same.
2182         (parameter_index_in_region_1): Use an sese_info_p.
2183         (propagate_expr_outside_region): Use an sese_l.
2184         * graphite.c: Replace uses of SCOP_REGION.
2185         * sese.c (sese_record_loop): Use an sese_info_p.
2186         (build_sese_loop_nests): Same.
2187         (sese_build_liveouts_use): Same.
2188         (sese_build_liveouts_bb): Same.
2189         (sese_build_liveouts_bb): Same.
2190         (sese_bad_liveouts_use): Same.
2191         (sese_reset_debug_liveouts_bb): Same.
2192         (sese_build_liveouts): Same.
2193         (new_sese): Renamed new_sese_info.
2194         (free_sese): Renamed free_sese_info.
2195         (set_rename): Use an sese_info_p.
2196         (graphite_copy_stmts_from_block): Same.
2197         (copy_bb_and_scalar_dependences): Same.
2198         (outermost_loop_in_sese_1): Use an sese_l.
2199         (outermost_loop_in_sese): Same.
2200         (if_region_set_false_region): Use an sese_info_p.
2201         (move_sese_in_condition): Same.
2202         (scalar_evolution_in_region): Use an sese_l.
2203         * sese.h (struct sese_l): ... here.
2204         (SESE_ENTRY): Remove.
2205         (SESE_ENTRY_BB): Remove.
2206         (SESE_EXIT): Remove.
2207         (SESE_EXIT_BB): Remove.
2208         (sese_contains_loop): Use an sese_info_p.
2209         (sese_nb_params): Same.
2210         (bb_in_sese_p): Use an sese_l.
2211         (stmt_in_sese_p): Same.
2212         (defined_in_sese_p): Same.
2213         (loop_in_sese_p): Same.
2214         (sese_loop_depth): Same.
2215         (struct ifsese_s): Use an sese_info_p.
2216         (gbb_loop_at_index): Use an sese_l.
2217         (nb_common_loops): Same.
2218         (scev_analyzable_p): Same.
2219
2220 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2221
2222         * config/i386/i386.c (ix86_conditional_register_usage): Use
2223         CALL_USED_REGISTERS_MASK.
2224         * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
2225
2226 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2227
2228         PR bootstrap/67385
2229         * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
2230         * configure: Regenerated.
2231
2232 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2233
2234         PR target/67850
2235         * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
2236         (ix86_set_current_function): This.
2237         (TARGET_EXPAND_TO_RTL_HOOK): Removed.
2238
2239 2015-10-07  Richard Biener  <rguenther@suse.de>
2240
2241         * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
2242         (vinfo_for_stmt): Adjust.
2243         (set_vinfo_for_stmt): Likewise.
2244         * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
2245         * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
2246         * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
2247         of inner loop.
2248         (vect_analyze_loop_1): Remove.
2249         (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
2250         inner loop when vectorizing an outer loop by splitting out from ...
2251         (vect_analyze_loop_form): ... here.
2252
2253 2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2254
2255         PR c/65345
2256         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
2257         Use create_tmp_var_raw instead of create_tmp_var.
2258
2259 2015-10-07  Richard Sandiford  <richard.sandiford@arm.com>
2260
2261         * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
2262         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
2263         * real.c (CACHED_FRACTION): New helper macro.
2264         (dconst_third_ptr): Use it.
2265         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
2266         * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
2267         dconst_sixth.
2268         (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
2269
2270 2015-10-06  Jeff Law  <law@redhat.com>
2271
2272         PR tree-optimization/67816
2273         * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
2274         from remove_jump_threads_starting_at.  Accept an edge rather than
2275         a basic block.
2276         * tree-ssa-threadupdate.c (removed_edges): New hash table.
2277         (remove_jump_threads_including): Note edges that get removed from
2278         the CFG for later pruning of jump threading paths including them.
2279         (thread_through_all_blocks): Remove paths which include edges that
2280         have been removed.
2281         * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
2282         on each outgoing edges when optimizing away a control statement.
2283
2284 2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2285
2286         * reorg.c (emit_delay_sequence): Store list of delay slot insns
2287         in a vector instead of rtx_insn_list.
2288         (add_to_delay_list): Likewise.
2289         (delete_from_delay_slot): Likewise.
2290         (optimize_skip): Likewise.
2291         (redirect_with_delay_list_safe_p): Likewise.
2292         (check_annul_list_true_false): Likewise.
2293         (steal_delay_list_from_target): Likewise.
2294         (steal_delay_list_from_fallthrough): Likewise.
2295         (redundant_insn): Likewise.
2296         (fill_simple_delay_slots): Likewise.
2297         (fill_slots_from_thread): Likewise.
2298         (fill_eager_delay_slots): Likewise.
2299         (relax_delay_slots): Likewise.
2300
2301 2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>
2302
2303         * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
2304         For -mgpopt=local, also exclude unintialized common symbols.
2305         * doc/invoke.texi (Nios II Options): Document the change.
2306
2307 2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
2308
2309         * config/aarch64/iterators.md (vwcore): Add missing cases for
2310          V4HF/V8HF modes.
2311
2312 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2313             Sebastian Pop  <s.pop@samsung.com>
2314
2315         * graphite-poly.c (new_scop): Initialize drs.
2316         * graphite-poly.h (struct dr_info): New.
2317         (struct scop): Add drs.
2318         * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
2319         (pdr_add_memory_accesses): Same.
2320         (build_poly_dr): Same.
2321         (build_alias_set): Same.
2322         (build_scop_drs): Same.
2323         (build_pbb_drs): Remove.
2324         * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
2325         * tree-data-ref.h (data_reference): Remove alias_set.
2326
2327 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2328             Sebastian Pop  <s.pop@samsung.com>
2329
2330         * graphite-poly.c (free_data_refs_aux): Remove.
2331         (free_gimple_poly_bb): Do not call free_data_refs_aux.
2332         * graphite-poly.h (struct base_alias_pair): Remove.
2333         * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
2334         base_alias_pair and dr->aux.
2335         (build_alias_set): Same.
2336         * tree-data-ref.c (create_data_ref): Initialize alias_set.
2337         * tree-data-ref.h (data_reference): Add alias_set.
2338
2339 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2340             Sebastian Pop  <s.pop@samsung.com>
2341
2342         * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
2343         Do not set PDR_BASE_OBJECT_SET.
2344         * graphite-poly.h (poly_dr): Same.
2345         (PDR_BASE_OBJECT_SET): Remove.
2346         (new_poly_dr): Update decl.
2347         * graphite-sese-to-poly.c (build_poly_dr): Update call to
2348         new_poly_dr.
2349         (write_alias_graph_to_ascii_dimacs): Remove.
2350         (write_alias_graph_to_ascii_dot): Remove.
2351         (write_alias_graph_to_ascii_ecc): Remove.
2352         (dr_same_base_object_p): Remove.
2353         (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
2354         code.
2355         (build_base_obj_set_for_drs): Remove.
2356         (dump_alias_graphs): Remove.
2357         (build_scop_drs): Remove dead code.
2358
2359 2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
2360             Peter Bergner  <bergner@vnet.ibm.com>
2361
2362         PR target/67808
2363         * config/rs6000/rs6000.md (extenddftf2): In the expander, only
2364         allow registers, but provide insns for the combiner to create for
2365         loads from memory. Separate VSX code from non-VSX code. For
2366         non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
2367         externaldftf2_internal to externaldftf2_fprs. Reorder constraints
2368         so that registers come before memory operations. Drop support from
2369         converting DFmode to TFmode, if the DFmode value is in a GPR
2370         register.
2371         (extenddftf2_fprs): Likewise.
2372         (extenddftf2_internal): Likewise.
2373         (extenddftf2_vsx): Likewise.
2374         (extendsftf2): In the expander, only allow registers, but provide
2375         insns for the combiner to create for stores and loads.
2376
2377 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2378
2379         * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
2380         from the decl parameter.
2381
2382 2015-10-06  Nathan Sidwell  <nathan@codesourcery.com>
2383
2384         PR 67861
2385         * gimple-fold.c (gimple_fold_builtin): Add break after
2386         BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
2387
2388 2015-10-06  H.J. Lu  <hongjiu.lu@intel.com>
2389
2390         * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
2391         to scop->isl_context.
2392
2393 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2394
2395         * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
2396         (output_probe_stack_range): Rotate the loop and simplify.
2397         (thumb1_expand_prologue): Tweak sorry message.
2398         * config/arm/arm.md (probe_stack): Use bare string.
2399
2400 2015-10-06  Nick Clifton  <nickc@redhat.com>
2401
2402         * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
2403
2404 2015-10-06  Nick Clifton  <nickc@redhat.com>
2405
2406         * config/msp430/msp430.c (ATTR_NOINIT): New constant.
2407         (ATTR_PERSIST): New constant.
2408         (msp430_data_attr): New function - verifies an attribute that only
2409         applies to variables.
2410         (msp430_attributes): Add noinit and persistent attributes.
2411         (noinit_section): New variable.
2412         (presis_section): New variable.
2413         (TARGET_ASM_INIT_SECTIONS): Define.
2414         (msp430_init_sections): New function - initialises the noinit and
2415         persist section variables.
2416         (msp430_select_section): Add support for noinit and persist
2417         attributes.
2418         (msp430_section_type_flags): Likewise.
2419         * doc/extend.texi:  Document the reent, critical, wakeup, noinit
2420         and persistent attributes.
2421
2422 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2423             Sebastian Pop  <s.pop@samsung.com>
2424
2425         * graphite-dependences.c (scop_get_transformed_schedule): Remove.
2426         (no_violations): Remove.
2427         (subtract_commutative_associative_deps): Remove.
2428         (compute_deps): Do not call subtract_commutative_associative_deps.
2429         (transform_is_safe): Remove.
2430         (graphite_legal_transform): Remove.
2431         * graphite-poly.h (graphite_legal_transform): Remove.
2432
2433 2015-10-05  Aditya Kumar  <hiraditya@msn.com>
2434
2435         * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
2436         which are in this region are passed so gcc_assert and remove redundant
2437         computation.
2438         * sese.c (sese_build_liveouts): Pass only those bbs which are not
2439         in region.
2440         (sese_bad_liveouts_use): Only BBs which are not in region are passed so
2441         gcc_assert on that and remove unnecessary computation.
2442         (sese_build_liveouts_use): Same.
2443
2444 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2445
2446         * graphite-dependences.c (scop_get_reads): Renamed scop->context
2447         to scop->param_context.
2448         (scop_get_must_writes): Same.
2449         (scop_get_may_writes): Same.
2450         (scop_get_original_schedule): Same.
2451         (scop_get_transformed_schedule): Same.
2452         (subtract_commutative_associative_deps): Same.
2453         * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
2454         (generate_isl_context): Same.
2455         (generate_isl_schedule): Same.
2456         (scop_to_isl_ast): Same.
2457         (graphite_regenerate_ast_isl): Same.
2458         * graphite-optimize-isl.c (scop_get_domains): Same.
2459         (optimize_isl): Renamed scop->context to scop->param_context.
2460         * graphite-poly.c (new_poly_bb): Change the type of argument to
2461         gimple_poly_bb_p.
2462         (new_scop): Renamed scop->context to scop->param_context.
2463         (free_scop): Same.
2464         (print_scop_context): Same.
2465         * graphite-poly.h (new_poly_dr): Change the type of argument from
2466         void* to data_reference_p.
2467         (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
2468         (new_poly_bb): Change the type of argument from void* to
2469         gimple_poly_bb_p.
2470         (pbb_set_black_box): Same.
2471         (struct scop): Rename context to param_context, ctx to isl_context.
2472         * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
2473         Move declarations closer to assignment.
2474         (find_params_in_bb): Same.
2475         (find_scop_parameters): Same.
2476         * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
2477         Global to be used for statement IDs.
2478         (isl_id_for_pbb): Use ssa_name_version_typesize.
2479         (simple_copy_phi_p): Move declarations closer to assignment.
2480         (build_pbb_scattering_polyhedrons): Same.
2481         (build_scop_scattering): Same.
2482         (isl_id_for_ssa_name): Same.
2483         (extract_affine_name): Same.
2484         (extract_affine_int): Same.
2485         (extract_affine): Same.
2486         (set_scop_parameter_dim): Use renamed member.
2487         (build_loop_iteration_domains): Same.
2488         (add_param_constraints): Same.
2489         (build_scop_iteration_domain): Same.
2490         (pdr_add_data_dimensions): Same.
2491         (build_poly_dr): Same.
2492         (build_scop_drs): Move declarations closer to assignment.
2493         (analyze_drs_in_stmts): Same.
2494         (insert_out_of_ssa_copy): Same.
2495         (insert_out_of_ssa_copy_on_edge): Same.
2496         (propagate_expr_outside_region): Same.
2497         (rewrite_phi_out_of_ssa): Same.
2498         (rewrite_degenerate_phi): Same.
2499         (rewrite_reductions_out_of_ssa): Same.
2500         (rewrite_cross_bb_scalar_dependence): Same.
2501         (handle_scalar_deps_crossing_scop_limits): Same.
2502         (rewrite_cross_bb_scalar_deps): Same.
2503         * graphite.c (graphite_transform_loops): Use renamed member.
2504
2505 2015-10-06  Uros Bizjak  <ubizjak@gmail.com>
2506
2507         PR c/65345
2508         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
2509         create_tmp_var_raw instead of create_tmp_var.
2510
2511 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2512
2513         PR c/65345
2514         * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
2515         Use create_tmp_var_raw instead of create_tmp_var.
2516
2517 2015-10-06  Alexander Fomin  <alexander.fomin@intel.com>
2518
2519         PR target/67849
2520         * config/i386/sse.md (define_split vec_select/V8FI): Restrict
2521         split for upper-bank registers when target does not support
2522         AVX512VL.
2523         (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
2524         split when target does not support AVX512VL.
2525
2526 2015-10-06  David Edelsohn  <dje.gcc@gmail.com>
2527
2528         PR c/65345
2529         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
2530         Adjust to use create_tmp_var_raw instead of create_tmp_var.
2531
2532 2015-10-06  Nick Clifton  <nickc@redhat.com>
2533
2534         * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
2535         multiplication.
2536
2537 2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
2538
2539         * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
2540         (case ${target}): Add znver1.
2541         * config/i386/cpuid.h(bit_CLZERO):  Define.
2542         * config/i386/driver-i386.c: (host_detect_local_cpu): Let
2543         -march=native recognize znver1 processors.
2544         * config/i386/i386-c.c (ix86_target_macros_internal): Add
2545         znver1, clzero def_and_undef.
2546         * config/i386/i386.c (struct processor_costs znver1_cost): New.
2547         (m_znver1): New definition.
2548         (m_AMD_MULTIPLE): Includes m_znver1.
2549         (processor_target_table): Add znver1 entry.
2550         (ix86_target_string) : Add clzero entry.
2551         (static const char *const cpu_names): Add znver1 entry.
2552         (ix86_option_override_internal): Add znver1 instruction sets.
2553         (PTA_CLZERO) :  New definition.
2554         (ix86_option_override_internal): Handle new clzerooption.
2555         (ix86_issue_rate): Add znver1.
2556         (ix86_adjust_cost): Add znver1.
2557         (ia32_multipass_dfa_lookahead): Add znver1.
2558         (has_dispatch): Add znver1.
2559         * config/i386/i386.h (TARGET_znver1): New definition.
2560         (TARGET_CLZERO): Define.
2561         (TARGET_CLZERO_P): Define.
2562         (struct ix86_size_cost): Add TARGET_ZNVER1.
2563         (enum processor_type): Add PROCESSOR_znver1.
2564         * config/i386/i386.md (define_attr "cpu"): Add znver1.
2565         (set_attr znver1_decode): New definitions for znver1.
2566         * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
2567         (mclzero): New.
2568         * config/i386/mmx.md (set_attr znver1_decode): New definitions
2569         for znver1.
2570         * config/i386/sse.md (set_attr znver1_decode): Likewise.
2571         * config/i386/x86-tune.def:  Add znver1 tunings.
2572         * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
2573         * gcc/doc/invoke.texi: Add details about znver1
2574
2575 2015-10-06  Richard Biener  <rguenther@suse.de>
2576
2577         PR tree-optimization/67859
2578         * tree-ssa-pre.c (create_expression_by_pieces): Properly
2579         discard not inserted stmts.
2580
2581 2015-10-06  Jonathan Wakely  <jwakely@redhat.com>
2582
2583         * doc/extend.texi (Template Instantiation): Reorder options and
2584         de-emphasize -frepo.
2585         * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
2586         example instead of -frepo.
2587
2588 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2589
2590         PR c/65345
2591         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
2592         use create_tmp_var_raw rather than create_tmp_var.
2593
2594 2015-10-06  Richard Biener  <rguenther@suse.de>
2595
2596         * tree-vectorizer.h (vec_info): New base class for...
2597         (_loop_vec_info): ... this and ...
2598         (_bb_vec_info): ... this.
2599         (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
2600         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
2601         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
2602         vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
2603         vect_destroy_datarefs): Adjust interface to take a vec_info *
2604         rather than both a loop_vec_info and a bb_vec_info argument.
2605         * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
2606         vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
2607         vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
2608         vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
2609         accordingly.
2610         * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
2611         (destroy_loop_vec_info, vect_analyze_loop_2,
2612         vect_is_simple_reduction_1, get_initial_def_for_induction,
2613         vect_create_epilog_for_reduction, vectorizable_reduction,
2614         vectorizable_live_operation, vect_transform_loop): Adjust.
2615         * tree-vect-patterns.c (type_conversion_p,
2616         vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
2617         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
2618         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
2619         check_bool_pattern, vect_recog_bool_pattern,
2620         vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
2621         * tree-vect-slp.c (vect_get_and_check_slp_defs,
2622         vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
2623         vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
2624         vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
2625         (new_bb_vec_info): Initialize base classs.
2626         * tree-vect-stmts.c (record_stmt_cost, process_use,
2627         vect_get_vec_def_for_operand, vect_finish_stmt_generation,
2628         vectorizable_mask_load_store, vectorizable_call,
2629         vectorizable_simd_clone_call, vectorizable_conversion,
2630         vectorizable_assignment, vectorizable_shift,
2631         vectorizable_operation, vectorizable_store,
2632         vectorizable_load, vect_is_simple_cond, vectorizable_condition,
2633         new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
2634         * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
2635
2636 2015-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
2637
2638         PR c/65345
2639         * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
2640         create_tmp_var_raw rather than create_tmp_var.
2641
2642 2015-10-05  Marek Polacek  <polacek@redhat.com>
2643
2644         * tree-ssa-loop-im.c
2645         (move_computations_dom_walker::before_dom_children): Don't set
2646         SSA_NAME_ANTI_RANGE_P.
2647         * tree-ssa-phiopt.c (value_replacement): Likewise.
2648
2649 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2650             Sebastian Pop  <s.pop@samsung.com>
2651
2652         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
2653
2654 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2655             Sebastian Pop  <s.pop@samsung.com>
2656
2657         * graphite-poly.c (new_gimple_poly_bb): ... here.
2658         (free_data_refs_aux): ... here.
2659         (free_gimple_poly_bb): ... here.
2660         (remove_gbbs_in_scop): ... here.
2661         (new_scop): Call new_sese.
2662         (free_scop): Call remove_gbbs_in_scop and free_sese.
2663         * graphite-poly.h (base_alias_pair): ... here.
2664         (new_gimple_poly_bb): Declare.
2665         (free_gimple_poly_bb): Declare.
2666         * graphite-scop-detection.c (parameter_index_in_region_1):
2667         (parameter_index_in_region): ... here.
2668         (scan_tree_for_params): ... here.
2669         (find_params_in_bb): ... here.
2670         (find_scop_parameters): ... here.
2671         (build_scops): Call find_scop_parameters.
2672         * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
2673         (free_scops): Move...
2674         (single_pred_cond_non_loop_exit): Move...
2675         (sese_dom_walker::before_dom_children): Move...
2676         (sese_dom_walker::after_dom_children): Move...
2677         (build_poly_scop): Move...
2678         * graphite-sese-to-poly.h (base_alias_pair): Move...
2679         * graphite.c (free_scops): ... here.
2680
2681 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2682             Sebastian Pop  <s.pop@samsung.com>
2683
2684         * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
2685         (trivially_empty_bb_p): Move...
2686         (same_close_phi_node): Move...
2687         (new_gimple_poly_bb): Move...
2688         (compare_bb_depths): Move...
2689         (graphite_sort_dominated_info): Move...
2690         (remove_duplicate_close_phi): Move...
2691         (make_close_phi_nodes_unique): Move...
2692         (canonicalize_loop_closed_ssa): Move...
2693         (canonicalize_loop_closed_ssa_form): Move...
2694         (loop_ivs_can_be_represented): Move...
2695         (single_pred_cond_non_loop_exit): Move...
2696         (graphite_can_represent_init): Move...
2697         (graphite_can_represent_scev): Move...
2698         (stmt_has_simple_data_refs_p): Move...
2699         (stmt_has_side_effects):  Move...
2700         (graphite_can_represent_stmt): Move...
2701         (scop_detection): ... here.
2702         (sese_dom_walker): ... and here.
2703         (build_scops): Call all moved functions.
2704         * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
2705         (all_non_dominated_preds_marked_p): Move...
2706         (build_scop_bbs_1): Move...
2707         (build_scop_bbs): Move...
2708         (set_scop_parameter_dim): Move...
2709         (nb_pbbs_in_loops): Move...
2710         (build_poly_scop): Do not call all the moved functions.
2711
2712 2015-10-05  Martin Jambor  <mjambor@suse.cz>
2713             Jan Hubicka  <hubicka@ucw.cz>
2714
2715         * ipa-cp.c (ipcp_alignment_lattice): New type.
2716         (ipcp_param_lattices): Use the above to represent alignment.
2717         (ipcp_alignment_lattice::print): New function.
2718         (print_all_lattices): Use it to print alignment information.
2719         (ipcp_alignment_lattice::top_p): New function.
2720         (ipcp_alignment_lattice::bottom_p): Likewise.
2721         (ipcp_alignment_lattice::set_to_bottom): Likewise.
2722         (ipcp_alignment_lattice::meet_with_1): Likewise.
2723         (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
2724         (set_all_contains_variable): Use set_to_bottom of alignment lattice.
2725         (initialize_node_lattices): Likewise.
2726         (propagate_alignment_accross_jump_function): Work with the new class
2727         for alignment lattices.
2728         (propagate_constants_accross_call): Pass only the alignment lattice to
2729         propagate_alignment_accross_jump_function.
2730         (ipcp_store_alignment_results): Work with the new class for alignment
2731         lattices.
2732
2733 2015-10-05  Marek Polacek  <polacek@redhat.com>
2734
2735         PR tree-optimization/67821
2736         * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
2737
2738 2015-10-05  Thomas Schwinge  <thomas@codesourcery.com>
2739
2740         PR other/65021
2741         * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
2742         function to...
2743         (mkoffload_cleanup): ... this.  Adjust all users.
2744         (maybe_unlink): Look at save_temps and verbose flags instead of
2745         debug flag.
2746         (main): Parse "-save-temps" flag.
2747         (generate_target_descr_file, generate_target_offloadend_file)
2748         (generate_host_descr_file, prepare_target_image): Pass it on.
2749         * config/nvptx/mkoffload.c (tool_cleanup): Implement.
2750         (mkoffload_cleanup): New function.
2751         (maybe_unlink): Look at save_temps and verbose flags instead of
2752         debug flag.
2753         (main): Instead of calling utils_cleanup, register atexit handler
2754         for mkoffload_cleanup.
2755         (main): Parse "-save-temps" flag.
2756         (compile_native, main): Pass it on.
2757         * lto-wrapper.c (compile_offload_image): Likewise.
2758
2759 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2760
2761         * gimple.h (gimple_op_ptr): Require a non const gimple *.
2762         (gimple_assign_lhs_ptr): Likewise.
2763         (gimple_assign_rhs1_ptr): Likewise.
2764         (gimple_assign_rhs2_ptr): Likewise.
2765         (gimple_assign_rhs3_ptr): Likewise.
2766         (gimple_call_lhs_ptr): Likewise.
2767         (gimple_call_fn_ptr): Likewise.
2768         (gimple_call_chain_ptr): Likewise.
2769                 (gimple_call_arg_ptr): Likewise.
2770                 (gimple_cond_lhs_ptr): Likewise.
2771         (gimple_cond_rhs_ptr): Likewise.
2772         (gimple_switch_index_ptr): Likewise.
2773         (gimple_return_retval_ptr): Likewise.
2774
2775 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2776
2777         * gimple.h (gimple_asm_input_op_ptr): Remove.
2778         (gimple_asm_output_op_ptr): Likewise.
2779
2780 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2781
2782         * gimple.h (gimple_location_ptr): Remove.
2783         * tree-vrp.c (check_all_array_refs): Adjust.
2784
2785 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2786
2787         * tree-ssa-operands.c (build_uses): store tree * instead of
2788         tree.
2789         (finalize_ssa_uses): Adjust.
2790         (append_use): Likewise.
2791         (verify_ssa_operands): Likewise.
2792
2793 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2794
2795         * real.h (build_real_truncate): Declare.
2796         * tree.c (build_real_truncate): New function.
2797         (strip_float_extensions): Use it.
2798         * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
2799         (fold_builtin_hypot, fold_builtin_pow): Likewise.
2800         * match.pd: Likewise.
2801
2802 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
2803            Jiong Wang  <jiong.wang@arm.com>
2804
2805         * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
2806
2807 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2808
2809         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
2810         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
2811         (aarch64_print_operand, aarch64_float_const_representable_p)
2812         (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
2813         instead of REAL_VALUE_FROM_CONST_DOUBLE.
2814         * config/arc/arc.c (arc_print_operand): Likewise.
2815         * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
2816         (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
2817         (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
2818         Likewise.
2819         * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
2820         (consttable_16): Likewise.
2821         * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
2822         * config/avr/avr.c (avr_print_operand): Likewise.
2823         * config/bfin/bfin.md: Likewise (in a define_split).
2824         * config/c6x/c6x.md: Likewise (in a define_split).
2825         * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
2826         (cr16_print_operand): Likewise.
2827         * config/cris/cris.c (cris_print_operand): Likewise.
2828         * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
2829         * config/fr30/fr30.c (fr30_print_operand): Likewise.
2830         (fr30_const_double_is_zero): Likewise.
2831         * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
2832         * config/frv/frv.md: Likewise (in a define_split).
2833         * config/frv/predicates.md (int_2word_operand): Likewise.
2834         * config/h8300/h8300.c (h8300_print_operand): Likewise.
2835         * config/i386/i386.c (standard_80387_constant_p): Likewise.
2836         (ix86_print_operand, ix86_split_to_parts): Likewise.
2837         * config/i386/i386.md: Likewise (in a define_split).
2838         * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
2839         * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
2840         * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
2841         * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
2842         (print_operand): Likewise.
2843         * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
2844         * config/mep/mep.md: Likewise (in define_split).
2845         * config/microblaze/microblaze.c (microblaze_const_double_ok)
2846         (print_operand): Likewise.
2847         * config/mips/mips.md (consttable_float): Likewise.
2848         * config/mmix/mmix.c (mmix_intval): Likewise.
2849         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
2850         * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
2851         * config/pa/pa.c (pa_singlemove_string): Likewise.
2852         * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
2853         (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
2854         * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
2855         (output_toc): Likewise.
2856         * config/rs6000/rs6000.md: Likewise (in define_splits).
2857         * config/rx/rx.c (rx_print_operand): Likewise.
2858         * config/s390/s390.c (s390_output_pool_entry): Likewise.
2859         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
2860         * config/sh/sh.md (consttable_sf, consttable_df): Likewise
2861         (and also in define_splits).
2862         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
2863         (fp_high_losum_p): Likewise.
2864         * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
2865         (*movsf_high): Likewise.
2866         * config/spu/spu.c (const_double_to_hwint): Likewise.
2867         * config/v850/v850.c (const_double_split): Likewise.
2868         * config/vax/vax.c (vax_float_literal): Likewise.
2869         * config/visium/visium.c (visium_expand_copysign): Likewise.
2870         * config/visium/visium.md: Likewise (in define_split).
2871         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
2872         * config/xtensa/xtensa.c (print_operand): Likewise.
2873         (xtensa_output_literal): Likewise.
2874         * cprop.c (implicit_set_cond_p): Likewise.
2875         * dwarf2out.c (insert_float): Likewise.
2876         * expmed.c (expand_mult, make_tree): Likewise.
2877         * expr.c (compress_float_constant): Likewise.
2878         * rtlanal.c (split_double): Likewise.
2879         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
2880         (simplify_const_unary_operation, simplify_binary_operation_1)
2881         (simplify_const_binary_operation): Likewise.
2882         (simplify_const_relational_operation): Likewise.
2883         * varasm.c (output_constant_pool_2): Likewise.
2884
2885 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2886
2887         * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
2888         instead of CONST_DOUBLE_FROM_REAL_VALUE.
2889         (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
2890         * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
2891         instead of CONST_DOUBLE_FROM_REAL_VALUE.
2892         * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
2893         * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
2894         (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
2895         (ix86_emit_swsqrtsf): Likewise.
2896         * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
2897         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
2898         (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
2899         * config/pa/pa.c (pa_expand_builtin): Likewise.
2900         * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
2901         (rs6000_scale_v2df): Likewise.
2902         * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
2903         * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
2904         (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
2905         * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
2906         (vec_ctul): Likewise.
2907         * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
2908         * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
2909         * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
2910         * cse.c (fold_rtx): Likewise.
2911         * emit-rtl.c (immed_double_const): Likewise (in comments).
2912         (init_emit_once): Likewise.
2913         * expr.c (compress_float_constant, expand_expr_real_1)
2914         (const_vector_from_tree): Likewise.
2915         * optabs.c (expand_float, expand_fix): Likewise.
2916         * reg-stack.c (reg_to_stack): Likewise.
2917         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
2918         (simplify_const_unary_operation, simplify_binary_operation_1)
2919         (simplify_const_binary_operation, simplify_relational_operation)
2920         (simplify_immed_subreg): Likewise.
2921
2922 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2923
2924         * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
2925         * doc/tm.texi: Regenerate.
2926         * real.h (REAL_ARITHMETIC): Delete.
2927         * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
2928         (ix86_expand_round_sse4): Use real_arithmetic instead of
2929         REAL_ARITHMETIC.
2930         * config/i386/sse.md (round<mode>2): Likewise.
2931         * rtl.h (rtx_to_tree_code): Likewise (in comment).
2932         * explow.c (rtx_to_tree_code): Likewise (in comment).
2933         * match.pd: Likewise.
2934         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2935         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
2936         (expand_pow_as_sqrts): Likewise.
2937         * tree-pretty-print.c (dump_generic_node): Remove code that
2938         was conditional on REAL_ARITHMETIC being undefined.
2939
2940 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2941
2942         * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
2943         * doc/tm.texi: Regenerate.
2944         * real.h (real_less): Declare.
2945         (REAL_VALUES_LESS): Delete.
2946         * real.c (real_less): New function.
2947         (real_compare): Use it.
2948         * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
2949         of REAL_VALUES_LESS.
2950         * config/microblaze/microblaze.c (microblaze_const_double_ok):
2951         Likewise.
2952         * fold-const.c (fold_convert_const_int_from_real): Likewise.
2953         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2954         (simplify_const_relational_operation): Likewise.
2955         * tree-call-cdce.c (check_pow): Likewise.
2956         (gen_conditions_for_pow_cst_base): Likewise.
2957
2958 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2959
2960         * real.h (REAL_VALUES_IDENTICAL): Delete.
2961         * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
2962         instead of REAL_VALUES_IDENTICAL.
2963         * fold-const.c (operand_equal_p): Likewise.
2964         * ipa-icf.c (sem_variable::equals): Likewise.
2965         * tree-complex.c (some_nonzerop): Likewise.
2966         (expand_complex_multiplication): Likewise.
2967         * tree.c (simple_cst_equal): Likewise.
2968         * varasm.c (compare_constant): Likewise.
2969
2970 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2971
2972         * real.h (real_equal): Declare.
2973         (REAL_VALUES_EQUAL): Delete.
2974         * real.c (real_equal): New function.
2975         (real_compare): Use it.
2976         * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
2977         * doc/tm.texi: Regenerate.
2978         * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
2979         real_equal instead of REAL_VALUES_EQUAL.
2980         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
2981         * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
2982         (fp_const_from_val): Likewise.
2983         * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
2984         * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
2985         (floating_exact_log2): Likewise.
2986         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
2987         * config/vax/vax.c (vax_float_literal): Likewise.
2988         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
2989         * cprop.c (implicit_set_cond_p): Likewise.
2990         * expmed.c (expand_mult): Likewise.
2991         * fold-const.c (const_binop): Likewise.
2992         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2993         (simplify_const_binary_operation): Likewise.
2994         (simplify_const_relational_operation): Likewise.
2995         * tree-call-cdce.c (check_pow): Likewise.
2996         (gen_conditions_for_pow_cst_base): Likewise.
2997         * tree-inline.c (estimate_num_insns): Likewise.
2998         * tree-ssa-dom.c (record_equality): Likewise.
2999         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
3000         (gimple_expand_builtin_pow): Likewise.
3001         (pass_optimize_widening_mul::execute): Likewise.
3002         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
3003         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
3004         * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
3005
3006 2015-10-05  Richard Biener  <rguenther@suse.de>
3007
3008         PR ipa/67783
3009         * ipa-inline-analysis.c (estimate_function_body_sizes): Only
3010         consider loop header PHI defs as IVs.
3011
3012 2015-10-05  Richard Biener  <rguenther@suse.de>
3013
3014         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
3015         call handling ...
3016         (create_expression_by_pieces): ... here and build GIMPLE
3017         calls directly.  Use gimple_build API and avoid force_gimple_operand.
3018         (insert_into_preds_of_block): Simplify.
3019         (do_regular_insertion): Add comment.
3020
3021 2015-10-04  Jason Merrill  <jason@redhat.com>
3022
3023         * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
3024
3025 2015-10-04  Uros Bizjak  <ubizjak@gmail.com>
3026
3027         * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
3028         check for general register.
3029         (ix86_emit_save_regs): Ditto.
3030         (ix86_emit_save_regs_using_mov): Ditto.
3031         (ix86_emit_restore_regs_using_pop): Ditto.
3032         (ix86_emit_restore_regs_using_mov): Ditto.
3033
3034 2015-10-03  Marek Polacek  <polacek@redhat.com>
3035
3036         * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
3037         (insn-dfatab.o): Likewise.
3038
3039 2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
3040
3041         * config.gcc (xtensa*-*-uclinux*): New configuration.
3042         * config/xtensa/uclinux.h: New file.
3043         * config/xtensa/uclinux.opt: New file.
3044
3045 2015-10-03  Jonathan Wakely  <jwakely@redhat.com>
3046
3047         * doc/cpp.texi (Standard Predefined Macros): Document value of
3048         __cplusplus for C++14.
3049
3050 2015-10-02  Bernd Schmidt  <bernds@codesourcery.com>
3051
3052         * gcc.c (process_command): Use spec_machine rather than
3053         spec_host_machine to build tooldir_prefix2.
3054
3055 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
3056             Bernd Schmidt  <bernds@codesourcery.com>
3057
3058         * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
3059         (Token, Stmt): Remove structs.
3060         (decls, vars, fns): Remove variables.
3061         (alloc_comment, append_stmt, is_keyword): Remove macros.
3062         (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
3063         (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
3064         (parse_init, parse_file): Remove functions.
3065         (read_file): Accept a pointer to a length and store into it.
3066         (process): Don't try to parse the input file, just write it out as
3067         a string, but looking for maps.  Also write out the length.
3068         (main): Don't use "-S" to compile PTX code.
3069
3070 2015-10-02  Jeff Law  <law@redhat.com>
3071
3072         * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
3073         fixups.
3074
3075 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
3076
3077         PR target/67822
3078         * config/nvptx/mkoffload.c (main): Scan the argument vector for
3079         -fopenmp, and skip generating an offloading image if specified.
3080
3081 2015-10-02  Uros Bizjak  <ubizjak@gmail.com>
3082
3083         * system.h (ROUND_UP): New macro definition.
3084         (ROUND_DOWN): Ditto.
3085         * ggc-page.c (ROUND_UP): Remove local macro definition.
3086         (PAGE_ALIGN): Implement using ROUND_UP macro.
3087
3088         * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
3089         * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
3090         to align values.
3091         (ix86_compute_frame_layout): Ditto.
3092         (ix86_expand_prologue): Ditto.
3093         (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
3094         to round down values.
3095         (expand_set_or_movmem_via_rep): Ditto.
3096
3097 2015-10-02  Marek Polacek  <polacek@redhat.com>
3098
3099         * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
3100
3101 2015-10-02  Aditya Kumar  <aditya.k7@samsung.com>
3102
3103         * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
3104         (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
3105         * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
3106         (free_gimple_bb): Renamed free_gimple_poly_bb.
3107         (try_generate_gimple_bb): Hoist loop invariant code.
3108         (analyze_drs_in_stmts): Same.
3109         (build_scop_drs): Call renamed functions.
3110         (new_pbb_from_pbb): Same.
3111         (scop_ivs_can_be_represented): Delete as functionality now moved to
3112         graphite-scop-detection.c
3113         (build_poly_scop): Remove call to scop_ivs_can_be_represented.
3114
3115 2015-10-02  Aditya Kumar  <hiraditya@msn.com>
3116
3117         * graphite-scop-detection.c (stmt_has_side_effects): New function
3118           outlined from stmt_simple_for_scop_p.
3119         (graphite_can_represent_stmt): Same.
3120         (stmt_simple_for_scop_p): Moved code out of this function for better
3121         readability.
3122
3123 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3124
3125         * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
3126         F_AVX512IFMA.
3127         (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
3128
3129 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3130
3131         * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
3132
3133 2015-10-02  Vladimir Makarov  <vmakarov@redhat.com>
3134
3135         PR rtl-optimization/67756
3136         * lra-constraints.c (match_reload): Add a new parameter.  Use it
3137         for creating a pseudo with the same value.
3138         (curr_insn_transform): Pass a new argument to match_reload.
3139
3140 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3141
3142         * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
3143         (expand_vec_perm_even_odd_1): Handle V64QImode.
3144         (ix86_expand_vec_perm_const_1): Try expansion with
3145         expand_vec_perm_even_odd_trunc as well.
3146         * config/i386/sse.md (VI124_AVX512F): Rename to ...
3147         (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
3148         to V54QI.
3149         (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
3150         (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
3151         to V32HI and V16SI.
3152         (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
3153         (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
3154         (define_expand "vec_unpacks_lo_<mode>"): Ditto.
3155         (define_expand "vec_unpacks_hi_<mode>"): Ditto.
3156         (define_expand "vec_unpacku_lo_<mode>"): Ditto.
3157         (define_expand "vec_unpacku_hi_<mode>"): Ditto.
3158
3159 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3160
3161         * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
3162         -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
3163
3164 2015-10-02  Jason Merrill  <jason@redhat.com>
3165
3166         PR c/59218
3167         * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
3168         (diagnose_tm_1_op): Also diagnose volatile accesses in
3169         transaction_safe function.
3170
3171 2015-10-02  Jonathan Wakely  <jwakely@redhat.com>
3172
3173         * system.h (malloc.h): Don't include obsolete header.
3174
3175 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3176
3177         * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
3178         (TLS_SECTION_ASM_FLAG): Delete.
3179
3180 2015-10-02  Marek Polacek  <polacek@redhat.com>
3181
3182         PR c/64249
3183         * doc/invoke.texi: Document -Wduplicated-cond.
3184         * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
3185         (insn-dfatab.o): Likewise.
3186         * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
3187         warning.
3188
3189 2015-10-02  Oleg Endo  <olegendo@gcc.gnu.org>
3190
3191         * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
3192         sequences.
3193
3194 2015-10-02  Renlin Li  <renlin.li@arm.com>
3195
3196         * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
3197
3198 2015-10-02  Renlin Li  <renlin.li@arm.com>
3199
3200         PR target/66776
3201         * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
3202
3203 2015-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3204
3205         PR rtl-optimization/67786
3206         PR rtl-optimization/67787
3207         * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
3208         it modifies a reg used in the condition calculation.
3209
3210 2015-10-02  James Greenhalgh  <james.greenhalgh@arm.com>
3211
3212         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
3213         alternatives for reads from memory and moves from general-purpose
3214         registers.
3215         (*aarch64_combinez_be<mode>): Likewise.
3216
3217 2015-10-02  Kai Tietz  <ktietz70@googlemail.com>
3218
3219         PR target/51726
3220         * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
3221         selectany within this function without need to keep attribute.
3222         (i386_pe_encode_section_info): Remove selectany-code.
3223
3224 2015-10-02  Richard Biener  <rguenther@suse.de>
3225
3226         * tree-ssa-sccvn.c (has_VN_INFO): New function.
3227         (free_scc_vn): Use it.
3228         (visit_use): Remove dead code and refactor to use gassign
3229         and use less indentation.
3230
3231 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3232
3233         PR target/67788
3234         PR target/67789
3235         * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
3236         (rs6000_cannot_copy_insn_p): New function.
3237         * config/rs6000/rs6000.md (cannot_copy): New attribute.
3238         (load_toc_v4_PIC_1_normal): Set cannot_copy.
3239         (load_toc_v4_PIC_1_476): Ditto.
3240
3241 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
3242
3243         * graphite-scop-detection.c (struct sese_l): New conversion constructor
3244         so that this type can be pushed into a vec.
3245         (class scop_builder): use sese_l to collect scops.
3246         (get_scops): New getter function.
3247         (remove_intersecting_scops): Use sese_l instead of scops_p.
3248         (intersects): Same.
3249         (add_scop): Same.
3250         (subsumes): Same.
3251         (remove_subscops): Same.
3252         (build_scops): Add scops to vec<scops_p> once all the scops have been
3253         detected.
3254
3255 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
3256
3257         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
3258         Renamed type from gimple_bb_p to gimple_poly_bb_p.
3259         (translate_isl_ast_node_user): Same.
3260         * graphite-poly.c (new_poly_bb): Same.
3261         * graphite-poly.h (gbb_from_bb): Same.
3262         * sese.h: Same.
3263         * graphite-sese-to-poly.c (new_gimple_bb):
3264         gimple_bb_p -> gimple_poly_bb_p
3265         (build_scop_scattering): Same.
3266         (find_params_in_bb): Same.
3267         (add_conditions_to_domain): Same.
3268         (sese_dom_walker::before_dom_children): Same.
3269         (analyze_drs_in_stmts): Same.
3270         (new_pbb_from_pbb): Same.
3271         (free_data_refs_aux): New pointer to type base_alias_pair.
3272         * graphite-sese-to-poly.h: Same.
3273         * sese.c (if_region_set_false_region): Fixed Indentation.
3274         (move_sese_in_condition): Same.
3275
3276 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3277             Aditya Kumar  <aditya.k7@samsung.com>
3278
3279         PR tree-optimization/66980
3280         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
3281         when data reference analysis has failed.
3282
3283 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3284             Aditya Kumar  <aditya.k7@samsung.com>
3285
3286         PR tree-optimization/67754
3287         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
3288         scev analysis on the same loop nest as analyze_drs_in_stmts.
3289         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
3290         renamed...
3291         (try_generate_gimple_bb): Call outermost_loop_in_sese.
3292         (analyze_drs_in_stmts): Same.
3293         * sese.c (outermost_loop_in_sese): ...here.
3294
3295 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3296             Aditya Kumar  <aditya.k7@samsung.com>
3297
3298         PR tree-optimization/67754
3299         * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
3300         recursion on the inner loops.
3301
3302 2015-10-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3303
3304         * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
3305         function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
3306         tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
3307         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
3308         tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
3309
3310 2015-10-01  Marek Polacek  <polacek@redhat.com>
3311
3312         PR c/65345
3313         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
3314         create_tmp_var_raw rather than create_tmp_var.
3315
3316 2015-10-01  Marek Polacek  <polacek@redhat.com>
3317
3318         PR tree-optimization/67769
3319         * tree-ssa-phiopt.c (conditional_replacement): Call
3320         reset_flow_sensitive_info_in_bb.
3321         (minmax_replacement): Likewise.
3322         (abs_replacement): Likewise.
3323
3324 2015-10-01  Nathan Sidwell  <nathan@codesourcery.com>
3325
3326         * builtins.c: Don't include gomp-constants.h.
3327         (fold_builtin_1): Don't fold acc_on_device here.
3328         * gimple-fold.c: Include gomp-constants.h.
3329         (gimple_fold_builtin_acc_on_device): New.
3330         (gimple_fold_builtin): Call it.
3331
3332 2015-10-01  H.J. Lu  <hongjiu.lu@intel.com>
3333
3334         * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
3335         (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
3336
3337 2015-10-01  James Greenhalgh  <james.greenhalgh@arm.com>
3338
3339         * config/arm/aarch-common-protos.h
3340         (aarch_accumulator_forwarding): New.
3341         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
3342         * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
3343         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
3344         * config/arm/cortex-a53.md: Rewrite.
3345
3346 2015-10-01  Richard Biener  <rguenther@suse.de>
3347
3348         * gimple-match.h (mprts_hook): Declare.
3349         * gimple-match.head.c (mprts_hook): Define.
3350         (maybe_push_res_to_seq): Use new hook.
3351         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
3352         * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
3353         (vn_ssa_aux::has_constants): Remove.
3354         * tree-ssa-sccvn.c: Include gimple-match.h.
3355         (VN_INFO_GET): Assert we don't re-use SSA names.
3356         (vn_get_expr_for): Remove.
3357         (expr_has_constants): Likewise.
3358         (stmt_has_constants): Likewise.
3359         (simplify_binary_expression): Likewise.
3360         (simplify_unary_expression): Likewise.
3361         (vn_lookup_simplify_result): New hook.
3362         (visit_copy): Adjust.
3363         (visit_reference_op_call): Likewise.
3364         (visit_phi): Likewise.
3365         (visit_use): Likewise.
3366         (process_scc): Likewise.
3367         (init_scc_vn): Likewise.
3368         (visit_reference_op_load): Likewise.  Use match-and-simplify and
3369         a gimple seq for inserted expressions.
3370         (try_to_simplify): Remove GENERIC stmt combining code.
3371         (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
3372         * tree-ssa-pre.c (eliminate_insert): Adjust.
3373         (eliminate_dom_walker::before_dom_children): Likewise.
3374
3375 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3376
3377         * doc/invoke.texi (Optimization Options): Add
3378         -freorder-blocks-algorithm=.
3379         (Optimize Options) <-O>: Add -freorder-blocks.
3380         <-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
3381         <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
3382         <-freorder-blocks>: Also enabled at levels -O and -Os.
3383         <-freorder-blocks-algorithm=>: Document new option.
3384
3385 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3386
3387         * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
3388         with flag_reorder_blocks_algorithm.
3389         * common.opt (freorder-blocks-algorithm=): New flag.
3390         (reorder_blocks_algorithm): New enum.
3391         * flag-types.h (reorder_blocks_algorithm): New enum.
3392         * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
3393         and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
3394
3395 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3396
3397         * bb-reorder.c: Add intro comment.
3398         (reorder_basic_blocks_software_trace_cache): Print a header to
3399         the dump file.
3400         (edge_order): New function.
3401         (reorder_basic_blocks_simple): New function.
3402         (reorder_basic_blocks): Choose between the STC and the simple
3403         algorithms (always choose the former).
3404
3405 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3406
3407         * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
3408         function, factored out from ...
3409         (reorder_basic_blocks): ... here.
3410
3411 2015-10-01  Tom de Vries  <tom@codesourcery.com>
3412
3413         * tree-cfg.c (dump_function_to_file): Dump function attributes using
3414         __attribute__(()) string.  Move dumping of function attributes to before
3415         function name.
3416
3417 2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>
3418
3419         PR target/66870
3420         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
3421         * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
3422         based on gold linker version.
3423         * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
3424         HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
3425         * configure, config.in: Regenerate.
3426
3427 2015-10-01  Alan Modra  <amodra@gmail.com>
3428
3429         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
3430         r2_setup_needed when TARGET_SINGLE_PIC_BASE.
3431         (rs6000_output_mi_thunk): Likewise.
3432
3433 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
3434
3435         * config/nvptx/mkoffload.c (process): Change offload data format.
3436
3437 2015-09-30  Jeff Law  <law@redhat.com>
3438
3439         * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
3440         with constant conditions.
3441         * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
3442         (remove_ctrl_stmt_and_useless_edges): No longer static.
3443         * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
3444         (remove_ctrl_stmt_and_useless_edges): Likewise.
3445
3446 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
3447             Cesar Philippidis  <cesar@codesourcery.com>
3448
3449         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
3450         (TARGET_GOACC_VALIDATE_DIMS): Override.
3451         * target.def (TARGET_GOACC): New target hook prefix.
3452         (validate_dims): New hook.
3453         * targhooks.h (default_goacc_validate_dims): New.
3454         * omp-low.c (oacc_validate_dims): New.
3455         (execute_oacc_device_lower): New.
3456         (default_goacc_validate_dims): New.
3457         (pass_data_oacc_device_lower): New.
3458         (pass_oacc_device_lower): New pass.
3459         (make_pass_oacc_device_lower): New.
3460         * tree-pass.h (make_pass_oacc_device_lower): Declare.
3461         * passes.def (pass_oacc_device_lower): Add it.
3462         * doc/tm.texi: Rebuilt.
3463         * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
3464         * doc/invoke.texi (oaccdevlow): Document tree dump flag.
3465
3466 2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3467
3468         PR rtl-optimization/67037
3469         * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
3470
3471 2015-09-30  Bernd Schmidt  <bernds@redhat.com>
3472
3473         * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
3474         * passes.c: Include tree-ssanames.h.
3475         (execute_function_todo): Flush the pending free SSA_NAMEs after
3476         eliminating unreachable basic blocks.
3477         * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
3478         (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
3479         (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
3480         (flush_ssanames_freelist): New function.
3481         (release_ssaname_fn): Put released names on the queue.
3482         (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
3483         * tree-ssanames.h (flush_ssanames_freelist): Declare.
3484
3485 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
3486
3487         * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
3488         (generate_target_descr_file, generate_target_offloadend_file)
3489         (generate_host_descr_file, prepare_target_image): Pass it on.
3490         * config/nvptx/mkoffload.c (main): Parse "-v" flag.
3491         (compile_native, main): Pass it on.
3492         * lto-wrapper.c (compile_offload_image): Likewise.
3493
3494 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
3495             Ilya Verbin  <ilya.verbin@intel.com>
3496             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3497
3498         * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
3499         (prepare_target_image, main): Refactor argv building to use
3500         obstacks.
3501
3502 2015-09-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3503
3504         * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
3505         * config/spu/spu.c (spu_expand_atomic_op): New function.
3506         * config/spu/spu.md (AINT): New mode iterator.
3507         (ATOMIC): New code iterator.
3508         (atomic_name, atomic_pred): New code predicates.
3509         ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
3510         ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
3511         (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
3512         "atomic_<atomic_name>_fetch<mode>"): Likewise.
3513
3514 2015-09-30  Ilya Enkovich  <enkovich.gnu@gmail.com>
3515
3516         * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
3517         debug insns.
3518         (scalar_chain::convert_reg): Likewise.
3519
3520 2015-09-30  Richard Biener  <rguenther@suse.de>
3521
3522         * builtins.c: Add comment that no new simplifications should
3523         be added here.
3524
3525 2015-09-30  Marek Polacek  <polacek@redhat.com>
3526
3527         PR tree-optimization/67690
3528         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
3529         reset_flow_sensitive_info_in_bb.
3530         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
3531         * tree-ssanames.c: Include "gimple-iterator.h".
3532         (reset_flow_sensitive_info_in_bb): New function.
3533         * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
3534
3535 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
3536
3537         * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
3538         variable, replacing it with...
3539         (offload_abi): ... this new variable.  Adjust all users.
3540         * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
3541
3542 2015-09-30  Matthias Klose  <doko@ubuntu.com>
3543
3544         * configure.ac: Remove extraneous ;;.
3545         * configure: Regenerate.
3546
3547 2015-09-29  James Bowman  <james.bowman@ftdichip.com>
3548
3549         * config/ft32/predicates.md (ft32_imm_operand): New predicate.
3550         * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
3551         predicate, disallow register for operand 2.
3552
3553 2015-09-29  Aditya Kumar  <aditya.k7@samsung.com>
3554
3555         * graphite-dependences.c (scop_get_dependences): Moved in down
3556         in order to be visible to its caller.
3557         * graphite-poly.h: Removed compute_deps, and extend_schedule.
3558
3559 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
3560             Aditya Kumar  <aditya.k7@samsung.com>
3561
3562         PR tree-optimization/67754
3563         * graphite-optimize-isl.c (optimize_isl): Call
3564         isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
3565
3566 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
3567
3568         * builtins.c (expand_builtin_acc_on_device): Delete.
3569         (expand_builtin): Don't call it.
3570         (fold_builtin_1): Fold acc_on_device.
3571
3572 2015-09-29  H.J. Lu  <hongjiu.lu@intel.com>
3573
3574         * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
3575         (ix86_nsaved_sseregs): Likewise.
3576
3577 2015-09-29  Jeff Law  <law@redhat.com>
3578
3579         * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
3580         computation of unused value.
3581
3582         * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
3583         * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
3584         inline macro expansion.
3585
3586         * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
3587
3588         * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
3589         (gen_shl_sext): Likewise.
3590         * config/sh/sh.md (divsi3): Likewise.
3591         (imm->ext_dest_operand splitter): Likewise.
3592
3593 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
3594             Aditya Kumar  <aditya.k7@samsung.com>
3595
3596         * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
3597         (nb_data_writes_in_bb): Remove.
3598         (split_pbb): Remove.
3599         (split_reduction_stmt): Remove.
3600         (is_reduction_operation_p): Remove.
3601         (phi_contains_arg): Remove.
3602         (follow_ssa_with_commutative_ops): Remove.
3603         (detect_commutative_reduction_arg): Remove.
3604         (detect_commutative_reduction_assign): Remove.
3605         (follow_inital_value_to_phi): Remove.
3606         (edge_initial_value_for_loop_phi): Remove.
3607         (initial_value_for_loop_phi): Remove.
3608         (used_outside_reduction): Remove.
3609         (detect_commutative_reduction): Remove.
3610         (translate_scalar_reduction_to_array_for_stmt): Remove.
3611         (remove_phi): Remove.
3612         (dr_indices_valid_in_loop): Remove.
3613         (close_phi_written_to_memory): Remove.
3614         (translate_scalar_reduction_to_array): Remove.
3615         (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
3616         (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
3617         (rewrite_commutative_reductions_out_of_ssa): Remove.
3618         (build_poly_scop): Remove call to
3619         rewrite_commutative_reductions_out_of_ssa.
3620
3621 2015-09-29  Evandro Menezes  <e.menezes@samsung.com>
3622
3623         * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
3624         Add new insn types for vector load and store pairs.
3625         * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
3626         types "neon_ldp{,_q}".
3627         * config/arm/cortex-a57.md (neon_load_c): Add insn types
3628         "neon_ldp{,_q}".
3629         (neon_store_complex): Add insn types "neon_stp{,_q}".
3630         * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
3631         "neon_{ldp,stp}_q".
3632
3633 2015-09-29  Jeff Law  <law@redhat.com>
3634
3635         * config/rx/constraints.md (Int08): Fix undefined left shift
3636         behaviour.
3637         (Sint08, Sint16, Sint24): Likewise.
3638         * config/rx/rx.c (rx_get_stack_layout): Likewise.
3639
3640         * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
3641         behaviour.
3642
3643         * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
3644         left shift behaviour.
3645         * config/msp430/constraints.md ('L' constraint): Similarly.
3646         ('Ys' constraint): Similarly.
3647
3648 2015-09-29  Richard Biener  <rguenther@suse.de>
3649
3650         PR tree-optimization/67170
3651         * tree-ssa-alias.h (get_continuation_for_phi): Adjust
3652         the translate function pointer parameter to get the
3653         bool whether to disambiguate only by reference.
3654         (walk_non_aliased_vuses): Likewise.
3655         * tree-ssa-alias.c (maybe_skip_until): Adjust.
3656         (get_continuation_for_phi_1): Likewise.
3657         (get_continuation_for_phi): Likewise.
3658         (walk_non_aliased_vuses): Likewise.
3659         * tree-ssa-sccvn.c (const_parms): New bitmap.
3660         (vn_reference_lookup_3): Adjust for interface change.
3661         Disambiguate parameters pointing to readonly memory.
3662         (free_scc_vn): Free const_parms.
3663         (run_scc_vn): Initialize const_parms from a fn spec attribute.
3664
3665 2015-09-29  Richard Biener  <rguenther@suse.de>
3666
3667         PR tree-optimization/67741
3668         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
3669         builtin calls with correct signature.
3670
3671 2015-09-29  Ilya Enkovich  <enkovich.gnu@gmail.com>
3672
3673         PR target/65105
3674         * config/i386/i386.c: Include dbgcnt.h.
3675         (has_non_address_hard_reg): New.
3676         (convertible_comparison_p): New.
3677         (scalar_to_vector_candidate_p): New.
3678         (remove_non_convertible_regs): New.
3679         (scalar_chain): New.
3680         (scalar_chain::scalar_chain): New.
3681         (scalar_chain::~scalar_chain): New.
3682         (scalar_chain::add_to_queue): New.
3683         (scalar_chain::mark_dual_mode_def): New.
3684         (scalar_chain::analyze_register_chain): New.
3685         (scalar_chain::add_insn): New.
3686         (scalar_chain::build): New.
3687         (scalar_chain::compute_convert_gain): New.
3688         (scalar_chain::replace_with_subreg): New.
3689         (scalar_chain::replace_with_subreg_in_insn): New.
3690         (scalar_chain::emit_conversion_insns): New.
3691         (scalar_chain::make_vector_copies): New.
3692         (scalar_chain::convert_reg): New.
3693         (scalar_chain::convert_op): New.
3694         (scalar_chain::convert_insn): New.
3695         (scalar_chain::convert): New.
3696         (convert_scalars_to_vector): New.
3697         (pass_data_stv): New.
3698         (pass_stv): New.
3699         (make_pass_stv): New.
3700         (ix86_option_override): Created and register stv pass.
3701         (flag_opts): Add -mstv.
3702         (ix86_option_override_internal): Likewise.
3703         * config/i386/i386.md (SWIM1248x): New.
3704         (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
3705         (and<mode>3): Use SWIM1248x iterator instead of SWIM.
3706         (*anddi3_doubleword): New.
3707         (*zext<mode>_doubleword): New.
3708         (*zextsi_doubleword): New.
3709         (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
3710         (*<code>di3_doubleword): New.
3711         * config/i386/i386.opt (mstv): New.
3712         * dbgcnt.def (stv_conversion): New.
3713
3714 2015-09-29  Tom de Vries  <tom@codesourcery.com>
3715
3716         * tree-cfg.c (dump_function_to_file): Dump function attributes.
3717
3718 2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3719
3720         PR target/67716
3721         * config/sh/sh.c (sh_override_options_after_change): New.
3722         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
3723         (sh_option_override): Move align_loops, align_jumps and
3724         align_functions handling into sh_override_options_after_change.
3725
3726 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
3727
3728         * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
3729         (nvptx_record_offload_symbol): Record function execution geometry.
3730         * config/nvptx/mkoffload.c (process): Include launch geometry in
3731         function data.
3732         * omp-low.c (oacc_launch_pack): New.
3733         (replace_oacc_fn_attrib): New.
3734         (set_oacc_fn_attrib): New.
3735         (get_oacc_fn_attrib): New.
3736         (expand_omp_target): Create keyed varargs for GOACC_parallel call
3737         generation.
3738         * omp-low.h (get_oacc_fn_attrib): Declare.
3739         * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
3740         (DEF_FUNCTION_TYPE_VAR_11): Delete.
3741         * tree.h (OMP_CLAUSE_EXPR): New.
3742         * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
3743
3744 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
3745             Sebastian Pop  <s.pop@samsung.com>
3746
3747         * sese.c (invariant_in_sese_p_rec): Remove unused variable.
3748
3749 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
3750             Sebastian Pop  <s.pop@samsung.com>
3751
3752         * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
3753         * graphite-scop-detection.c (struct sese_l): New type.
3754         (get_entry_bb): API for getting entry bb of SESE.
3755         (get_exit_bb): API for getting exit bb of SESE.
3756         (class debug_printer): New type.  Simple printer in debug mode.
3757         (trivially_empty_bb_p): New.  Return true when BB is empty or
3758         contains only debug instructions.
3759         (graphite_can_represent_expr): Call scalar_evoution_in_region
3760         instead of analyze_scalar_evolution.  Pass in scop instead of only
3761         the scop entry.
3762         (stmt_has_simple_data_refs_p): Pass in scop instead of only the
3763         scop entry.
3764         (stmt_simple_for_scop_p): Same.
3765         (harmful_stmt_in_bb): Same.
3766         (graphite_can_represent_loop): Deleted.
3767         (struct scopdet_info): Deleted.
3768         (scopdet_basic_block_info): Deleted.
3769         (build_scops_1): Deleted.
3770         (bb_in_sd_region): Deleted.
3771         (find_single_entry_edge): Deleted.
3772         (find_single_exit_edge): Deleted.
3773         (create_single_entry_edge): Deleted.
3774         (sd_region_without_exit): Deleted.
3775         (create_single_exit_edge): Deleted.
3776         (unmark_exit_edges): Deleted.
3777         (mark_exit_edges): Deleted.
3778         (create_sese_edges): Deleted.
3779         (build_graphite_scops): Deleted.
3780         (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
3781         (build_scops): Use the new scop_builder to build scops.
3782         (dot_all_scops_1): Use the new pretty printer.  Print loop father
3783         as well.
3784         (loop_body_is_valid_scop): New.  Return true if loop body is a
3785         valid scop.
3786         (class scop_builder): New.  Builds SCoPs for polyhedral
3787         optimizations.
3788         (scop_builder): New constructor.
3789         (static sese_l invalid_sese): sese_l with invalid edges.
3790         (get_sese): Get an sese (from a loop) if possible, invalid_sese
3791         otherwise.
3792         (get_nearest_dom_with_single_entry): Get nearest dominator of a
3793         basic_block with single entry.  Return NULL if we get to the
3794         beginning of a function.
3795         (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
3796         a basic_block with single exit.  Return NULL if we get to the
3797         beginning of a function.
3798         (print_sese): Pretty-print SESE.
3799         (merge_sese): Merge two SESEs if possible and return the new SESE.
3800         (build_scop_depth): Start building the SCoP within a loop nest.
3801         (build_scop_breadth): Start building the SCoP at a single loop
3802         depth.  Merge adjacent SESEs if valid.
3803         (can_represent_loop_1): Returns true if Graphite can represent
3804         loop inside SCoP.  Helper for can_represent_loop.
3805         (can_represent_loop): Returns true if Graphite can represent LOOP
3806         and all its nested loops in SCoP.
3807         (loop_is_valid_scop): Returns true if LOOP and all its nests
3808         constitute a valid SCoP.
3809         (region_has_one_loop): Returns true of a region has only one loop.
3810         (add_scop): Add SCoP to the list of valid scops.  Removes an
3811         already existing scop if it intersects with or subsumed by this one.
3812         (harmful_stmt_in_region): Returns true if SCoP has any statment
3813         which cannot be represented by Graphite.
3814         (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
3815         (remove_subscops): Remove any SCoP from the list of already found
3816         SCoPs, if subsumed by S1.
3817         (intersects): Return true if region bounded by SCoPs S1 and S2
3818         intersect.
3819         (remove_intersecting_scops): Remove any SCoP which intersects with S1.
3820         * graphite.c (print_graphite_scop_statistics):
3821         (print_graphite_statistics): Print SCoP info while debugging.
3822         (graphite_initialize): Early exit in case number of loops in a
3823         function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
3824         basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
3825         (graphite_finalize):
3826         * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
3827         * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
3828         (recompute_all_dominators): Recalculate POST_DOMINATORS.
3829         * tree-cfg.c (print_loops): Print the function name while printing
3830         loops.
3831
3832 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
3833             Sebastian Pop  <s.pop@samsung.com>
3834
3835         PR tree-optimization/67700
3836         * graphite-sese-to-poly.c (parameter_index_in_region): Call
3837         invariant_in_sese_p_rec.
3838         (extract_affine): Same.
3839         (rewrite_cross_bb_scalar_deps): Call update_ssa.
3840         * sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
3841         * sese.h (invariant_in_sese_p_rec): Declare.
3842
3843 2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>
3844
3845         * doc/extend.texi (Asm Labels): Break out text for data vs functions.
3846
3847 2015-09-28  Jiong Wang  <jiong.wang@arm.com>
3848
3849         Revert:
3850         2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3851                     Jiong Wang  <jiong.wang@arm.com>
3852
3853         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
3854         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
3855         (REG_CLASS_NAMES): Likewise.
3856         (REG_CLASS_CONTENTS): Likewise.
3857         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
3858         (aarch64_register_move_cost): Likewise.
3859         (aarch64_load_symref_appropriately): Invoke the new added pattern if
3860         possible.
3861         * config/aarch64/constraints.md (Uc0): New constraint.
3862
3863 2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>
3864
3865         * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
3866
3867 2015-09-28  David Edelsohn  <dje.gcc@gmail.com>
3868
3869         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
3870         SECTION_EXCLUDE in XO mapping class.
3871
3872 2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
3873
3874         PR target/54236
3875         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
3876         and handle ne and eq codes.
3877         * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
3878         (sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
3879         CONST_INT_P.  Use reverse_condition.
3880         (sh_split_treg_set_expr): Likewise.
3881
3882 2015-09-28  James Greenhalgh  <james.greenhalgh@arm.com>
3883
3884         * config/arm/types.md (type): Add rotate_imm.
3885         * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
3886         ROR immediate case.
3887         (*rorsi3_insn_uxtw): Likewise.
3888         * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
3889         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
3890         * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
3891
3892 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3893
3894         PR rtl-optimization/67481
3895         * ifcvt.c (contains_ccmode_rtx_p): New function.
3896         (insn_valid_noce_process_p): Use it.
3897
3898 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3899
3900         PR rtl-optimization/67456
3901         PR rtl-optimization/67464
3902         PR rtl-optimization/67465
3903         * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
3904         move in the mode of x.  Handle combination of complex and simple
3905         block pairs as well as the case when one is empty.
3906
3907 2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3908
3909         * doc/gimple.texi: Update references to gimple_statement_base.
3910         * gdbhooks.py: Likewise.
3911         * gimple.h: Likewise.
3912
3913 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
3914
3915         * config/sparc/driver-sparc.c: map LEON to leon3
3916
3917 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
3918
3919         * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
3920           and make it inverse to change default
3921         * config/sparc/sync.md: Only use supervisor ASI for CASA when in
3922           supervisor mode
3923         * doc/invoke.texi: Document change of default
3924
3925 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
3926
3927         * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
3928         true on %f0 for a target without FPU.
3929         * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
3930         without FPU.
3931         (untyped_return): Do not load %f0 for a target without FPU.
3932
3933 2015-09-28  Andrew Pinski  <apinski@cavium.com>
3934
3935         * config/aarch64/aarch64.md (prefetch):
3936         Change the predicate of operand 0 to register_operand.
3937
3938 2015-09-27  Uros Bizjak  <ubizjak@gmail.com>
3939
3940         * config/i386/predicates.md (register_sse4nonimm_operand): New
3941         predicate.
3942         * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
3943         (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
3944         Use register_sse4nonimm_operand as operand 0 predicate.
3945         (*vec_extractv8hi_sse2): Remove insn pattern.
3946         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
3947         *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
3948
3949 2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
3950             Kaz Kojima  <kkojima@gcc.gnu.org>
3951
3952         PR target/67391
3953         * config/sh/sh-protos.h (sh_lra_p): Declare.
3954         * config/sh/sh.c (sh_lra_p): Make non-static.
3955         * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
3956         arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
3957         Expand into addsi3_scr if operands[2] if needed.
3958         (*addsi3_compact): Rename to *addsi3_compact_lra.  Use
3959         arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
3960         (addsi3_scr, *addsi3): New insn_and_split patterns.
3961
3962 2015-09-27  Alexandre Oliva <aoliva@redhat.com>
3963
3964         PR rtl-optimization/64164
3965         PR tree-optimization/67312
3966         PR middle-end/67340
3967         PR middle-end/67490
3968         PR bootstrap/67597
3969         * cfgexpand.c (parm_in_stack_slot_p): Remove.
3970         (ssa_default_def_partition): Remove.
3971         (get_rtl_for_parm_ssa_default_def): Remove.
3972         (set_rtl): Check that RTL assignments match expectations.
3973         Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
3974         default def location for params and results.  Record SSA names
3975         or types in REG and MEM attrs, respectively.
3976         (set_parm_rtl): New.
3977         (expand_one_ssa_partition): Drop logic that assigned MEMs with
3978         unassigned addresses.
3979         (adjust_one_expanded_partition_var): Don't accept NULL RTL on
3980         deferred stack alloc vars.
3981         (expand_used_vars): Skip partitions holding parm default defs.
3982         Move adjust_one_expanded_partition_var loop...
3983         (pass_expand::execute): ... here.  Drop redundant assert.
3984         Adjust comments before the final loop over all ssa names.
3985         Require assigned rtl of parms and results to match exactly.
3986         Reset its attributes to match them, not any other variables in
3987         the same partition.
3988         (expand_debug_expr): Use entry value for PARM's default defs
3989         only iff they have zero nondebug uses.
3990         * cfgexpand.h (parm_in_stack_slot_p): Remove.
3991         (get_rtl_for_parm_ssa_default_def): Remove.
3992         (set_parm_rtl): Declare.
3993         * doc/invoke.texi: Improve wording.
3994         * explow.c (promote_decl_mode): Fix promote_function_mode for
3995         result decls not by reference.
3996         (promote_ssa_mode): Disregard BLKmode from promote_decl, and
3997         bypass TYPE_MODE to get the actual vector mode.
3998         * function.c: Include tree-dfa.h.  Revert 2015-08-14's and
3999         2015-08-19's changes as follows.  Drop include of
4000         basic-block.h and df.h.
4001         (rtl_for_parm): Remove.
4002         (maybe_reset_rtl_for_parm): Remove.
4003         (parm_in_unassigned_mem_p): Remove.
4004         (use_register_for_decl): Add logic for RESULT_DECLs matching
4005         assign_parms' behavior.
4006         (split_complex_args): Revert.
4007         (assign_parms_augmented_arg_list): Revert.  Add comment
4008         referencing the logic above.
4009         (assign_parm_adjust_stack_rtl): Revert.
4010         (assign_parm_setup_block): Revert.  Use set_parm_rtl instead
4011         of SET_DECL_RTL.  Set up a REG if the parm demands so.
4012         (assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
4013         calls into a single set_parm_rtl.  Set up a temporary RTL
4014         temporarily for expand_assignment.
4015         (assign_parm_setup_stack): Revert.  Use set_parm_rtl.
4016         (assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
4017         (assign_bounds): Revert.
4018         (assign_parms): Revert.  Use set_parm_rtl.
4019         (allocate_struct_function): Relayout result and parms of
4020         non-abstruct functions.
4021         (expand_function_start): Revert.  Use set_parm_rtl.  If the
4022         result is not a hard reg, create a pseudo from the promoted
4023         mode of the default def.  Promote static chain mode.
4024         * tree-outof-ssa.c (remove_ssa_form): Drop unused
4025         partition_has_default_def.  Set up
4026         partitions_for_parm_default_defs.
4027         (finish_out_of_ssa): Remove partition_has_default_def.
4028         Release partitions_for_parm_default_defs.
4029         * tree-outof-ssa.h (struct ssaexpand): Remove
4030         partition_has_default_def.  Add
4031         partitions_for_parm_default_defs.
4032         * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
4033         stor-layout.h.
4034         (build_ssa_conflict_graph): Fix conflict-detection of default
4035         defs of even unused default defs of params and results.
4036         (for_all_parms): New.
4037         (create_default_def): New.
4038         (register_default_def): New.
4039         (coalesce_with_default): New.
4040         (create_outofssa_var_map): Create default defs for all parms
4041         and results, and register their partitions.  Add GIMPLE_RETURN
4042         operands as coalesce candidates with results.  Add default
4043         defs of each parm or result as coalesce candidates with its
4044         other defs.  Mark each result def, and each default def of
4045         parms, as used_in_copy.
4046         (gimple_can_coalesce_p): Call it.  Call use_register_for_decl
4047         with the ssa names, even anonymous ones.  Drop
4048         parm_in_stack_slot_p calls.  Require same signedness and
4049         alignment.
4050         (coalesce_ssa_name): Add coalesce candidates for all defs of
4051         each parm and result, even unused ones.
4052         (parm_default_def_partition_arg): New type.
4053         (set_parm_default_def_partition): New.
4054         (get_parm_default_def_partitions): New.
4055         * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
4056         * tree-ssa-live.c (partition_view_init): Regard unused defs of
4057         parms and results as used.
4058         (verify_live_on_entry): Don't error out just because they're
4059         not live.
4060
4061 2015-09-26  David Edelsohn  <dje.gcc@gmail.com>
4062
4063         * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
4064         (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
4065         (output_fde): Don't output length for debug_frame on AIX.
4066         (output_call_frame_info): Don't output length for debug_frame on AIX.
4067         (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
4068         HAVE_XCOFF_DWARF_EXTRAS.
4069         (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
4070         HAVE_XCOFF_DWARF_EXTRAS.
4071         (output_compilation_unit_header): Don't output length on AIX.
4072         (output_pubnames): Don't output length on AIX.
4073         (output_aranges): Delete argument. Compute length locally. Don't
4074         output length on AIX.
4075         (output_line_info): Don't output length on AIX.
4076         (dwarf2out_finish): Don't compute aranges_length.
4077         * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
4078         (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
4079         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
4080         symbol decoration for AIX.
4081         (rs6000_xcoff_debug_unwind_info): New.
4082         (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
4083         for SECTION_DEBUG.
4084         (rs6000_xcoff_declare_function_name): Emit different
4085         .function pseudo-op when DWARF2_DEBUG. Don't call
4086         xcoffout_declare_function for DWARF2_DEBUG.
4087         * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
4088         Redefine.
4089         * config/rs6000/aix71.h: New.
4090         * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
4091         locations support.
4092         * configure: Regenerate.
4093         * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
4094         DWARF support.
4095
4096 2015-09-26  Jeff Law  <law@redhat.com>
4097
4098         * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
4099         behaviour.
4100         * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
4101         behaviour.
4102
4103         * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
4104         behaviour
4105
4106         * config/mips/mips.c (mips_compute_frame_info): Fix left shift
4107         undefined behaviour.
4108
4109         * config/cris/cris.md (asrandb): Fix left shift undefined
4110         behaviour.
4111         (asrandw): Likewise.
4112
4113 2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>
4114
4115         PR target/61578
4116         * lra-constarints.c (match_reload): Check presence of the input pseudo
4117         in the output operand.
4118
4119 2015-09-25  Tobias Burnus  <burnus@net-b.de>
4120
4121         * doc/invoke.texi (-fsanitize): Minor wording tweak.
4122
4123 2015-09-25  Tobias Burnus  <burnus@net-b.de>
4124
4125         * doc/invoke.texi (-fsanitize): Update URLs.
4126
4127 2015-09-25  Teresa Johnson  <tejohnson@google.com>
4128
4129         * opts.c (finish_options): Unset -freorder-blocks-and-partition
4130         if not using profile.
4131
4132 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4133
4134         PR pretty-print/67567
4135         * pretty-print.c (pp_string): Add gcc_checking_assert.
4136         * pretty-print.h (output_buffer_append_r): Likewise.
4137
4138 2015-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
4139
4140         PR target/67675
4141         * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
4142         addr2 individually.  Don't emit logical or insn if one is known to
4143         be aligned approriately.
4144         (sh_expand_cmpnstr): Likewise.
4145
4146 2015-09-25  Richard Sandiford  <richard.sandiford@arm.com>
4147
4148         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
4149         __builtin_aarch64_fp[sc]r arguments into a register.
4150
4151 2015-09-25  H.J. Lu  <hongjiu.lu@intel.com>
4152
4153         * config.gcc (x86_archs): Replace lakemount with lakemont.
4154         (with_cpu): Likewise.
4155         (with_arch): Likewise.
4156         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
4157         PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
4158         __tune_lakemount__ with __tune_lakemont__.
4159         * config/i386/i386.c (lakemount_cost): Renamed to ...
4160         (lakemont_cost): This.
4161         (m_LAKEMOUNT): Renamed to ...
4162         (m_LAKEMONT): This.
4163         (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
4164         (processor_target_table): Replace "lakemount" with "lakemont".
4165         (processor_alias_table): Likewise.
4166         (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
4167         PROCESSOR_LAKEMONT.
4168         (ix86_adjust_cost): Likewise.
4169         (ia32_multipass_dfa_lookahead): Likewise.
4170         * config/i386/i386.h (processor_type): Likewise.
4171         * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
4172         * doc/invoke.texi: Replace lakemount with lakemont.  Replace
4173         Lakemount with Lakemont.
4174
4175 2015-09-24  H.J. Lu  <hongjiu.lu@intel.com>
4176
4177         * config.gcc (x86_archs): Replace iamcu with lakemount.
4178         (with_cpu): Likewise.
4179         (with_arch): Likewise.
4180         * doc/invoke.texi: Likewise.
4181         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
4182         PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
4183         __tune_iamcu__ with __tune_lakemount__.
4184         * config/i386/i386.c (iamcu_cost): Renamed to ...
4185         (lakemount_cost): This.
4186         (m_IAMCU): Renamed to ...
4187         (m_LAKEMOUNT): This.
4188         (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
4189         (processor_target_table): Replace "iamcu" with "lakemount".
4190         (processor_alias_table): Likewise.
4191         (ix86_issue_rate): Replace PROCESSOR_IAMCU with
4192         PROCESSOR_LAKEMOUNT.
4193         (ix86_adjust_cost): Likewise.
4194         (ia32_multipass_dfa_lookahead): Likewise.
4195         * config/i386/i386.h (processor_type): Likewise.
4196         * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
4197
4198 2015-09-24  John David Anglin  <danglin@gcc.gnu.org>
4199
4200         * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
4201         * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
4202         Declare.
4203         * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
4204         (pa_expand_compare_and_swap_loop): New.
4205         (pa_maybe_emit_compare_and_swap_exchange_loop): New.
4206         * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
4207         atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
4208         (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
4209         (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
4210         Revise.
4211
4212 2015-09-24  Michael Collison  <michael.collison@linaro.org>
4213
4214         PR other/57195
4215         * read-md.c (read_name): Allow mode iterators inside angle
4216         brackets in rtl expressions.
4217
4218 2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>
4219
4220         PR target/61578
4221         * ira-color.c (update_allocno_cost): Add parameter.
4222         (update_costs_from_allocno): Decrease conflict cost.  Pass the new
4223         parameter.
4224
4225 2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4226
4227         PR driver/67640
4228         * opts-common.c (prune_options): Discard all -fdiagnostics-color
4229         but the last one, which is moved to the front to be processed
4230         first.
4231         * opts.c (enable_warning_as_error): Reject options that do not
4232         control warnings.
4233
4234 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
4235
4236         * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
4237
4238 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
4239
4240         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
4241         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
4242         (aarch64_cannot_force_const_mem): Likewise.
4243         (aarch64_classify_address): Likewise.
4244         (aarch64_classify_symbolic_expression): Likewise.
4245         (aarch64_print_operand): Likewise.
4246         (aarch64_classify_symbol): Likewise.
4247         (aarch64_mov_operand_p): Likewise.
4248         * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
4249         (aarch64_mov_operand): Likewise.
4250
4251 2015-09-24  Segher Boessenkool  <segher@kernel.crashing.org>
4252
4253         * config/rs6000/rs6000.c (debug_stack_info): Invert the test
4254         for info->spe_gp_size.
4255
4256 2015-09-24  Richard Biener  <rguenther@suse.de>
4257
4258         PR lto/67699
4259         * lto-cgraph.c (compute_ltrans_boundary): Do not stream
4260         abstract origins.
4261
4262 2015-09-24  Thomas Schwinge  <thomas@codesourcery.com>
4263
4264         * tree-object-size.c (plus_stmt_object_size)
4265         (cond_expr_object_size): Change the formal parameters from gimple
4266         to gimple *.
4267         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
4268         * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
4269         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
4270
4271 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4272
4273         * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
4274         Check for ld -type pie on Solaris 11.x and 12.
4275         * configure: Regenerate.
4276         * config.in: Regenerate.
4277
4278         * gcc.c (LD_PIE_SPEC): Allow redefinition.
4279
4280         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
4281         (STARTFILE_SPEC): Use it.
4282         (ENDFILE_CRTEND_SPEC): Define.
4283         (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
4284         (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
4285         ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
4286         [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
4287         (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
4288         * config/i386/sol2.h (ENDFILE_SPEC): Remove.
4289         (ENDFILE_ARCH_SPEC): Define.
4290         * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
4291
4292 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4293
4294         * configure.ac (gcc_cv_solaris_crts): New test.
4295         * configure. Regenerate.
4296         * config.in: Regenerate.
4297         * config/sol2.h (STARTFILE_SPEC): Simplify, provide
4298         HAVE_SOLARIS_CRTS variant.
4299
4300 2015-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4301
4302         * tree-inline.h (count_insns_seq): Delete prototype.
4303         (estimate_num_insns_seq): Define prototype.
4304         * tree-inline.c (count_insns_seq): Delete.
4305         (estimate_num_insns_seq): Remove static qualifier.
4306         * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
4307         with estimate_num_insns_seq.
4308
4309 2015-09-24  Richard Biener  <rguenther@suse.de>
4310
4311         * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
4312         members.
4313         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
4314         and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
4315         offset.
4316         (ao_ref_init_from_vn_reference): Record clique and base in the
4317         built base.
4318         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
4319
4320 2015-09-24  Richard Biener  <rguenther@suse.de>
4321
4322         PR tree-optimization/48885
4323         * tree-ssa-structalias.c (visit_loadstore): Handle default defs
4324         as not including any restrict tags from other pointers.
4325
4326 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
4327
4328         * gcc.c (handle_foffload_option): Don't lose the trailing NUL
4329         character when appending to offload_targets.
4330
4331         * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
4332         offload targets by commas, not colons.
4333         * config.in: Regenerate.
4334         * configure: Likewise.
4335         * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
4336         instead of setting up the default offload targets here...
4337         (process_command): ..., do it here.
4338         libgomp/
4339         * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
4340         targets are separated by commas.
4341         * config.h.in: Regenerate.
4342
4343 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
4344             Nathan Sidwell  <nathan@codesourcery.com>
4345
4346         * omp-low.h (omp_reduction_init_op): Declare.
4347         * omp-low.c (omp_reduction_init_op): New, broken out of ...
4348         (omp_reduction_init): ... here.  Call it.
4349         * tree-parloops.c (initialize_reductions): Use
4350         omp_reduction_init_op.
4351
4352 2015-09-23   Richard Biener  <rguenther@suse.de>
4353
4354         PR middle-end/67662
4355         * fold-const.c (fold_binary_loc): Do not reassociate two vars with
4356         undefined overflow unless they will cancel out.
4357
4358 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4359
4360         * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
4361         insn emit.
4362
4363 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4364
4365         PR c/49655
4366         * opts.h (write_langs): Declare.
4367         * opts-global.c (write_langs): Make it extern.
4368
4369 2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>
4370
4371         PR target/67391
4372         * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
4373         overlapping regs when matching the pattern.
4374
4375 2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
4376
4377         * config/aarch64/aarch64-simd.md
4378         (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
4379         (aarch64_float_truncate_hi_v4sf_le): New.
4380         (aarch64_float_truncate_hi_v4sf_be): Likewise.
4381
4382 2015-09-23  Richard Biener  <rguenther@suse.de>
4383
4384         * tree-ssa-structalias.c (intra_create_variable_infos): Build
4385         representatives for all restrict qualified pointer destinations.
4386
4387 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4388
4389         * config/i386/i386.md (define_code_attr mshift): New.
4390         (define_mode_iterator SWI1248_AVX512BW): Rename ...
4391         (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
4392         only.
4393         (define_insn "*k<logic><mode>"): Use new iterator name.
4394         (define_insn "*<mshift><mode>3"): New.
4395
4396 2015-09-23  Mikhail Maltsev  <maltsevm@gmail.com>
4397
4398         PR middle-end/67649
4399         * memory-block.h (memory_block_pool::allocate): Use valgrind API to
4400         mark the block as accessible.
4401
4402 2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>
4403
4404         * function.c (thread_prologue_and_epilogue_insns): Delete
4405         orig_entry_edge argument to try_shrink_wrapping.
4406         * shrink-wrap.c (can_get_prologue): New function.
4407         (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
4408         (try_shrink_wrapping): Delete orig_entry_edge argument.  Use
4409         can_get_prologue where needed.  Remove code that finds a single
4410         edge for the prologue.  Remove code that tests if any reg clobbered
4411         by the prologue is live on the prologue edge.  Remove code that finds
4412         the new prologue edge after duplicating blocks.  Make a new prologue
4413         block and edge.
4414         * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
4415
4416 2015-09-22  Jeff Law  <law@redhat.com>
4417
4418         * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
4419         behavior.
4420
4421 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
4422
4423         * doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
4424         -Wtemplates, -Wnamespaces): Document.
4425
4426 2015-09-22  Tom de Vries  <tom@codesourcery.com>
4427
4428         PR tree-optimization/67671
4429         * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
4430         pointer references as restrict.
4431
4432 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
4433
4434         * config/nios2/nios2.c (nios2_legitimize_address): When handling
4435         'reg + reloc' cases, allow first operand to be non-REG, and use
4436         force_reg() to enforce address pattern.
4437
4438 2015-09-22  Alexander Fomin <alexander.fomin@intel.com>
4439
4440         PR target/67480
4441         * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
4442         (define_mode_iterator VI12_AVX_AVX512F): New.
4443         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
4444         all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
4445         (define_insn "*<code><mode>3"): ... Into new pattern using
4446         VI12_AVX_AVX512F iterators without masking.
4447
4448 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4449
4450         * config.gcc: Support "skylake-avx512".
4451         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4452         PROCESSOR_SKYLAKE_AVX512.
4453         * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
4454         (processor_target_table): Add "skylake-avx512".
4455         (PTA_SKYLAKE_AVX512): Define.
4456         (ix86_option_override_internal): Add "skylake_avx512".
4457         (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
4458         F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
4459         * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
4460         (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
4461         * doc/invoke.texi (skylake-avx512): New.
4462
4463 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4464
4465         * gcc/config/i386/i386.md (define_insn "kunpckhi"): Fix
4466         operand in pattern.
4467         (define_insn "kunpcksi"): Ditto.
4468         (define_insn "kunpckdi"): Ditto.
4469
4470 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4471
4472         * gcc/config/i386/i386.md (define_split not/xor SWI1248x): Use
4473         iterator instead of fixed modes.
4474
4475 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4476
4477         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
4478         Adjust declaration.
4479         * config/aarch64/aarch64.c (aarch64_emit_bic): New.
4480         (aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
4481         out_result.  Update to support update-fetch operations.
4482         * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
4483         Adjust for change to aarch64_gen_atomic_ldop.
4484         (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
4485         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
4486         (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
4487         (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
4488         (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
4489
4490 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4491
4492         * config/aarch64/aarch64-protos.h
4493         (aarch64_atomic_ldop_supported_p): Declare.
4494         * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
4495         (enum aarch64_atomic_load_op_code): New.
4496         (aarch64_emit_atomic_load_op): New.
4497         (aarch64_gen_atomic_ldop): Update to support load-operate
4498         patterns.
4499         * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
4500         to an expander.
4501         (aarch64_atomic_<atomic_optab><mode>): New.
4502         (aarch64_atomic_<atomic_optab><mode>_lse): New.
4503         (atomic_fetch_<atomic_optab><mode>): Change to an expander.
4504         (aarch64_atomic_fetch_<atomic_optab><mode>): New.
4505         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
4506
4507 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4508
4509         * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
4510         (UNSPECV_ATOMIC_LDOP_OR): New.
4511         (UNSPECV_ATOMIC_LDOP_BIC): New.
4512         (UNSPECV_ATOMIC_LDOP_XOR): New.
4513         (UNSPECV_ATOMIC_LDOP_PLUS): New.
4514         (ATOMIC_LDOP): New.
4515         (atomic_ldop): New.
4516         (aarch64_atomic_load<atomic_ldop><mode>): New.
4517
4518 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4519
4520         * config/aarch64/aarch64.md
4521         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
4522         pattern.
4523
4524 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4525
4526         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
4527         Declare.
4528         * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
4529         (aarch64_gen_atomic_ldop): New.
4530         (aarch64_split_atomic_op): Fix whitespace and add a comment.
4531         * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
4532         (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
4533         (atomic_exchange<mode>): Replace with an expander.
4534         (aarch64_atomic_exchange<mode>): New.
4535         (aarch64_atomic_exchange<mode>_lse): New.
4536         (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
4537         (aarch64_atomic_swp<mode>): New.
4538
4539 2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4540
4541         * tree-inline.c (expand_call_inline): Use inform for extra note.
4542         Do not give a note with UNKNOWN_LOCATION.
4543         Replace input_location with gimple_location (stmt).
4544         Use true/false instead of TRUE/FALSE.
4545
4546 2015-09-22  Tom de Vries  <tom@codesourcery.com>
4547
4548         PR tree-optimization/67666
4549         * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
4550         with single field non-conservative.
4551
4552 2015-09-21  David S. Miller  <davem@davemloft.net>
4553
4554         PR/67622
4555         Revert:
4556         2015-09-11  David S. Miller  <davem@davemloft.net>
4557
4558         * config/sparc/constraints.md: Make "U" constraint a real register
4559         constraint.
4560         * config/sparc/sparc.c (TARGET_LRA_P): Define.
4561         (D_MODES, DF_MODES): Add missing cast.
4562         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
4563         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
4564         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
4565         cost to 8.
4566         * config/sparc/sparc.h (PROMOTE_MODE): Define.
4567         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
4568         provide these insn when flag_pic.
4569
4570         2015-09-17  David S. Miller  <davem@davemloft.net>
4571
4572         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
4573         Declare.
4574         * config/sparc/sparc.c (sparc_secondary_memory_needed): New
4575         function.
4576         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
4577         (HARD_REGNO_CALLER_SAVE_MODE): Define.
4578         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
4579         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
4580         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
4581         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
4582         provide when flag_pic.
4583
4584 2015-09-21  Jeff Law  <law@redhat.com>
4585
4586         * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
4587         behavior.
4588
4589 2015-09-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4590
4591         * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
4592
4593 2015-09-21  Richard Biener  <rguenther@suse.de>
4594
4595         * passes.c (rest_of_decl_compilation): Do not call
4596         dwarf2out_early_global_decl for aliases.
4597
4598 2015-09-21  Richard Biener  <rguenther@suse.de>
4599
4600         PR debug/67664
4601         * dwarf2out.c (add_location_or_const_value_attribute): Remove
4602         attribute parameter.  Early exit if either DW_AT_const_value
4603         or DW_AT_location are present already.
4604         (gen_variable_die): Adjust caller.
4605         (dwarf2out_late_global_decl): Likewise.
4606
4607 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
4608
4609         PR target/67657
4610         * config/sh/sh.c (sh_remove_overlapping_post_inc,
4611         sh_peephole_emit_move_insn): Add new functions.
4612         * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
4613         sh_peephole_emit_move_insn): Declere them.
4614         * config/sh/sh.md: Use them in various peephole2 patterns.
4615
4616 2015-09-21  Richard Biener  <rguenther@suse.de>
4617
4618         PR middle-end/67651
4619         * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
4620         address with -fno-delete-null-pointer-checks.
4621
4622 2015-09-21  Alan Lawrence  <alan.lawrence@arm.com>
4623
4624         * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
4625         (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
4626         (reduc_uplus_v16qi): Remove.
4627
4628         * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
4629         (reduc_<VEC_reduc_name>_v2df): Remove.
4630         (reduc_<VEC_reduc_name>_v4sf): Remove.
4631         (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
4632
4633         * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
4634         gen_ function by removing * prefix.
4635         (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
4636
4637 2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4638
4639         PR middle-end/60832
4640         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
4641         Print i_bound without converting it to a tree.
4642
4643 2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>
4644
4645         * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
4646         operands[4] operands[5] swap with std::swap, removed tmp variable.
4647         (arm_evpc_neon_vzip): Replaced in0/in1 and
4648         out0/out1 swaps with std::swap, removed x variable.
4649         (arm_evpc_neon_vtrn): Replaced in0/int1 and
4650         out0/out1 swaos with std::swap, removed x variable.
4651         (arm_expand_vec_perm_const_1): Replaced
4652         d->op0/d->op1 swap with std::swap, removed x variable.
4653         (arm_evpc_neon_vuzp): Replaced in0/in1 and
4654         out0/out1 swaps with std::swap, removed x variable.
4655
4656 2015-09-21  Jonathan Yong  <10walls@gmail.com>
4657
4658         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
4659         sysroot/usr/lib/32api for additional win32 libraries,
4660         fixes failing Cygwin bootstrapping.
4661
4662 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
4663
4664         * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
4665
4666 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
4667
4668         PR target/67126
4669         * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
4670         (*mov_t_msb_neg): Rewrite negc pattern.
4671
4672 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4673
4674         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
4675         immediate generation code.
4676
4677 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4678
4679         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
4680         redundant immediate generation code.
4681
4682 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4683
4684         * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
4685         (AARCH64_NUM_BITMASKS): Remove.
4686         (aarch64_bitmasks_cmp): Remove.
4687         (aarch64_build_bitmask_table): Remove.
4688
4689 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4690
4691         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
4692         slow immediate matching loops with a faster algorithm.
4693
4694 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4695
4696         * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
4697         faster algorithm.
4698
4699 2015-09-20  Jeff Law  <law@redhat.com>
4700
4701         PR tree-optimization/47679
4702         * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
4703         * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
4704         * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
4705         (thread_through_normal_block): Use record_temporary_equivalences.
4706
4707 2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
4708
4709         * coretypes.h (gimple): Change typedef to be a forward declaration.
4710         * gimple.h (gimple_statement_base): rename to gimple.
4711         * (all functions and types using gimple): Adjust.
4712         * *.[ch]: Likewise.
4713
4714 2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
4715             David Edelsohn  <dje.gcc@gmail.com>
4716
4717         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
4718         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
4719         (EH_FRAME_THROUGH_COLLECT2): Define.
4720         (EH_TABLES_CAN_BE_READ_ONLY): Define.
4721         (ASM_OUTPUT_DWARF_PCREL): Define.
4722         (ASM_OUTPUT_DWARF_DATAREL): Define.
4723
4724 2015-09-19  John David Anglin  <danglin@gcc.gnu.org>
4725
4726         * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
4727         of TARGET_ELF32.
4728
4729 2015-09-18  Jeff Law  <law@redhat.com>
4730
4731         PR tree-optimization/47679
4732         * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
4733         it here ...
4734         (dom_opt_dom_walker): New private member holding the avail_exprs_stack
4735         object.  Update constructor.
4736         (pass_dominator::execute):  Corresponding chagnes to declaration
4737         and initialization of avail_exprs_stack.  Update constructor call
4738         for dom_opt_dom_walker object.
4739         (lookup_avail_expr, record_cond): Accept additional argument.  Pass
4740         it down to children as needed.
4741         (record_equivalences_from_incoming_edge): Likewise.
4742         (eliminate_redundant_computations): Likewise.
4743         (record_equivalences_from_stmt): Likewise.
4744         (simplify_stmt_for_jump_threading): Likewise.
4745         (record_temporary_equivalences): Likewise.
4746         (optimize_stmt): Likewise.
4747         (dom_opt_dom_walker::thread_across_edge): Update access to
4748         avail_exprs_stack object and pass it to children as needed.
4749         (dom_opt_dom_walker::before_dom_children): Similarly.
4750         (dom_opt_dom_walker::after_dom_children): Similarly.
4751         * tree-ssa-threadedge.c (pfn_simplify): New typedef.
4752         (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
4753         Add avail_expr_stack argument.  Pass it to children as needed.
4754         (dummy_simplify): Likewise.
4755         (simplify_control_stmt_condition): Likewise.
4756         (thread_around_empty_blocks): Likewise.
4757         (thread_through_normal_block): Likewise.
4758         (thread_across_edge): Likewise.
4759         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
4760         * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
4761
4762         PR tree-optimization/47679
4763         * tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
4764         it here ...
4765         (dom_opt_dom_walker): New private member holding the const_and_copies
4766         object.  Update constructor.
4767         (pass_dominator::execute): Corresponding changes to declaration
4768         and initialization of const_and_copies.  Update constructor call
4769         for the dom_opt_dom_walker object.
4770         (record_temporary_equivalences): Accept const_and_copies argument
4771         pass it down to children as needed.
4772         (record_equality): Likewise.
4773         (record_equivalences_from_incoming_edge): Likewise.
4774         (cprop_into_successor_phis, optimize_stmt): Likewise.
4775         (eliminate_redundant_computations): Likewise.
4776         (dom_opt_dom_walker::thread_across_edge): Update access to
4777         const_and_copies object and pass it to children as needed.
4778         (dom_opt_dom_walker::before_dom_children): Similarly.
4779         (dom_opt_dom_walker::after_dom_children): Similarly.
4780
4781         PR tree-optimization/47679
4782         * tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
4783         it into the avail_exprs_stack class.
4784         (pass_dominator::execute): Corresponding changes to declaration
4785         and initialization of avail_exprs.  Pass avail_exprs to
4786         dump_dominator_optimization_stats.
4787         (record_cond): Extract avail_exprs from avail_exprs_stack.
4788         (lookup_avail_expr): Similarly.
4789         (htab_staticstics): Remove unnecessary prototype.  Move to earlier
4790         position in file.
4791         (dump_dominator_optimization_stats): Make static and prototype.
4792         Add argument for the hash table to dump.
4793         (debug_dominator_optimization_stats): Remove.
4794         * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
4795         prototype.
4796         (debug_dominator_optimization_stats): Similarly.
4797         * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
4798         "void" in prototype for pop_to_marker method.  Add accessor method
4799         for the underlying avail_exprs table.
4800
4801         * tree-ssa-threadedge.c: Remove trailing whitespace.
4802
4803 2014-09-18  John David Anglin  <danglin@gcc.gnu.org>
4804
4805         * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
4806         unsigned.
4807         (pa_ldil_cint_p): Likewise.
4808         * config/pa/pa.c (pa_cint_ok_for_move): likewise.
4809         (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
4810         Update callers.
4811         * config/pa/pa.md: Likewise.
4812
4813 2015-09-18  David Malcolm  <dmalcolm@redhat.com>
4814
4815         * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
4816         * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
4817         (diagnostic_show_locus): Likewise.
4818         (diagnostic_print_caret_line): Likewise.
4819         * diagnostic-show-locus.c: New file.
4820
4821 2015-09-18  David Edelsohn  <dje.gcc@gmail.com>
4822
4823         * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
4824         "back" parameter. Declare label in #if block.
4825
4826 2015-09-18  Uros Bizjak  <ubizjak@gmail.com>
4827
4828         PR middle-end/67619
4829         * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
4830         the address to a register.
4831
4832 2015-09-18  Jeff Law  <law@redhat.com>
4833
4834         PR tree-optimization/47679
4835         * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
4836         * tree-ssa-dom.c: Remove unnecessary header includes.
4837         (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
4838         (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
4839         (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
4840         (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
4841         (pass_phi_only_cprop::execute): Likewise.
4842         (make_pass_phi_only_cprop): Likewise.
4843         * tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
4844         uses of file scoped statics by passing the required objects
4845         as parameters wherever needed.
4846
4847 2015-09-18  Andrew Dixie  <andrewd@gentrack.com>
4848             David Edelsohn  <dje.gcc@gmail.com>
4849
4850         * defaults.h (EH_FRAME_SECTION_NAME): Depend on
4851         EH_FRAME_THROUGH_COLLECT2.
4852         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
4853         DW_EH_PE_datarel.
4854         * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
4855         even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
4856         collect2 labels to EH_FRAME_THROUGH_COLLECT2.
4857         * except.c (switch_to_exception_section): Use a read-only section
4858         even if EH_FRAME_SECTION_NAME is undefined.
4859         * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
4860         * collect2.c (write_c_file_stat): Provide dbase on AIX.
4861         (scan_prog_file): Don't export __dso_handle nor
4862         __gcc_unwind_dbase.
4863         * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
4864         (EH_TABLES_CAN_BE_READ_ONLY): Define.
4865         (ASM_OUTPUT_DWARF_PCREL): Define.
4866         (ASM_OUTPUT_DWARF_DATAREL): Define.
4867         (EH_FRAME_THROUGH_COLLECT2): Define.
4868         (EH_FRAME_IN_DATA_SECTION): Delete.
4869         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
4870         * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
4871         Declare.
4872         (rs6000_asm_output_dwarf_datarel): Declare.
4873         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
4874         (rs6000_aix_asm_output_dwarf_datarel): New.
4875         (rs6000_xcoff_asm_init_sections): Don't set exception_section.
4876         * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
4877         (EH_FRAME_THROUGH_COLLECT2): Define.
4878         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
4879         (EH_FRAME_THROUGH_COLLECT2): Define.
4880         (EH_TABLES_CAN_BE_READ_ONLY): Define.
4881         * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
4882         (EH_FRAME_THROUGH_COLLECT2): New.
4883         (ASM_OUTPUT_DWARF_DATAREL): New.
4884         * doc/tm.texi: Regenerate.
4885
4886 2015-09-18  Richard Biener  <rguenther@suse.de>
4887
4888         * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
4889         we're in early phase.
4890         (schedule_generic_params_dies_gen): Likewise.
4891         (gen_remaining_tmpl_value_param_die_attribute): Do only as much
4892         work as possible, retaining unhandled cases.
4893         (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
4894         clear out generic_type_instances at the end.
4895         (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
4896         (dwarf2out_early_finish): ... here.  Do most of
4897         gen_remaining_tmpl_value_param_die_attribute here.
4898
4899 2015-09-18  Alan Lawrence  <alan.lawrence@arm.com>
4900
4901         PR tree-optimization/67283
4902         * tree-sra.c (type_consists_of_records_p): Rename to...
4903         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
4904         (completely_scalarize_record): Rename to...
4905         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
4906         (scalarize_elem): New.
4907         (analyze_all_variable_accesses): Follow renamings.
4908
4909 2015-09-18  Richard Biener  <rguenther@suse.de>
4910
4911         * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
4912         in early-dwarf.
4913
4914 2015-09-18  Richard Biener  <rguenther@suse.de>
4915
4916         PR tree-optimization/66142
4917         * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
4918         treat MEM[&x] and x the same.
4919         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
4920         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
4921         when we simplified sth.
4922         (vn_reference_maybe_forwprop_address): Likewise.
4923         (valueize_refs_1): When we simplified through
4924         vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
4925         set valueized_anything to true.
4926         (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
4927         one ref kills the other instead of just a offset-based test.
4928         * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
4929         for the operand_equal_p test to compare bases and also compare
4930         sizes.
4931
4932 2015-09-17  Christian Bruel  <christian.bruel@st.com>
4933
4934         * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
4935
4936 2015-09-17  Richard Henderson  <rth@redhat.com>
4937
4938         PR libstdc++/65913
4939         * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
4940         pointers that encode the alignment of the object.
4941
4942 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
4943
4944         PR rtl-optimization/66790
4945         * df-problems.c (LIVE): Amend documentation.
4946
4947 2015-09-17  Richard Sandiford  <richard.sandiford@arm.com>
4948
4949         * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
4950         and optabs-tree.o.
4951         (GTFILES): Replace optabs.c with optabs-libfunc.c.
4952         * genopinit.c (main): Add an include guard to insn-opinit.h.
4953         Protect the rtx_code parts with NUM_RTX_CODE.
4954         * optabs.h: Split parts out to...
4955         * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
4956         * optabs.c: Split parts out to...
4957         * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
4958         * cilk-common.c: Include optabs-query.h rather than optabs.h.
4959         * fold-const.c: Likewise.
4960         * target-globals.c: Likewise.
4961         * tree-if-conv.c: Likewise.
4962         * tree-ssa-forwprop.c: Likewise.
4963         * tree-ssa-loop-prefetch.c: Likewise.
4964         * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
4965         Remove unncessary include files.
4966         * tree-ssa-phiopt.c: Likewise.
4967         * tree-ssa-reassoc.c: Likewise.
4968         * tree-switch-conversion.c: Likewise.
4969         * tree-vect-data-refs.c: Likewise.
4970         * tree-vect-generic.c: Likewise.
4971         * tree-vect-loop.c: Likewise.
4972         * tree-vect-patterns.c: Likewise.
4973         * tree-vect-slp.c: Likewise.
4974         * tree-vect-stmts.c: Likewise.
4975         * tree-vrp.c: Likewise.
4976         * toplev.c: Include optabs-query.h and optabs-libfuncs.h
4977         rather than optabs.h.
4978         * expr.c: Include optabs-tree.h.
4979         * function.c: Likewise.
4980
4981 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
4982
4983         PR middle-end/65958
4984         * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
4985         * config/arm/arm-protos.h (output_probe_stack_range): Declare.
4986         * config/arm/arm.c: Include common/common-target.h.
4987         (use_return_insn): Return 0 if the static chain register was saved
4988         above a non-APCS frame.
4989         (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
4990         (struct scratch_reg): New.
4991         (get_scratch_register_on_entry): New function.
4992         (release_scratch_register_on_entry): Likewise.
4993         (arm_emit_probe_stack_range): Likewise.
4994         (output_probe_stack_range): Likewise.
4995         (arm_expand_prologue): Factor out code dealing with the IP register
4996         for nested function and adjust it for stack checking.
4997         Invoke arm_emit_probe_stack_range if static builtin stack checking
4998         is enabled.
4999         (thumb1_expand_prologue): Sorry out if static builtin stack checking
5000         is enabled.
5001         (arm_expand_epilogue): Add the saved static chain register, if any, to
5002         the amount of pre-pushed registers to pop.
5003         (arm_frame_pointer_required): Return true if static stack checking is
5004         enabled and we want to catch the exception with the EABI unwinder.
5005         * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
5006         (UNSPEC_PROBE_STACK_RANGE): Likewise.
5007         * config/arm/arm.md (probe_stack): New insn.
5008         (probe_stack_range): Likewise.
5009
5010 2015-09-17  Richard Biener  <rguenther@suse.de>
5011
5012         * genmatch.c (parser::parse_expr): Improve error message
5013         for mis-placed flags.
5014
5015 2015-09-17  Richard Biener  <rguenther@suse.de>
5016
5017         * passes.c (rest_of_decl_compilation): Always call early_global_decl
5018         debug hook when we created a varpool node.
5019         * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
5020         dwarf2out_early_global_decl, when not just add location or
5021         value attributes to existing DIEs.
5022
5023 2015-09-17  James Greenhalgh  <james.greenhalgh@arm.com>
5024
5025         * config/aarch64/aarch64.md (copysigndf3): New.
5026         (copysignsf3): Likewise.
5027
5028 2015-09-17  David S. Miller  <davem@davemloft.net>
5029
5030         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
5031         * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
5032         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
5033         (HARD_REGNO_CALLER_SAVE_MODE): Define.
5034         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
5035         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
5036         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
5037         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
5038         provide when flag_pic.
5039
5040 2015-09-17  Kaz Kojima  <kkojima@gcc.gnu.org>
5041
5042         * config/sh/sh.c (label_ref_list_d_pool): Adjust to
5043         object_allocator change.
5044
5045 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
5046
5047         PR tree-optimization/66388
5048         * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
5049         (dump_iv): Dump no_overflow information.
5050         (alloc_iv): Initialize new field for struct iv.
5051         (mark_bivs): Count number of no_overflow bivs.
5052         (find_deriving_biv_for_expr, record_biv_for_address_use): New
5053         functions.
5054         (idx_find_step): Call new functions above.
5055         (add_candidate_1, add_candidate): New paramter.
5056         (add_iv_candidate_for_biv): Add sizetype cand for BIV.
5057         (get_computation_aff): Simplify convertion of cand for BIV.
5058         (get_computation_cost_at): Step cand's base if necessary.
5059
5060 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
5061
5062         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
5063         parameter.
5064         (tree_simplify_using_condition): Ditto.
5065         (simplify_using_initial_conditions): Ditto.
5066         (loop_exits_before_overflow): Pass new argument to function
5067         simplify_using_initial_conditions.  Remove case for type conversions
5068         simplification.
5069         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
5070         parameter.
5071         * tree-scalar-evolution.c (simple_iv): Simplify type conversions
5072         in iv base using loop initial conditions.
5073
5074 2015-09-16  Jeff Law  <law@redhat.com>
5075
5076         PR tree-optimization/47679
5077         * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
5078         (free_all_edge_infos): Use it.
5079         (allocate_edge_info): Free preexisting edge info data.
5080         (pass_dominator::execute): Set up initial edge info structures.
5081         (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
5082         thread_across_edge.
5083         * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
5084         If non-null, then push/pop markers appropriately.
5085         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
5086         * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
5087         thread-across_edge.
5088
5089 2015-09-16  James Bowman  <james.bowman@ftdichip.com>
5090
5091         * config/ft32/ft32.c: Fix the memory address space predicate.
5092
5093 2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
5094
5095         PR target/67573
5096         * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
5097         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
5098
5099 2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5100
5101         * toplev.h (check_global_declaration): Remove declaration.
5102         * toplev.c (check_global_declaration): Move to ...
5103         * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
5104         (analyze_functions): Update call.
5105
5106 2015-09-16  David S. Miller  <davem@davemloft.net>
5107
5108         * lra-constraints.c (simplify_operand_subreg): Do not assume that
5109         lowpart of a SUBREG has offset zero.
5110
5111 2015-09-16  Jeff Law  <law@redhat.com>
5112
5113         PR tree-optimization/47679
5114         * tree-ssa-dom.c (enum expr_kind): Moved from here to
5115         tree-ssa-scopedtables.h.
5116         (struct hashable_expr, class expr_hash_elt): Likewise.
5117         (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
5118         Move associated methods into tree-ssa-scopedtables.c.
5119         (avail_expr_hash, initialize_expr_from_cond): Similarly.
5120         (hashable_expr_equal_p, add_expr_commutative): Likewise.
5121         (add_hashable_expr): Likewise.
5122         (record_cond): Delete element directly.
5123         * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
5124         private copy ctor and assignment operator methods.
5125         (expr_elt_hasher): Inline trivial methods.
5126         (initialize_expr_from_cond): Prototype.
5127         * tree-ssa-scopedtables.c: Add necessary includes, functions and
5128         methods that were previously in tree-ssa-dom.c.  Improve various
5129         comments.
5130
5131 2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>
5132
5133         * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
5134
5135 2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>
5136
5137         PR bootstrap/67587
5138         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
5139         fixup_partitions.
5140
5141 2015-09-16  Richard Biener  <rguenther@suse.de>
5142
5143         PR middle-end/67253
5144         * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
5145         location of possibly shared trees.
5146
5147 2015-09-16  Richard Biener  <rguenther@suse.de>
5148
5149         PR middle-end/67271
5150         * fold-const.c (native_encode_expr): Bail out on bogus offsets.
5151
5152 2015-09-16  Eric Botcazou  <ebotcazou@adacore.com>
5153
5154         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
5155         offset and size computations instead of HOST_WIDE_INT.
5156
5157 2015-09-16  Richard Biener  <rguenther@suse.de>
5158
5159         PR middle-end/67442
5160         * fold-const.c (extract_muldiv_1): Properly extend multiplication
5161         result before builting a tree via wide_int_to_tree.
5162
5163 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
5164
5165         * Makefile.in: Add memory-block.cc
5166         (pool_allocator::initialize): Use fixed block size.
5167         (pool_allocator::release): Use memory_block_pool.
5168         (pool_allocator::allocate): Likewise.
5169         * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
5170         object pools.
5171         * cfg.c (initialize_original_copy_tables): Likewise.
5172         * cselib.c (elt_list_pool, elt_loc_list_pool,
5173         cselib_val_pool): Likewise.
5174         * df-problems.c (df_chain_alloc): Likewise.
5175         * df-scan.c (df_scan_alloc): Likewise.
5176         * dse.c (cse_store_info_pool, rtx_store_info_pool,
5177         read_info_type_pool, insn_info_type_pool, bb_info_pool,
5178         group_info_pool, deferred_change_pool): Likewise.
5179         * et-forest.c (et_nodes, et_occurrences): Likewise.
5180         * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
5181         ipcp_agg_lattice_pool): Likewise.
5182         * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
5183         * ipa-profile.c (histogram_pool): Likewise.
5184         * ipa-prop.c (ipa_refdesc_pool): Likewise.
5185         * ira-build.c (live_range_pool, allocno_pool, object_pool,
5186         initiate_cost_vectors, pref_pool, copy_pool): Likewise.
5187         * ira-color.c (update_cost_record_pool): Likewise.
5188         * lra-lives.c (lra_live_range_pool): Likewise.
5189         * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
5190         * memory-block.cc: New file.
5191         * memory-block.h: New file.
5192         * regcprop.c (queued_debug_insn_change_pool): Use common block size.
5193         * sched-deps.c (sched_deps_init): Likewise.
5194         * sel-sched-ir.c (sched_lists_pool): Likewise.
5195         * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
5196         * tree-sra.c (access_pool): Likewise.
5197         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
5198         * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
5199         * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
5200         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
5201         * tree-ssa-strlen.c (strinfo_pool): Likewise.
5202         * tree-ssa-structalias.c (variable_info_pool): Likewise.
5203         * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
5204         location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
5205
5206 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
5207
5208         * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
5209         definition.
5210         (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
5211         call0 ABI.
5212
5213 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
5214
5215         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
5216         to pass TLS call argument, according to current ABI.
5217         * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
5218         callx0 for TLS call, according to current ABI.
5219
5220 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
5221
5222         * tree-eh.c (lower_try_finally_dup_block): Clear location information
5223         on stack restore statements.
5224         (decide_copy_try_finally): Do not consider a stack restore statement as
5225         coming from sources.
5226
5227 2015-09-15  Uros Bizjak  <ubizjak@gmail.com>
5228
5229         * config/alpha/alpha.c (alpha_expand_block_clear): Use
5230         HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
5231
5232 2015-09-15  Jeff Law  <law@redhat.com>
5233
5234         PR tree-optimization/47679
5235         * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
5236         methods and private members.
5237         (avail_exprs_stack): Similarly.  Change type of global
5238         from a pair of expr_hash_elt_t to the new class.
5239         (expr_elt_hasher::hash): Corresponding changes.
5240         (expr_elt_hasher::equal): Similarly.
5241         (avail_expr_hash): Similarly.
5242         (pass_dominator::execute): Similarly.
5243         (dom_opt_dom_walker::thread_across_edge): Similarly.
5244         (record_cond): Similarly.
5245         (dom_opt_dom_walker::before_dom_children): Similarly.
5246         (dom_opt_dom_walker::after_dom_children): Similarly.
5247         (lookup_avail_expr): Likewise.
5248         (initialize_hash_element): Now a expr_hash_elt constructor.
5249         (initialize_hash_element_from_expr): Similarly.
5250         (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
5251         (free_expr_hash_elt): Call dtor for the element.
5252         (remove_local_expressions_from_table): Now the "pop_to_marker"
5253         method in the available_exprs_stack class.
5254         (avail_expr_stack::record_expr): Method factored out.
5255         (print_expr_hash_elt): Now a method in the expr_hash_elt class.
5256         Fix formatting.
5257         (hashable_expr_equal_p): Fix formatting.
5258
5259 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
5260
5261         * input.h (location_get_source_line): Drop "expanded_location"
5262         param in favor of a file and line number.
5263         * input.c (location_get_source_line): Likewise.
5264         (dump_location_info): Update for change in signature of
5265         location_get_source_line.
5266         * diagnostic.c (diagnostic_print_caret_line): Likewise.
5267
5268 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
5269
5270         * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
5271         Bump to 4KB for SJLJ exceptions.
5272         (STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
5273         * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
5274         * doc/tm.texi: Regenerate.
5275
5276 2015-09-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5277
5278         * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
5279         of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
5280         Update prototype.
5281
5282 2015-09-15  Richard Biener  <rguenther@suse.de>
5283
5284         PR tree-optimization/67470
5285         * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
5286         structure for PHI hoisting by inserting a forwarder block
5287         if appropriate.
5288
5289 2015-09-15  Christian Bruel  <christian.bruel@st.com>
5290
5291         * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
5292         (arm_option_print): New function.
5293
5294 2015-09-15  Christian Bruel  <christian.bruel@st.com>
5295
5296         PR target/52144
5297         * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
5298         * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
5299         Remove flags parameter.
5300         * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
5301         (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
5302         (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
5303         (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
5304         (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
5305         (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
5306         (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
5307         * gcc/config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
5308
5309 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5310
5311         * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
5312
5313         * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
5314         AARCH64_VALID_SIMD_DREG_MODE.
5315
5316 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5317
5318         * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
5319         aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
5320         (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
5321         (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
5322         aarch64_ld4_lane<mode>): Combine together, making...
5323         (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
5324         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
5325         aarch64_st4_lane<mode>): Combine together, making...
5326         (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
5327         * config/aarch64/iterators.md (nregs): Add comment.
5328
5329 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5330
5331         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
5332         Change operand mode from <V_TWO_ELEM> to BLK.
5333         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
5334         (aarch64_vec_store_lanesoi_lane<mode): Likewise
5335         (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5336         (aarch64_ld2_lane<mode>): Likewise.
5337         (aarch64_st2_lane<VQ:mode>): Likewise.
5338         * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
5339
5340 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5341
5342         * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
5343         Change operand mode from <V_FOUR_ELEM> to BLK.
5344         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
5345         (aarch64_vec_store_lanesxi_lane<mode): Likewise.
5346         (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5347         (aarch64_ld4_lane<mode>): Likewise.
5348         (aarch64_st4_lane<mode>): Likewise.
5349         * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
5350
5351 2015-09-15  Richard Biener  <rguenther@suse.de>
5352
5353         PR middle-end/67563
5354         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
5355         transfer EH info from old to new stmt.
5356         (replace_call_with_value): Likewise.
5357         (replace_call_with_call_and_fold): Likewise.
5358         (gimple_fold_builtin_memory_op): Likewise.
5359         (gimple_fold_builtin_memset): Likewise.
5360         (gimple_fold_builtin_stpcpy): Likewise.
5361         (gimple_fold_call): Likewise.
5362
5363 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5364
5365         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
5366         comment.
5367         * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
5368         (aarch64_simd_intEI_type_node): Likewise.
5369         (aarch64_simd_builtin_std_type): Remove EImode case.
5370         (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
5371         * config/aarch64/aarch64-modes.def: Remove EImode.
5372
5373 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5374
5375         * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
5376         Change operand mode from <V_THREE_ELEM> to BLK.
5377         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
5378         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
5379         (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5380         (aarch64_ld3_lane<mode>): Likewise.
5381         (aarch64_st3_lane<mode>): Likewise.
5382         * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
5383
5384 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5385
5386         * config/aarch64/aarch64-simd.md
5387         (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
5388         Change all TImode operands to BLKmode.
5389         (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
5390         Change all EImode operands to BLKmode.
5391         (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
5392         Change all OImode operands to BLKmode.
5393
5394         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
5395         and call set_mem_size.
5396         (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
5397
5398         * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
5399
5400 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5401
5402         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
5403         to...
5404         (aarch64_vec_store_lanesoi_lane<mode>): ...this.
5405
5406         (vec_store_lanesci_lane<mode>): Rename to...
5407         (aarch64_vec_store_lanesci_lane<mode>): ...this.
5408
5409         (vec_store_lanesxi_lane<mode>): Rename to...
5410         (aarch64_vec_store_lanesxi_lane<mode>): ...this.
5411
5412         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
5413         aarch64_st4_lane<mode>): Follow renaming.
5414
5415 2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5416
5417         * config/s390/s390.c (s390_const_operand_ok): Add missing
5418         brackets.
5419
5420 2015-09-15  Richard Biener  <rguenther@suse.de>
5421
5422         PR lto/67568
5423         * lto-streamer.h (lto_location_cache::current_sysp): Properly
5424         initialize.
5425         * lto-streamer-out.c (clear_line_info): Likewise.
5426
5427 2015-09-15  Richard Biener  <rguenther@suse.de>
5428
5429         * doc/match-and-simplify.texi: Fix wording.
5430
5431 2015-09-15  Bin Cheng  <bin.cheng@arm.com>
5432
5433         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
5434         unnecessary type conversion in op1.
5435
5436 2015-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
5437
5438         * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
5439         (dup_block_and_redirect): Delete function.
5440         (can_dup_for_shrink_wrapping): New function.
5441         (fix_fake_fallthrough_edge): New function.
5442         (try_shrink_wrapping): Rewrite function.
5443         (convert_to_simple_return): Call fix_fake_fallthrough_edge.
5444
5445 2015-09-14  Rich Felker  <dalias@libc.org>
5446
5447         * configure.ac: Change target pattern for sh TLS support
5448         test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
5449         * configure: Regenerate.
5450
5451 2015-09-14  Jeff Law  <law@redhat.com>
5452
5453         PR tree-optimization/47679
5454         * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
5455         type rather than void *.
5456
5457 2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5458
5459         PR fortran/67460
5460         * diagnostic.c (diagnostic_initialize): Do not set
5461         some_warnings_are_errors.
5462         (diagnostic_finish): Use DK_WERROR count instead.
5463         (diagnostic_report_diagnostic): Do not set
5464         some_warnings_are_errors.
5465         * diagnostic.h (struct diagnostic_context): Remove
5466         some_warnings_are_errors.
5467
5468 2015-09-14  Richard Sandiford  <richard.sandiford@arm.com>
5469
5470         * config/sparc/predicates.md (const_all_ones_operand): Use
5471         CONSTM1_RTX to simplify definition.
5472
5473 2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>
5474
5475         PR target/67061
5476         * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
5477         Handle call insns.
5478
5479 2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>
5480
5481         * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
5482         OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
5483         OPT_fshow_column to handled saved option cases.
5484         (append_compiler_options): Do not skip the above added options.
5485
5486 2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5487
5488         PR target/63304
5489         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
5490         nopcrelative_literal_loads.
5491         (aarch64_classify_address): Likewise.
5492         (aarch64_constant_pool_reload_icode): Define.
5493         (aarch64_secondary_reload): Handle secondary reloads for
5494         literal pools.
5495         (aarch64_override_options): Handle nopcrelative_literal_loads.
5496         (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
5497         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
5498         Define.
5499         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
5500         * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
5501         * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
5502         predicate.
5503         * doc/invoke.texi (mpc-relative-literal-loads): Document.
5504
5505 2015-09-14  John David Anglin  <danglin@gcc.gnu.org>
5506
5507         PR middle-end/67401
5508         * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
5509         sync_compare_and_swap_optab libcall to target_oval.
5510
5511 2015-09-14  Marek Polacek  <polacek@redhat.com>
5512
5513         * rtlanal.c (split_double): Cast to unsigned when shifting a negative
5514         value.
5515         * sched-int.h (UNKNOWN_DEP_COST): Likewise.
5516
5517 2015-09-11  Mark Wielaard  <mjw@redhat.com>
5518
5519         PR c/28901
5520         * toplev.c (check_global_declaration): Check and use
5521         warn_unused_const_variable.
5522         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
5523         (-Wunused-variable): Remove non-constant. For C implies
5524         -Wunused-const-variable.
5525         (-Wunused-const-variable): New.
5526
5527 2015-09-14  Richard Biener  <rguenther@suse.de>
5528
5529         * doc/match-and-simplify.texi: Update for changed syntax
5530         of inner ifs and the new switch expression.
5531
5532 2015-09-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
5533
5534         * config/i386/haswell.md: New file describing Haswell pipeline.
5535         * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
5536         haswell-like processors.
5537         (ix86_reassociation_width): Increase reassociation width for 64-bit
5538         Haswell processor family.
5539         * config/i386/i386.md: Introduce haswell cpu and include new md file.
5540
5541 2015-09-14  Richard Biener  <rguenther@suse.de>
5542
5543         * doc/match-and-simplify.texi: Fixup some formatting issues
5544         and document the 's' flag.
5545
5546 2015-09-13  Olivier Hainque  <hainque@adacore.com>
5547             Eric Botcazou  <ebotcazou@adacore.com>
5548
5549         * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
5550         gr6 as possible values, defaulting to gr5.  Set target_cpu_default2.
5551         * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
5552         (TARGET_CPU_gr5): Likewise.
5553         (TARGET_CPU_gr6): Likewise.
5554         (MULTILIB_DEFAULTS): Likewise.
5555         * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
5556         for mcpu=gr5 and mcpu=gr6.
5557         (MULTILIB_DIRNAMES): Adjust accordingly.
5558
5559 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5560
5561         * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
5562         (mem_ref_p): Likewise.
5563         (outermost_indep_loop): Adjust.
5564         (mem_ref_in_stmt): Likewise.
5565         (determine_max_movement): Likewise.
5566         (mem_ref_alloc): Likewise.
5567         (record_mem_ref_loc): Likewise.
5568         (set_ref_stored_in_loop): Likewise.
5569         (mark_ref_stored): Likewise.
5570         (gather_mem_refs_stmt): Likewise.
5571         (mem_refs_may_alias_p): Likewise.
5572         (for_all_locs_in_loop): Likewise.
5573         (struct rewrite_mem_ref_loc): Likewise.
5574         (rewrite_mem_refs): Likewise.
5575         (struct first_mem_ref_loc_1): Likewise.
5576         (first_mem_ref_loc): Likewise.
5577         (struct sm_set_flag_if_changed): Likewise.
5578         (execute_sm_if_changed_flag_set): Likewise.
5579         (execute_sm): Likewise.
5580         (hoist_memory_references):
5581         (struct ref_always_accessed): Likewise.
5582         (ref_always_accessed_p): Likewise.
5583         (refs_independent_p): Likewise.
5584         (record_dep_loop): Likewise.
5585         (ref_indep_loop_p_1): Likewise.
5586         (ref_indep_loop_p_2): Likewise.
5587         (ref_indep_loop_p): Likewise.
5588         (can_sm_ref_p): Likewise.
5589         (find_refs_for_sm): Likewise.
5590         (tree_ssa_lim_finalize): Likewise.
5591
5592 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5593
5594         * dwarf2out.c (dw_attr_ref): Remove typedef.
5595         (dw_line_info_ref): Likewise.
5596         (pubname_ref): Likewise.
5597         (dw_ranges_ref): Likewise.
5598         (dw_ranges_by_label_ref): Likewise.
5599         (comdat_type_node_ref): Likewise.
5600         (get_AT): Adjust.
5601         (get_AT_low_pc): Likewise.
5602         (get_AT_hi_pc): Likewise.
5603         (get_AT_string): Likewise.
5604         (get_AT_flag): Likewise.
5605         (get_AT_unsigned): Likewise.
5606         (get_AT_ref): Likewise.
5607         (get_AT_file): Likewise.
5608         (remove_AT): Likewise.
5609         (print_die): Likewise.
5610         (check_die): Likewise.
5611         (die_checksum): Likewise.
5612         (attr_checksum_ordered): Likewise.
5613         (struct checksum_attributes): Likewise.
5614         (collect_checksum_attributes): Likewise.
5615         (die_checksum_ordered): Likewise.
5616         (same_die_p): Likewise.
5617         (is_declaration_die): Likewise.
5618         (clone_die): Likewise.
5619         (clone_as_declaration): Likewise.
5620         (copy_declaration_context): Likewise.
5621         (break_out_comdat_types): Likewise.
5622         (copy_decls_walk): Likewise.
5623         (output_location_lists): Likewise.
5624         (external_ref_hasher::hash): Likewise.
5625         (optimize_external_refs_1): Likewise.
5626         (build_abbrev_table): Likewise.
5627         (size_of_die): Likewise.
5628         (unmark_all_dies): Likewise.
5629         (size_of_pubnames): Likewise.
5630         (output_die_abbrevs): Likewise.
5631         (output_die): Likewise.
5632         (output_pubnames): Likewise.
5633         (add_ranges_num): Likewise.
5634         (add_ranges_by_labels): Likewise.
5635         (add_high_low_attributes): Likewise.
5636         (gen_producer_string): Likewise.
5637         (dwarf2out_set_name): Likewise.
5638         (new_line_info_table): Likewise.
5639         (prune_unused_types_walk_attribs): Likewise.
5640         (prune_unused_types_update_strings): Likewise.
5641         (prune_unused_types): Likewise.
5642         (resolve_addr): Likewise.
5643         (optimize_location_lists_1): Likewise.
5644         (index_location_lists): Likewise.
5645         (dwarf2out_finish): Likewise.
5646
5647 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5648
5649         * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
5650
5651 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5652
5653         * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
5654         (dump_asserts_for): Adjust.
5655         (register_new_assert_for): Likewise.
5656         (process_assert_insertions): Likewise.
5657         (insert_range_assertions): Likewise.
5658
5659 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5660
5661         * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
5662         and remove typedef.
5663         (new_temp_expr_table): Adjust.
5664         (free_temp_expr_table): Likewise.
5665         (version_to_be_replaced_p): Likewise.
5666         (make_dependent_on_partition): Likewise.
5667         (add_to_partition_kill_list): Likewise.
5668         (remove_from_partition_kill_list): Likewise.
5669         (add_dependence): Likewise.
5670         (finished_with_expr): Likewise.
5671         (process_replaceable): Likewise.
5672         (kill_expr): Likewise.
5673         (kill_virtual_exprs): Likewise.
5674         (mark_replaceable): Likewise.
5675         (find_replaceable_in_bb): Likewise.
5676         (find_replaceable_exprs): Likewise.
5677         (debug_ter): Likewise.
5678
5679 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5680
5681         * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
5682         (struct btr_user): Rename from btr_user_s.
5683         (struct btr_def): Rename from btr_def_s.
5684         (find_btr_def_group): Adjust.
5685         (add_btr_def): Likewise.
5686         (new_btr_user): Likewise.
5687         (note_other_use_this_block): Likewise.
5688         (compute_defs_uses_and_gen): Likewise.
5689         (link_btr_uses): Likewise.
5690         (build_btr_def_use_webs): Likewise.
5691         (block_at_edge_of_live_range_p): Likewise.
5692         (btr_def_live_range): Likewise.
5693         (combine_btr_defs): Likewise.
5694         (move_btr_def): Likewise.
5695         (migrate_btr_def): Likewise.
5696         (migrate_btr_defs): Likewise.
5697
5698 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5699
5700         * var-tracking.c (shared_hash_def): Rename to shared_hash.
5701         (shared_hash): Remove typedef.
5702         (struct dataflow_set): Adjust.
5703         (shared_hash_unshare): Likewise.
5704         (dataflow_set_merge): Likewise.
5705         (vt_initialize): Likewise.
5706         (vt_finalize): Likewise.
5707
5708 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5709
5710         * var-tracking.c (struct location_chain): Rename from
5711         location_chain_def.
5712         (struct variable_part): Adjust.
5713         (variable_htab_free): Likewise.
5714         (unshare_variable): Likewise.
5715         (get_init_value): Likewise.
5716         (get_addr_from_local_cache): Likewise.
5717         (drop_overlapping_mem_locs): Likewise.
5718         (val_reset): Likewise.
5719         (struct variable_union_info): Likewise.
5720         (variable_union): Likewise.
5721         (find_loc_in_1pdv): Likewise.
5722         (insert_into_intersection): Likewise.
5723         (intersect_loc_chains): Likewise.
5724         (canonicalize_loc_order_check): Likewise.
5725         (canonicalize_values_mark): Likewise.
5726         (canonicalize_values_star): Likewise.
5727         (canonicalize_vars_star): Likewise.
5728         (variable_merge_over_cur): Likewise.
5729         (remove_duplicate_values): Likewise.
5730         (variable_post_merge_new_vals): Likewise.
5731         (variable_post_merge_perm_vals): Likewise.
5732         (find_mem_expr_in_1pdv): Likewise.
5733         (dataflow_set_preserve_mem_locs): Likewise.
5734         (dataflow_set_remove_mem_locs): Likewise.
5735         (variable_part_different_p): Likewise.
5736         (onepart_variable_different_p): Likewise.
5737         (find_src_set_src): Likewise.
5738         (dump_var): Likewise.
5739         (set_slot_part): Likewise.
5740         (clobber_slot_part): Likewise.
5741         (delete_slot_part): Likewise.
5742         (vt_expand_var_loc_chain): Likewise.
5743         (emit_note_insn_var_location): Likewise.
5744         (vt_finalize): Likewise.
5745
5746 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5747
5748         * dse.c (store_info_t): Remove typedef.
5749         (group_info_t): Likewise.
5750         (const_group_info_t): Likewise.
5751         (deferred_change_t): Likewise.
5752         (get_group_info): Adjust.
5753         (free_store_info): Likewise.
5754         (canon_address): Likewise.
5755         (clear_rhs_from_active_local_stores): Likewise.
5756         (record_store): Likewise.
5757         (replace_read): Likewise.
5758         (check_mem_read_rtx): Likewise.
5759         (scan_insn): Likewise.
5760         (remove_useless_values): Likewise.
5761         (dse_step1): Likewise.
5762         (dse_step2_init): Likewise.
5763         (dse_step2_nospill): Likewise.
5764         (scan_stores_nospill): Likewise.
5765         (scan_reads_nospill): Likewise.
5766         (dse_step3_exit_block_scan): Likewise.
5767         (dse_step3): Likewise.
5768         (dse_step5_nospill): Likewise.
5769         (dse_step6): Likewise.
5770
5771 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5772
5773         * alias.c (alias_set_entry_d): Rename to alias_set_entry.
5774         (alias_set_entry): Remove typedef.
5775         (alias_set_subset_of): Adjust.
5776         (alias_sets_conflict_p): Likewise.
5777         (init_alias_set_entry): Likewise.
5778         (get_alias_set): Likewise.
5779         (new_alias_set): Likewise.
5780         (record_alias_subset): Likewise.
5781
5782 2015-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
5783
5784         * doc/install.texi (Downloading the source): Mark up
5785         contrib/download_prerequisites properly and drop leading "./".
5786
5787 2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5788
5789         * config/arc/arc.h: Remove define of STRUCT_VALUE.
5790         * config/lm32/lm32.h: Likewise.
5791         * config/mep/mep.h: Likewise.
5792         * config/visium/visium.h: Likewise.
5793         * system.h: Poison STRUCT_VALUE macro.
5794
5795 2015-09-12  John David Anglin  <danglin@gcc.gnu.org>
5796
5797         * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
5798         CONSTANT_P operands.
5799
5800 2015-09-11  David S. Miller  <davem@davemloft.net>
5801
5802         * config/sparc/constraints.md: Make "U" constraint a real register
5803         constraint.
5804         * config/sparc/sparc.c (TARGET_LRA_P): Define.
5805         (D_MODES, DF_MODES): Add missing cast.
5806         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
5807         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
5808         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
5809         cost to 8.
5810         * config/sparc/sparc.h (PROMOTE_MODE): Define.
5811         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
5812         provide these insn when flag_pic.
5813
5814 2015-09-11  Jeff Law  <law@redhat.com>
5815
5816         PR tree-optimization/47679
5817         * tree-ssa-dom.c (struct cond_equivalence): Update comment.
5818         * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
5819         member with m_.  Update inline member functions as necessary.  Add
5820         toplevel comment.
5821         * tree-ssa-scopedtables.c: Update const_and_copies's member
5822         functions to use m_ prefix to access the stack.
5823
5824 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
5825
5826         * graphite-optimize-isl.c (disable_tiling): Remove.
5827         (get_schedule_for_band): Do not use disable_tiling.
5828         (get_prevector_map): Delete function.
5829         (enable_polly_vector): Remove.
5830         (get_schedule_for_band_list): Remove dead code.
5831
5832 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
5833
5834         * graphite-optimize-isl.c (get_tile_map): Refactor.
5835         (get_schedule_for_band): Same.
5836         (getScheduleForBand): Same.
5837         (get_prevector_map): Same.
5838         (get_schedule_for_band_list): Same.
5839         (get_schedule_map): Same.
5840         (get_single_map): Same.
5841         (apply_schedule_map_to_scop): Same.
5842         (optimize_isl): Same.
5843
5844 2015-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5845
5846         PR target/63304
5847         * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
5848         (movtf): Delete.
5849         * config/aarch64/iterators.md (GPF_TF_F16): New.
5850         (GPF_F16): Delete.
5851
5852 2015-09-10  Nathan Sidwell  <nathan@acm.org>
5853
5854         * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
5855         (nvptx_reorg): Adjust comments.
5856
5857 2015-09-15  John David Anglin  <danglin@gcc.gnu.org>
5858
5859         PR bootstrap/67363
5860         * configure.ac: Check if setenv and unsetenv are declared.
5861         * configure: Rebuild.
5862         * config.in: Rebuild.
5863         * system.h: Declare setenv and unsetenv if not declared.
5864
5865 2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5866
5867         * config/rs6000/rs6000.c (swap_web_entry): Update preceding
5868         commentary to simplify permute mask adjustment equation.
5869         (special_handling_values): Add SH_VPERM.
5870         (const_load_sequence_p): New function.
5871         (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
5872         the mask loaded from the constant pool.
5873         (adjust_vperm): New function.
5874         (handle_special_swappables): Call adjust_vperm.
5875         (dump_swap_insn_table): Handle SH_VPERM.
5876
5877 2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>
5878
5879         * shrink-wrap.c (requires_stack_frame_p): Remove static.
5880         * shrink-wrap.h (requires_stack_frame_p): Put back.
5881
5882 2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>
5883
5884         * reload1.c (elimination_costs_in_insn): Locally turn
5885         -Wmaybe-uninitialized into a warning.
5886
5887 2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>
5888
5889         * shrink-wrap.c (requires_stack_frame_p): Make static.
5890         (prepare_shrink_wrap): Likewise.
5891         (dup_block_and_redirect): Likewise.
5892         * shrink-wrap.h: Remove declarations of those functions.
5893
5894 2015-09-10  Mark Wielaard  <mjw@redhat.com>
5895
5896         * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
5897
5898 2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
5899
5900         PR target/67506
5901         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
5902         missing simplify_gen_subreg.
5903
5904 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5905
5906         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
5907         the vector element is bigger than 64 bit.
5908
5909 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5910
5911         * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
5912         ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
5913
5914 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5915
5916         * config/s390/s390.c: Add V1TImode to constant pool modes.
5917
5918 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5919
5920         PR target/67439
5921         * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
5922         predicate.  Set predicable_short_it attr to "no".
5923
5924 2015-09-10  Jiong Wang  <jiong.wang@arm.com>
5925
5926         PR rtl-optimization/67421
5927         * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
5928         left wide shift tranformation.
5929
5930 2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>
5931
5932         * common/config/arc/arc-common.c: Remove references to A5.
5933         * config/arc/arc-opts.h: Likewise.
5934         * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
5935         * config/arc/arc.opt, config/arc/constraints.md: Likewise.
5936         * config/arc/t-arc-newlib: Likewise.
5937
5938 2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>
5939
5940         * config/arc/arc.md (length): Fix attribute length for conditional
5941         executed instructions with long immediate.
5942
5943 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5944
5945         * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
5946         type for second alternative.
5947
5948 2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
5949
5950         * doc/invoke.texi (Downloading GCC): Mention
5951         contrib/download_prerequisites script.
5952
5953 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
5954
5955         PR c++/67523
5956         * gimplify.c (gimplify_omp_for): If inner stmt is not found
5957         for combined loop, assert seen_error () and return GS_ERROR.
5958
5959         PR middle-end/67521
5960         * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
5961         if decl is already in outer->variables.
5962
5963         PR middle-end/67517
5964         * gimplify.c (gimplify_scan_omp_clauses): Instead of
5965         asserting that decl is not specified in octx->variables,
5966         break out of the loop if it is.
5967
5968         PR c++/67514
5969         * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
5970         iterator is not explicitly determined, but is defined inside
5971         of the combined workshare region, handle it like if it has
5972         DECL_EXPR in OMP_FOR_PRE_BODY.
5973
5974 2015-09-09  Nathan Sidwell  <nathan@acm.org>
5975
5976         * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
5977         (*cmp<mode>): Add assembler spacing.
5978         (setcc_int<mode>, set_cc_float<mode>): Likewise.
5979         * config/nvptx/nvptx.c (nvptx_option_override): Override debug
5980         level.
5981         (write_func_decl_from_insn): Refactor argument loops & comma emission.
5982         (nvptx_expand_call): Likewise.
5983         (nvptx_output_call_insn): Likewise.
5984         (nvptx_reorg_subreg): Add spacing.
5985
5986 2015-09-09  Marek Polacek  <polacek@redhat.com>
5987
5988         PR middle-end/67512
5989         * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
5990         for comparisons.
5991
5992 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
5993
5994         PR c++/53184
5995         * doc/invoke.texi ([Wsubobject-linkage]): Document.
5996
5997 2015-09-09  Tom de Vries  <tom@codesourcery.com>
5998
5999         * params-list.h: Add missing copyright notice.
6000
6001 2015-09-09  Nathan Sidwell  <nathan@acm.org>
6002
6003         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
6004         sel_truesi, not andsi.
6005
6006 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6007
6008         * config/arm/arm.md (*subsi3_compare0): Rename to...
6009         (subsi3_compare0): ... This.
6010         (modsi3): New define_expand.
6011         * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
6012         when operand is power of 2.
6013
6014 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6015
6016         * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
6017         (*neg<mode>2_compare0): Rename to...
6018         (neg<mode>2_compare0): ... This.
6019         * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
6020         Move check for speed inside the if-then-elses.  Reflect
6021         CSNEG sequence in MOD by power of 2 case.
6022
6023 2015-09-09  Alan Modra  <amodra@gmail.com>
6024
6025         PR target/67378
6026         * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
6027         reload replacement for PRE_MODIFY address reg.
6028
6029 2015-09-09  Sebastian Pop  <s.pop@samsung.com>
6030
6031         PR tree-optimization/53852
6032         * config.in: Regenerate.
6033         * configure: Regenerate.
6034         * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
6035         * graphite-optimize-isl.c (optimize_isl): Stop computation when
6036         PARAM_MAX_ISL_OPERATIONS is reached.
6037         * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
6038         * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
6039         result equal to isl_stat_ok as the status now can be isl_error_quota.
6040         (subtract_commutative_associative_deps): Same.
6041         (compute_deps): Same.
6042
6043 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
6044             Sebastian Pop  <s.pop@samsung.com>
6045
6046         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
6047         Return the parameter if it was saved in corresponding
6048         parameter_rename_map of the region.
6049         (copy_def): Copy def from sese region to the newly created region.
6050         (copy_internal_parameters): Copy all the internal parameters defined
6051         within a region to the newly created region.
6052         (graphite_regenerate_ast_isl): Copy parameters to the new region before
6053         translating isl to gimple.
6054         * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
6055         the loop-nest does not have any data-references.
6056         (build_graphite_scops): Create a scop only when there is at least one
6057         loop inside it.
6058         (contains_only_close_phi_nodes): Deleted.
6059         (print_graphite_scop_statistics): Deleted
6060         (print_graphite_statistics): Deleted
6061         (limit_scops): Deleted.
6062         (build_scops): Removed call to limit_scops.
6063         * sese.c (new_sese): Construct.
6064         (free_sese): Destruct.
6065         (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
6066         added.
6067         (set_rename): Pass sese region so that parameters inside the region can
6068         be added to its parameter_rename_map.
6069         (rename_uses): Pass sese region.
6070         (graphite_copy_stmts_from_block): Do not copy parameters that have been
6071         generated in the header of the scop. For each SSA_NAME in the
6072         parameter_rename_map rename its usage.
6073         (invariant_in_sese_p_rec): Return false if tree t is defined outside
6074         sese region.
6075         (scalar_evolution_in_region): If the tree t is invariant just return t.
6076         * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
6077         struct sese to keep track of all the parameters which need renaming.
6078         * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
6079         any data-refs.
6080         * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
6081
6082 2015-09-08  Tom de Vries  <tom@codesourcery.com>
6083
6084         * Makefile.in (generated_files): Add params.list.
6085         (params.list, s-params.list): Add rule.
6086         * params.h (enum compiler_param): Include params-list.h.  Move define
6087         DEFPARAM, include params.def and undef DEFPARAM ...
6088         * params-list.h: ... here.  New file.
6089
6090 2015-09-08  David Malcolm  <dmalcolm@redhat.com>
6091
6092         * pretty-print.h (printer_fn): Fix typo in comment.
6093
6094 2015-09-07  Jeff Law  <law@redhat.com>
6095
6096         * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
6097
6098 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6099
6100         * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
6101         (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
6102         (arm_neon_fp16_hw): New.
6103
6104 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6105
6106         * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
6107         UNITS_PER_WORD >= 4.
6108
6109 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6110
6111         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
6112         aarch64_simd_vec_unpacks_hi_<mode>): New insn.
6113         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
6114         (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
6115         (aarch64_float_extend_lo_v2df): Rename to...
6116         (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
6117
6118         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
6119         (float_extend_lo): Add v4sf.
6120
6121         * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
6122         * config/aarch64/iterators.md (VQ_HSF): New iterator.
6123         (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
6124         (Vwide): New mode_attr.
6125
6126 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6127
6128         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
6129         aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
6130         aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
6131         vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
6132         V4HF and V8HF variants to iterator.
6133
6134         * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
6135
6136         * config/aarch64/iterators.md (VDQF_F16): New.
6137         (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
6138
6139 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6140
6141         * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
6142         vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
6143         vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
6144         vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
6145         vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
6146         vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
6147         vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
6148         vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
6149         vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
6150         vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
6151         vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
6152         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
6153         vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
6154         vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
6155         vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
6156         vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
6157         vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
6158         vld1q_dup_f16): New.
6159
6160 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6161
6162         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
6163         Reparameterize to...
6164         (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
6165         (aarch64_float_truncate_hi_v4sf): Reparameterize to...
6166         (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
6167
6168         * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
6169         v8hf variant.
6170         (float_truncate_lo_): Use BUILTIN_VDF iterator.
6171
6172         * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
6173
6174         * config/aarch64/iterators.md (VDF, Vdtype): New.
6175         (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
6176
6177 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6178
6179         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
6180         * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
6181         (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
6182         Add __builtin_aarch64_simd_hf.
6183         * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
6184         float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
6185         vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
6186         vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
6187         vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
6188         vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
6189         vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
6190         vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
6191         vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
6192
6193         * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
6194         V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
6195         (VDC, Vdbl): Add V4HF.
6196
6197 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6198
6199         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
6200         V4HFmode and V8HFmode.
6201         (aarch64_split_simd_move): Add case for V8HFmode.
6202         * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
6203         (aarch64_simd_builtin_std_type): Handle HFmode.
6204         (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
6205
6206         * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
6207         aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
6208         (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
6209
6210         * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
6211         Float16x8_t.
6212
6213         * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
6214         * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
6215         New typedefs.
6216         (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
6217         vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
6218         vst1q_lane_f16): New.
6219         * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
6220         (VALLDI_F16, VALL_F16): New.
6221         (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
6222         Add cases for V4HF and V8HF.
6223         (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
6224
6225 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6226
6227         * config/arm/arm-builtins.c (VAR11, VAR12): New.
6228         * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
6229         vld4_dup): Add v4hf variant.
6230         (vget_high, vget_low): Add v8hf variant.
6231         (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
6232         vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
6233         v4hf and v8hf variants.
6234
6235         * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
6236         (VDX): Add V4HF.
6237         (V_DOUBLE): Add case for V4HF.
6238         (VQX): Add V8HF.
6239         (V_HALF): Add case for V8HF.
6240         (VDQX): Add V4HF, V8HF.
6241         (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
6242         V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
6243
6244         * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
6245         neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
6246         vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
6247         neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
6248         neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
6249         neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
6250         vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
6251         neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
6252         neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
6253
6254         (neon_vcreate, neon_vreinterpretv8qi<mode>,
6255         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
6256         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
6257         Change VDX to VD_RE.
6258
6259         (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
6260         neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
6261         Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
6262
6263         * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
6264         float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
6265         vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
6266         vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
6267         vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
6268         vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
6269         vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
6270         vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
6271         vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
6272
6273 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6274
6275         * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
6276         vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
6277         vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
6278         vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
6279         vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
6280         vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
6281         vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
6282         vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
6283         vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
6284         vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
6285         New.
6286
6287 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6288
6289         * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
6290
6291         * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
6292
6293         * config/arm/arm-builtins.c (v8hf_UP): New.
6294         (arm_init_simd_builtin_types): Initialise Float16x8_t.
6295
6296         * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
6297
6298         * config/arm/arm_neon.h (float16x8_t): New typedef.
6299
6300 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6301
6302         * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
6303         vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
6304         vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
6305         vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
6306         vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
6307         vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
6308         vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
6309         vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
6310         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
6311         vreinterpret_u16_f16, vreinterpret_u32_f16): New.
6312
6313 2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
6314
6315         * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
6316         non-alphanumeric characters in the symbol name.
6317
6318 2015-09-07  Marek Polacek  <polacek@redhat.com>
6319
6320         PR inline-asm/67448
6321         * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
6322         a memory input.
6323
6324 2015-09-07  Marek Polacek  <polacek@redhat.com>
6325
6326         * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
6327
6328 2015-09-04  Paolo Bonzini  <bonzini@gnu.org>
6329
6330         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
6331         not warn.
6332
6333 2015-09-04  Jakub Jelinek  <jakub@redhat.com>
6334
6335         PR middle-end/67452
6336         * tree-ssa-live.c: Include cfgloop.h.
6337         (remove_unused_locals): Clear loop->simduid if simduid is about
6338         to be removed from cfun->local_decls.
6339
6340 2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6341
6342         PR target/65210
6343         * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
6344         attribute as well.
6345
6346 2015-09-04  Tom de Vries  <tom@codesourcery.com>
6347
6348         * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
6349
6350 2015-09-04  Jeff Law  <law@redhat.com>
6351
6352         * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
6353         unnecessary constructor.  It's now trivial and implemented inside...
6354         * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
6355         constructor.  Add comments to various methods.  Remove unused
6356         private fields.
6357         * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
6358         * tree-vrp.c (identify_jump_threads): Likewise.
6359         * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
6360         indentation issues.
6361         (thread_across_edge): Similarly.
6362         (record_temporary_equivalences_from_stmts_at_dest): Remove unused
6363         arguments in constructor call.
6364
6365 2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
6366
6367         * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
6368         temp path contains a '-'.
6369
6370 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6371             Petr Murzin  <petr.murzin@intel.com>
6372             Kirill Yukhin  <kirill.yukhin@intel.com>
6373
6374         * config/i386/i386-builtin-types.def
6375         (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
6376         (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
6377         (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
6378         (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
6379         * config/i386/i386.c
6380         (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
6381         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
6382         IX86_BUILTIN_SCATTERALTDIV16SI.
6383         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
6384         __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
6385         __builtin_ia32_scatteraltdiv8si.
6386         (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
6387         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
6388         IX86_BUILTIN_SCATTERALTDIV16SI.
6389         (ix86_vectorize_builtin_scatter): New.
6390         (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
6391         ix86_vectorize_builtin_scatter.
6392
6393 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6394             Petr Murzin  <petr.murzin@intel.com>
6395             Kirill Yukhin  <kirill.yukhin@intel.com>
6396
6397         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
6398         * doc/tm.texi: Regenerate.
6399         * target.def: Add scatter builtin.
6400         * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
6401         for loads/stores in case of gather/scatter accordingly.
6402         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
6403         STMT_VINFO_GATHER_P(S).
6404         (vect_check_gather): Rename to ...
6405         (vect_check_gather_scatter): this.
6406         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
6407         STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
6408         (vect_check_gather_scatter): Use it instead of vect_check_gather.
6409         (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
6410         variable and new checkings for it accordingly.
6411         * tree-vect-stmts.c
6412         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
6413         STMT_VINFO_GATHER_P(S).
6414         (vect_check_gather_scatter): Use it instead of vect_check_gather.
6415         (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
6416
6417 2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
6418
6419         * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
6420         define_insn.
6421         (mulv16qi3): New define_expand.
6422
6423 2015-09-03  Martin Sebor  <msebor@redhat.com>
6424
6425         PR c/66516
6426         * doc/extend.texi (Other Builtins): Document when the address
6427         of a built-in function can be taken.
6428
6429 2015-09-03  Richard Biener  <rguenther@suse.de>
6430
6431         * dwarf2out.c (flush_limbo_die_list): Split out from ...
6432         (dwarf2out_early_finish): ... here.
6433         (dwarf2out_finish): Do not call dwarf2out_early_finish but
6434         flush_limbo_die_list.  Assert we have no deferred asm names.
6435
6436 2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6437
6438         * optabs.c (expand_binop): Don't create a broadcast vector with a
6439         source element wider than the inner mode.
6440
6441 2015-09-03  Richard Biener  <rguenther@suse.de>
6442
6443         * varasm.c (output_constant): Use fold_convert instead of
6444         wide_int_to_tree.
6445
6446 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6447
6448         PR tree-optimization/65637
6449         * omp-low.c (expand_omp_for_static_chunk): Handle case that
6450         fin_bb has 2 predecessors.
6451
6452 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6453
6454         PR tree-optimization/65637
6455         * omp-low.c (find_phi_with_arg_on_edge): New function.
6456         (expand_omp_for_static_chunk): Fix inner loop phi.
6457
6458 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6459
6460         PR tree-optimization/65637
6461         * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
6462         that head is NULL.
6463
6464 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6465
6466         * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
6467
6468 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6469
6470         * doc/invoke.texi (parloops-chunk-size): Add item.
6471         * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
6472         * tree-parloops.c: Include params.h.
6473         (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
6474         param parloops-chunk-size is used.
6475
6476 2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6477
6478         PR middle-end/67351
6479         * fold-const.c (fold_binary_loc) : Move
6480         Transform (x >> c) << c into x & (-1<<c) or
6481         transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
6482         types using simplify and match.
6483         * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
6484         (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
6485
6486 2015-09-03  Richard Biener  <rguenther@suse.de>
6487
6488         PR ipa/66705
6489         * tree-ssa-structalias.c (ctor_for_analysis): New function.
6490         (create_variable_info_for_1): Use ctor_for_analysis instead
6491         of get_constructor.
6492         (create_variable_info_for): Likewise.
6493
6494 2015-09-02  Charles Baylis  <charles.baylis@linaro.org>
6495
6496         PR ipa/67280
6497         * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
6498         in new callgraph edge.
6499
6500 2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>
6501
6502         PR target/59810
6503         PR target/63652
6504         PR target/63653
6505         * config/aarch64/aarch64-simd.md
6506         (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
6507         gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
6508         (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
6509         gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
6510
6511 2015-09-02  Alan Modra  <amodra@gmail.com>
6512
6513         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
6514         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
6515         (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
6516
6517 2015-09-02  Alan Modra  <amodra@gmail.com>
6518
6519         PR target/67417
6520         * config/rs6000/predicates.md (current_file_function_operand): Don't
6521         return true for weak symbols.
6522         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
6523
6524 2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
6525             Andrew Bennett  <andrew.bennett@imgtec.com>
6526
6527         * config/mips/mips-opts.h (mips_cb_setting): New enum.
6528         * config/mips/mips-protos.h: Add definitions for
6529         mips_output_jump and mips_output_equal_conditional_branch
6530         * gcc/config/mips/mips.c (MIPS_JR): Change to support the
6531         JIC instruction.
6532         (mips_emit_compare): Add support for the MIPS R6 conditional
6533         compact branches.
6534         (mips_process_sync_loop): Likewise.
6535         (mips_output_order_conditional_branch): Likewise.
6536         (mips16_build_call_stub): Change MIPS_CALL to
6537         mips_output_jump.
6538         (mips_print_operand_punctuation): Update 's' case to only
6539         apply to micromips r2.
6540         (mips_adjust_insn_length): Add support for forbidden slot
6541         hazards.
6542         (mips_avoid_hazard): Likewise.
6543         (mips_reorg_process_insns): Likewise.
6544         (mips_output_jump): New function.
6545         (mips_output_equal_conditional_branch): Likewise.
6546         (mips_output_conditional_branch): Use jrc/bc if compact
6547         branch support is enabled.  Ensure the forbidden slots
6548         between the two branch instructions is filled with a nop.
6549         (mips_option_override): Add support to process the compact
6550         branch option and set the correct defaults.  Prevent
6551         non-explict relocs being using for MIPS R6.
6552         (mips_trampoline_init): Add compact branch support.
6553         (mips_mult_zero_zero_cost): Allow zero initialisation of
6554         accumulators with TARGET_DSP.
6555         * gcc/config/mips/mips.h (TARGET_CB_NEVER): New define.
6556         (TARGET_CB_MAYBE): New define.
6557         (TARGET_CB_ALWAYS): New define.
6558         (ISA_HAS_DELAY_SLOTS): New define.
6559         (ISA_HAS_COMPACT_BRANCHES): New define.
6560         (ISA_HAS_JRC): New define.
6561         (MIPS_BRANCH_C): New define.
6562         (MIPS_CALL): Removed.
6563         (MICROMIPS_J): Removed.
6564         * config/mips/mips.md (compact_form): New attr.
6565         (hazard): Add support for forbidden slots.
6566         (define_delay): Add support for compact branches.
6567         (*branch_order<mode>): Likewise.
6568         (*branch_order<mode>_inverted): Likewise.
6569         (*branch_equality<mode>): Likewise.
6570         (*branch_equality<mode>_inverted): Likewise.
6571         (*jump_absolute): Likewise.
6572         (*jump_pic): Likewise.
6573         (indirect_jump): Use mips_output_jump to produce assembly output.
6574         (tablejump_<mode>"): Likewise.
6575         (*<optab>"): Likewise.
6576         (<optab>_internal): Likewise.
6577         (sibcall_internal): Likewise.
6578         (sibcall_value_internal): Likewise.
6579         (sibcall_value_multiple_internal): Likewise.
6580         (call_internal): Likewise.
6581         (call_split): Likewise.
6582         (call_internal_direct): Likewise.
6583         (call_direct_split): Likewise.
6584         (call_value_internal): Likewise.
6585         (call_value_split): Likewise.
6586         (call_value_internal_direct): Likewise.
6587         (call_value_direct_split): Likewise.
6588         (call_value_multiple_internal): Likewise.
6589         (call_value_multiple_split): Likewise.
6590         (mips_get_fcsr_mips16_<mode>): Likewise.
6591         (mips_set_fcsr_mips16_<mode>): Likewise.
6592         (tls_get_tp_mips16_<mode>): Likewise.
6593         * config/mips/mips.opt: Add -mcompact-branches option.
6594         * config/mips/predicates.md (order_operator): Ensure the
6595         conditional compact branches are only used if the ISA them.
6596         * doc/invoke.texi: Document -mcompact-branches option.
6597
6598 2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>
6599
6600         PR target/61578
6601         * lra-lives.c (process_bb_lives): Process move pseudos with the
6602         same value for copies and preferences
6603         * lra-constraints.c (match_reload): Create match reload pseudo
6604         with the same value from single dying input pseudo.
6605
6606 2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
6607
6608         PR target/67405
6609         * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
6610
6611 2015-09-01  Aldy Hernandez  <aldyh@redhat.com>
6612
6613         * trans-mem.c: Add contributed-by.
6614         * trans-mem.h: Same.
6615
6616 2015-09-01  Richard Biener  <rguenther@suse.de>
6617
6618         * expr.c (expand_expr_real_1): For expanding TERed defs
6619         set the current location to that of the def if not UNKNOWN.
6620
6621 2015-09-01  David Sherwood  <david.sherwood@arm.com>
6622
6623         * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
6624
6625 2015-09-01  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6626
6627         * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
6628         then_cost, else_cost fields.  Change branch_cost field to unsigned int.
6629         (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
6630         Include rtl-iter.h.
6631         (noce_simple_bbs): New function.
6632         (noce_try_move): Bail if basic blocks are not simple.
6633         (noce_try_store_flag): Likewise.
6634         (noce_try_store_flag_constants): Likewise.
6635         (noce_try_addcc): Likewise.
6636         (noce_try_store_flag_mask): Likewise.
6637         (noce_try_cmove): Likewise.
6638         (noce_try_minmax): Likewise.
6639         (noce_try_abs): Likewise.
6640         (noce_try_sign_mask): Likewise.
6641         (noce_try_bitop): Likewise.
6642         (bbs_ok_for_cmove_arith): New function.
6643         (noce_emit_all_but_last): Likewise.
6644         (noce_emit_insn): Likewise.
6645         (noce_emit_bb): Likewise.
6646         (noce_try_cmove_arith): Handle non-simple basic blocks.
6647         (insn_valid_noce_process_p): New function.
6648         (contains_mem_rtx_p): Likewise.
6649         (bb_valid_for_noce_process_p): Likewise.
6650         (noce_process_if_block): Allow non-simple basic blocks
6651         where appropriate.
6652
6653 2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>
6654
6655         * tree-ssa-dom.c (record_equivalences_from_phis,
6656         record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
6657         (lookup_avail_expr): Likewise, and remove comment and unused temp.
6658
6659 2015-09-01  Nick Clifton  <nickc@redhat.com>
6660
6661         * config/msp430/msp430.opt (mcpu): Fix typo.
6662
6663 2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6664
6665         * config/aarch64/aarch64.c (aarch64_set_current_function):
6666         Re-layout any vector parameters have non-simd layout.
6667         * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
6668         Delete.
6669         (aarch64_simd_expand_args): Delete call to the above.
6670
6671 2015-08-31  Mike Frysinger  <vapier@gentoo.org>
6672
6673         * doc/invoke.texi (asan-stack): Add space before option.
6674
6675 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
6676
6677         * tree.h (zerop): New function.
6678         * tree.c (zerop): Likewise.
6679         (element_precision): Handle expressions.
6680         * match.pd (define_predicates): Add zerop.
6681         (x <= +Inf): Fix comment.
6682         (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
6683         * fold-const.c (fold_binary_loc): ... here. Remove.
6684
6685 2015-08-31  Richard Biener  <rguenther@suse.de>
6686
6687         PR middle-end/67381
6688         * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
6689
6690 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
6691
6692         * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
6693         (CEXPI): New operator list.
6694         (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
6695         imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
6696         Converted from ...
6697         * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
6698
6699 2015-08-31  Tom de Vries  <tom@codesourcery.com>
6700
6701         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
6702         (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
6703         parameter.
6704         (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
6705         (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
6706         (rewrite_into_loop_closed_ssa): ... here.
6707         (replace_uses_in_dominated_bbs): Remove function.
6708         (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
6709         rewrite_into_loop_closed_ssa_1.
6710
6711 2015-08-31  Michael Matz  <matz@suse.de>
6712
6713         * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
6714         enter entry and exit blocks for reverse post order.
6715
6716 2015-08-31  Richard Biener  <rguenther@suse.de>
6717
6718         * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
6719         (lto_location_cache::current_sysp): Likewise.
6720         (output_block::current_sysp): Likewise.
6721         * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
6722         (lto_location_cache::apply_location_cache): Properly record
6723         system header locations.
6724         (lto_location_cache::input_location): Input whether a file
6725         is a system header.
6726         * lto-streamer-out.c (lto_output_location): Stream whether a file
6727         is a system header.
6728
6729 2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6730
6731         PR bootstrap/67363
6732         * gcc.c (env_manager::xput): Replace strndup by xstrndup.
6733
6734 2015-08-31  Tom de Vries  <tom@codesourcery.com>
6735
6736         * tree-ssa-loop-manip.c (find_uses_to_rename_use)
6737         (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
6738         Improve function header comments.
6739
6740 2015-08-30  Michael Collison  <michael.collison@linaro.org>
6741
6742         PR other/67320
6743         * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
6744         standard names
6745
6746 2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6747
6748         * config/rs6000/rs6000.c (swap_web_entry): Enlarge
6749         special_handling bitfield.
6750         (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
6751         (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
6752         that represents a general xxpermdi.
6753         (insn_is_swappable_p): Add handling for vec_concat of two
6754         doublewords, which maps to a specific xxpermdi.
6755         (adjust_xxpermdi): New function.
6756         (adjust_concat): Likewise.
6757         (handle_special_swappables): Call adjust_xxpermdi and
6758         adjust_concat.
6759         (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
6760
6761 2015-08-30  Rich Felker <dalias@libc.org>
6762
6763         * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
6764         case instead of sh[123456ble]-*-*.
6765
6766 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
6767
6768         * ira.c (print_unform_and_important_classes,
6769         print_translated_classes): Remove reg_class_names static array.
6770         (print_unform_and_important_classes): Rename to ...
6771         (print_uniform_and_important_classes): ... this.
6772         (ira_debug_allocno_classes): Update accordingly.
6773
6774 2015-08-29  Tom de Vries  <tom@codesourcery.com>
6775
6776         PR tree-optimization/46193
6777         * omp-low.c (omp_reduction_init): Handle pointer type for min or max
6778         clause.
6779
6780 2015-08-28  Jeff Law  <law@redhat.com>
6781
6782         PR lto/66752
6783         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
6784         unable to find X NE 0 in the tables, return X as the simplified
6785         condition.
6786         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
6787         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
6788         to VISISTED_BBS.
6789         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
6790         after removing the control flow statement and unnecessary edges.
6791
6792 2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>
6793
6794         Revert:
6795         2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
6796
6797         PR tree-optimization/67283
6798         * tree-sra.c (type_consists_of_records_p): Rename to...
6799         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
6800
6801         (completely_scalarize_record): Rename to...
6802         (completely_scalarize): ...this, add ARRAY_TYPE case, move some
6803         code to:
6804         (scalarize_elem): New.
6805
6806 2015-08-28  Jiong Wang  <jiong.wang@arm.com>
6807
6808         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
6809         SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
6810         (aarch64_symbol_type): Likewise.
6811         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
6812         Likewise.
6813         (aarch64_expand_mov_immediate): Likewise.
6814         (aarch64_print_operand): Likewise.
6815         (aarch64_classify_tls_symbol): Likewise.
6816
6817 2015-08-28  Richard Biener  <rguenther@suse.de>
6818
6819         * cgraphunit.c (symbol_table::compile): Move early debug generation
6820         and finish...
6821         (symbol_table::finalize_compilation_unit): ... back here and
6822         add a !seen_error () guard.
6823
6824 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
6825
6826         * toplev.c (process_options): Do not use flag_loop_block,
6827         flag_loop_interchange, and flag_loop_strip_mine.  Add check for
6828         flag_loop_optimize_isl.
6829
6830 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
6831
6832         * Makefile.in (OBJS): Remove graphite-blocking.o and
6833         graphite-interchange.o.
6834         * common.opt (floop-strip-mine, floop-interchange, floop-block):
6835         Alias of floop-nest-optimize.
6836         * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
6837         Document as alias of -floop-nest-optimize.
6838         * graphite-blocking.c: Remove.
6839         * graphite-interchange.c: Remove.
6840         * graphite-optimize-isl.c: Include dumpfile.h.
6841         (getScheduleForBand): Add dump for tiled loops.  Use
6842         PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
6843         * graphite-poly.c (scop_max_loop_depth): Remove.
6844         (print_scattering_function_1): Remove.
6845         (print_scattering_function): Remove.
6846         (print_scattering_functions): Remove.
6847         (debug_scattering_function): Remove.
6848         (debug_scattering_functions): Remove.
6849         (apply_poly_transforms): Remove use of flag_loop_block,
6850         flag_loop_strip_mine, and flag_loop_interchange.
6851         (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
6852         PBB_ORIGINAL.
6853         (print_pdr_access_layout): Remove.
6854         (print_pdr): Print ISL representation.
6855         (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
6856         SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
6857         (free_scop): Same.
6858         (openscop_print_pbb_domain): Remove.
6859         (print_pbb): Remove call to print_scattering_function.
6860         (openscop_print_scop_context): Remove.
6861         (print_scop_context): Do not print matrices anymore.
6862         (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
6863         SCOP_TRANSFORMED_SCHEDULE.
6864         (print_isl_set): Add printing of a new line.
6865         (print_isl_map): Same.
6866         (print_isl_aff): Same.
6867         (print_isl_constraint): Same.
6868         (loop_to_lst): Remove.
6869         (scop_to_lst): Remove.
6870         (lst_indent_to): Remove.
6871         (print_lst): Remove.
6872         (debug_lst): Remove.
6873         (dot_lst_1): Remove.
6874         (dot_lst): Remove.
6875         (reverse_loop_at_level): Remove.
6876         (reverse_loop_for_pbbs): Remove.
6877         * graphite-poly.h (pdr_dim_iter_domain): Remove.
6878         (pdr_nb_params): Remove.
6879         (pdr_alias_set_dim): Remove.
6880         (pdr_subscript_dim): Remove.
6881         (pdr_iterator_dim): Remove.
6882         (pdr_parameter_dim): Remove.
6883         (same_pdr_p): Remove.
6884         (struct poly_scattering): Remove.
6885         (struct poly_bb): Remove _original, _transformed, _saved.
6886         (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
6887         (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
6888         (PBB_NB_LOCAL_VARIABLES): Remove.
6889         (PBB_NB_SCATTERING_TRANSFORM): Remove.
6890         (schedule_to_scattering): Remove.
6891         (number_of_write_pdrs): Remove.
6892         (pbb_dim_iter_domain): Remove.
6893         (pbb_nb_params): Remove.
6894         (pbb_nb_scattering_orig): Remove.
6895         (pbb_nb_scattering_transform): Remove.
6896         (pbb_nb_dynamic_scattering_transform): Remove.
6897         (pbb_nb_local_vars): Remove.
6898         (pbb_iterator_dim): Remove.
6899         (pbb_parameter_dim): Remove.
6900         (psco_scattering_dim): Remove.
6901         (psct_scattering_dim): Remove.
6902         (psct_local_var_dim): Remove.
6903         (psco_iterator_dim): Remove.
6904         (psct_iterator_dim): Remove.
6905         (psco_parameter_dim): Remove.
6906         (psct_parameter_dim): Remove.
6907         (psct_dynamic_dim): Remove.
6908         (psct_static_dim): Remove.
6909         (psct_add_local_variable): Remove.
6910         (new_lst_loop): Remove.
6911         (new_lst_stmt): Remove.
6912         (free_lst): Remove.
6913         (copy_lst): Remove.
6914         (lst_add_loop_under_loop): Remove.
6915         (lst_depth): Remove.
6916         (lst_dewey_number): Remove.
6917         (lst_dewey_number_at_depth): Remove.
6918         (lst_pred): Remove.
6919         (lst_succ): Remove.
6920         (lst_find_pbb): Remove.
6921         (find_lst_loop): Remove.
6922         (lst_find_first_pbb): Remove.
6923         (lst_empty_p): Remove.
6924         (lst_find_last_pbb): Remove.
6925         (lst_contains_p): Remove.
6926         (lst_contains_pbb): Remove.
6927         (lst_create_nest): Remove.
6928         (lst_remove_from_sequence): Remove.
6929         (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
6930         (lst_niter_for_loop): Remove.
6931         (pbb_update_scattering): Remove.
6932         (lst_update_scattering_under): Remove.
6933         (lst_update_scattering): Remove.
6934         (lst_insert_in_sequence): Remove.
6935         (lst_replace): Remove.
6936         (lst_substitute_3): Remove.
6937         (lst_distribute_lst): Remove.
6938         (lst_remove_all_before_including_pbb): Remove.
6939         (lst_remove_all_before_excluding_pbb): Remove.
6940         (struct scop): Remove original_schedule, transformed_schedule, and
6941         saved_schedule.
6942         (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
6943         (SCOP_SAVED_SCHEDULE): Remove.
6944         (poly_scattering_new): Remove.
6945         (poly_scattering_free): Remove.
6946         (poly_scattering_copy): Remove.
6947         (store_scattering_pbb): Remove.
6948         (store_lst_schedule): Remove.
6949         (restore_lst_schedule): Remove.
6950         (store_scattering): Remove.
6951         (restore_scattering_pbb): Remove.
6952         (restore_scattering): Remove.
6953         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
6954         Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
6955         compute the scattering polyhedron dimension from the dimension of
6956         pbb->domain.
6957         (build_scop_scattering): Update call to
6958         build_pbb_scattering_polyhedrons.
6959         (build_poly_scop): Remove call to scop_to_lst.
6960         * graphite.c (graphite_transform_loops): Add call to print_scop.
6961         (gate_graphite_transforms): Remove use of flag_loop_block,
6962         flag_loop_interchange, and flag_loop_strip_mine.
6963
6964 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
6965
6966         * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
6967         * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
6968         -floop-nest-optimize.
6969         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
6970         (generate_luj_sepclass): Remove.
6971         (generate_luj_options): Remove.
6972         (set_options): Remove opt_luj.
6973         (scop_to_isl_ast): Remove opt_luj.
6974         * graphite-optimize-isl.c (getScheduleForBand): Remove check for
6975         flag_loop_unroll_jam.
6976         (getPrevectorMap_full): Remove.
6977         (getScheduleForBandList): Remove map_sepcl.
6978         (getScheduleMap): Same.
6979         (apply_schedule_map_to_scop): Remove sepcl.
6980         (optimize_isl): Same.
6981         * graphite-poly.c (apply_poly_transforms): Remove check for
6982         flag_loop_unroll_jam.
6983         (new_poly_bb): Remove map_sepclass.
6984         * graphite-poly.h (struct poly_bb): Same.
6985         * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
6986         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
6987         (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
6988         * toplev.c (process_options): Remove flag_loop_unroll_jam.
6989
6990 2015-08-27  Uros Bizjak  <ubizjak@gmail.com>
6991
6992         PR target/67317
6993         * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
6994         (addqi3_cc): Ditto.
6995         (UNSPEC_ADD_CARRY): Remove.
6996         (addqi3_cconly_overflow): New expander.
6997         (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
6998         Adjust for changed add<mode>3_carry.
6999         (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
7000         (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
7001         (<plusminus_insn><mode>3_carry): Remove expander.
7002         (*<plusminus_insn><mode>3_carry): Split insn pattern to
7003         add<mode>3_carry and sub<mode>3_carry.
7004         (plusminus_carry_mnemonic): Remove code attribute.
7005         (add<mode>3_carry): Canonicalize insn pattern.
7006         (*addsi3_carry_zext): Ditto.
7007         (sub<mode>3_carry): Ditto.
7008         (*subsi3_carry_zext): Ditto.
7009         (adcx<mode>3): Remove insn pattern.
7010         (addcarry<mode>): New insn pattern.
7011         (subborrow<mode>): Ditto.
7012         * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
7013         gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
7014         (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
7015         case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
7016         case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
7017         CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
7018         Rewrite expander to not clobber carry flag chains.
7019
7020 2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>
7021
7022         * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
7023         instead of a rotate.
7024
7025 2015-08-27  Marek Polacek  <polacek@redhat.com>
7026
7027         PR middle-end/67005
7028         * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
7029         an entry into an irreducible region.
7030
7031 2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7032
7033         * configure: Regenerate.
7034
7035 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
7036
7037         PR tree-optimization/67283
7038         * tree-sra.c (type_consists_of_records_p): Rename to...
7039         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
7040
7041         (completely_scalarize_record): Rename to...
7042         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
7043         (scalarize_elem): New.
7044
7045 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
7046
7047         * tree-sra.c (completely_scalarize_var): Rename to...
7048         (create_total_scalarization_access): ... Here. Drop call to
7049         completely_scalarize_record.
7050
7051         (analyze_all_variable_accesses): Replace completely_scalarize_var
7052         with create_total_scalarization_access and completely_scalarize_record.
7053
7054 2015-08-27  Alan Modra  <amodra@gmail.com>
7055
7056         PR target/67356
7057         * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
7058         for operand 1.
7059
7060 2015-08-27  Richard Biener  <rguenther@suse.de>
7061
7062         * passes.c (rest_of_decl_compilation): Guard early_global_decl
7063         call with !seen_error ().
7064         * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
7065         early debug generation and finish...
7066         (symbol_table::compile): ... here to put it after a !seen_error ()
7067         guard.
7068
7069 2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7070
7071         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
7072         Solaris 12+.
7073
7074 2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7075             Andre Vieira  <andre.simoesdiasvieira@arm.com>
7076
7077         * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
7078         (*cb<optab><mode>1): Likewise.
7079         (*tb<optab><mode>1): Likewise.
7080         (*cb<optab><mode>1): Likewise.
7081         * config/aarch64/iterators.md (inv_cb): New code attribute.
7082         (inv_tb): Likewise.
7083         * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
7084         * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
7085
7086 2015-08-27  Richard Biener  <rguenther@suse.de>
7087
7088         * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
7089
7090 2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7091
7092         * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
7093         trap to fix ICE.
7094
7095 2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7096
7097         * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
7098         Add declaration.
7099
7100         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
7101         comment.
7102         (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
7103         floating point in VSX registers.
7104         (rs6000_output_move_128bit): Always print out the set insn if we
7105         can't generate an appropriate 128-bit move.
7106         (rs6000_generate_compare): Add support for IEEE 128-bit floating
7107         point in VSX registers comparisons.
7108         (rs6000_expand_float128_convert): Likewise.
7109
7110         * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
7111         predicate for only GPR hard registers.
7112
7113         * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
7114         modes to iterators. Add new iterators for moving 128-bit values in
7115         scalar FPR registers and VSX registers.
7116         (FMOVE128): Likewise.
7117         (FMOVE128_FPR): Likewise.
7118         (FMOVE128_GPR): Likewise.
7119         (FMOVE128_VSX): Likewise.
7120         (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
7121         in VSX registers.
7122         (IFKF): Likewise.
7123         (IBM128): Likewise.
7124         (TFIFKF): Likewise.
7125         (RELOAD): Add IEEE 128-bit floating point modes.
7126         (signbittf2): Convert TF insns to add support for new IEEE 128-bit
7127         floating point in VSX registers modes.
7128         (signbit<mode>2, IBM128 iterator): Likewise.
7129         (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
7130         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
7131         (negtf2): Likewise.
7132         (neg<mode>2, TFIFKF iterator): Likewise.
7133         (negtf2_internal): Likewise.
7134         (abstf2): Likewise.
7135         (abs<mode>2, TFIFKF iterator): Likewise.
7136         (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
7137         VSX insn support for negate, absolute value, and negative absolute
7138         value.
7139         (ieee_128bit_vsx_neg<mode>2): Likewise.
7140         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
7141         (ieee_128bit_vsx_abs<mode>2): Likewise.
7142         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
7143         (ieee_128bit_vsx_nabs<mode>2): Likewise.
7144         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
7145         (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
7146         floating point in VSX registers.
7147         (unpack<mode>_dm): Likewise.
7148         (unpack<mode>_nodm): Likewise.
7149         (pack<mode>): Likewise.
7150         (unpackv1ti): Likewise.
7151         (unpack<mode>, FMOVE128_VSX iterator): Likewise.
7152         (packv1ti): Likewise.
7153         (pack<mode>, FMOVE128_VSX iterator): Likewise.
7154         (extenddftf2): Add support for IEEE 128-bit floating point in VSX
7155         registers.
7156         (extenddftf2_internal): Likewise.
7157         (trunctfdf2): Likewise.
7158         (trunctfdf2_internal2): Likewise.
7159         (fix_trunc_helper): Likewise.
7160         (fix_trunctfdi2"): Likewise.
7161         (floatditf2): Likewise.
7162         (floatuns<mode>tf2): Likewise.
7163         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
7164         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
7165         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
7166         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
7167         (float<SDI:mode><IFKF:mode>2): Likewise.
7168         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
7169
7170 2015-08-26  Renlin Li  <renlin.li@arm.com>
7171
7172         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
7173
7174 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7175             Jiong Wang  <jiong.wang@arm.com>
7176
7177         * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
7178         (tlsie_tiny_<mode>): New define_insn.
7179         (tlsie_tiny_sidi): Likewise.
7180         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
7181         SYMBOL_TINY_TLSIE.
7182         (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
7183         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
7184         SYMBOL_TINY_TLSIE.
7185         (aarch64_expand_mov_immediate): Likewise.
7186         (aarch64_print_operand): Likewise.
7187         (arch64_classify_tls_symbol): Likewise.
7188
7189 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7190
7191         * config/arm/arm-arches.def: Replace single value flags with
7192         an initializer built from ARM_FSET_MAKE_CPU1.
7193         * config/arm/arm-cores.def: Likewise.
7194         * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
7195         derivation from the ARM_CORE macro definition, use the given value
7196         instead.
7197         (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
7198         ARM_ARCH macro definition, use the given value instead.
7199
7200 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7201
7202         * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
7203         feature set.
7204         (struct builtin_description): Replace field mask with field
7205         features.
7206         (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
7207         (IWMMXT2_BUILTIN): Likewise.
7208         (IWMMXT2_BUILTIN2): Likewise.
7209         (FP_BUILTIN): Likewise.
7210         (CRC32_BUILTIN): Likewise.
7211         (CRYPTO_BUILTIN): Likewise.
7212         (iwmmx_mbuiltin): Likewise.
7213         (iwmmx2_mbuiltin): Likewise.
7214         (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
7215         struct builtin_description.
7216
7217 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7218
7219         * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
7220         (struct builtin_description): Change type of mask to unsigned
7221         long.
7222         * config/arm/arm-protos.h (insn_flags): Declare as type
7223         arm_feature_set.
7224         (tune_flags): Likewise.
7225         * config/arm/arm.c (feature_count): New.
7226         (insn_flags): Define as type arm_feature_set.
7227         (tune_flags): Likewise.
7228         (struct processors): Define field flags as type arm_feature_set.
7229         (all_cores): Update for change to struct processors.
7230         (all_architectures): Likewise.
7231         (arm_option_check_internal): Use arm_feature_set and ARM_FSET
7232         macros.
7233         (arm_option_override_internal): Likewise.
7234         (arm_option_override): Likewise.
7235
7236 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7237             Jiong Wang  <jiong.wang@arm.com>
7238
7239         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
7240         tls size for tiny, small, large memory model.
7241         (aarch64_load_symref_appropriately): Support new symbol types.
7242         (aarch64_expand_mov_immediate): Likewise.
7243         (aarch64_print_operand): Likewise.
7244         (aarch64_classify_tls_symbol): Likewise.
7245         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
7246         (aarch64_symbol_type): Likewise.
7247         * config/aarch64/aarch64.md (tlsle): Deleted.
7248         (tlsle12_<mode>): New define_insn.
7249         (tlsle24_<mode>): Likewise.
7250         (tlsle32_<mode>): Likewise.
7251         (tlsle48_<mode>): Likewise.
7252         * doc/sourcebuild.texi (AArch64-specific attributes): Document
7253         "aarch64_tlsle32".
7254
7255 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7256
7257         * config/arm/arm-protos.h (FL_NONE): New.
7258         (FL_ANY): New.
7259         (arm_feature_set): New.
7260         (ARM_FSET_MAKE): New.
7261         (ARM_FSET_MAKE_CPU1): New.
7262         (ARM_FSET_MAKE_CPU2): New.
7263         (ARM_FSET_CPU1): New.
7264         (ARM_FSET_CPU2): New.
7265         (ARM_FSET_EMPTY): New.
7266         (ARM_FSET_ANY): New.
7267         (ARM_FSET_HAS_CPU1): New.
7268         (ARM_FSET_HAS_CPU2): New.
7269         (ARM_FSET_HAS_CPU): New.
7270         (ARM_FSET_ADD_CPU1): New.
7271         (ARM_FSET_ADD_CPU2): New.
7272         (ARM_FSET_DEL_CPU1): New.
7273         (ARM_FSET_DEL_CPU2): New.
7274         (ARM_FSET_UNION): New.
7275         (ARM_FSET_INTER): New.
7276         (ARM_FSET_XOR): New.
7277         (ARM_FSET_EXCLUDE): New.
7278         (AFM_FSET_IS_EMPTY): New.
7279         (ARM_FSET_CPU_SUBSET): New.
7280
7281 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
7282
7283         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
7284         SYMBOL_TLSLE to SYMBOL_TLSLE24.
7285         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7286         Likewise.
7287         (aarch64_expand_mov_immediate): Likewise.
7288         (aarch64_print_operand): Likewise.
7289         (aarch64_classify_symbol): Likewise.
7290
7291 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
7292
7293         * config/aarch64/aarch64.opt (mtls-size): New entry.
7294         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
7295         (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
7296         * doc/invoke.texi (AArch64 Options): Document -mtls-size.
7297
7298 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7299
7300         * gcc/config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
7301         ARM_CORE entry.  Fix some white-space.
7302         * gcc/config/arm/arm.c: Remove FL_FOR_ARCH derivation from
7303         ARM_CORE definition.
7304
7305 2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7306
7307         * fold-const.c (fold_binary_loc) : Move Optimize
7308         root(x)*root(y) as root(x*y) to match.pd.
7309         Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
7310         Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
7311         Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
7312         Move Optimize x/expN(y) into x*expN(-y) to match.pd.
7313         * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
7314         (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
7315         (mult (exps:s @0) (exps:s @1)) : New simplifier.
7316         (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
7317         (rdiv @0 (exps:s @1)) : New simplifier.
7318
7319 2015-08-25  Joseph Myers  <joseph@codesourcery.com>
7320
7321         * gcc.c (driver::finalize): Only assign to extra_specs if
7322         [EXTRA_SPECS].
7323
7324 2015-08-25  Marek Polacek  <polacek@redhat.com>
7325
7326         PR middle-end/67330
7327         * varasm.c (declare_weak): Return after giving an error.
7328
7329 2015-08-25  David Malcolm  <dmalcolm@redhat.com>
7330
7331         * gcc-main.c (main): Add params to driver ctor.
7332         * gcc.c (class env_manager): New.
7333         (env): New global.
7334         (env_manager::init): New.
7335         (env_manager::get): New.
7336         (env_manager::xput): New.
7337         (env_manager::restore): New.
7338         Poison getenv and putenv.
7339         (DEFAULT_TARGET_SYSTEM_ROOT): New.
7340         (target_system_root): Update initialization to use
7341         DEFAULT_TARGET_SYSTEM_ROOT.
7342         (struct spec_list): Add field "default_ptr".
7343         (INIT_STATIC_SPEC): Initialize new field "default_ptr".
7344         (init_spec): Likewise.
7345         (set_spec): Clear field "default_ptr".
7346         (read_specs): Free "spec" and "buffer".
7347         (xputenv): Reimplement in terms of env_manager.
7348         (process_command): Replace ::getenv calls with calls to the
7349         env_manager singleton.
7350         (process_brace_body): Free string in three places.
7351         (driver::driver): New.
7352         (driver::~driver): New.
7353         (used_arg): Convert from a function to...
7354         (class used_arg_t): ...this class, and...
7355         (used_arg): ...this new global instance.
7356         (used_arg_t::finalize): New function.
7357         (getenv_spec_function): Add "const" to local "value".  Replace
7358         ::getenv call with call to the env_manager singleton.
7359         (path_prefix_reset): New function.
7360         (driver::finalize): New function.
7361         * gcc.h (driver::driver): New.
7362         (driver::~driver): New.
7363         (driver::finalize): New.
7364
7365 2015-08-25  Nathan Sidwell  <nathan@acm.org>
7366
7367         * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
7368         target doesn't have one.
7369
7370 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
7371
7372         PR target/67346
7373         * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
7374
7375 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
7376
7377         PR target/67344
7378         * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
7379         a define_insn, remove second alternative.
7380
7381 2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
7382             Joseph Myers  <joseph@codesourcery.com>
7383
7384         * gcc.c (struct switchstr): Expand comment.
7385
7386 2015-08-25  Nathan Sidwell  <nathan@acm.org>
7387
7388         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
7389         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
7390
7391 2015-08-25  Richard Biener  <rguenther@suse.de>
7392
7393         PR middle-end/67306
7394         * genmatch.c (expr::gen_transform): Verify the result of
7395         builtin_decl_implicit.
7396         (dt_simplify::gen_1): Likewise.
7397
7398 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7399
7400         * config/arm/constraints.md: Also list Cs and US ARM-specific
7401         constraints as used.
7402
7403 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
7404
7405         PR target/66609
7406         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
7407         UNSPEC_PCREL.
7408         (nonpic_symbol_mentioned_p): Likewise.
7409         (sh_delegitimize_address): Likewise.
7410         (sh_function_ok_for_sibcall): Take into account weak symbols.
7411         (sh_expand_sym_label2reg): New.
7412         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
7413         * config/sh/sh.md (UNSPEC_PCREL): New enum.
7414         (call_pcrel): Use sh_expand_sym_label2reg.
7415         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
7416         (symPCREL_label2reg) New expand.
7417
7418 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
7419
7420         * graphite-poly.c: Change type of region from void* to sese.
7421         * graphite-poly.h (struct scop): Changing the type of scop::region
7422         from void* to sese. Change accessor macro accordingly.
7423         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
7424
7425 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
7426
7427         * graphite-scop-detection.c (stmt_simple_for_scop_p):
7428         Constrain only on INTEGER_TYPE.
7429
7430 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7431
7432         PR target/67211
7433         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
7434         -mefficient-unaligned-vsx on ISA 2.7.
7435
7436         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
7437         option to a masked option.
7438
7439         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
7440         logic for -mefficient-unaligned-vsx so that it is set via an arch
7441         ISA option, instead of being set if -mtune=power8 is set. Move
7442         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
7443         near other default option handling.
7444
7445 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7446
7447         * genflags.c (gen_macro): Delete.
7448         (gen_proto): Don't create GEN.*CALL.* macros.
7449         * gensupport.h (get_file_location): Declare.
7450         * gensupport.c (rtx_locs): New variable.
7451         (read_md_rtx): Record rtx locations.
7452         (get_file_location): New function.
7453         * target-insns.def (call, call_pop, call_value, call_value_pop)
7454         (sibcall, sibcall_value): New patterns.
7455         * gentarget-def.c (parse_argument): New function.
7456         (def_target_insn): Use it.  Handle optional operands.  Raise an
7457         error if an .md pattern has the wrong number of operands for the
7458         pattern name.  Remove the names of unused operands from the prototype.
7459         * builtins.c (expand_builtin_apply): Use targetm functions
7460         instead of HAVE_call_value and GEN_CALL_VALUE.
7461         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
7462         and sibcall_value_pop.
7463         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
7464         of GEN_CALL.
7465         * config/alpha/alpha.md (untyped_call): Likewise.
7466         * config/iq2000/iq2000.md (untyped_call): Likewise.
7467         * config/m68k/m68k.md (untyped_call): Likewise.
7468         * config/mips/mips.md (untyped_call): Likewise.
7469         * config/pa/pa.md (untyped_call): Likewise.
7470         * config/rs6000/rs6000.md (untyped_call): Likewise.
7471         * config/sparc/sparc.md (untyped_call): Likewise.
7472         * config/tilegx/tilegx.md (untyped_call): Likewise.
7473         * config/tilepro/tilepro.md (untyped_call): Likewise.
7474         * config/visium/visium.md (untyped_call): Likewise.
7475         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
7476         gen_call_value instead of GEN_CALL_VALUE.
7477         * config/arm/arm.md (untyped_call): Likewise.
7478         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
7479         GEN_CALL.
7480
7481 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7482
7483         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
7484         (have_cbranchcc4): New variable.
7485         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
7486         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
7487         (if_convert): Initialize have_cbranchcc4.
7488
7489 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7490
7491         * builtins.c (expand_cmpstrn): Rename to...
7492         (expand_cmpstrn_or_cmpmem): ...this.
7493         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
7494         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
7495         Remove mode argument.
7496         (expand_builtin): Update accordingly.
7497
7498 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7499
7500         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
7501         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
7502         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
7503         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
7504         Add predicates for operands 0 and 3.
7505         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
7506         operand.
7507         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
7508         immediate_operand to nonmemory_operand.
7509
7510 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7511
7512         * df-scan.c (df_insn_info_init_fields): New function, split out
7513         from...
7514         (df_insn_create_insn_record): ...here.
7515         (df_insn_info_free_fields): New function, split out from...
7516         (df_insn_info_delete): ...here.
7517         (df_insn_rescan): Use the new functions instead of freeing and
7518         reallocating the df_insn_info.
7519
7520 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7521
7522         * doc/install.texi (Binaries): Remove links no longer valid.
7523
7524 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
7525
7526         * config/nvptx/mkoffload.c (process): Replace
7527         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
7528
7529 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
7530
7531         PR target/67329
7532         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
7533
7534 2015-08-24  Renlin Li  <renlin.li@arm.com>
7535
7536         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
7537         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
7538         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
7539         * config/arm/constraints.md ("j"): Add check for high code.
7540
7541 2015-08-24  Tom de Vries  <tom@codesourcery.com>
7542
7543         PR tree-optimization/65468
7544         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
7545         chunk_size is one.
7546
7547 2015-08-24  Nathan Sidwell  <nathan@acm.org>
7548
7549         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
7550         change to nvptx_type_from_mode call. Use arg_promotion for both
7551         split and non-split args.
7552
7553 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7554
7555         * target-insns.def (movstr): New pattern.
7556         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
7557         (expand_movstr): Use targetm rather than HAVE_movstr/
7558         CODE_FOR_movstr.
7559
7560 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7561
7562         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
7563         cast syntax.
7564
7565 2015-08-24  Andrew Pinski  <apinski@cavium.com>
7566
7567         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
7568         AARCH64_EXTRA_TUNING_OPTION.
7569         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
7570         New enum.
7571         (aarch64_extra_tuning_flags): Base the shifted value on the index
7572         instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
7573         * config/aarch64/aarch64.c: Remove the last argument to
7574         AARCH64_EXTRA_TUNING_OPTION.
7575
7576 2015-08-23  Nathan Sidwell  <nathan@acm.org>
7577
7578         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
7579         decls.
7580         (nvptx_declare_function_name): Insert formatting tabs for
7581         consistency.
7582
7583 2015-08-23  Tom de Vries  <tom@codesourcery.com>
7584
7585         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
7586         parm_decl, rather than generating a dummy default def in cfun.
7587         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
7588         ssa_name from cfun and child_fn do not share a stmt as def stmt.
7589         (move_stmt_op): Handle PARM_DECl.
7590         (gather_ssa_name_hash_map_from): New function.
7591         (move_sese_region_to_fn): Add default defs for function params, and add
7592         them to vars_map.  Release copied ssa names.
7593         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
7594
7595 2015-08-23  Tom de Vries  <tom@codesourcery.com>
7596
7597         * doc/sourcebuild.texi: Rename vect_no_int_max with
7598         vect_no_int_min_max.  Update description.
7599
7600 2015-08-22  Andrew Pinski  <apinski@cavium.com>
7601
7602          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
7603         * config/aarch64/aarch64-protos.h
7604         (aarch64_fusion_pairs_index): New enum.
7605         (aarch64_fusion_pairs): Base the shifted value on the index instead
7606         Rewrite AARCH64_FUSE_ALL to be based on the end index.
7607         of the argument to AARCH64_FUSION_PAIR.
7608         * config/aarch64/aarch64.c: Remove the last argument to
7609         AARCH64_FUSION_PAIR.
7610
7611 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
7612
7613         * dominance.c (new_zero_array): Define.
7614         (dom_info): Redefine as class with proper encapsulation.
7615         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
7616         Add new members.
7617         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
7618         allocations/deallocations.  Pass function as parameter (instead of
7619         using cfun).
7620         (dom_info::get_idom): Define accessor method.
7621         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
7622         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
7623         (calculate_dominance_info): Adjust to use dom_info class.
7624         (verify_dominators): Likewise.
7625
7626 2015-08-21  Alexandre Oliva  <aoliva@redhat.com>
7627
7628         * print-rtl.c (print_rtx): Check the correct range for
7629         flag_dump_unnumbered_links to behave as documented.
7630
7631         PR rtl-optimization/67227
7632         PR rtl-optimization/64164
7633         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
7634         (nonoverlapping_memrefs_p): Test offsets and sizes when given
7635         identical gimple_reg exprs.
7636
7637 2015-08-21  Nathan Sidwell  <nathan@acm.org>
7638
7639         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
7640         expansion.
7641         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
7642         crtl->stack_alignment_needed to determine alignment.
7643         (nvptx_get_drap_rtx): New.
7644         (TARGET_GET_DRAP_RTX): Override.
7645         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
7646
7647 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7648
7649         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
7650
7651 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7652
7653         * configure.ac: Remove uwin* cases.
7654         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
7655         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
7656         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
7657         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
7658         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
7659         i[34567]86-*-uwin*, powerpc-*-beos*.
7660
7661 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
7662
7663         * gencodes.c (gencodes): Print the comma for the preceding
7664         enum value rather than the current one.  Use aliased enum values
7665         rather than #defines for compiled-out patterns.
7666         (main): Update accordingly.  Replace LAST_INSN_CODE with
7667         NUM_INSN_CODES.
7668         * lra.c (insn_code_data): Update accordingly.
7669         (finish_insn_code_data_once, get_static_insn_data): Likewise.
7670         * recog.h (target_recog): Likewise.
7671         (preprocess_insn_constraints): Change parameter to unsigned int.
7672         * recog.c (preprocess_insn_constraints): Likewise.
7673         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
7674         * tree-vect-stmts.c (vectorizable_operation): Simplify.
7675
7676 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
7677
7678         PR rtl-optimization/61657
7679         * loop-iv.c (iv_number_of_iterations): Declare up and down as
7680         unsigned.  Remove superflous uint64_t cast.
7681
7682 2014-08-21  Felix Yang  <felix.yang@huawei.com>
7683             Jiji Jiang  <jiangjiji@huawei.com>
7684
7685         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
7686         argument and get builtin function code directly from CALL.
7687         (gimple_stringop_fixed_value): Modified accordingly.
7688         (gimple_stringops_transform, gimple_stringops_values_to_profile):
7689         Modified accordingly and only accept BUILT_IN_NORMAL string operations.
7690
7691 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7692
7693         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
7694
7695 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7696
7697         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
7698         to match.pd.
7699         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
7700         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
7701         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
7702         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
7703         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
7704         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
7705         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
7706         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
7707         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
7708         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
7709
7710         * match.pd (SIN ) : New Operator.
7711         (TAN) : New Operator.
7712         (mult (SQRT@1 @0) @1) : New simplifier.
7713         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
7714         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
7715         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
7716         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
7717         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
7718         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
7719         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
7720         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
7721         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
7722         (rdiv @0 (POW:s @1 @2)) : New simplifier.
7723
7724 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
7725
7726         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
7727         loop if EXPR is simplified to const value.
7728
7729 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
7730
7731         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
7732         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
7733
7734 2015-08-21  Richard Biener  <rguenther@suse.de>
7735
7736         PR middle-end/67285
7737         * gimple-fold.c (replace_stmt_with_simplification): Assert
7738         seq is empty when replacing a call with itself but different
7739         arguments.
7740         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
7741         a call require that it is const.
7742
7743 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7744
7745         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
7746         * builtins.c (get_object_alignment_2): Adjust.
7747         * varasm.c (align_variable): Likewise.
7748         (get_variable_align): Likewise.
7749         (build_constant_desc): Likewise.
7750         (force_const_mem): Likewise.
7751         * doc/tm.texi.in: Likewise.
7752         * doc/tm.texi: Regenerate.
7753
7754 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7755
7756         * genconfig.c (main): Always define HAVE_cc0.
7757         * recog.c (rest_of_handle_peephole2): Adjust.
7758
7759 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7760
7761         * reorg.c (relax_delay_slots): Don't use #if to check value of
7762         HAVE_cc0.
7763
7764 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7765
7766         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
7767         * targhooks.c (default_have_conditional_execution): Adjust.
7768
7769 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
7770
7771         * rtl.h (rtvec_all_equal_p): Declare.
7772         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
7773         * rtl.c (rtvec_all_equal_p): New function.
7774         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
7775         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
7776         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
7777         * config/arm/arm.c (neon_vdup_constant): Likewise.
7778         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
7779         * config/tilegx/constraints.md (W, Y): Likewise.
7780         * config/tilepro/constraints.md (W, Y): Likewise.
7781         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
7782         (classify_immediate): Use unwrap_const_vec_duplicate.
7783         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
7784         (reg_or_v2s8bit_operand): Likewise.
7785         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
7786         (reg_or_v4s8bit_operand): Likewise.
7787
7788 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7789
7790         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
7791         (vec_shasigma_be): New #define.
7792         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
7793         (VPMSUMH): Likewise.
7794         (VPMSUMW): Likewise.
7795         (VPMSUMD): Likewise.
7796         (VPMSUM): New BU_P8V_OVERLOAD_2.
7797         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
7798         entries for VEC_MADD and VEC_VPMSUM.
7799
7800 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
7801
7802         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
7803         Multiply argument avr_n_flash by 64 to match unit of "KiB".
7804         (avr_pgm_check_var_decl): Same.
7805
7806 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
7807
7808         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
7809         initialization of HFmode scalar type (float16_t) to...
7810         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
7811         code.
7812
7813         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
7814
7815         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
7816         having an -mfp16-format.
7817
7818 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
7819
7820         * config/i386/predicates.md (vector_all_ones_operand): Use
7821         CONSTM1_RTX to simplify definition.
7822
7823 2015-08-20  Richard Biener  <rguenther@suse.de>
7824
7825         * toplev.c (compile_file): Remove loop calling late_global_decl
7826         on all symbols.
7827         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
7828         on decls we assembled.
7829
7830 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
7831
7832         * common/config/aarch64/aarch64-common.c
7833         (AARCH64_CPU_NAME_LENGTH): Delete.
7834         (aarch64_option_extension): New.
7835         (all_extensions): Likewise.
7836         (processor_name_to_arch): Likewise.
7837         (arch_to_arch_name): Likewise.
7838         (all_cores): New.
7839         (all_architectures): Likewise.
7840         (aarch64_get_extension_string_for_isa_flags): Likewise.
7841         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
7842         architecture names.
7843         * config/aarch64/aarch64-protos.h
7844         (aarch64_get_extension_string_for_isa_flags): New.
7845         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
7846         (aarch64_option_print): Get the string to print from
7847         aarch64_get_extension_string_for_isa_flags.
7848         (aarch64_declare_function_name): Likewise.
7849         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
7850         (MCPU_TO_MARCH_SPEC): This.
7851         (ASM_CPU_SPEC): Use it.
7852         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
7853         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
7854         (EXTRA_SPEC_FUNCTIONS): Use it.
7855
7856 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
7857
7858         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
7859         expansion when !ISA_HAS_LWL_LWR.
7860         (mips_block_move_straight): Update the size of elements copied to
7861         account for alignment when !ISA_HAS_LWL_LWR.
7862         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
7863
7864 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
7865
7866         * expr.c (expand_expr_real_2): Check gimple statement during
7867         LSHIFT_EXPR expand.
7868
7869 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
7870
7871         * common.opt (fstack-protector): Initialize to -1.
7872         (fstack-protector-all): Likewise.
7873         (fstack-protector-strong): Likewise.
7874         (fstack-protector-explicit): Likewise.
7875         * configure.ac: Add --enable-default-ssp.
7876         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
7877         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
7878         -1.
7879         * doc/install.texi: Document --enable-default-ssp.
7880         * config.in: Regenerated.
7881         * configure: Likewise.
7882
7883 2015-08-19  Alexandre Oliva  <aoliva@redhat.com>
7884
7885         PR rtl-optimization/64164
7886         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
7887         (parm_in_stack_slot_p): ... this.  Disregard mode, what
7888         matters is whether the parm will live in a pseudo or a stack
7889         slot.
7890         (expand_one_ssa_partition): Deal with params without a default
7891         def.  Disregard mode.
7892         * cfgexpand.h: Renamed function declaration.
7893         * tree-ssa-coalesce.c: Adjust.
7894         * function.c (split_complex_args): Allocate stack slot for
7895         unassigned parms before splitting.
7896         (parm_in_unassigned_mem_p): New.  Use it instead of
7897         parm_maybe_byref_p throughout this file.
7898         (assign_parm_setup_block): Use it.  Accept pseudos in the
7899         expand-assigned rtl.
7900         (assign_parm_setup_reg): Drop BLKmode requirement.
7901         (assign_parm_setup_stack): Allocate and fill in the address of
7902         unassigned MEM parms.
7903
7904 2015-08-19  David Sherwood  <david.sherwood@arm.com>
7905
7906         * genmodes.c (emit_mode_unit_size_inline): New function.
7907         (emit_mode_unit_precision_inline): New function.
7908         (emit_insn_modes_h): Emit new #define.  Emit new functions.
7909         (emit_mode_unit_size): New function.
7910         (emit_mode_unit_precision): New function.
7911         (emit_mode_adjustments): Add mode_unit_size adjustments.
7912         (emit_insn_modes_c): Emit new arrays.
7913         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
7914         use new inline methods.
7915
7916 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7917
7918         * config/aarch64/aarch64.c (bit_count): Delete prototype
7919         and definition.
7920         (aarch64_print_operand): Use popcount_hwi instead of the above.
7921
7922 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7923
7924         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
7925         comment.
7926
7927 2015-08-19  Marek Polacek  <polacek@redhat.com>
7928
7929         PR middle-end/67133
7930         * gimple-ssa-isolate-paths.c
7931         (insert_trap_and_remove_trailing_statements): Rename to ...
7932         (insert_trap): ... this.  Don't remove trailing statements; split
7933         block instead.
7934         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
7935
7936 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
7937
7938         PR other/67042
7939         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
7940         conditionalize the whole on __GNUC__.  Add fallback code
7941         depending neither on undefined nor implementation-defined behaviour.
7942
7943 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
7944
7945         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
7946         whitespaces with tab.
7947
7948 2015-08-19  Florian Weimer  <fweimer@redhat.com>
7949
7950         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
7951         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
7952         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
7953         Move Name_Ids instantiation to the Prj.Proc package, to avoid
7954         trampolines.
7955
7956 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7957
7958         * config/arm/arm.c (bounds_check): Use %wd print format
7959         for HOST_WIDE_INT arguments.
7960
7961 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
7962
7963         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
7964         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
7965         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
7966         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
7967         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
7968         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
7969         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
7970         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
7971         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
7972         typedefs.
7973
7974 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
7975
7976         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
7977         function.c, graphite-scop-detection.c, haifa-sched.c,
7978         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
7979         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
7980         varasm.c: Remove typedefs of structs.
7981
7982 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
7983
7984         * config/rs6000/altivec.h (vec_adde): New define.
7985         (vec_addec): Likewise.
7986         (vec_double): Likewise.
7987         (vec_bperm): Likewise.
7988         (vec_gb): Likewise.
7989         * config/rs6000/rs6000-builtin.def (ADDE): New
7990         BU_ALTIVEC_OVERLOAD_3.
7991         (ADDEC): Likewise.
7992         (DOUBLE): New BU_VSX_OVERLOAD_1.
7993         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
7994         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
7995         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
7996         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
7997         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
7998         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
7999         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
8000         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
8001         and P8V_BUILTIN_VEC_VBPERMQ.
8002
8003 2015-08-18  Jason Merrill  <jason@redhat.com>
8004
8005         * print-tree.c (print_node): Handle TREE_BINFO.
8006
8007 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8008
8009         PR middle-end/36757
8010         * builtins.c (expand_builtin_signbit): Add asserts to make sure
8011         we can expand BUILT_IN_SIGNBIT inline.
8012         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
8013         * doc/extend.texi: Document the type-generic __builtin_signbit.
8014
8015 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
8016
8017         PR rtl-optimization/67218
8018         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
8019         (simplify_unary_operation_1): Use it.
8020
8021 2015-08-18  Marek Polacek  <polacek@redhat.com>
8022
8023         PR middle-end/67222
8024         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
8025         if the call isn't valid.
8026         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
8027         gimple_call_builtin_p.
8028         (call_may_clobber_ref_p_1): Likewise.
8029         (stmt_kills_ref_p): Likewise.
8030
8031 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
8032
8033         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
8034         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
8035         (mips_hard_regno_scratch_ok): Likewise.
8036         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
8037         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
8038
8039 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
8040
8041         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
8042         (determine_value_range): Call refine_value_range_using_guard for
8043         each loop initial condition to improve value range.
8044
8045 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
8046
8047         * config/i386/i386.c: Remove include of fibheap.h.
8048
8049 2015-08-17  Richard Biener  <rguenther@suse.de>
8050
8051         PR tree-optimization/67221
8052         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
8053         (sccvn_dom_walker::before_dom_children): Mark backedges of
8054         non-executable blocks as not executable.
8055
8056 2015-08-17  David Sherwood  <david.sherwood@arm.com>
8057
8058         * config/arm/arm.c (neon_element_bits): Replace call to
8059         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
8060         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
8061         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
8062         (neon_vdup_lane<mode>): Likewise.
8063         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
8064         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
8065         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
8066         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
8067         * config/spu/spu.c (arith_immediate_p): Likewise.
8068         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
8069         * expr.c (expand_expr_real_2): Likewise.
8070         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
8071         * simplify-rtx.c (simplify_immed_subreg): Likewise.
8072         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
8073         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
8074         New variable.
8075         * fold-const.c (fold_binary_loc): Replace call to
8076         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
8077         GET_MODE_UNIT_PRECISION (m).
8078
8079 2015-08-17  Mike Stump  <mikestump@comcast.net>
8080
8081         * config/arm/arm.c (arm_block_move_unaligned_straight):
8082         Emit normal move instead of unaligned load when source or destination
8083         are appropriately aligned.
8084
8085 2015-08-17  Richard Biener  <rguenther@suse.de>
8086             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8087
8088         PR middle-end/16107
8089         * match.pd (div (coss (op @0) : New simplifier.
8090
8091 2015-08-14  Alexandre Oliva  <aoliva@redhat.com>
8092
8093         PR rtl-optimization/64164
8094         PR bootstrap/66978
8095         PR middle-end/66983
8096         PR rtl-optimization/67000
8097         PR middle-end/67034
8098         PR middle-end/67035
8099         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
8100         * tree-ssa-copyrename.c: Removed.
8101         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
8102         -ftree-coalesce-vars.
8103         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
8104         * common.opt (ftree-copyrename): Ignore.
8105         (ftree-coalesce-inlined-vars): Likewise.
8106         * doc/invoke.texi: Remove the ignored options above.
8107         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
8108         * tree-ssa-coalesce.h: ... here.
8109         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
8110         headers required by it.
8111         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
8112         across variables when flag_tree_coalesce_vars.  Check register
8113         use and promoted modes to allow coalescing.  Do not coalesce
8114         maybe-byref parms with SSA_NAMEs of other variables, or
8115         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
8116         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
8117         with its member functions to tree-ssa-coalesce.c.
8118         (var_map_base_init): Likewise.  Renamed to
8119         compute_samebase_partition_bases.
8120         (partition_view_normal): Drop want_bases parameter.
8121         (partition_view_bitmap): Likewise.
8122         * tree-ssa-live.h: Adjust declarations.
8123         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
8124         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
8125         default defs at the entry point.
8126         (dump_part_var_map): New.
8127         (compute_optimized_partition_bases): New, called by...
8128         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
8129         of compute_samebase_partition_bases.  Adjust.
8130         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
8131         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
8132         (ssa_default_def_partition): New.
8133         (get_rtl_for_parm_ssa_default_def): New.
8134         (align_local_variable, add_stack_var): Support anonymous SSA
8135         names.
8136         (defer_stack_allocation): Likewise.  Declare earlier.
8137         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
8138         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
8139         Do no record deferred-allocation marker in
8140         SA.partition_to_pseudo.
8141         (expand_stack_vars): Adjust check for the marker in it.
8142         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
8143         redundant MEM attr setting.
8144         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
8145         from...
8146         (expand_one_stack_var): ... this.  New wrapper to check and
8147         skip already expanded SSA partitions.
8148         (record_alignment_for_reg_var): New, factored out of...
8149         (expand_one_var): ... this.
8150         (expand_one_ssa_partition): New.
8151         (adjust_one_expanded_partition_var): New.
8152         (expand_one_register_var): Check and skip already expanded SSA
8153         partitions.
8154         (expand_used_vars): Don't create DECLs for anonymous SSA
8155         names.  Expand all SSA partitions, then adjust all SSA names.
8156         (pass::execute): Replace the loops that set
8157         SA.partition_to_pseudo from partition leaders and cleared
8158         DECL_RTL for multi-location variables, and that which used to
8159         rename vars and set attrs, with one that clears DECL_RTL and
8160         checks that PARMs and RESULTs default_defs match DECL_RTL.
8161         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
8162         * emit-rtl.c: Include stor-layout.h.
8163         (set_reg_attrs_for_parm): Handle NULL decl.
8164         (set_reg_attrs_for_decl_rtl): Take mode from expression if
8165         it's not a DECL.
8166         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
8167         rather than its possibly-NULL DECL.
8168         * explow.c (promote_ssa_mode): New.
8169         * explow.h (promote_ssa_mode): Declare.
8170         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
8171         (read_complex_part): Export.
8172         * expr.h (read_complex_part): Declare.
8173         * cfgexpand.h (parm_maybe_byref_p): Declare.
8174         * function.c: Include cfgexpand.h.
8175         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
8176         (use_register_for_parm_decl): Wrapper for the above to
8177         special-case the result_ptr.
8178         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
8179         (split_complex_args): Take assign_parm_data_all argument.
8180         Pass it to rtl_for_parm.  Set up rtl and context for split
8181         args.  Reset complex parm before fetching its default decl
8182         rtl.
8183         (assign_parms_unsplit_complex): Use the default-def complex
8184         parm rtl if it matches the components.
8185         (assign_parms_augmented_arg_list): Adjust.
8186         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
8187         multiple locations.  Recognize split complex args.
8188         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
8189         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
8190         (assign_parm_setup_block): Prefer SSA-assigned location, and
8191         fill in its address if the memory location of a maybe-byref
8192         parm was not assigned by cfgexpand.
8193         (assign_parm_setup_reg): Likewise.  Adjust its mode as
8194         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
8195         sure passed_pointer parms don't need conversion.  Copy address
8196         or value as needed.
8197         (assign_parm_setup_stack): Prefer SSA-assigned location.
8198         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
8199         rtl before testing for pointer bounds.  Special-case result_ptr.
8200         (expand_function_start): Maybe reset DECL_RTL of result.
8201         Prefer SSA-assigned location for result and static chain.
8202         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
8203         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
8204         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
8205         anonymous SSA names.  Use promote_ssa_mode.
8206         (get_temp_reg): Likewise.
8207         (remove_ssa_form): Adjust.
8208         * stor-layout.c (layout_decl): Don't set mem attributes of
8209         non-MEMs.
8210         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
8211         and get its reg_usage for reg invalidation.
8212         (compute_bb_dataflow): Pass it insn.
8213         (emit_notes_in_bb): Likewise.
8214
8215 2015-08-14  Marek Polacek  <polacek@redhat.com>
8216
8217         * tree-core.h (tree_base): Fix typo.
8218
8219 2015-08-14  Marek Polacek  <polacek@redhat.com>
8220
8221         PR middle-end/67133
8222         * gimple.c (infer_nonnull_range_by_attribute): Check that the
8223         nonnull argument position is not outside function arguments.
8224
8225 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
8226
8227         PR target/67143
8228         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
8229         'lconst_atomic' with 'const_atomic'.
8230         (atomic_fetch_<optab><mode>): Likewise.
8231         (atomic_<optab>_fetch<mode>): Likewise.
8232         * config/aarch64/iterators.md (lconst-atomic): Move below
8233         'const_atomic'.
8234         (const_atomic): New.
8235
8236 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
8237             Bernd Schmidt  <bernds@codesourcery.com>
8238
8239         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
8240         debug options.
8241         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
8242         (DWARF2_DEBUGGING_INFO): Don't define.
8243         * debug.h (dwarf2_lineno_debug_hooks): Declare.
8244         * toplev.c (process_options): Add a case for it.
8245         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
8246         (dwarf2out_init): Skip most initializations if
8247         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
8248         case.
8249         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
8250         DWARF2_LINENO_DEBUGGING_INFO.
8251         * opts.c (set_debug_level): Likewise.
8252
8253 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
8254
8255         * config/arm/types.md (is_neon_type): Add missing types.
8256
8257 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
8258
8259         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
8260         for skylake.
8261         * config/i386/i386.c (PTA_SKYLAKE): New macros.
8262         (processor_alias_table): Add skylake description.
8263         (enum processor_model): Add skylake processor.
8264         (arch_names_table): Add skylake record.
8265         * doc/invoke.texi: Add skylake item.
8266
8267 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
8268
8269         * ira-int.h: Include recog.h.
8270         * ira-build.c: Don't include recog.h.
8271         * ira-color.c: Likewise.
8272         * ira-conflicts.c: Likewise.
8273         * ira-costs.c: Likewise.
8274         * ira-emit.c: Likewise.
8275         * ira-lives.c: Likewise.
8276         * ira.c: Likewise.
8277         * sched-deps.c: Likewise.
8278         * sel-sched.c: Likewise.
8279         * target-globals.c: Likewise.
8280
8281 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
8282
8283         PR bootstrap/55035
8284         * reload1.c (elimination_costs_in_insn): Make it obvious to the
8285         compiler that the n_dups and n_operands loop bounds are invariant.
8286
8287 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8288
8289         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
8290         expressions in A and B.
8291
8292 2015-08-13  Richard Biener  <rguenther@suse.de>
8293
8294         * tree.c (nonnull_arg_p): Move from ...
8295         * tree-vrp.c (nonnull_arg_p): ... here.
8296         * tree.h (nonnull_arg_p): Declare.
8297         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
8298         here, register ptr != 0 for nonnull_arg_p pointer arguments.
8299         Properly initialize static chain and by-reference result pointer.
8300         (run_scc_vn): Adjust.
8301
8302 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
8303
8304         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
8305         TUNE_I6400.
8306
8307 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
8308
8309         * config/aarch64/aarch64-protos.h
8310         (aarch64_gen_atomic_cas): Declare.
8311         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
8312         Choose appropriate instruction pattern for the target.
8313         (aarch64_gen_atomic_cas): New.
8314         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
8315         (atomic_compare_and_swap<mode>_1): Rename to
8316         aarch64_compare_and_swap<mode>.  Fix some indentation.
8317         (aarch64_compare_and_swap<mode>_lse): New.
8318         (aarch64_atomic_cas<mode>): New.
8319
8320 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
8321
8322         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
8323         (TARGET_LSE): New.
8324
8325 2015-08-13  Richard Biener  <rguenther@suse.de>
8326
8327         PR tree-optimization/67191
8328         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
8329         assert we value-numbered last stmts operand because it can validly
8330         trigger for unreachable code.
8331
8332 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8333
8334         PR rtl-optimization/67103
8335         * ifcvt.c (noce_try_store_flag_constants): Move
8336         x = (-(test != 0) & (b - a)) + a transformation to...
8337         (noce_try_cmove): ... Here.  Try it if normal conditional
8338         move fails.
8339
8340 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
8341
8342         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
8343         pseudo-processors.
8344         * config/mips/mips.md (processor): Remove w32 and w64.
8345
8346 2015-08-13  Richard Biener  <rguenther@suse.de>
8347
8348         PR tree-optimization/66502
8349         PR tree-optimization/67167
8350         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
8351         backedge arguments.
8352         (vn_phi_lookup): Adjust.
8353         (vn_phi_insert): Likewise.
8354         (visit_phi): Prefer to value-number to another PHI node
8355         over value-numbering to a PHI argument.
8356         (init_scc_vn): Mark DFS back edges.
8357
8358 2015-08-13  Richard Biener  <rguenther@suse.de>
8359
8360         * gimple.h (gcall::code_): New constant static member.
8361         (gcond::code_): Likewise.
8362         * gimple.c (gcall::code_): Define.
8363         (gcond::code_): Likewise.
8364         (is_a_helper <const gcond *>): Add.
8365         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
8366         and forward to a new gcall overload with less checking and a
8367         cheaper way to access the operand.
8368         (gimple_call_lhs_ptr): Likewise.
8369         (gimple_call_set_lhs): Likewise.
8370         (gimple_call_internal_p): Likewise.
8371         (gimple_call_with_bounds_p): Likewise.
8372         (gimple_call_set_with_bounds): Likewise.
8373         (gimple_call_internal_fn): Likewise.
8374         (gimple_call_set_ctrl_altering): Likewise.
8375         (gimple_call_ctrl_altering_p): Likewise.
8376         (gimple_call_fntype): Likewise.
8377         (gimple_call_fn): Likewise.
8378         (gimple_call_fn_ptr): Likewise.
8379         (gimple_call_set_fndecl): Likewise.
8380         (gimple_call_fndecl): Likewise.
8381         (gimple_call_chain): Likewise.
8382         (gimple_call_num_args): Likewise.
8383         (gimple_call_arg): Likewise.
8384         (gimple_call_arg_ptr): Likewise.
8385         (gimple_call_set_arg): Likewise.
8386         (gimple_call_noreturn_p): Likewise.
8387         (gimple_cond_code): Likewise.
8388         (gimple_cond_lhs): Likewise.
8389         (gimple_cond_rhs): Likewise.
8390         (gimple_has_lhs): Reduce checking.
8391
8392 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8393
8394         PR middle-end/25529
8395         * match.pd (div (mult @0 @1) @1) : New simplifier.
8396
8397 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8398
8399         PR target/67071
8400         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
8401         predicate to allow construction of vector constants using the
8402         VSLDOI vector shift instruction.
8403
8404         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
8405         declaration.
8406
8407         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
8408         the number of bytes to be shifted left and filled in with either
8409         all zero or all one bits.
8410         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
8411         methods exist.
8412         (output_vec_const_move): On power8, generate XXLORC to generate
8413         a vector constant with all 1's. Do a split if we need to use a
8414         VSLDOI instruction.
8415
8416         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
8417         properly test for the MSB.
8418
8419         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
8420         vector constants that can be created with VSLDOI.
8421
8422 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
8423
8424         revert:
8425         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
8426         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
8427         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
8428         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
8429         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
8430         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8431         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
8432         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
8433         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
8434
8435 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
8436
8437         * config/xtensa/constraints.md (define_constraint "Y"): New
8438         constraint.
8439         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
8440         * config/xtensa/linux.h (ASM_SPEC): Likewise.
8441         * config/xtensa/predicates.md (move_operand): Match constants
8442         and symbols in the presence of TARGET_AUTO_LITPOOLS.
8443         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
8444         immediate references to TLS data.
8445         (xtensa_emit_move_sequence): Don't force constants to memory in
8446         the presence of TARGET_AUTO_LITPOOLS.
8447         (print_operand): Add 'y' format, same as default, but capable of
8448         printing SF mode constants as well.
8449         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
8450         (movsf_internal): Add movi pattern that loads literal.
8451         (movsf, movdf): Don't force constants to memory in the presence
8452         of TARGET_AUTO_LITPOOLS.
8453         (movdf_internal): Add 'Y' constraint.
8454         * config/xtensa/xtensa.opt (mauto-litpools): New option.
8455         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
8456
8457 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
8458
8459         * config/arm/arm-fpus.def: Replace booleans with feature flags.
8460         Update comment.
8461         * config/arm/arm.c (ARM_FPU): Update macro.
8462         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
8463         (TARGET_FP16): Likewise.
8464         (TARGET_CRYPTO): Likewise.
8465         (TARGET_NEON): Likewise.
8466         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
8467         field features.
8468
8469 2015-08-12  Tom de Vries  <tom@codesourcery.com>
8470
8471         PR other/67092
8472         PR other/67098
8473         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
8474         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
8475         accordingly.  Mention default for --with-stage1-ldflags.
8476
8477 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
8478
8479         * config/arm/arm.h (arm_fpu_feature_set): New.
8480         (ARM_FPU_FSET_HAS): New.
8481         (FPU_FL_NONE): New.
8482         (FPU_FL_NEON): New.
8483         (FPU_FL_FP16): New.
8484         (FPU_FL_CRYPTO): New.
8485
8486 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8487
8488         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
8489         after -mcmodel=large -fPIC sorry.
8490
8491 2015-08-12  Richard Biener  <rguenther@suse.de>
8492
8493         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
8494         comparison operand order and commutative ternary op operand order.
8495         (sccvn_dom_walker::cond_stack): New state to track temporary
8496         expressions.
8497         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
8498         no longer valid.
8499         (sccvn_dom_walker::record_cond): Add a single temporary conditional
8500         expression.
8501         (sccvn_dom_walker::record_conds): Add a temporary conditional
8502         expressions and all related expressions also true/false.
8503         (sccvn_dom_walker::before_dom_children): Record temporary
8504         expressions based on the controlling condition of a single
8505         predecessor.  When trying to simplify a conditional statement
8506         lookup expressions we might have inserted earlier.
8507
8508 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
8509
8510         PR target/67127
8511         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
8512         to ARM core registers.
8513
8514 2015-08-12  Nathan Sidwell  <nathan@acm.org>
8515
8516         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
8517         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
8518
8519 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
8520
8521         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
8522         line with comments.
8523         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
8524
8525 2015-08-12  Richard Biener  <rguenther@suse.de>
8526
8527         * gimple.h (remove_pointer): New trait.
8528         (GIMPLE_CHECK2): New inline template function.
8529         (gassign::code_): New constant static member.
8530         (is_a_helper<const gassign *>): Add.
8531         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
8532         and forward to a new gassign overload with less checking and a
8533         cheaper way to access the operand.
8534         (gimple_assign_lhs_ptr): Likewise.
8535         (gimple_assign_set_lhs): Likewise.
8536         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
8537         Likewise.
8538         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
8539         Likewise.
8540         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
8541         Likewise.
8542         (gimple_assign_rhs_code): Likewise.
8543         * gimple.c (gassign::code_): Define.
8544
8545 2015-08-12  Richard Biener  <rguenther@suse.de>
8546
8547         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
8548         Eliminate edges marked as not executable by SCCVN.
8549         * tree-ssa-sccvn.c: Include gimple-iterator.h.
8550         (cond_dom_walker): Rename to sccvn_dom_walker.
8551         (sccvn_dom_walker::before_dom_children): Value-number defs
8552         of all stmts.
8553         (run_scc_vn): Remove loop value-numbering all SSA names.
8554         Drop not visited SSA names to varying.
8555
8556 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
8557
8558         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
8559         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
8560         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
8561         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
8562         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
8563         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8564         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
8565         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
8566         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
8567
8568 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
8569
8570         PR target/66954
8571         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
8572         to enum feature_priority and feature_list.
8573         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
8574         and isa_names_table.
8575
8576 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
8577
8578         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
8579         vect_induction_def.
8580
8581 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8582
8583         PR c/66098
8584         PR c/66711
8585         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
8586         account when deciding what was the command-line status.
8587
8588 2015-08-11  Nathan Sidwell  <nathan@acm.org>
8589
8590         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
8591
8592         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
8593         we're not the only contributor to target phi.
8594
8595 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
8596
8597         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
8598         FIXED_REG0.
8599
8600 2015-08-11  Tom de Vries  <tom@codesourcery.com>
8601
8602         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
8603
8604 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
8605
8606         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
8607         with CPU_SLM.
8608         * config/i386/i386.md (cpu): Remove knl.
8609
8610 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
8611
8612         PR libgomp/65742
8613         PR middle-end/66332
8614         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
8615         open-coded sequence.
8616         * omp-low.c (oacc_process_reduction_data): Remove handline of
8617         GOMP_DEVICE_HOST_NONSHM.
8618
8619         * lto-streamer-in.c (lto_input_mode_table): Adjust to
8620         GET_MODE_INNER changes.
8621
8622 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
8623             Ilya Verbin  <ilya.verbin@intel.com>
8624
8625         * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
8626
8627 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8628
8629         * doc/options.texi (EnabledBy): Document that the argument must be
8630         a Common option.
8631         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
8632         Not enabled by -Wall.
8633         * optc-gen.awk: Give nicer error messages. Detect if the argument
8634         of EnabledBy is not a Common option.
8635         * common.opt (Wnull-dereference): Not enabled by -Wall.
8636         * opt-functions.awk (lang_enabled_by): Nicer error messages.
8637
8638 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
8639
8640         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
8641         model == 0x4f as Broadwell.
8642
8643 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
8644
8645         PR rtl-optimization/67028
8646         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
8647         Add test to see if a const_int fits in the new mode.
8648
8649 2015-08-07  DJ Delorie  <dj@redhat.com>
8650
8651         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
8652
8653 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
8654
8655         PR rtl-optimization/67029
8656         * ira-color.c: Include "recog.h" before including "ira-int.h".
8657         * target-globals.c: Likewise.
8658         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
8659         adds an alternative_mask argument and use it instead of
8660         preferred_alternatives.
8661         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
8662         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
8663         * sched-deps.c: Include "ira-int.h" after including "ira.h".
8664         (sched_analyze_insn): Update call to
8665         ira_implicitly_set_insn_hard_regs.
8666         * sel-sched.c: Include "ira-int.h" after including "ira.h".
8667         (implicit_clobber_conflict_p): Update call to
8668         ira_implicitly_set_insn_hard_regs.
8669
8670 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
8671
8672         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
8673
8674 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
8675
8676         PR target/67002
8677         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
8678         currently_expanding_to_rtl is set.
8679
8680 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
8681
8682         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
8683         * configure: Regenerate.
8684
8685 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8686             Jiong Wang  <jiong.wang@arm.com>
8687
8688         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
8689         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
8690         (REG_CLASS_NAMES): Likewise.
8691         (REG_CLASS_CONTENTS): Likewise.
8692         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
8693         (aarch64_register_move_cost): Likewise.
8694         (aarch64_load_symref_appropriately): Invoke the new added pattern if
8695         possible.
8696         * config/aarch64/constraints.md (Uc0): New constraint.
8697
8698 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
8699
8700         * config/aarch64/constraints.md (Usf): Add the test of
8701         aarch64_is_noplt_call_p.
8702
8703 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
8704
8705         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
8706         declaration.
8707         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
8708         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
8709         (call_symbol): Likewise.
8710
8711 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
8712
8713         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
8714         for vectorizing multiplication patterns.
8715         * tree-vectorizer.h: Adjust the number of patterns.
8716
8717 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
8718
8719         * config/i386/sse.md (*vec_concatv2df): Declare added
8720         alternatives as sselog type.
8721
8722 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8723
8724         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
8725         all GPRs.
8726
8727 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8728
8729         * config/s390/s390.c (s390_expand_tbegin): Expand either
8730         tbegin_1_z13 or tbegin_1 depending on VX flag.
8731         * config/s390/s390.md ("tbegin_1_z13"): New expander.
8732
8733 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8734
8735         * config/s390/s390.opt: Clarify description for -mzvector
8736         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
8737         -mzvector.
8738
8739 2015-08-06  Richard Biener  <rguenther@suse.de>
8740
8741         * gimple.h (gimple_call_set_fn): Access op member directly.
8742         (gimple_call_chain_ptr): Likewise.
8743         (gimple_call_set_chain): Likewise.
8744         (gimple_cond_lhs_ptr): Likewise.
8745         (gimple_cond_set_lhs): Likewise.
8746         (gimple_cond_rhs_ptr): Likewise.
8747         (gimple_cond_set_rhs): Likewise.
8748         (gimple_cond_true_label): Likewise.
8749         (gimple_cond_set_true_label): Likewise.
8750         (gimple_cond_set_false_label): Likewise.
8751         (gimple_cond_false_label): Likewise.
8752         (gimple_label_label): Likewise.
8753         (gimple_label_set_label): Likewise.
8754         (gimple_goto_set_dest): Likewise.
8755         (gimple_asm_input_op): Likewise.
8756         (gimple_asm_input_op_ptr): Likewise.
8757         (gimple_asm_set_input_op): Likewise.
8758         (gimple_asm_output_op): Likewise.
8759         (gimple_asm_output_op_ptr): Likewise.
8760         (gimple_asm_set_output_op): Likewise.
8761         (gimple_asm_clobber_op): Likewise.
8762         (gimple_asm_set_clobber_op): Likewise.
8763         (gimple_asm_label_op): Likewise.
8764         (gimple_asm_set_label_op): Likewise.
8765         (gimple_switch_index): Likewise.
8766         (gimple_switch_index_ptr): Likewise.
8767         (gimple_return_retval_ptr): Likewise.
8768         (gimple_return_retval): Likewise.
8769         (gimple_return_set_retval): Likewise.
8770         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
8771         (gimple_switch_label): Likewise.
8772         (gimple_switch_set_label): Likewise.
8773
8774 2015-08-06  Richard Biener  <rguenther@suse.de>
8775
8776         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
8777         bool comparison canonicalization and restrict to integers.
8778
8779 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
8780
8781         * coretypes.h (enum symbol_visibility): Relocate here.
8782         * flag-types.h (enum symbol_visibility): Remove.
8783         * tree-core.h (enum symbol_visibility): Remove.
8784
8785 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
8786
8787         PR target/66870
8788         * gcc/config/rs6000/rs6000.c (rs6000_emit_prologue): Check
8789         for no_split_stack function attribute along with
8790         flag_split_stack.
8791         (rs6000_expand_split_stack_prologue): Likewise.
8792
8793 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8794             Jeff Law  <law@redhat.com>
8795
8796         PR c/16351
8797         * doc/invoke.texi (Wnull-dereference): New.
8798         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
8799         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
8800         Warn for potential NULL dereferences.
8801         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
8802         * ubsan.c (instrument_nonnull_arg): Call
8803         infer_nonnull_range_by_attribute.
8804         (instrument_nonnull_return): Likewise.
8805         * common.opt (Wnull-dereference); New.
8806         * gimple.c (infer_nonnull_range): Remove bool arguments.
8807         (infer_nonnull_range_by_dereference): New.
8808         (infer_nonnull_range_by_attribute): New.
8809         * gimple.h: Update declarations.
8810
8811 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
8812
8813         * gensupport.c (sequence_num): Replace with...
8814         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
8815         ...these new variables.
8816         (init_rtx_reader_args_cb): Update accordingly.
8817         (get_num_code_insns): Likewise.
8818         (read_md_rtx): Rework to use a while loop and get_c_test.
8819         Use the new counters.  Remove redundant DEFINE_SUBST case.
8820         * genoutput.c (gen_split): Delete.
8821         (main): Don't call it.
8822
8823 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
8824
8825         * gensupport.h (get_c_test): Declare.
8826         * gensupport.c (get_c_test): New function.
8827         * genconditions.c (main): Use it.
8828         * genrecog.c (validate_pattern): Likewise.
8829         (match_pattern_1): Likewise.  Remove c_test argument.
8830         (match_pattern): Update accordingly and remove c_test argument.
8831         (main): Update accordingly.
8832
8833 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
8834
8835         * gensupport.h (get_num_insn_codes): Declare.
8836         * gensupport.c (get_num_insn_codes): New function.
8837         * genattrtab.c (optimize_attrs): Rename max_insn_code to
8838         num_insn_codes.
8839         (main): Likewise.  Use get_num_insn_codes.
8840         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
8841
8842 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
8843
8844         PR middle-end/66311
8845         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
8846         is zero- rather than sign-extended.
8847
8848 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
8849
8850         * target-insns.def (can_extend): Delete.
8851
8852 2015-08-05  Richard Biener  <rguenther@suse.de>
8853
8854         PR tree-optimization/67121
8855         * tree-if-conv.c (combine_blocks): Clear range-info produced
8856         by stmts no longer executed conditionally.
8857
8858 2015-08-05  Nick Clifton  <nickc@redhat.com>
8859
8860         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
8861         to allow identical far pointers to remain.
8862
8863 2015-08-05  Richard Biener  <rguenther@suse.de>
8864
8865         PR middle-end/67120
8866         * match.pd: Compare address bases with == if they are decls
8867         or SSA names, not operand_equal_p.  Otherwise fail.
8868
8869 2015-08-05  Richard Biener  <rguenther@suse.de>
8870
8871         PR tree-optimization/67055
8872         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
8873         NULL gimple_block.
8874
8875         * g++.dg/torture/pr67055.C: New testcase.
8876
8877 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
8878
8879         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
8880         noavx512vl.
8881         (define_attr "enabled"): Handle avx521vl and noavx512vl.
8882         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
8883         AVX-512 alternative out of SSE.
8884         (define_insn "*vec_concatv2df"): Ditto.
8885
8886 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
8887
8888         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
8889         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
8890         CODE_FOR_avx_ptestv4di.
8891         * config/i386/sse.md (define_mode_iterator V_AVX): New.
8892         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
8893         (define_insn "avx_ptest256"): Merge this ...
8894         (define_insn "sse4_1_ptest"): And this ...
8895         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
8896
8897 2015-08-05  Richard Biener  <rguenther@suse.de>
8898
8899         PR tree-optimization/67109
8900         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
8901         against too big groups.  Print whether this is a load or store
8902         group.  Rename from ...
8903         (vect_analyze_group_access): ... this which is now a wrapper
8904         dissolving an invalid group.
8905         (vect_analyze_data_ref_accesses): Print whether this is a load
8906         or store group.
8907
8908 2015-08-05  Richard Biener  <rguenther@suse.de>
8909
8910         PR middle-end/67107
8911         * match.pd: Guard const_binop result checking against NULL_TREE
8912         result.
8913
8914 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
8915
8916         * cse.c (cse_insn): Restoring old behaviour for src_eqv
8917          when dest and value in the REG_EQUAL are same and dest
8918          is STRICT_LOW_PART.
8919
8920 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
8921
8922         * config/moxie/moxie.h (PRINT_OPERAND,
8923           PRINT_OPERAND_ADDRESS): Remove macros.
8924         * config/moxie/moxie-protos.h (moxie_print_operand,
8925           moxie_print_operand_address): Remove declaration.
8926         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
8927           TARGET_PRINT_OPERAND_ADDRESS): Define.
8928           (moxie_print_operand, moxie_print_operand_address): Make static.
8929
8930 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8931
8932         PR target/66731
8933         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
8934         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
8935
8936 2015-08-04  Richard Biener  <rguenther@suse.de>
8937
8938         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
8939         generated code.
8940         (dt_operand::gen_gimple_expr): Adjust.
8941
8942 2015-08-04  Richard Biener  <rguenther@suse.de>
8943
8944         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
8945         bool compares on RHS.
8946         * match.pd: Add X ==/!= !X is false/true pattern.
8947
8948 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
8949
8950         * config/aarch64/aarch64.c: Change inner loop statement cost
8951         to be consistent with other targets.
8952
8953 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
8954
8955         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
8956         targets.
8957
8958 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
8959
8960         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
8961         (machine_function): Remove pseudos field.
8962
8963 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8964
8965         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
8966         Exit early and use target_option_current_node if processing current
8967         pragma.
8968
8969 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8970
8971         * doc/extend.texi (AArch64 Function Attributes): New node.
8972         (AArch64 Pragmas): Likewise.
8973
8974 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8975
8976         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
8977         Initialize simd builtins if TARGET_SIMD.
8978         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
8979         Make sure that the builtins are initialized only once no matter how
8980         many times the function is called.
8981         (aarch64_init_builtins): Unconditionally initialize crc builtins.
8982         (aarch64_relayout_simd_param): New function.
8983         (aarch64_simd_expand_args): Use above during argument expansion.
8984         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
8985         simd builtins if TARGET_SIMD.
8986         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
8987         prototype.
8988         (aarch64_relayout_simd_types): Likewise.
8989
8990 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8991
8992         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
8993         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
8994         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
8995         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
8996         static keyword.
8997         (aarch64_reset_previous_fndecl): New function.
8998         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
8999         the string.
9000         * config/aarch64/aarch64-c.c: New file.
9001         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
9002         Push and pop options at beginning and end.  Remove ifdef
9003         __ARM_FEATURE_CRC32.
9004         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
9005         Add pragma +nothing+simd and +nothing+crypto where appropriate.
9006         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
9007         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
9008         Define prototype.
9009         (aarch64_register_pragmas): Likewise.
9010         (aarch64_reset_previous_fndecl): Likewise.
9011         (aarch64_process_target_attr): Likewise.
9012         (aarch64_override_options_internal): Likewise.
9013
9014 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9015
9016         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
9017         New function.
9018         (aarch64_can_inline_p): Likewise.
9019         (TARGET_CAN_INLINE_P): Define.
9020
9021 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9022
9023         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
9024         Remove static.  Handle OPT_mgeneral_regs_only,
9025         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
9026         OPT_momit_leaf_frame_pointer.
9027         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
9028         (aarch64_attr_opt_type): New enum.
9029         (aarch64_attribute_info): New struct.
9030         (aarch64_handle_attr_arch): New function.
9031         (aarch64_handle_attr_cpu): Likewise.
9032         (aarch64_handle_attr_tune): Likewise.
9033         (aarch64_handle_attr_isa_flags): Likewise.
9034         (aarch64_attributes): New table.
9035         (aarch64_process_one_target_attr): New function.
9036         (num_occurences_in_str): Likewise.
9037         (aarch64_process_target_attr): Likewise.
9038         (aarch64_option_valid_attribute_p): Likewise.
9039         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
9040         * config/aarch64/aarch64-protos.h: Include input.h
9041         (aarch64_handle_option): Declare prototype.
9042
9043 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9044
9045         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
9046         * config/aarch64/aarch64.c: Include target-globals.h
9047         (aarch64_previous_fndecl): New variable.
9048         (aarch64_set_current_function): New function.
9049         (TARGET_SET_CURRENT_FUNCTION): Define.
9050
9051 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9052
9053         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
9054         (explicit_arch): Likewise.
9055         (x_aarch64_isa_flags): Likewise.
9056         (mgeneral-regs-only): Mark as Save.
9057         (mfix-cortex-a53-835769): Likewise.
9058         (mcmodel=): Likewise.
9059         (mstrict-align): Likewise.
9060         (momit-leaf-frame-pointer): Likewise.
9061         (mtls-dialect): Likewise.
9062         (master=): Likewise.
9063         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
9064         (aarch64_isa_flags): Remove extern declaration.
9065         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
9066         to indicate success or failure.
9067         (aarch64_validate_march): Likewise.
9068         (aarch64_validate_mtune): Likewise.
9069         (aarch64_isa_flags): Delete.
9070         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
9071         instead of aarch64_isa_flags.
9072         (aarch64_get_tune_cpu): New function.
9073         (aarch64_get_arch): Likewise.
9074         (aarch64_override_options): Use above and set up explicit_tune_core
9075         and explicit_arch.
9076         (aarch64_print_extension): Move earlier in file.  Add isa_flags
9077         argument and use that instead of the global aarch64_isa_flags.
9078         (aarch64_option_save): New function.
9079         (aarch64_option_restore): Likewise.
9080         (aarch64_option_print): Likewise.
9081         (aarch64_declare_function_name): Likewise.
9082         (aarch64_start_file): Delete.
9083         (TARGET_ASM_FILE_START): Do not define.
9084         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
9085         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
9086         Declare prototype.
9087
9088 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9089
9090         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
9091         flag_omit_leaf_frame_pointer to 2.
9092
9093 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9094
9095         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
9096         define to 0 or 1.
9097         (TARGET_FIX_ERR_A53_835769): New macro.
9098         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
9099         handling of opts->x_aarch64_fix_a53_err835769.
9100         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
9101         than aarch64_fix_a53_err835769.
9102         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
9103         * config/aarch64/aarch64-linux.h: Likewise.
9104
9105 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
9106
9107         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
9108         ix86_expand_int_movcc as boolean.
9109
9110 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9111
9112         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
9113         (aarch64_cpu_string): Likewise.
9114         (aarch64_tune_string): Likewise.
9115         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
9116         (aarch64_parse_extension): Return aarch64_parse_opt_result.
9117         Add extra argument to put result into.
9118         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
9119         (aarch64_parse_cpu): Add arguments to put results into. Return
9120         aarch64_parse_opt_result.
9121         (aarch64_parse_tune): Likewise.
9122         (aarch64_override_options_after_change_1): New function.
9123         (aarch64_override_options_internal): New function.
9124         (aarch64_validate_mcpu): Likewise.
9125         (aarch64_validate_march): Likewise.
9126         (aarch64_validate_mtune): Likewise.
9127         (aarch64_override_options): Update to reflect above changes.
9128         Move some logic into aarch64_override_options_internal.
9129         Initialize target_option_default_node and target_option_current_node.
9130         (aarch64_override_options_after_change): Move logic into
9131         aarch64_override_options_after_change_1 and call it with global_options.
9132         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
9133         flag values from that.
9134
9135 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9136
9137         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
9138         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
9139         * config/aarch64/aarch64.c (struct processor): Add arch field.
9140         (all_architectures): Handle above, move above all_cores.
9141         (all_cores): Handle above.
9142         (aarch64_parse_arch): Handle above changes.
9143         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
9144         above.  Update comments.
9145         (armv8.1-a): Likewise.
9146         * config/aarch64/aarch64-cores.def: Update according to above.
9147         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
9148         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
9149         aarch64_arch_driver_info.
9150
9151 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9152
9153         * config/aarch64/aarch64.c (struct processor): Add ident field.
9154         Rename core sched_core.
9155         (all_cores): Handle above changes.
9156         (all_architectures): Likewise.
9157         (aarch64_parse_arch): Likewise.
9158         (aarch64_override_options): Likewise.
9159
9160 2015-08-04  Richard Biener  <rguenther@suse.de>
9161
9162         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
9163         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
9164         comparisons embedded in [VEC_]COND_EXPRs.
9165
9166 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
9167
9168         * tree-if-conv.c: Fix various typos in comments.
9169         * tree-vect-stmts.c: Likewise.
9170
9171 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9172
9173         PR tree-optimization/67043
9174         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
9175         preheader after hoisting invariant in it.
9176         (find_defs): Force recomputation of all luids.
9177
9178 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
9179
9180         * config/rs6000/htm.md (tabort.): Restrict the source operand to
9181         using a base register.
9182
9183 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
9184
9185         * main.c (main): Pass in NULL for toplev's external_timer.
9186         * timevar.c: Include coretypes.h.
9187         (class timer::named_items): New.
9188         (timer::named_items::named_items): New.
9189         (timer::named_items::~named_items): New.
9190         (timer::named_items::push): New.
9191         (timer::named_items::pop): New.
9192         (timer::named_items::print): New.
9193         (timer::timer): Initialize field "m_jit_client_items".
9194         (timer::~timer): New.
9195         (timer::push): Move bulk of implementation to...
9196         (timer::push_internal): ...here.  New function.
9197         (timer::pop): Move bulk of implementation to...
9198         (timer::pop_internal): ...here.  New function.
9199         (timer::push_client_item): New.
9200         (timer::pop_client_item): New.
9201         (timer::print_row): New function, taken from timer::print.
9202         (timer::print): Print "GCC items" header if we also have client
9203         items.  Move row-printing to timer::print_row.  Print any client
9204         items.
9205         (timer::get_topmost_item_name): New method.
9206         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
9207         (TV_JIT_CLIENT_CODE): New.
9208         * timevar.h (timer::push_client_item): New declaration.
9209         (timer::pop_client_item): New declaration.
9210         (timer::get_topmost_item_name): New method.
9211         (timer::push_internal): New declaration.
9212         (timer::pop_internal): New declaration.
9213         (timer::print_row): New declaration.
9214         (timer::named_items): New declaration.
9215         (timer::m_jit_client_items): New field.
9216         (timer): Add friend class named_items.
9217         (auto_timevar::auto_timevar): Add timer param.
9218         (auto_timevar::~auto_timevar): Use field "m_timer".
9219         (auto_timevar::m_timer): New field.
9220         * toplev.c (initialize_rtl): Add g_timer as param when
9221         constructing auto_timevar instance.
9222         (toplev::toplev): Add "external_timer" param, and use it to
9223         initialize the "g_timer" global if non-NULL.
9224         (toplev::~toplev): If this created "g_timer", delete it.
9225         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
9226         with "external_timer" timer *.
9227
9228 2015-08-03  Alexander Basov <coohpt@gmail.com>
9229
9230         PR middle-end/64744
9231         PR middle-end/48470
9232         PR middle-end/43404
9233         * cfgexpand.c (expand_one_var): Add check if stack is going to
9234         be used in naked function.
9235         * expr.c (expand_expr_addr_expr_1): Remove excess checking
9236         whether expression should not reside in MEM.
9237         * function.c (use_register_for_decl): Do not use registers for
9238         non-register things (volatile, float, BLKMode) in naked functions.
9239
9240 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
9241
9242         PR target/67060
9243         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
9244         Adjust splits to match new pattern.
9245
9246 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
9247
9248         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
9249         (VEC_M): Likewise.
9250         (VEC_N): Likewise.
9251         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
9252         point in VSX registers.
9253
9254         * config/rs6000/constraints.md (wb constraint): Document unused
9255         w<x> constraint.
9256         (we constraint): Likewise.
9257         (wo constraint): Likewise.
9258         (wp constraint): New constraint for IEEE 128-bit floating point in
9259         VSX registers.
9260         (wq constraint): Likewise.
9261
9262         * config/rs6000/predicates.md (easy_fp_constant): Add support for
9263         IEEE 128-bit floating point in VSX registers.
9264         (easy_scalar_constant): Likewise.
9265
9266         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
9267         constraints (wp, wq) for IEEE 128-bit floating point in VSX
9268         registers.
9269         (rs6000_init_hard_regno_mode_ok): Likewise.
9270
9271         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
9272         floating point in VSX registers.
9273         (VSX_L): Likewise.
9274         (VSX_M): Likewise.
9275         (VSX_M2): Likewise.
9276         (VSm): Likewise.
9277         (VSs): Likewise.
9278         (VSr): Likewise.
9279         (VSa): Likewise.
9280         (VSv): Likewise.
9281         (vsx_le_permute_<mode>): Add support to properly swap bytes for
9282         IEEE 128-bit floating point in VSX registers on little endian.
9283         (vsx_le_undo_permute_<mode>): Likewise.
9284         (vsx_le_perm_load_<mode>): Likewise.
9285         (vsx_le_perm_store_<mode>): Likewise.
9286         (splitters for IEEE 128-bit fp moves): Likewise.
9287
9288         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
9289         wq constraints.
9290
9291         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
9292         floating point in VSX registers.
9293         (VM2): Likewise.
9294
9295         * doc/md.text (Machine Constraints): Document wp and wq
9296         constraints on PowerPC.
9297
9298 2015-08-03  Jeff Law  <law@redhat.com>
9299
9300         PR middle-end/66314
9301         PR gcov-profile/66899
9302         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
9303         iterate over the jump threading paths when an element in the
9304         jump threading paths array is eliminated.
9305
9306 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
9307
9308         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
9309
9310 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
9311
9312         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
9313         is_use_properly_guarded the variable def_preds.  Free its
9314         contents before returning.
9315         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
9316         (is_use_properly_guarded): Replace local variable def_preds with
9317         a parameter.  Adjust accordingly.  Only update *def_preds if it's
9318         the empty vector.
9319
9320 2015-08-03  Richard Biener  <rguenther@suse.de>
9321
9322         * genmatch.c (simplify::for_subst_vec): New member.
9323         (binary_ok): New helper for for lowering.
9324         (lower_for): Delay substituting operators into result expressions
9325         if we can merge the results eventually again.
9326         (capture_info::walk_result): Adjust for user_id appearing as
9327         result expression operator.
9328         (expr::gen_transform): Likewise.
9329         (dt_simplify::gen_1): Likewise.
9330         (dt_simplify::gen): Pass not substituted operators to tail
9331         functions or initialize local variable with it.
9332         (decision_tree::gen): Adjust function signature.
9333         * match.pd: Fix tests against global code and add default
9334         cases to switch stmts.
9335
9336 2015-08-03  Richard Biener  <rguenther@suse.de>
9337
9338         * genmatch.c (dt_simplify::gen): Create captures array
9339         with an initializer.
9340
9341 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9342
9343         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
9344         the host compiler is affected by placement new aliasing bug.
9345         * configure: Regenerate.
9346         * Makefile.in (ALIASING_FLAGS): New variable.
9347         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
9348
9349 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9350
9351         PR target/66731
9352         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
9353         (negmulsf3_vfp): Likewise.
9354         (muldf3negdf_vfp): Disable for -frounding-math.
9355         (mulsf3negsf_vfp): Likewise.
9356         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
9357         fix MULT cost with -frounding-math.
9358
9359 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9360
9361         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
9362         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
9363         explicit.  Prefer to add the flag whenever possible.
9364         (noce_process_if_block): Try noce_try_store_flag_constants before
9365         noce_try_cmove.
9366
9367 2015-08-03  Richard Biener  <rguenther@suse.de>
9368
9369         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
9370         New hash-map to record equivalent transforms.
9371         (dt_node::analyze): Populate the equivalent transforms hash-map.
9372         (dt_simplify::info): Add reference to hash-map entry.
9373         (dt_simplify::gen): If we have split out a function for the
9374         transform, generate a call to it.
9375         (sinfo_hashmap_traits::hash): New function.
9376         (compare_op): New helper function for ...
9377         (sinfo_hashmap_traits::equal_keys): ... this new function.
9378         (decision_tree::gen): Split out common equivalent transforms
9379         into functions.
9380
9381 2015-08-03  Richard Biener  <rguenther@suse.de>
9382
9383         * gimple-fold.c (fold_gimple_assign): Remove folding of
9384         the comparison in COND_EXPRs.
9385
9386 2015-08-03  Richard Biener  <rguenther@suse.de>
9387
9388         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
9389         on the rhs of assignments first simplify the embedded
9390         GENERIC condition.
9391
9392 2015-08-03  Richard Biener  <rguenther@suse.de>
9393
9394         PR tree-optimization/66917
9395         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
9396         field.
9397         (DR_VECT_AUX): New macro.
9398         (set_dr_misalignment): Adjust.
9399         (dr_misalignment): Likewise.
9400         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
9401         Compute whether the base is at least element aligned.
9402         * tree-vect-stmts.c (ensure_base_align): Adjust.
9403         (vectorizable_store): If the base is not element aligned
9404         preserve alignment of the original access if misalignment is unknown.
9405         (vectorizable_load): Likewise.
9406
9407 2015-08-02  Martin Sebor  <msebor@redhat.com>
9408
9409         * c-family/c.opt (-Wframe-address): New warning option.
9410         * doc/invoke.texi (Wframe-address): Document it.
9411         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
9412         Clarify possible effects of calling the functions with non-zero
9413         arguments and mention -Wframe-address.
9414         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
9415
9416 2015-08-01  Michael Collison  <michael.collison@linaro.org
9417             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9418
9419         * gcc/config/arm/arm.md (*arm_smin_cmp): New pattern.
9420         (*arm_umin_cmp): Likewise.
9421
9422 2015-08-01  Caroline Tice  <cmtice@google.com>
9423
9424         PR 66521
9425         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
9426         global variables.
9427         (vtbl_find_mangled_name):  New function.
9428         (vtbl_register_mangled_name):  New function.
9429         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
9430         mangled name in mangled name vectors.
9431         (find_or_create_vtbl_map_node):  Ditto.
9432         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
9433         update recursion_depth on function entry; pass it to every recursive
9434         call; automatically exit if depth > 25 (give up looking at that point).
9435         (verify_bb_vtables):  Initialize recursion_depth and pass it to
9436         var_is_used_for_virtual_call_p.
9437         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
9438         global variable decls.
9439         (vtbl_register_mangled_name): New extern function decl.
9440
9441 2015-08-01  Tom de Vries  <tom@codesourcery.com>
9442
9443         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
9444         function.
9445         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
9446         Declare.
9447         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
9448         operation_no_trapping_overflow.  Allow non-overflow operations.
9449         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
9450         operations.
9451
9452 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
9453
9454         PR target/67049
9455         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
9456
9457 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9458
9459         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
9460         Enable for TARGET_32BIT.
9461         (*if_move_neg): Likewise.
9462
9463 2015-07-31  Nick Clifton  <nickc@redhat.com>
9464
9465         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
9466         Returns true for __model__.
9467         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
9468
9469 2015-07-31  Alan Modra  <amodra@gmail.com>
9470
9471         PR target/66870
9472         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
9473         (rs6000_emit_prologue): Set it.
9474         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
9475
9476 2015-07-31  Richard Biener  <rguenther@suse.de>
9477
9478         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
9479         -> X == (C1 ^ C2) which is already implemented in match.pd.
9480         Remove redundant dispatching to fold_relational_const.
9481         Move unordered self and NaN compares ...
9482         * match.pd: ... as patterns here.  Remove some stray captures
9483         and add a comment.
9484
9485 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
9486
9487         * config/i386/i386.c
9488         (bdesc_special_args): Convert mask type from signed to unsigned for
9489         masked builtins.
9490         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
9491         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
9492         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
9493         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
9494         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
9495         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
9496         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
9497         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
9498         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
9499         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
9500         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
9501         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
9502         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
9503         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
9504         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
9505         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
9506         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
9507         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
9508         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
9509         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
9510         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
9511         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
9512         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
9513         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
9514         * config/i386/i386-builtin-types.def
9515         (V16QI_FTYPE_V16SI): Remove.
9516         (V8DF_FTYPE_V8SI): Ditto.
9517         (V8HI_FTYPE_V8DI): Ditto.
9518         (V8SI_FTYPE_V8DI): Ditto.
9519         (V8SF_FTYPE_V8DF): Ditto.
9520         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
9521         (V16HI_FTYPE_V16SI): Ditto.
9522         (V16SF_FTYPE_V16HI): Ditto.
9523         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
9524         (V16SF_FTYPE_V16SI): Ditto.
9525         (V4DI_FTYPE_V4DI): Ditto.
9526         (V16SI_FTYPE_V16SF): Ditto.
9527         (V16SF_FTYPE_FLOAT): Ditto.
9528         (V8DF_FTYPE_DOUBLE): Ditto.
9529         (V8DI_FTYPE_INT64): Ditto.
9530         (V8DI_FTYPE_V4DI): Ditto.
9531         (V16QI_FTYPE_V8DI): Ditto.
9532         (UINT_FTYPE_V4SF): Ditto.
9533         (UINT64_FTYPE_V4SF): Ditto.
9534         (UINT_FTYPE_V2DF): Ditto.
9535         (UINT64_FTYPE_V2DF): Ditto.
9536         (V16SI_FTYPE_V16SI): Ditto.
9537         (V8DI_FTYPE_V8DI): Ditto.
9538         (V16SI_FTYPE_PV4SI): Ditto.
9539         (V16SF_FTYPE_PV4SF): Ditto.
9540         (V8DI_FTYPE_PV2DI): Ditto.
9541         (V8DF_FTYPE_PV2DF): Ditto.
9542         (V4DI_FTYPE_PV2DI): Ditto.
9543         (V4DF_FTYPE_PV2DF): Ditto.
9544         (V16SI_FTYPE_PV2SI): Ditto.
9545         (V16SF_FTYPE_PV2SF): Ditto.
9546         (V8DI_FTYPE_PV4DI): Ditto.
9547         (V8DF_FTYPE_PV4DF): Ditto.
9548         (V8SF_FTYPE_FLOAT): Ditto.
9549         (V4SF_FTYPE_FLOAT): Ditto.
9550         (V4DF_FTYPE_DOUBLE): Ditto.
9551         (V8SF_FTYPE_PV4SF): Ditto.
9552         (V8SI_FTYPE_PV4SI): Ditto.
9553         (V4SI_FTYPE_PV2SI): Ditto.
9554         (V8SF_FTYPE_PV2SF): Ditto.
9555         (V8SI_FTYPE_PV2SI): Ditto.
9556         (V16SF_FTYPE_PV8SF): Ditto.
9557         (V16SI_FTYPE_PV8SI): Ditto.
9558         (V8DI_FTYPE_V8SF): Ditto.
9559         (V4DI_FTYPE_V4SF): Ditto.
9560         (V2DI_FTYPE_V4SF): Ditto.
9561         (V64QI_FTYPE_QI): Ditto.
9562         (V32HI_FTYPE_HI): Ditto.
9563         (V8UHI_FTYPE_V8UHI): Ditto.
9564         (V16UHI_FTYPE_V16UHI): Ditto.
9565         (V32UHI_FTYPE_V32UHI): Ditto.
9566         (V2UDI_FTYPE_V2UDI): Ditto.
9567         (V4UDI_FTYPE_V4UDI): Ditto.
9568         (V8UDI_FTYPE_V8UDI): Ditto.
9569         (V4USI_FTYPE_V4USI): Ditto.
9570         (V8USI_FTYPE_V8USI): Ditto.
9571         (V16USI_FTYPE_V16USI): Ditto.
9572         (V2DF_FTYPE_V2DF_UINT64): Ditto.
9573         (V2DI_FTYPE_V2DF_V2DF): Ditto.
9574         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
9575         (V8DF_FTYPE_V8DF_V8DI): Ditto.
9576         (V4SF_FTYPE_V4SF_UINT64): Ditto.
9577         (V4SI_FTYPE_V4SF_V4SF): Ditto.
9578         (V16SF_FTYPE_V16SF_V16SI): Ditto.
9579         (V64QI_FTYPE_V32HI_V32HI): Ditto.
9580         (V32HI_FTYPE_V16SI_V16SI): Ditto.
9581         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
9582         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
9583         (V32HI_FTYPE_V64QI_V64QI): Ditto.
9584         (V32HI_FTYPE_V32HI_V32HI): Ditto.
9585         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
9586         (V16SI_FTYPE_V16SI_V4SI): Ditto.
9587         (V16SI_FTYPE_V16SI_V16SI): Ditto.
9588         (V16SI_FTYPE_V32HI_V32HI): Ditto.
9589         (V16SI_FTYPE_V16SI_SI): Ditto.
9590         (V8DI_FTYPE_V8DI_V8DI): Ditto.
9591         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
9592         (V8DI_FTYPE_V16SI_V16SI): Ditto.
9593         (V8DI_FTYPE_V8DI_V2DI): Ditto.
9594         (QI_FTYPE_QI): Ditto.
9595         (SI_FTYPE_SI): Ditto.
9596         (DI_FTYPE_DI): Ditto.
9597         (QI_FTYPE_QI_QI): Ditto.
9598         (QI_FTYPE_QI_INT): Ditto.
9599         (HI_FTYPE_HI_INT): Ditto.
9600         (SI_FTYPE_SI_INT): Ditto.
9601         (DI_FTYPE_DI_INT): Ditto.
9602         (HI_FTYPE_V16QI_V16QI): Ditto.
9603         (SI_FTYPE_V32QI_V32QI): Ditto.
9604         (DI_FTYPE_V64QI_V64QI): Ditto.
9605         (QI_FTYPE_V8HI_V8HI): Ditto.
9606         (HI_FTYPE_V16HI_V16HI): Ditto.
9607         (SI_FTYPE_V32HI_V32HI): Ditto.
9608         (QI_FTYPE_V4SI_V4SI): Ditto.
9609         (QI_FTYPE_V8SI_V8SI): Ditto.
9610         (QI_FTYPE_V2DI_V2DI): Ditto.
9611         (QI_FTYPE_V4DI_V4DI): Ditto.
9612         (QI_FTYPE_V8DI_V8DI): Ditto.
9613         (HI_FTYPE_V16SI_V16SI): Ditto.
9614         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
9615         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
9616         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
9617         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
9618         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
9619         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
9620         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
9621         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
9622         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
9623         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
9624         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
9625         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
9626         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
9627         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
9628         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
9629         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
9630         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
9631         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
9632         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
9633         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
9634         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
9635         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
9636         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
9637         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
9638         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
9639         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
9640         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
9641         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
9642         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
9643         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
9644         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
9645         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
9646         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
9647         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
9648         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
9649         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
9650         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
9651         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
9652         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
9653         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
9654         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
9655         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
9656         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
9657         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
9658         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
9659         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
9660         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
9661         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
9662         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
9663         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
9664         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
9665         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
9666         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
9667         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
9668         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
9669         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
9670         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
9671         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
9672         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
9673         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
9674         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
9675         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
9676         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
9677         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
9678         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
9679         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
9680         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
9681         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
9682         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
9683         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
9684         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
9685         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
9686         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
9687         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
9688         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
9689         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
9690         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
9691         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
9692         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
9693         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
9694         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
9695         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
9696         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
9697         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
9698         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
9699         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
9700         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
9701         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
9702         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
9703         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
9704         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
9705         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
9706         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
9707         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
9708         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
9709         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
9710         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
9711         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
9712         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
9713         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
9714         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
9715         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
9716         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
9717         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
9718         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
9719         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
9720         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
9721         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
9722         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
9723         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
9724         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
9725         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
9726         (HI_FTYPE_HI): Ditto.
9727         (HI_FTYPE_V16QI): Ditto.
9728         (SI_FTYPE_V32QI): Ditto.
9729         (DI_FTYPE_V64QI): Ditto.
9730         (QI_FTYPE_V8HI): Ditto.
9731         (HI_FTYPE_V16HI): Ditto.
9732         (SI_FTYPE_V32HI): Ditto.
9733         (QI_FTYPE_V4SI): Ditto.
9734         (QI_FTYPE_V8SI): Ditto.
9735         (HI_FTYPE_V16SI): Ditto.
9736         (QI_FTYPE_V2DI): Ditto.
9737         (QI_FTYPE_V4DI): Ditto.
9738         (QI_FTYPE_V8DI): Ditto.
9739         (V16QI_FTYPE_HI): Ditto.
9740         (V32QI_FTYPE_SI): Ditto.
9741         (V64QI_FTYPE_DI): Ditto.
9742         (V8HI_FTYPE_QI): Ditto.
9743         (V16HI_FTYPE_HI): Ditto.
9744         (V32HI_FTYPE_SI): Ditto.
9745         (V4SI_FTYPE_QI): Ditto.
9746         (V4SI_FTYPE_HI): Ditto.
9747         (V8SI_FTYPE_QI): Ditto.
9748         (V8SI_FTYPE_HI): Ditto.
9749         (V2DI_FTYPE_QI): Ditto.
9750         (V4DI_FTYPE_QI): Ditto.
9751         (HI_FTYPE_HI_HI): Ditto.
9752         (SI_FTYPE_SI_SI): Ditto.
9753         (DI_FTYPE_DI_DI): Ditto.
9754         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
9755         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
9756         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
9757         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
9758         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
9759         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
9760         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
9761         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
9762         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
9763         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
9764         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
9765         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
9766         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
9767         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
9768         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
9769         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
9770         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
9771         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
9772         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
9773         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
9774         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
9775         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
9776         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
9777         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
9778         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
9779         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
9780         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
9781         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
9782         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
9783         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
9784         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
9785         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
9786         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
9787         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
9788         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
9789         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
9790         (V16SI_FTYPE_HI): Ditto.
9791         (V8DI_FTYPE_QI): Ditto.
9792         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
9793         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
9794         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
9795         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
9796         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
9797         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
9798         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
9799         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
9800         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
9801         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
9802         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
9803         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
9804         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
9805         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
9806         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
9807         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
9808         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
9809         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
9810         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
9811         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
9812         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
9813         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
9814         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
9815         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
9816         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
9817         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
9818         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
9819         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
9820         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
9821         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
9822         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
9823         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
9824         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
9825         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
9826         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
9827         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
9828         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
9829         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
9830         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
9831         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
9832         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
9833         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
9834         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
9835         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
9836         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
9837         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
9838         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
9839         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
9840         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
9841         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
9842         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
9843         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
9844         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
9845         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
9846         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
9847         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
9848         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
9849         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
9850         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
9851         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
9852         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
9853         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
9854         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
9855         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
9856         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
9857         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
9858         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
9859         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
9860         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
9861         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
9862         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
9863         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
9864         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
9865         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
9866         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
9867         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
9868         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
9869         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
9870         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
9871         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
9872         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
9873         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
9874         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
9875         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
9876         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
9877         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
9878         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
9879         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
9880         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
9881         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
9882         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
9883         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
9884         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
9885         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
9886         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
9887         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
9888         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
9889         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
9890         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
9891         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
9892         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
9893         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
9894         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
9895         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
9896         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
9897         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
9898         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
9899         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
9900         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
9901         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
9902         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
9903         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
9904         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
9905         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
9906         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
9907         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
9908         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
9909         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
9910         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
9911         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
9912         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
9913         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
9914         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
9915         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
9916         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
9917         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
9918         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
9919         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
9920         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
9921         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
9922         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
9923         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
9924         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
9925         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
9926         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
9927         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
9928         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
9929         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
9930         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
9931         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
9932         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
9933         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
9934         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
9935         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
9936         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
9937         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
9938         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
9939         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
9940         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
9941         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
9942         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
9943         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
9944         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
9945         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
9946         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
9947         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
9948         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
9949         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
9950         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
9951         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
9952         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
9953         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
9954         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
9955         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
9956         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
9957         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
9958         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
9959         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
9960         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
9961         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
9962         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
9963         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
9964         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
9965         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
9966         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
9967         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
9968         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
9969         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
9970         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
9971         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
9972         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
9973         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
9974         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
9975         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
9976         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
9977         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
9978         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
9979         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
9980         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
9981         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
9982         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
9983         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
9984         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
9985         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
9986         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
9987         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
9988         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
9989         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
9990         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
9991         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
9992         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
9993         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
9994         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
9995         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
9996         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
9997         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
9998         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
9999         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
10000         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
10001         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
10002         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
10003         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
10004         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
10005         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
10006         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
10007         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
10008         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
10009         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
10010         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
10011         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
10012         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
10013         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
10014         (QI_FTYPE_V8DF_INT_QI): Ditto.
10015         (QI_FTYPE_V4DF_INT_QI): Ditto.
10016         (QI_FTYPE_V2DF_INT_QI): Ditto.
10017         (HI_FTYPE_V16SF_INT_HI): Ditto.
10018         (QI_FTYPE_V8SF_INT_QI): Ditto.
10019         (QI_FTYPE_V4SF_INT_QI): Ditto.
10020         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
10021
10022 2015-07-31  Richard Biener  <rguenther@suse.de>
10023
10024         * gimple-fold.c (fold_gimple_assign): Remove folding of
10025         GIMPLE_BINARY_RHS.
10026
10027 2015-07-31  Tom de Vries  <tom@codesourcery.com>
10028
10029         PR tree-optimization/66846
10030         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
10031         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
10032         (expand_omp_target) [ENABLE_CHECKING]: Same.
10033         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
10034         cfun if !LOOPS_NEED_FIXUP.
10035         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
10036         that omp_for already has its own loop struct.
10037         * tree-parloops.c (create_phi_for_local_result)
10038         (create_call_for_reduction): Handle simple latch bb.
10039         (create_parallel_loop): Add simple latch bb to preserve
10040         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
10041         (gen_parallel_loop): Remove call to cancel_loop_tree.
10042         (parallelize_loops): Skip loops that are inner loops of parallelized
10043         loops.
10044         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
10045         verify_loop_structure.
10046
10047 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
10048
10049         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
10050         * config/v850/v850.md (RV_REGNUM): New constants.
10051         * config/v850/v850.c (v850_libcall_value): New functions.
10052         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
10053         (TARGET_LIBCALL_VALUE): Define.
10054
10055 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
10056
10057         * rtl.h (lowpart_subreg): Move in file.
10058         * loop-iv.c (lowpart_subreg): Move to...
10059         * simplify-rtx.c (lowpart_subreg): ...here.
10060           (simplify_binary_operation_1): Use lowpart_subreg instead of
10061           simplify_gen_subreg.
10062         * expr.c (expand_expr_real_2): Ditto.
10063         * emit-rtl.c (gen_lowpart_common): Ditto.
10064         * combine.c (gen_lowpart_for_combine): Ditto.
10065         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
10066           expand_debug_source_expr): Ditto.
10067
10068 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
10069
10070         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
10071         (expand_builtin_atomic_clear): Remove support for atomic_clear
10072         pattern.
10073
10074 2015-07-30  Richard Biener  <rguenther@suse.de>
10075
10076         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
10077         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
10078         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
10079         redundant operand canonicalization.
10080
10081 2015-07-30  David Sherwood  <david.sherwood@arm.com>
10082
10083         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
10084         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
10085         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
10086         * config/arm/arm.c (neon_valid_immediate): Likewise.
10087         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
10088         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
10089         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
10090         (expand_vec_perm_vpshufb2_vpermq): Likewise.
10091         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
10092         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
10093         * config/i386/sse.md
10094         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
10095         (*ssse3_palignr<mode>_perm): Likewise.
10096         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
10097         * config/spu/spu.c (arith_immediate_p): Likewise.
10098         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10099         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
10100
10101 2015-07-30  Richard Biener  <rguenther@suse.de>
10102
10103         * genmatch.c (decision_tree::gen_gimple): Merge with ...
10104         (decision_tree::gen_generic): ... this into ...
10105         (decision_tree::gen): ... this.
10106         (main): Adjust callers.
10107
10108 2015-07-30  Richard Biener  <rguenther@suse.de>
10109
10110         * genmatch.c (verbose): New global.
10111         (warning_at): Add overload with source_location.
10112         (capture_info::capture_info): Add bool whether generating gimple
10113         or generic.  Add gimple member.
10114         (capture_info::cinfo): Add capture member.
10115         (capture_info::walk_match): Record capture.  Warn on
10116         non-captured leafs.
10117         (capture_info::walk_c_expr): Add more fragments captures cannot
10118         escape through.  Warn on escaped captures.
10119         (dt_simplify::gen_1): Warn on operands we force to have no
10120         side-effects.
10121         (main): Initialize verbose.
10122         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
10123
10124 2015-07-30  Richard Biener  <rguenther@suse.de>
10125
10126         PR middle-end/67053
10127         * match.pd: Allow both operands to independently have conversion
10128         when simplifying compares of addresses.
10129
10130 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
10131
10132         PR target/66217
10133         PR target/67045
10134         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
10135         around those cases that need one.
10136
10137 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
10138
10139         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
10140
10141 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
10142
10143         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
10144         New.  Copied from config/i386/gnu-user.h.
10145         (ASM_COMMENT_START): Likewise.
10146         (DBX_REGISTER_NUMBER): Likewise.
10147
10148 2015-07-29  Richard Biener  <rguenther@suse.de>
10149
10150         * gimple-fold.c (fold_gimple_cond): Remove.
10151         (fold_stmt_1): Do not call it.
10152
10153 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
10154
10155         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
10156         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
10157
10158         * config/aarch64/aarch64-modes.def: Add HFmode.
10159
10160         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
10161         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
10162
10163         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
10164         aarch64_promoted_type): New.
10165
10166         (aarch64_float_const_representable_p): Disable HFmode.
10167         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
10168         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
10169         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
10170
10171         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
10172         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
10173
10174         * config/aarch64/iterators.md (GPF_F16): New.
10175
10176 2015-07-29  Richard Biener  <rguenther@suse.de>
10177
10178         * match.pd: Merge address comparison patterns and make them
10179         handle some more cases.
10180
10181 2015-07-29  Richard Biener  <rguenther@suse.de>
10182
10183         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
10184         (parser::parse_capture): Add bool argument on whether to reject
10185         unknown captures.
10186         (parser::parse_expr): Adjust.
10187         (parser::parse_op): Likewise.
10188         (parser::parse_pattern): Likewise.
10189
10190 2015-07-29  Richard Biener  <rguenther@suse.de>
10191
10192         * gimple-fold.c (has_use_on_stmt): New function.
10193         (replace_stmt_with_simplification): Use it to allow
10194         abnormals originally referenced in the stmt.
10195         (fold_stmt_1): Canonicalize operand order.
10196
10197 2015-07-28  David Sherwood  <david.sherwood@arm.com>
10198
10199         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
10200         GET_MODE_INNER unconditionally.
10201         * config/spu/spu.c (arith_immediate_p): Likewise.
10202         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
10203         * expmed.c (synth_mult): Remove check for VOIDmode result from
10204         GET_MODE_INNER.
10205         (expand_mult_const): Likewise.
10206         * fold-const.c (fold_binary_loc): Replace call to element_precision
10207         with call to GET_MODE_PRECISION.
10208         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
10209         m->name.
10210         (emit_mode_inner): Likewise.
10211         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
10212         result check.
10213         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
10214         (GET_MODE_UNIT_PRECISION): Likewise.
10215         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
10216         * simplify-rtx.c (simplify_immed_subreg): Likewise.
10217         * stor-layout.c (bitwise_type_for_mode): Update assert.
10218         (element_precision): Remove.
10219
10220 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10221
10222         * target-insns.def (reload_load_address): New targetm instruction
10223         pattern.
10224         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
10225
10226 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10227
10228         * target-insns.def (atomic_test_and_set): New targetm instruction
10229         pattern.
10230         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
10231         HAVE_*/gen_* interface.
10232
10233 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10234
10235         * target-insns.def (can_extend, ptr_extend): New targetm instruction
10236         patterns.
10237         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
10238         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10239         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
10240         * rtlanal.c (nonzero_bits1): Likewise.
10241         (num_sign_bit_copies1): Likewise.
10242
10243 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10244
10245         * target-insns.def (eh_return): New targetm instruction pattern.
10246         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
10247         interface.
10248         * function.c (thread_prologue_and_epilogue_insns): Remove
10249         preprocessor condition.
10250
10251 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10252
10253         * target-insns.def (indirect_jump): New targetm instruction pattern.
10254         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
10255         interface.
10256
10257 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10258
10259         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
10260         instead of nonimmediate_operand.  Remove C condiition.
10261
10262 2015-07-28  Richard Biener  <rguenther@suse.de>
10263
10264         * match.pd: Add more simplification of address comparisons.
10265
10266 2015-07-28  Richard Biener  <rguenther@suse.de>
10267
10268         * match.pd: Re-order two cases in comparison with max/min
10269         value simplification to make it apply for bools.
10270
10271 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10272
10273         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
10274         Handle simple SIGN_EXTEND or ZERO_EXTEND.
10275         (aarch64_rtx_costs): Properly strip extend or extract before
10276         passing down to rtx costs again.
10277
10278 2015-07-28  Nick Clifton  <nickc@redhat.com>
10279
10280         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
10281         Optimizes the case where -mes0 is active and a constant symbolic
10282         address is used.
10283         * config/rl78/rl78-protos.h: Prototype the new function.
10284         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
10285
10286 2015-07-28  Tom de Vries  <tom@codesourcery.com>
10287
10288         * tree-parloops.c (reduc_stmt_res): New function.
10289         (initialize_reductions, add_field_for_reduction)
10290         (create_phi_for_local_result, create_loads_for_reductions)
10291         (create_stores_for_reduction, build_new_reduction): Handle case that
10292         reduc_stmt is a phi.
10293         (gather_scalar_reductions): Allow double_reduc reductions.
10294
10295 2015-07-28  Richard Biener  <rguenther@suse.de>
10296
10297         * fold-const.c (fold_comparison): Remove equality folding
10298         of decl addresses ...
10299         * match.pd: ... here and merge with existing pattern.
10300
10301 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10302
10303         PR tree-optimization/66828
10304         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
10305         from int64_t to uint64_t.
10306
10307 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10308
10309         * opts-common.c (read_cmdline_option): List DriverOnly enum values
10310         as valid only in the error message of the driver, not in the
10311         messages of the language compilers.
10312
10313 2015-07-27  Tom de Vries  <tom@codesourcery.com>
10314
10315         * tree-parloops.c (gather_scalar_reductions): Simplify function
10316         structure.
10317
10318 2015-07-27  Marek Polacek  <polacek@redhat.com>
10319
10320         * ipa-devirt.c (types_same_for_odr): Fix typo.
10321
10322 2015-07-27  Jason Merrill  <jason@redhat.com>
10323
10324         PR debug/66468
10325         * dwarf2out.c (gen_inlined_subroutine_die): Check
10326         cgraph_function_possibly_inlined_p.
10327
10328 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
10329
10330         * gcc/config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
10331         Place integer variant first.
10332         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
10333
10334 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
10335
10336         PR/63870
10337         * config/arm/arm-builtins.c (enum arm_builtins):
10338         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
10339         (ARM_BUILTIN_NEON_BASE): Rename macro to....
10340         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
10341         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
10342         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
10343
10344 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
10345
10346         PR/63870
10347         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
10348         Add qualifier_lane_index.
10349         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
10350         (arm_getlane_qualifiers): Use qualifier_lane_index.
10351         (arm_lanemac_qualifiers): Rename to...
10352         (arm_mac_n_qualifiers): ...this.
10353         (LANEMAC_QUALIFIERS): Rename to...
10354         (MAC_N_QUALIFIERS): ...this.
10355         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
10356         (arm_setlane_qualifiers): Use qualifier_lane_index.
10357         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
10358         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
10359         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
10360         (arm_expand_neon_builtin): Handle qualifier_lane_index.
10361
10362         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
10363         * config/arm/arm.c (bounds_check): Likewise, improve error message.
10364         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
10365         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
10366         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
10367         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
10368         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
10369         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
10370         qualifiers to TERNOP_IMM.
10371         (vdup_lane): Change qualifiers to GETLANE.
10372         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
10373         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
10374         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
10375         vqdmlsl_n): Change qualifiers to MAC_N.
10376
10377         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
10378         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
10379         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
10380         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
10381         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
10382         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
10383         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
10384         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
10385         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
10386         Remove call to neon_lane_bounds.
10387
10388 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
10389
10390         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
10391         Place integer variant first.
10392
10393 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
10394
10395         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
10396         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
10397         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
10398         for armv6kz targets.
10399         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
10400         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
10401         (FL_FOR_ARCH6ZK): Remove.
10402         (FL_FOR_ARCH6KZ): New.
10403         (arm_arch6zk): New declaration.
10404         * config/arm/arm-tables.opt: Regenerate.
10405         * config/arm/arm.c (arm_arch6kz): New.
10406         (arm_option_override): Set arm_arch6kz.
10407         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
10408         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
10409         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
10410
10411 2015-07-27  Marek Polacek  <polacek@redhat.com>
10412
10413         PR c++/66555
10414         PR c/54979
10415         * doc/invoke.texi: Document -Wtautological-compare.
10416
10417 2015-07-27  Richard Biener  <rguenther@suse.de>
10418
10419         * genmatch.c (decision_tree::gen_gimple): Split out large
10420         subtrees into separate functions.
10421         (decision_tree::gen_generic): Likewise.
10422
10423 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
10424
10425         * config/alpha/alpha.c: Use SUBREG_P predicate.
10426         * config/alpha/predicates.md: Ditto.
10427
10428 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10429
10430         * config.host (s390*-*-*): Include driver-native.c only when
10431         building with s390* as host *and* target.
10432
10433 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
10434
10435         PR target/66930
10436         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
10437         T bit register modified_between_p check.
10438
10439 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10440
10441         * config/i386/i386.c: Use SUBREG_P predicate.
10442         * config/i386/i386.md: Ditto.
10443         * config/i386/sse.md: Ditto.
10444         * config/i386/predicates.md: Ditto.
10445
10446 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10447
10448         PR target/67004
10449         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
10450         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
10451
10452 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10453
10454         * Makefile.in: Remove use of TREEBROWSER.
10455         * config.in: Regenerated.
10456         * configure: Regenerated.
10457         * configure.ac: Remove definition of TREEBROWSER.
10458         * tree-browser.c: Removed.
10459         * tree-browser.def: Removed.
10460
10461 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10462
10463         * graphite-scop-detection.c: Include gimple-pretty-print.h.
10464         (stmt_simple_for_scop_p): Print when a stmt is not handled in
10465         Graphite.
10466         (scopdet_basic_block_info): Print when a loop or bb cannot be
10467         represented in Graphite.
10468
10469 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10470
10471         PR target/66648
10472         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
10473         execution guard when min_size is less than size_needed.
10474
10475 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10476
10477         * doc/install.texi: Document supported versions of ISL.
10478
10479 2015-07-25  Jeff Law  <law@redhat.com>
10480
10481         Revert:
10482         PR lto/66752
10483         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
10484         unable to find X NE 0 in the tables, return X as the simplified
10485         condition.
10486         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
10487         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
10488         to VISISTED_BBS.  */
10489         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
10490         after removing the control flow statement and unnecessary edges.
10491
10492 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
10493
10494         Revert:
10495         2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
10496
10497         PR rtl-optimization/64164
10498         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
10499         * tree-ssa-copyrename.c: Removed.
10500         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
10501         -ftree-coalesce-vars.
10502         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
10503         * common.opt (ftree-copyrename): Ignore.
10504         (ftree-coalesce-inlined-vars): Likewise.
10505         * doc/invoke.texi: Remove the ignored options above.
10506         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
10507         * tree-ssa-coalesce.h: ... here.
10508         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
10509         headers required by it.
10510         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
10511         across variables when flag_tree_coalesce_vars.  Check register
10512         use and promoted modes to allow coalescing.  Moved to
10513         tree-ssa-coalesce.c.
10514         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
10515         with its member functions to tree-ssa-coalesce.c.
10516         (var_map_base_init): Likewise.  Renamed to
10517         compute_samebase_partition_bases.
10518         (partition_view_normal): Drop want_bases parameter.
10519         (partition_view_bitmap): Likewise.
10520         * tree-ssa-live.h: Adjust declarations.
10521         * tree-ssa-coalesce.c: Include explow.h.
10522         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
10523         default defs at the entry point.
10524         (dump_part_var_map): New.
10525         (compute_optimized_partition_bases): New, called by...
10526         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
10527         of compute_samebase_partition_bases.  Adjust.
10528         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
10529         * cfgexpand.c (leader_merge): New.
10530         (get_rtl_for_parm_ssa_default_def): New.
10531         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
10532         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
10533         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
10534         redundant MEM attr setting.
10535         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
10536         from...
10537         (expand_one_stack_var): ... this.  New wrapper to check and
10538         skip already expanded SSA partitions.
10539         (record_alignment_for_reg_var): New, factored out of...
10540         (expand_one_var): ... this.
10541         (expand_one_ssa_partition): New.
10542         (adjust_one_expanded_partition_var): New.
10543         (expand_one_register_var): Check and skip already expanded SSA
10544         partitions.
10545         (expand_used_vars): Don't create DECLs for anonymous SSA
10546         names.  Expand all SSA partitions, then adjust all SSA names.
10547         (pass::execute): Replace the loops that set
10548         SA.partition_to_pseudo from partition leaders and cleared
10549         DECL_RTL for multi-location variables, and that which used to
10550         rename vars and set attrs, with one that clears DECL_RTL and
10551         checks that PARMs and RESULTs default_defs match DECL_RTL.
10552         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
10553         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
10554         * explow.c (promote_ssa_mode): New.
10555         * explow.h (promote_ssa_mode): Declare.
10556         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
10557         * function.c: Include cfgexpand.h.
10558         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
10559         (use_register_for_parm_decl): Wrapper for the above to
10560         special-case the result_ptr.
10561         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
10562         (split_complex_args): Take assign_parm_data_all argument.
10563         Pass it to rtl_for_parm.  Set up rtl and context for split
10564         args.
10565         (assign_parms_augmented_arg_list): Adjust.
10566         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
10567         multiple locations.  Recognize split complex args.
10568         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
10569         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
10570         (assign_parm_setup_block): Prefer SSA-assigned location.
10571         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
10572         if stack_parm is NULL.
10573         (assign_parm_setup_stack): Prefer SSA-assigned location.
10574         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
10575         rtl before testing for pointer bounds.  Special-case result_ptr.
10576         (expand_function_start): Maybe reset DECL_RTL of result.
10577         Prefer SSA-assigned location for result and static chain.
10578         Factor out DECL_RESULT and SET_DECL_RTL.
10579         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
10580         anonymous SSA names.  Use promote_ssa_mode.
10581         (get_temp_reg): Likewise.
10582         (remove_ssa_form): Adjust.
10583         * stor-layout.c (layout_decl): Don't set mem attributes of
10584         non-MEMs.
10585         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
10586         and get its reg_usage for reg invalidation.
10587         (compute_bb_dataflow): Pass it insn.
10588         (emit_notes_in_bb): Likewise.
10589
10590 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10591
10592         * config/i386/i386.c (ix86_va_start): Remove
10593         unneeded !TARGET_64BIT check.
10594         (ix86_gimplify_va_arg): Ditto.
10595
10596 2015-07-24  Tom de Vries  <tom@codesourcery.com>
10597
10598         * graphite-sese-to-poly.c (build_poly_scop): Always call
10599         rewrite_commutative_reductions_out_of_ssa.
10600
10601 2015-07-24  Tom de Vries  <tom@codesourcery.com>
10602
10603         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
10604         flag_associative_math to FLOAT_TYPE_P.  Honour
10605         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
10606
10607 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10608
10609         PR c++/64079
10610         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
10611         and "%qD" in warning_at instead of "%q+D" in warning.
10612
10613 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
10614
10615         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
10616         (ix86_function_abi): Cleanup.
10617
10618 2015-07-24  Michael Darling  <darlingm@gmail.com>
10619
10620         PR other/66259
10621         * acinclude.m4: Reflects renaming of configure.in to configure.ac
10622         * configure: Likewise
10623         * configure.ac: Likewise
10624         * doc/install.texi: Likewise
10625         * doc/tm.texi: Likewise
10626         * doc/tm.texi.in: Likewise
10627
10628 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10629
10630         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
10631         manually swapping values.
10632         * cse.c (fold_rtx): Likewise.
10633         * lra-eliminations.c (form_sum): Likewise.
10634
10635 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
10636
10637         PR target/64003
10638         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
10639         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
10640         (*jcc_1, *jcc_2, jump, simple_return_internal)
10641         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
10642         Set length_nobnd attribute instead of length attribute.
10643         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
10644         (length_nobnd): Remove attribute.
10645         (length): Remove length_nobnd processing.
10646
10647 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
10648
10649         * gimplify.c (omp_default_clause): New function.  Reorganize flow
10650         for clarity. Broken out of ...
10651         (omp_notice_variable): ... here.
10652
10653 2015-07-24  Gary Funck  <gary@intrepid.com>
10654
10655         PR middle-end/66984
10656         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
10657         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
10658
10659 2015-07-24  Tom de Vries  <tom@codesourcery.com>
10660
10661         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
10662         exit-first loop transform.
10663
10664 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
10665
10666         PR 66714
10667         * tree-cfg.c (struct replace_decls_d): New struct.
10668         (replace_block_vars_by_duplicates_1): New function.
10669         (replace_block_vars_by_duplicates): Use it to replace the decls
10670         in the value exprs by duplicates.
10671
10672 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
10673
10674         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
10675         -shared, -symbolic, -rdynamic.
10676
10677 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
10678
10679         PR target/65711
10680         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
10681         -dynamic-linker within %{!static %{!shared, and -rdynamic within
10682         %{!static.
10683
10684 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
10685
10686         PR ipa/66566
10687         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
10688         edge summary is available.
10689
10690 2015-07-24  Richard Biener  <rguenther@suse.de>
10691
10692         * genmatch.c (struct dt_node): Add statistic fields.
10693         (dt_node::analyze): New method.
10694         (decision_tree::gen_gimple): Call analyze on the root node
10695         and print statistics to stderr.
10696         (decision_tree::gen_generic): Likewise.
10697
10698 2015-07-24  Richard Biener  <rguenther@suse.de>
10699
10700         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
10701         against the highest or lowest possible integer ...
10702         * match.pd: ... as patterns here.
10703
10704 2015-07-24  Richard Biener  <rguenther@suse.de>
10705
10706         * genmatch.c (struct capture_info): Add same_as field.
10707         (capture_info::capture_info): Initialize same_as.
10708         (capture_info::walk_match): Compute same_as.
10709         (capture_info::walk_result): Compute stuff for the leader.
10710         (capture_info::walk_c_expr): Likewise.
10711         (dt_simplify::gen_1): Only look at leaders when deciding
10712         to force no side-effects or emit side-effects of omitted operands.
10713
10714 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10715
10716         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
10717         reg note to the GPR -> FPR save instructions.
10718
10719 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10720
10721         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
10722         cheaper.
10723         (s390_expand_insv): Don't generate risbg pattern for constant zero
10724         sources.
10725         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
10726         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
10727         splitters.
10728
10729 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10730
10731         * config/s390/s390.c (s390_reorg): Clean up handling of processors
10732         with
10733         -mtune=
10734         (s390_issue_rate): Likewise.
10735         (s390_sched_reorder): Likewise.
10736         (s390_sched_variable_issue): Likewise.
10737         (s390_loop_unroll_adjust): Likewise.
10738         (s390_option_override):  Likewise.
10739
10740 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10741
10742         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
10743         processor capabilities with -march=native.
10744         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
10745         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
10746         (S390_TARGET_BITS_STRING): Macro to simplify specs.
10747
10748 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10749
10750         * config/s390/s390.c (s390_issue_rate): Handle
10751         PROCESSOR_2094_Z9_EC.
10752         (s390_option_override): Likewise.
10753         (s390_adjust_priority): Likewise.
10754
10755 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10756
10757         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
10758         when cross compiling.
10759
10760 2015-07-24  Richard Biener  <rguenther@suse.de>
10761
10762         * fold-const.c (maybe_canonicalize_comparison_1): Move
10763         A code CST canonicalization ...
10764         * match.pd: ... to a pattern here.
10765
10766 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
10767
10768         Revert:
10769         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
10770         PR target/63521
10771         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
10772         (HONOR_REG_ALLOC_ORDER): Define.
10773
10774 2015-07-24  Richard Biener  <rguenther@suse.de>
10775
10776         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
10777         * fold-const.c (fold_comparison): Move parameter does not
10778         alias &local simplification ...
10779         * match.pd: ... as a pattern here.
10780
10781 2015-07-24  Richard Biener  <rguenther@suse.de>
10782
10783         * gimple-fold.c (replace_stmt_with_simplification): Special-case
10784         valueizing call operands.
10785         * gimple-match-head.c (maybe_push_res_to_seq): Take
10786         number of call arguments from ops array.
10787         (do_valueize): New function.
10788         (gimple_simplify): Return true if valueization changed
10789         any operand even if the result didn't simplify further.
10790
10791 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
10792
10793         PR middle-end/25530
10794         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
10795
10796 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
10797
10798         PR middle-end/25529
10799         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
10800
10801 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
10802
10803         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
10804         instruction.
10805
10806 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
10807
10808         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
10809         clean up.
10810
10811 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
10812
10813         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
10814         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
10815         targets here.
10816         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
10817         ms_va_list_type_node initialization.
10818
10819 2015-07-23  Jeff Law  <law@redhat.com>
10820
10821         PR lto/66752
10822         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
10823         unable to find X NE 0 in the tables, return X as the simplified
10824         condition.
10825         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
10826         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
10827         to VISISTED_BBS.  */
10828         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
10829         after removing the control flow statement and unnecessary edges.
10830
10831 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10832
10833         * tree-pass.h (get_current_pass_name): Removed.
10834
10835 2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
10836
10837         PR rtl-optimization/64164
10838         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
10839         * tree-ssa-copyrename.c: Removed.
10840         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
10841         -ftree-coalesce-vars.
10842         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
10843         * common.opt (ftree-copyrename): Ignore.
10844         (ftree-coalesce-inlined-vars): Likewise.
10845         * doc/invoke.texi: Remove the ignored options above.
10846         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
10847         * tree-ssa-coalesce.h: ... here.
10848         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
10849         headers required by it.
10850         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
10851         across variables when flag_tree_coalesce_vars.  Check register
10852         use and promoted modes to allow coalescing.  Moved to
10853         tree-ssa-coalesce.c.
10854         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
10855         with its member functions to tree-ssa-coalesce.c.
10856         (var_map_base_init): Likewise.  Renamed to
10857         compute_samebase_partition_bases.
10858         (partition_view_normal): Drop want_bases parameter.
10859         (partition_view_bitmap): Likewise.
10860         * tree-ssa-live.h: Adjust declarations.
10861         * tree-ssa-coalesce.c: Include explow.h.
10862         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
10863         default defs at the entry point.
10864         (dump_part_var_map): New.
10865         (compute_optimized_partition_bases): New, called by...
10866         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
10867         of compute_samebase_partition_bases.  Adjust.
10868         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
10869         * cfgexpand.c (leader_merge): New.
10870         (get_rtl_for_parm_ssa_default_def): New.
10871         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
10872         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
10873         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
10874         redundant MEM attr setting.
10875         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
10876         from...
10877         (expand_one_stack_var): ... this.  New wrapper to check and
10878         skip already expanded SSA partitions.
10879         (record_alignment_for_reg_var): New, factored out of...
10880         (expand_one_var): ... this.
10881         (expand_one_ssa_partition): New.
10882         (adjust_one_expanded_partition_var): New.
10883         (expand_one_register_var): Check and skip already expanded SSA
10884         partitions.
10885         (expand_used_vars): Don't create DECLs for anonymous SSA
10886         names.  Expand all SSA partitions, then adjust all SSA names.
10887         (pass::execute): Replace the loops that set
10888         SA.partition_to_pseudo from partition leaders and cleared
10889         DECL_RTL for multi-location variables, and that which used to
10890         rename vars and set attrs, with one that clears DECL_RTL and
10891         checks that PARMs and RESULTs default_defs match DECL_RTL.
10892         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
10893         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
10894         * explow.c (promote_ssa_mode): New.
10895         * explow.h (promote_ssa_mode): Declare.
10896         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
10897         * function.c: Include cfgexpand.h.
10898         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
10899         (use_register_for_parm_decl): Wrapper for the above to
10900         special-case the result_ptr.
10901         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
10902         (split_complex_args): Take assign_parm_data_all argument.
10903         Pass it to rtl_for_parm.  Set up rtl and context for split
10904         args.
10905         (assign_parms_augmented_arg_list): Adjust.
10906         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
10907         multiple locations.  Recognize split complex args.
10908         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
10909         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
10910         (assign_parm_setup_block): Prefer SSA-assigned location.
10911         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
10912         if stack_parm is NULL.
10913         (assign_parm_setup_stack): Prefer SSA-assigned location.
10914         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
10915         rtl before testing for pointer bounds.  Special-case result_ptr.
10916         (expand_function_start): Maybe reset DECL_RTL of result.
10917         Prefer SSA-assigned location for result and static chain.
10918         Factor out DECL_RESULT and SET_DECL_RTL.
10919         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
10920         anonymous SSA names.  Use promote_ssa_mode.
10921         (get_temp_reg): Likewise.
10922         (remove_ssa_form): Adjust.
10923         * stor-layout.c (layout_decl): Don't set mem attributes of
10924         non-MEMs.
10925         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
10926         and get its reg_usage for reg invalidation.
10927         (compute_bb_dataflow): Pass it insn.
10928         (emit_notes_in_bb): Likewise.
10929
10930 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
10931
10932         PR target/66217
10933         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
10934         prototype.
10935         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
10936         (rs6000_emit_2insn_and): Handle dot forms.
10937         * config/rs6000/rs6000.md (and<mode>3): Adjust.
10938         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
10939         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
10940
10941 2015-07-23  Richard Biener  <rguenther@suse.de>
10942
10943         * generic-match-head.c: Include cgraph.h.
10944         * gimple-match-head.c: Likewise.
10945         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
10946         SSA names.
10947         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
10948         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
10949         pattern.
10950
10951 2015-07-23  Richard Biener  <rguenther@suse.de>
10952
10953         * gimple-fold.c (fold_gimple_cond): Do not require folding
10954         results to pass valid_gimple_rhs_p.
10955         * tree-cfg.h (fold_cond_expr_cond): Remove.
10956         * tree-cfg.c (fold_cond_expr_cond): Likewise.
10957         (make_edges): Do not call it.
10958         * tree-inline.c (tree_function_versioning): Likewise.
10959
10960 2015-07-23  Tom de Vries  <tom@codesourcery.com>
10961
10962         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
10963         vect_force_simple_reduction.
10964         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
10965         (vect_is_simple_reduction_1): Add and handle
10966         need_wrapping_integral_overflow parameter.
10967         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
10968         need_wrapping_integral_overflow parameter.
10969         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
10970         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
10971         decl.
10972
10973 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
10974
10975         PR tree-optimization/66926,66951
10976         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
10977         INNER_LOOP and fix up condition for renaming virtual operands.
10978
10979 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10980
10981         * combine.c (try_combine): Use std::swap instead of manually
10982         swapping.
10983
10984 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
10985
10986         * config/mips/i6400.md: New file.
10987         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
10988         (mips64r6): Likewise.
10989         (i6400): Define.
10990         * config/mips/mips-tables.opt: Regenerate.
10991         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
10992         (mips_issue_rate): Add support for i6400.
10993         (mips_multipass_dfa_lookahead): Likewise.
10994         * config/mips/mips.h (TUNE_I6400): Define.
10995         * config/mips/mips.md: Include i6400.md.
10996         (processor): Add i6400.
10997         * doc/invoke.texi (-march=@var{arch}): Add i6400.
10998
10999 2015-07-23  Richard Biener  <rguenther@suse.de>
11000
11001         PR middle-end/66916
11002         * match.pd: Guard widen and sign-change comparison simplification
11003         with single_use.
11004
11005 2015-07-23  Richard Biener  <rguenther@suse.de>
11006
11007         PR tree-optimization/66945
11008         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
11009         ::before_dom_children): Force the propagators idea of
11010         non-executable edges to materialize, not what the folder
11011         chooses.
11012
11013 2015-07-23  Richard Biener  <rguenther@suse.de>
11014
11015         * gimple.h (gimple_cond_make_false): Use 0 != 0.
11016         (gimple_cond_make_true): Use 1 != 0.
11017
11018 2015-07-22  DJ Delorie  <dj@redhat.com>
11019
11020         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
11021         slashes.
11022
11023         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
11024         (ashrhi3): Likewise.
11025         (lshrhi3): Likewise.
11026         (movhi): Take advantage of zero-extend to load small constants.
11027         (movpsi): Likewise.
11028         (and<mode>3): Likewise.
11029         (zero_extendqihi2): Likewise.
11030         (zero_extendqisi2): New.
11031         * config/msp430/constraints.md (N,O): New.
11032         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
11033
11034 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
11035
11036         PR target/66954
11037         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
11038         to enum feature_priority and feature_list.
11039         (fold_builtin_cpu): Add F_AES to enum processor_features
11040         and isa_names_table.
11041
11042 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
11043
11044         PR driver/66737
11045         * config/i386/linux-common.h (MPX_SPEC): Use linker option
11046         for 64bit target only.
11047
11048 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
11049
11050         * config/nvptx/nvptx.c: Expand some comments.
11051
11052 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
11053
11054         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
11055         (cortex_a53_advsimd): ...This.
11056
11057 2015-07-22  Richard Biener  <rguenther@suse.de>
11058
11059         * genmatch.c (expr::gen_transform): Clarify error message
11060         and display location.
11061
11062 2015-07-22  Richard Biener  <rguenther@suse.de>
11063
11064         * genmatch.c (struct operand): Add location member.
11065         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
11066         constructors.
11067         (struct simplify): Remove match_location and result_location
11068         members.
11069         (elsehwere): Adjust.
11070
11071 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
11072
11073         * config/mips/m5100.md: New file.
11074         * config/mips/mips-cpus.def (m5100, m5101): Define.
11075         * config/mips/mips-tables.opt: Regenerate.
11076         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
11077         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
11078         -march=m5101 to -mips32r5.
11079         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
11080         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
11081         !-msoft-float.
11082         * config/mips/mips.md: Include m5100.md.
11083         (processor): Add m5100.
11084         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
11085
11086 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
11087
11088         * config/mips/mips-cpus.def (interaptiv): Define.
11089         * config/mips/mips-tables.opt: Regenerate.
11090         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
11091         -mips32r2.
11092         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
11093         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
11094
11095 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
11096
11097         PR target/63521
11098         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
11099         (HONOR_REG_ALLOC_ORDER): Define.
11100
11101 2015-07-22  Richard Biener  <rguenther@suse.de>
11102
11103         PR tree-optimization/66952
11104         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
11105         blocks we end up executing unconditionally reset all SSA
11106         info such as range and alignment.
11107         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
11108         * tree-ssanames.c (reset_flow_sensitive_info): New function.
11109
11110 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
11111
11112         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
11113         typo in attribute.
11114
11115 2015-07-22  Richard Biener  <rguenther@suse.de>
11116
11117         * genmatch.c (parser::parse_result): Properly handle
11118         match with result operands and conditions.
11119
11120 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
11121
11122         PR target/63870
11123         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
11124         Add qualifier_struct_load_store_lane_index.
11125         (aarch64_types_loadstruct_lane_qualifiers): Use
11126         qualifier_struct_load_store_lane_index for lane index argument for
11127         last argument.
11128         (aarch64_types_storestruct_lane_qualifiers): Ditto.
11129         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11130         (aarch64_simd_expand_args): Add new argument describing mode of
11131         builtin. Check lane bounds for arguments with
11132         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11133         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
11134         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11135         (aarch64_simd_expand_builtin): Handle arguments with
11136         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
11137         aarch64_simd_expand_args.
11138         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
11139         vst[234]_lane with BUILTIN_VALLDIF.
11140         * config/aarch64/aarch64-simd.md:
11141         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
11142         endianness reversal on lane index.
11143         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
11144         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
11145         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
11146         (vec_store_lanesci_lane<mode>): Ditto.
11147         (vec_store_lanesxi_lane<mode>): Ditto.
11148         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
11149         reversal of lane index.
11150         (aarch64_ld3_lane<mode>): Ditto.
11151         (aarch64_ld4_lane<mode>): Ditto.
11152         (aarch64_st2_lane<mode>): Ditto.
11153         (aarch64_st3_lane<mode>): Ditto.
11154         (aarch64_st4_lane<mode>): Ditto.
11155         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
11156         to qmode. Add new mode parameter. Update uses.
11157         (__LD3_LANE_FUNC): Ditto.
11158         (__LD4_LANE_FUNC): Ditto.
11159         (__ST2_LANE_FUNC): Ditto.
11160         (__ST3_LANE_FUNC): Ditto.
11161         (__ST4_LANE_FUNC): Ditto.
11162
11163 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
11164
11165         * doc/invoke.texi (Language Independent Options): Rename node to
11166         Diagnostic Message Formatting Options.
11167
11168 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
11169
11170         PR ipa/66424.
11171         * lra-remat.c (operand_to_remat): Prevent using insns with input
11172         subregs processed separately by IRA.
11173
11174 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
11175
11176         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
11177         straight loops.
11178         (single_imm_use): Check for iterator node.
11179         (num_imm_uses): Likewise.
11180         * tree-ssa-operands.c (has_zero_uses_1): Delete.
11181         (single_imm_use_1): Check for iterator node.
11182
11183 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
11184             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
11185
11186         * configure.ac: Add check for new options in isl-0.15.
11187         * config.in, configure: Rebuilt.
11188         * graphite-blocking.c: Include <isl/constraint.h>
11189         * graphite-interchange.c,  graphite-poly.c: Likewise.
11190         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
11191         * graphite.c: Likewise.
11192         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
11193         <isl/union_set.h>.
11194         * graphite-dependences.c: Include <isl/constraint.h>.
11195         (max_number_of_out_dimensions): Returns isl_stat.
11196         (extend_schedule_1): Likewise
11197         (extend_schedule): Corresponding changes.
11198         * graphite-optimize-isl.c: Include <isl/constraint.h> and
11199         <isl/union_set.h>.
11200         (getSingleMap): Change return type of isl_stat.
11201         (optimize_isl): Conditionally use
11202         isl_options_set_schedule_serialize_sccs.
11203         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
11204         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
11205
11206 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
11207
11208         PR target/66956
11209         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
11210         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
11211
11212 2015-07-21  Richard Biener  <rguenther@suse.de>
11213
11214         PR tree-optimization/66948
11215         * genmatch.c (capture_info::walk_match): Also recurse to
11216         captures.  Properly compute expr state from captures of
11217         captures.
11218         * match.pd: Add single-use guards to
11219         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
11220
11221 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
11222
11223         * config/nvptx/mkoffload.c (process): Add static destructor call.
11224
11225 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11226
11227         PR middle-end/66915
11228         * match.pd (A - B -> A + (-B)): Don't allow folding
11229         when type if a fixed-point type.
11230
11231 2015-07-20  DJ Delorie  <dj@redhat.com>
11232
11233         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
11234         (iorqi3_real): Likewise for set1.
11235
11236 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
11237
11238         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
11239         for !TARGET_64BIT.
11240
11241 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
11242
11243         * graphite-isl-ast-to-gimple.c:
11244         Refactor so that each function can access 'region'. This will help
11245         maintain a parameter rename_map within a region.
11246
11247 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
11248
11249         * config/rs6000/rs6000.md (*lt0_disi): New.
11250
11251 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
11252
11253         PR target/66217
11254         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
11255         "available letters" comment.
11256         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
11257         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
11258         and_2rld_operand):  Delete.
11259         (and_operand): Adjust.
11260         (rotate_mask_operator): New.
11261         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
11262         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
11263         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
11264         extract_ME): Delete.
11265         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
11266         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
11267         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
11268         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
11269         rs6000_emit_2insn_and): New.
11270         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
11271         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
11272         includes_rldic_lshift_p, includes_rldicr_lshift_p,
11273         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
11274         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
11275         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
11276         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
11277         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
11278         rs6000_emit_2insn_and): New.
11279         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
11280         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
11281         handling.
11282         <NOT>: Don't fall through to next case.
11283         <AND>: Handle the various rotate-and-mask cases directly.
11284         <IOR>: Always cost as one insn.
11285         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
11286         (and<mode>3): Adjust expander for the new patterns.
11287         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
11288         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
11289         (*and<mode>3_imm_dot_shifted): New.
11290         (*and<mode>3_mask): Delete, rewrite as ...
11291         (and<mode>3_mask): ... New.
11292         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
11293         (andsi3_internal0_nomc): Delete.
11294         (*andsi3_internal6): Delete.
11295         (*and<mode>3_2insn): New.
11296         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
11297         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
11298         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
11299         *insvdi_internal3): Delete.
11300         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
11301         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
11302         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
11303         *ior<mode>_mask): New.
11304         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
11305         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
11306         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
11307         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
11308         Delete.
11309         (ashr<mode>3): Delete expander.
11310         (*ashr<mode>3): Rename to ...
11311         (ashr<mode>3): ... This.
11312         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
11313         (*rotldi3_internal4, *rotldi3_internal5 and split,
11314         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
11315         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
11316         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
11317         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
11318         (splitter for loading a mask): Adjust.
11319         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
11320
11321 2015-07-20  Marek Polacek  <polacek@redhat.com>
11322
11323         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
11324         output_add_clobbers, output_added_clobbers_hard_reg_p,
11325         gen_rtx_scratch): Remove declarations.
11326
11327 2015-07-20  Marek Polacek  <polacek@redhat.com>
11328
11329         PR c++/55095
11330         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
11331
11332 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11333
11334         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
11335         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
11336
11337 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11338
11339         * combine.c (combine_simplify_rtx): Move simplification step
11340         before various transformations/substitutions.
11341
11342 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
11343
11344         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
11345         (struct int_traits): Likewise.
11346
11347 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11348
11349         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
11350         function to vmsdbgout_function_decl.
11351
11352 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
11353
11354         PR target/66922
11355         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
11356         from misaligned positions.
11357         (ix86_expand_pinsr): Reject insertions to misaligned positions.
11358
11359 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
11360
11361         PR middle-end/46851
11362         PR middle-end/60340
11363         * Makefile.in: Removed omega.o.
11364         * common.opt: Document flag fcheck-data-deps as deprecated.
11365         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
11366         its associated params: omega-max-vars, omega-max-geqs,
11367         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
11368         omega-max-keys, omega-eliminate-redundant-constraints.
11369         * doc/loop.texi: Remove all the section on Omega.
11370         * graphite-blocking.c: Include missing params.h: it used to be
11371         included through tree-data-ref.h and omega.h.
11372         * graphite-isl-ast-to-gimple.c: Same.
11373         * graphite-optimize-isl.c: Same.
11374         * graphite-sese-to-poly.c: Same.
11375         * graphite.c: Same.
11376         * omega.c: Remove.
11377         * omega.h: Remove.
11378         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
11379         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
11380         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
11381         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
11382         * passes.def: Remove pass_check_data_deps.
11383         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
11384         (dump_conflict_function): Same.
11385         (dump_subscript): Same.
11386         (print_direction_vector): Same.
11387         (print_dir_vectors): Same.
11388         (print_lambda_vector): Same.
11389         (print_dist_vectors): Same.
11390         (dump_data_dependence_relation): Same.
11391         (dump_data_dependence_relations): Same.
11392         (dump_dist_dir_vectors): Same.
11393         (dump_ddrs): Same.
11394         (init_omega_eq_with_af): Removed.
11395         (omega_extract_distance_vectors): Removed.
11396         (omega_setup_subscript): Removed.
11397         (init_omega_for_ddr_1): Removed.
11398         (init_omega_for_ddr): Removed.
11399         (ddr_consistent_p): Removed.
11400         (compute_affine_dependence): Do not use omega to check data
11401         dependences.
11402         (compute_data_dependences_for_bb): Removed.
11403         (analyze_all_data_dependences): Removed.
11404         (tree_check_data_deps): Removed.
11405         * tree-data-ref.h: Do not include omega.h.
11406         (compute_data_dependences_for_bb): Removed.
11407         (tree_check_data_deps): Removed.
11408         * tree-ssa-loop.c (pass_check_data_deps): Removed.
11409         (make_pass_check_data_deps): Removed.
11410         * tree-ssa-phiopt.c: Include params.h.
11411         * tree-vect-data-refs.c: Same.
11412         * tree-vect-slp.c: Same.
11413
11414 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
11415
11416         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
11417         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
11418         (mem->fpreg splitters): Ditto.
11419         (general_operand->nonimmediate_operand splitter): Use explicit modes.
11420         Disable DFmode for TARGET_64BIT.
11421
11422 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
11423
11424         PR target/66906
11425         * config/i386/i386.c (ix86_expand_prologue): Replicate static
11426         chain on the stack.
11427
11428 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
11429
11430         * config/nvptx/mkoffload.c (process): Constify host data.
11431         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
11432         Constify host data.
11433         (generate_host_descr_file): Likewise.
11434
11435 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
11436             Sebastian Pop  <s.pop@samsung.com>
11437
11438         PR middle-end/61929
11439         * graphite-dependences.c (add_pdr_constraints): Renamed
11440         pdr->extent to pdr->subscript_sizes.
11441         * graphite-interchange.c (build_linearized_memory_access): Add
11442         back all gcc_assert's that the "isl_int to isl_val conversion"
11443         patch has removed.  Refactored.
11444         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
11445         * graphite-poly.c (new_poly_dr): Same.
11446         (free_poly_dr): Same.
11447         * graphite-poly.h (struct poly_dr): Same.
11448         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
11449         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
11450         * graphite-scop-detection.h: Fix space.
11451         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
11452         back all gcc_assert's removed by a previous patch.
11453         (wrap): Remove the_isl_ctx global variable that the same patch has
11454         added.
11455         (build_loop_iteration_domains): Same.
11456         (add_param_constraints): Same.
11457         (pdr_add_data_dimensions): Same.  Refactored.
11458         (build_poly_dr): Renamed extent to subscript_sizes.
11459
11460 2015-07-17  Marek Polacek  <polacek@redhat.com>
11461
11462         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
11463         * match.pd: ... here.
11464
11465 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
11466
11467         * config/nvptx/mkoffload.c (process): Constify target data.
11468         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
11469         Constify target data.
11470         (generate_target_offloadend_file): Likewise.
11471
11472 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
11473
11474         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
11475         to allow renaming of PHI arguments on edges incoming from outer
11476         loop header, add corresponding check before start PHI iterator.
11477         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
11478         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
11479         with true force_vectorize.  Set-up dominator for outer loop too.
11480         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
11481         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
11482         was marked with force_vectorize and has restricted cfg.
11483         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
11484         inner loop.
11485         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
11486         do peeling for outer loops.
11487
11488 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
11489             Matthias Klose  <doko@ubuntu.com>
11490
11491         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
11492         build-sysroot, sysroot from the `Miscenalleous configure options' to
11493         the `Directories' section and strip trailing `/' from with_sysroot.
11494         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
11495         * configure: Regenerated.
11496
11497 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
11498
11499         PR target/66824
11500         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
11501         (TARGET_HARD_DF_REGS): Ditto.
11502         (TARGET_HARD_XF_REGS): Ditto.
11503         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
11504         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
11505         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
11506         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
11507         (*movsf_internal): Add alternatives 16 and 17. Enable
11508         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
11509
11510 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
11511
11512         PR rtl-optimization/66891
11513         * calls.c (expand_call): Wrap precompute_register_parameters with
11514         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
11515
11516 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
11517
11518         * config/nvptx/mkoffload.c (process): Constify mapping variables.
11519         Define target data struct and initialize it.
11520
11521 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
11522
11523         PR rtl-optimization/66626
11524         * ira.h (emit-rtl.h): Include.
11525         (non_spilled_static_chain_regno_p): New.
11526         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
11527         unless it is non spilled static chain pseudo.
11528         (assign_hard_rego): Spill memory profitable allocno unless it is
11529         non spilled static chain pseudo.
11530         (allocno_spill_priority_compare): Put non spilled static chain
11531         pseudo at the end of sorted array.
11532         (improve_allocation): Do nothing if we have static chain and
11533         non-local goto.
11534         (allocno__priority_compare_func): Put non spilled static chain
11535         pseudo at the beginning of sorted array.
11536         (move_spill_restore): Ignore non spilled static chain pseudo.
11537         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
11538         to non spilled static chain pseudo.
11539         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
11540         pseudo at the beginning of sorted array.
11541         (spill_for): Spill non spilled static chain pseudo last.
11542         * lra-constraints.c (lra_constraints): Remove static chain pseudo
11543         check for equivalence.
11544
11545 2015-07-16  Martin Liska  <mliska@suse.cz>
11546
11547         PR ipa/66896.
11548         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
11549         dst_ctx if it does not exist.
11550
11551 2015-07-16  Martin Liska  <mliska@suse.cz>
11552
11553         * hash-set.h (remove): New function.
11554         (iterator): New iteration class for hash_set.
11555
11556 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11557
11558         * genattrtab.c (make_canonical): Add a file_location parameter.
11559         Use fatal_at rather than fatal.
11560         (get_attr_value): Likewise.  Update call to make_canonical.
11561         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
11562         (make_internal_attr): Update calls accordingly.
11563
11564 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11565
11566         * read-md.h (message_with_line, error_with_line): Delete.
11567         * read-md.c (message_with_line, error_with_line): Delete.
11568         * gensupport.h: Include read-md.h.
11569         (md_rtx_info): New structure.
11570         (read_md_rtx): Use it.  Return a bool success value.
11571         * gensupport.c (read_md_rtx): Likewise.
11572         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
11573         (main): Update after interface changes.
11574         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
11575         (main): Update after interface changes.
11576         * genattrtab.c (insn_code_number): Delete.
11577         (optimize_attrs): Add a max_insn_code parameter and use it instead
11578         of insn_code_number.
11579         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
11580         Use *_at rather than *_with_line functions.
11581         (gen_insn): Likewise.
11582         (gen_delay): Likewise.
11583         (gen_insn_reserv): Likewise.
11584         (gen_bypass): Take an md_rtx_info rather than an rtx.
11585         (main): Update after interface changes.  Use a local max_insn_code
11586         variable instead of insn_code_number.
11587         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
11588         an rtx.  Use fatal_at rather than fatal.
11589         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
11590         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
11591         (gen_absence_set, gen_final_absence_set, gen_automaton)
11592         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
11593         (main): Update after interface changes.
11594         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
11595         and code number.
11596         (main): Update after interface changes.
11597         * genconditions.c (main): Use new read_md_rtx interface.
11598         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
11599         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
11600         (main): Update after interface changes.
11601         * genemit.c (insn_code_number, insn_index_number): Delete.
11602         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
11603         Use fatal_at rather than fatal.
11604         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
11605         rather than fatal.
11606         (gen_split): Likewise.
11607         (main): Update after interface changes.
11608         * genextract.c (line_no): Delete.
11609         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
11610         Update call to walk_rtx.
11611         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
11612         rather than message_with_line.
11613         (walk_rtx): Add an md_rtx_info argument.  Update call to
11614         VEC_safe_set_locstr.
11615         (main): Update after interface changes.
11616         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
11617         and lineno.  Use error_at rather than separate message_with_line
11618         calls and have_error assignments.
11619         (main): Update after interface changes.
11620         * genmddump.c (main): Use new read_md_rtx interface.
11621         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
11622         (main): Update after interface changes.
11623         * genoutput.c (next_code_number): Delete.
11624         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
11625         (gen_peephole, gen_expand, gen_split): Likewise.
11626         (note_constraint): Likewise.  Use *_at rather than *_with_line
11627         functions.
11628         (main): Update after interface changes.
11629         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
11630         rtx and lineno.
11631         (main): Update after interface changes.
11632         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
11633         than an rtx and lineno.
11634         (process_define_constraint): Likewise.
11635         (process_define_register_constraint): Likewise.
11636         (main): Update after interface changes.
11637         * genrecog.c (next_insn_code, pattern_lineno): Delete.
11638         (validate_pattern): Replace top-level rtx with an md_rtx_info.
11639         Use *_at rather than *_with_line functions.
11640         (match_pattern_2): Likewise.
11641         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
11642         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
11643         Use *_at rather than *_with_line functions.
11644         * gentarget-def.c (add_insn): New function.
11645         (main): Use it.  Use new read_md_rtx interface.
11646
11647 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11648
11649         * gensupport.h (compute_test_codes): Take a file_location rather
11650         than a line number.
11651         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
11652         rather than *_with_line functions.
11653         (process_define_predicate): Update call to compute_test_codes.
11654         * genpreds.c (validate_exp): Take a file_location rather than a
11655         line number.  Use *_at functions rather than *_with_line functions.
11656         (process_define_predicate): Update call to validate_exp.
11657         (constraint_data): Replace lineno field with a file_location.
11658         (add_constraint): Take a file_location rather than a line number.
11659         Use *_at functions rather than *_with_line functions.  Fix error
11660         message for address constraints.  Update after changes to
11661         validate_exp, constraint_data and compute_test_codes.
11662         (process_define_constraint): Update accordingly.
11663         (process_define_register_constraint): Likewise.
11664
11665 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11666
11667         * genoutput.c (data): Use a file_location to record the source
11668         position.
11669         (nothing): Delete.
11670         (idata, idata_end): Remove initialization.
11671         (constraint_data): Replace lineno with a file_location.
11672         (output_insn_data): Update after changes to data.
11673         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
11674         (scan_operands): Likewise, using *_at rather than *_with_line
11675         functions.
11676         (process_template): Likewise.
11677         (validate_insn_alternatives): Likewise.
11678         (validate_insn_operands): Likewise.
11679         (validate_optab_operands): Likewise.
11680         (init_insn_for_nothing): Initialize idata and idata_end.
11681         (note_constraint): Update after changes to constraint_data,
11682         using at rather than with_line functions.
11683         (mdep_constraint_len): Take a file_location rather than a
11684         line number.  Use at rather than with_line functions.
11685
11686 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11687
11688         * read-md.h (fatal_at): Declare.
11689         * read-md.c (fatal_at): New function.
11690         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
11691         to record the source position.
11692         (check_attr_test): Take a file_location instead of a line number.
11693         Use fatal_at instead of fatal.
11694         (check_attr_value): Update after above changes, using "at"
11695         rather than "with_line" reporting functions.
11696         (convert_set_attr_alternative): Likewise.
11697         (gen_attr): Likewise.
11698         (check_defs): Likewise.  Don't assign to read_md_filename.
11699         (gen_insn): Update initialization after above changes.
11700         (gen_delay): Likewise.
11701         (write_insn_cases): Print the filename for a define_peephole.
11702         (gen_insn_reserv): Take a line number as argument and update
11703         the call to check_attr_test.
11704         (main): Pass a line number to gen_insn_reserv.
11705
11706 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11707
11708         * read-md.h (file_location): New structure.
11709         (directive_handler_t): Take a file_location rather than a line number.
11710         (message_at, error_at): Declare.
11711         (read_skip_construct): Delete.
11712         * read-md.c (message_with_line_1): Replace with...
11713         (message_at_1): ...this new function.
11714         (message_at, error_at): New functions.
11715         (message_with_line, error_with_line): Update to use message_at_1.
11716         (handle_enum): Take a file_location rather than a line number
11717         and use error_at for error reporting.
11718         (handle_include): Likewise.
11719         (read_skip_construct): Likewise.  Make static.
11720         (handle_file): Update after above changes.  Pass a file_location
11721         rather than a line number to handle_directive.
11722         * gensupport.c (queue_elem): Replace separate filename and lineno
11723         with a file_location.
11724         (queue_pattern): Replace filename and lineno arguments with a
11725         file_location.  Update after change to queue_elem.
11726         (process_define_predicate): Replace lineno argument with a
11727         file_location and use error_at for error reporting.  Update
11728         after above changes.
11729         (process_rtx): Likewise.
11730         (subst_pattern_match): Likewise.
11731         (get_alternatives_number): Likewise.
11732         (alter_predicate_for_insn): Likewise.
11733         (rtx_handle_directive): Likewise.
11734         (is_predicable): Update after above changes, using error_at rather
11735         than error_with_line.
11736         (has_subst_attribute): Likewise.
11737         (identify_predicable_attribute): Likewise.
11738         (alter_attrs_for_subst_insn): Likewise.
11739         (process_one_cond_exec): Likewise.
11740         (process_substs_on_one_elem): Likewise.
11741         (process_define_subst): Likewise.
11742         (check_define_attr_duplicates): Likewise.
11743         (read_md_rtx): Update after change to queue_elem.
11744
11745 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11746
11747         * genoutput.c (next_index_number): Delete.
11748         (data): Remove index_number.
11749         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
11750         (main): Remove manipulation of next_index_number.
11751
11752 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11753
11754         * genattrtab.c (check_attr_value): Remove handling of null attrs.
11755         (make_canonical): Likewise.
11756
11757 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
11758
11759         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
11760         instead of adjust_address_nv.
11761         (restore_stack_nonlocal): Likewise.
11762         (nonlocal_goto): Likewise.
11763
11764 2015-07-16  Tom de Vries  <tom@codesourcery.com>
11765
11766         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
11767         not have a corresponding loop header phi.
11768
11769 2015-07-16  Tom de Vries  <tom@codesourcery.com>
11770
11771         * tree-parloops.c (create_loads_for_reductions): Handle case that
11772         reduction is unused.
11773
11774 2015-07-16  Richard Biener  <rguenther@suse.de>
11775
11776         PR tree-optimization/66894
11777         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
11778         about deriving NE_EXPR from truncated values.
11779
11780 2015-07-16  Martin Liska  <mliska@suse.cz>
11781
11782         * alloc-pool.h
11783         (object_allocator): Add new class.
11784         (pool_allocator::initialize): Use the underlying class.
11785         (pool_allocator::allocate): Likewise.
11786         (pool_allocator::remove): Likewise.
11787         (operator new): A new generic allocator.
11788         * asan.c (struct asan_mem_ref): Remove unused members.
11789         (asan_mem_ref_new): Replace new operator with
11790         object_allocator::allocate.
11791         (free_mem_ref_resources): Change deallocation.
11792         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
11793         with object_allocator.
11794         * config/sh/sh.c (add_constant): Replace new operator with
11795         object_allocator::allocate.
11796         (sh_reorg): Change call to a release method.
11797         * cselib.c (struct elt_list): Remove unused members.
11798         (new_elt_list): Replace new operator with
11799         object_allocator::allocate.
11800         (new_elt_loc_list): Likewise.
11801         (new_cselib_val): Likewise.
11802         (unchain_one_elt_list): Change delete operator with remove method.
11803         (unchain_one_elt_loc_list): Likewise.
11804         (unchain_one_value): Likewise.
11805         (cselib_finish): Release newly added static allocators.
11806         * cselib.h (struct cselib_val): Remove unused members.
11807         (struct elt_loc_list): Likewise.
11808         * df-problems.c (df_chain_alloc): Replace pool_allocator with
11809         object_allocator.
11810         * df-scan.c (struct df_scan_problem_data): Likewise.
11811         (df_scan_alloc): Likewise.
11812         * df.h (struct dataflow): Likewise.
11813         * dse.c (struct read_info_type): Likewise.
11814         (struct insn_info_type): Likewise.
11815         (struct dse_bb_info_type): Likewise.
11816         (struct group_info): Likewise.
11817         (struct deferred_change): Likewise.
11818         (get_group_info): Likewise.
11819         (delete_dead_store_insn): Likewise.
11820         (free_read_records): Likewise.
11821         (replace_read): Likewise.
11822         (check_mem_read_rtx): Likewise.
11823         (scan_insn): Likewise.
11824         (dse_step1): Likewise.
11825         (dse_step7): Likewise.
11826         * et-forest.c (struct et_occ): Remove unused members.
11827         (et_new_occ): Use allocate instead of new operator.
11828         (et_new_tree): Likewise.
11829         (et_free_tree): Call release method explicitly.
11830         (et_free_tree_force): Likewise.
11831         (et_free_pools): Likewise.
11832         (et_split): Use remove instead of delete operator.
11833         * et-forest.h (struct et_node): Remove unused members.
11834         * ipa-cp.c: Change pool_allocator to object_allocator.
11835         * ipa-inline-analysis.c: Likewise.
11836         * ipa-profile.c: Likewise.
11837         * ipa-prop.c: Likewise.
11838         * ipa-prop.h: Likewise.
11839         * ira-build.c (initiate_cost_vectors): Cast return value.
11840         (ira_allocate_cost_vector): Likewise.
11841         * ira-color.c (struct update_cost_record): Remove unused members.
11842         * lra-int.h (struct lra_live_range): Likewise.
11843         (struct lra_copy): Likewise.
11844         (struct lra_insn_reg): Likewise.
11845         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
11846         * lra.c (new_insn_reg): Replace new operator with allocate method.
11847         (free_insn_regs): Same for operator delete.
11848         (finish_insn_regs): Release new static allocator.
11849         (finish_insn_recog_data): Likewise.
11850         (lra_free_copies): Replace delete operator with remove method.
11851         (lra_create_copy): Replace operator new with allocate method.
11852         (invalidate_insn_data_regno_info): Same for remove method.
11853         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
11854         (free_debug_insn_changes): Replace delete operator with remove method.
11855         (replace_oldest_value_reg): Replace operator new with allocate method.
11856         (pass_cprop_hardreg::execute): Release new static variable.
11857         * sched-deps.c (sched_deps_init): Change pool_allocator to
11858         object_allocator.
11859         * sel-sched-ir.c: Likewise.
11860         * sel-sched-ir.h: Likewise.
11861         * stmt.c (expand_case): Likewise.
11862         (expand_sjlj_dispatch_table): Likewise.
11863         * tree-sra.c (struct access): Remove unused members.
11864         (struct assign_link): Likewise.
11865         (sra_deinitialize): Release newly added static pools.
11866         (create_access_1):Replace operator new with allocate method.
11867         (build_accesses_from_assign): Likewise.
11868         (create_artificial_child_access): Likewise.
11869         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
11870         pool_allocator to object_allocator.
11871         * tree-ssa-pre.c: Likewise.
11872         * tree-ssa-reassoc.c: Likewise.
11873         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
11874         * tree-ssa-strlen.c: Likewise.
11875         * tree-ssa-structalias.c: Likewise.
11876         * var-tracking.c (onepart_pool_allocate): New function.
11877         (unshare_variable): Use the newly added function.
11878         (variable_merge_over_cur): Likewise.
11879         (variable_from_dropped): Likewise.
11880         (variable_was_changed): Likewise.
11881         (set_slot_part): Likewise.
11882         (emit_notes_for_differences_1): Likewise.
11883         (vt_finalize): Release newly added static pools.
11884
11885 2015-07-16  Martin Jambor  <mjambor@suse.cz>
11886
11887         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
11888         all uses.  Fix two typos in its general comment.
11889         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
11890
11891 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
11892
11893         * config/i386/linux-common.h (LINK_MPX): New.
11894         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
11895         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
11896         indicating '-z bndplt' support by linker.
11897         * configure: Regenerate.
11898         * config.in: Regenerate.
11899
11900 2015-07-16  Richard Biener  <rguenther@suse.de>
11901
11902         * fold-const.c (fold_widened_comparison): Remove.
11903         (fold_sign_changed_comparison): Likewise.
11904         (fold_comparison): Move widened and sign-changed comparison
11905         simplification ...
11906         * match.pd: ... to patterns here.
11907         * generic-match-head.c: Include target.h.
11908         * gimple-match-head.c: Likewise.
11909
11910 2015-07-16  Richard Biener  <rguenther@suse.de>
11911
11912         * tree-ssa-dom.c (dom_valueize): New function.
11913         (record_temporary_equivalences): Also record equivalences
11914         for dominating stmts that have uses of equivalences we are
11915         about to record.
11916
11917 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
11918
11919         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
11920         add_autoinc_candidates.
11921         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
11922         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
11923         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
11924         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
11925         Call new function.
11926         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
11927         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
11928         Remove parameter struct iv*.  Call add_autoinc_candidates here.
11929         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
11930         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
11931         Call new function.
11932         (find_iv_candidates): Call new functions.
11933
11934 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
11935
11936         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
11937         uninitialized-variable warning.
11938
11939 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
11940
11941         PR target/65249
11942         * config/sh/sh.md (movdi): Split simple reg move to two movsi
11943         when the destination is R0.
11944
11945 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
11946
11947         PR target/66866
11948         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
11949         * config/i386/i386.c (ix86_expand_pextr): New function.
11950         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
11951         for non-lowpart subregs.
11952         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
11953         (insv<mode>): Use SWI248 mode iterator.
11954         (insv<mode>_1): Ditto.
11955
11956 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
11957             Sebastian Pop  <s.pop@samsung.com>
11958
11959         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
11960         iterator to use_stmt.
11961
11962 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
11963             Sebastian Pop <s.pop@samsung.com>
11964
11965         * graphite-scop-detection.c (build_scops_1): Discard scops for
11966         which entry==exit.
11967
11968 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
11969             Sebastian Pop <s.pop@samsung.com>
11970
11971         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
11972         case of a return statement in scop.
11973
11974 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
11975             Sebastian Pop <s.pop@samsung.com>
11976
11977         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
11978         INTEGER_TYPE parameters.
11979         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
11980         VECTOR_CST in scan_tree_for_params.
11981         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
11982
11983 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
11984
11985         * gimple-pretty-print.h: Don't include pretty-print.h.
11986         * tree-streamer.h: Don't include lto-streamer.h.
11987         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
11988         * gimple-streamer-in.c: Remove redundant includes.
11989         * gimple-streamer-out.c: Likewise.
11990         * ipa-devirt.c: Likewise.
11991         * ipa-icf.c: Likewise.
11992         * ipa-inline-analysis.c: Likewise.
11993         * ipa-polymorphic-call.c: Likewise.
11994         * ipa-profile.c: Likewise.
11995         * ipa-prop.c: Likewise.
11996         * ipa-pure-const.c: Likewise.
11997         * lto-cgraph.c: Likewise.
11998         * lto-streamer-in.c: Likewise.
11999         * lto-streamer-out.c: Likewise.
12000         * lto-streamer.c: Likewise.
12001         * tree-streamer-in.c: Likewise.
12002         * tree-streamer-out.c: Likewise.
12003         * tree-streamer.c: Likewise.
12004
12005 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
12006
12007         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
12008         include input.h.
12009         * opts.c: Remove multiline #include comment.
12010
12011 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
12012
12013         * config/nvptx/mkoffload.c (process): Add C++ protection to
12014         emitted code.
12015
12016 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
12017
12018         PR target/66854
12019         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
12020         null before IEEE 128-bit floating point support patch.
12021
12022 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12023
12024         * simplify-rtx.c (simplify_ternary_operation): Add simplification
12025         for (!c) != {0,...,0} ? a : b for vector modes.
12026
12027 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
12028             Martin Jambor  <mjambor@suse.cz>
12029
12030         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
12031         struct func_body_info* instead of struct ipa_node_params*, expecting
12032         fbi->info to be filled in.  Replace throughout.  Adjust call to
12033         ipa_load_from_parm_agg.
12034         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
12035         instead of struct ipa_node_params*.  Adjust calls to other functions
12036         so that they pass either fbi or fbi->info.
12037         (set_switch_stmt_execution_predicate): Likewise.
12038         (will_be_nonconstant_predicate): Likewise.
12039         (compute_bb_predicates): Likewise.
12040         (estimate_function_body_sizes): Move asserts earlier.  Fill in
12041         struct func_body_info, replace parms_info with fbi.info.  Adjust
12042         calls to functions that now accept struct func_body_info.
12043         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
12044         (struct func_body_info): Likewise.
12045         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
12046         remove static.  Adjust callers.
12047         (ipa_load_from_parm_agg): Remove.
12048         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
12049         (func_body_info): Likewise.
12050         (ipa_load_from_parm_agg): Adjust prototype.
12051
12052 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12053
12054         * gensupport.c (rtx_handle_directive): Adjust.
12055         * read-rtl.c (apply_iterators): Take vector to add rtxs to
12056         instead of expr list rtx.
12057         (add_define_attr_for_define_subst): Likewise.
12058         (add_define_subst_attr): Likewise.
12059         (read_subst_mapping): Likewise.
12060         (read_rtx): Likewise.
12061         * rtl.h (read_rtx): Adjust.
12062
12063 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12064
12065         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
12066
12067 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12068
12069         PR target/58066
12070         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
12071         (*tls_local_dynamic_base_64_<mode>): Ditto.
12072         (*tls_local_dynamic_base_64_largepic): Ditto.
12073         (tls_global_dynamic_64_<mode>): Update expander pattern.
12074         (tls_local_dynamic_base_64_<mode>): Ditto.
12075
12076 2015-07-15  Richard Biener  <rguenther@suse.de>
12077
12078         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
12079         and bool_var == 1 -> bool_var simplifications ...
12080         * match.pd: ... to patterns here.  Factor out negate_expr_p
12081         cases from the A - B -> A + (-B) patterns as negate_expr_p
12082         predicate and add a -(A + B) -> (-B) - A pattern.
12083
12084 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
12085
12086         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
12087
12088 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
12089             Robert Suchanek  <robert.suchanek@imgtec.com>
12090
12091         * config/mips/mips.c (mips_int_mask): New enum.
12092         (mips_shadow_set): Likewise.
12093         (int_mask): New variable.
12094         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
12095         (machine_function): Add int_mask and use_shadow_register_set.
12096         (mips_attribute_table): Add attribute handlers for interrupt and
12097         use_shadow_register_set.
12098         (mips_interrupt_mask): New static function.
12099         (mips_handle_interrupt_attr): Likewise.
12100         (mips_handle_use_shadow_register_set_attr): Likewise.
12101         (mips_use_shadow_register_set): Change return type to enum
12102         mips_shadow_set.  Add argument handling for use_shadow_register_set
12103         attribute.
12104         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
12105         compare with mips_shadow_set enum.
12106         (mips_compute_frame_info): Add interrupt mask and
12107         use_shadow_register_set to per-function information structure.
12108         Add a stack slot for EPC unconditionally.
12109         (mips_expand_prologue): Compare use_shadow_register_set value
12110         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
12111         masked interrupt register but in EIC mode use K0 and save Cause in K0.
12112         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
12113         copying the stack pointer from the shadow register set.
12114         * config/mips/mips.h (SR_IM0): New define.
12115         * config/mips/mips.md (mips_rdpgpr): Rename to...
12116         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
12117         * doc/extend.texi (Declaring Attributes of Functions): Document
12118         optional arguments for interrupt and use_shadow_register_set
12119         attributes.
12120
12121 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
12122
12123         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
12124         interrupt attribute.
12125         (mips_expand_prologue): Disable the floating point unit in an ISR.
12126         * config/mips/mips.h (SR_COP1): New define.
12127
12128 2015-07-15  Richard Biener  <rguenther@suse.de>
12129
12130         * genmatch.c (parser::peek, parser::peek_ident): Add argument
12131         to tell how many tokens to peek ahead (default 1).
12132         (parser::eat_token, parser::eat_ident): Return token consumed.
12133         (parser::parse_result): Parse new switch statement.
12134         * match.pd: Use case statements where appropriate.
12135
12136 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12137
12138         PR rtl-optimization/58066
12139         * calls.c (expand_call): Precompute register parameters before stack
12140         alignment is performed.
12141
12142 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12143
12144         PR rtl-optimization/66838
12145         * postreload.c (reload_cse_move2add): Also process
12146         CALL_INSN_FUNCTION_USAGE when resetting information of
12147         call-clobbered registers.
12148
12149 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12150             Cesar Philippidis  <cesar@codesourcery.com>
12151             Chung-Lin Tang  <cltang@codesourcery.com>
12152
12153         * config/nios2/constraints.md (U, v): New constraints.
12154         * config/nios2/predicates.md (rdprs_dcache_operand): New.
12155         (ldstex_memory_operand): New.
12156         * config/nios2/sync.md: New file.
12157         * config/nios2/nios2.md (unspecv): Add new builtin function
12158         UNSPECV codes.
12159         (rdprs, flushd, flushda, wrpie, eni): New patterns.
12160         (top-level): Include sync.md.
12161         * config/nios2/nios2.c (N2_FTYPES): Add function types for
12162         new builtins.
12163         (N2_BUILTINS): Add arch field setting, add new builtins.
12164         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
12165         for arch field.
12166         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
12167         Also handle ldex/stex/ldsex/stsex builtins.
12168         (nios2_expand_rdprs_builtin): New function.
12169         (nios2_expand_cache_builtin): New function.
12170         (nios2_expand_wrpie_builtin): New function.
12171         (nios2_expand_eni_builtin): New function.
12172         (nios2_expand_builtin): Add arch field handling and new builtin
12173         cases.
12174         * doc/extend.texi (Altera Nios II Built-in Functions): Document
12175         new builtins.
12176         * doc/md.texi (Machine Constraints): Document U and v constraints.
12177
12178 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12179             Cesar Philippidis  <cesar@codesourcery.com>
12180             Chung-Lin Tang  <cltang@codesourcery.com>
12181
12182         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
12183         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
12184         callee_save_reg_size and uses_anonymous_args fields.
12185         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
12186         (nios2_create_cfa_notes): New function.
12187         (nios2_adjust_stack): New function for adjusting stack.
12188         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
12189         Use nios2_adjust_stack.
12190         (nios2_expand_epilogue): Likewise.
12191         (nios2_expand_return): New function.
12192         (nios2_can_use_return_insn): Update for CDX pop.n usage.
12193         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
12194         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
12195         * config/nios2/nios2.md (return): Use nios2_expand_return.
12196
12197 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12198             Cesar Philippidis  <cesar@codesourcery.com>
12199             Chung-Lin Tang  <cltang@codesourcery.com>
12200
12201         * config/nios2/predicates.md (pop_operation): New.
12202         (ldwm_operation, stwm_operation): New.
12203         (nios2_hard_register_operand): New.
12204         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
12205         (ldstwm_operation_p): Declare.
12206         (gen_ldstwm_peep): Declare.
12207         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
12208         (base_reg_adjustment_p): New.
12209         (pop_operation_p): New.
12210         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
12211         (nios2_ldstwm_regset_p): New.
12212         (ldstwm_operation_p): New.
12213         (gen_ldst): New.
12214         (nios2_ldst_parallel): New.
12215         (struct ldswm_operand): Declare.
12216         (compare_ldstwm_operands): New.
12217         (can_use_cdx_ldstw): New.
12218         (gen_ldstwm_peep): New.
12219         * config/nios2/nios2-ldstwm.sml: New.
12220         * config/nios2/nios2.md: Include ldstwm.md.
12221         * config/nios2/ldstwm.md: Generated.
12222
12223 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12224             Cesar Philippidis  <cesar@codesourcery.com>
12225             Chung-Lin Tang  <cltang@codesourcery.com>
12226
12227         * config/nios2/nios2.h (LABEL_ALIGN): Define.
12228         (REG_ALLOC_ORDER): Define.
12229         (ADJUST_REG_ALLOC_ORDER): Define.
12230         (HONOR_REG_ALLOC_ORDER): Define.
12231         (CDX_REG_P): Define.
12232         (ANDCLEAR_INT): Define.
12233         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
12234         (nios2_label_align): Declare.
12235         (nios2_cdx_narrow_form_p): Declare.
12236         (nios2_adjust_reg_alloc_order): Declare.
12237         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
12238         operation.
12239         (nios2_large_unspec_reloc_p): New function, split from...
12240         (nios2_legitimate_pic_operand_p): ...here.
12241         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
12242         (nios2_print_operand_punct_valid_p): New.
12243         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
12244         (split_mem_address): New.
12245         (split_alu_insn): New.
12246         (cdxreg): New.
12247         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
12248         (enum nios2_add_insn_kind): New.
12249         (nios2_add_insn_names, nios2_add_insn_narrow): New.
12250         (nios2_add_insn_classify): New.
12251         (nios2_add_insn_asm): New.
12252         (nios2_cdx_narrow_form_p): New.
12253         (label_align, min_labelno, max_labelno): New.
12254         (nios2_reorg): New.
12255         (nios2_label_align): New.
12256         (nios2_adjust_reg_alloc_order): New.
12257         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12258         (TARGET_MACHINE_DEPENDENT_REORG): Define.
12259         * config/nios2/constraints.md (P): New constraint.
12260         * config/nios2/predicates.md (const_and_operand): New.
12261         (and_operand): New.
12262         (stack_memory_operand): New.
12263         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
12264         (length): Update to use nios2_cdx_narrow_form_p().
12265         (type): Add new insn type values.
12266         (control, alu, st, ld, shift): Update insn reservations with
12267         new insn type values.
12268         (*high, *lo_sum): Define new insn patterns for constant generation.
12269         (movqi_internal, movhi_internal, movsi_internal): Reduce
12270         alternatives, update asm template to handle CDX variants, update
12271         type attributes.
12272         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
12273         template, update type attributes.
12274         (extendhisi2, extendqi<mode>2): Likewise.
12275         (addsi3): Change to use function for asm string.
12276         (subsi3): Add CDX notation to asm template, update type attributes.
12277         (negsi3, one_cmplsi3): Likewise.
12278         (andsi3): New pattern, specialized from logical patterns.
12279         (<code>si3): Remove and case, combine alternatives, update asm
12280         template.
12281         (<shift_op>si3): Add CDX notation, update type attributes.
12282         (rotrsi3): Update type attribute.
12283         (*merge, extzv, insv): New insn patterns.
12284         (return): Change to define_expand.
12285         (simple_return): Add CDX notation, update type attributes.
12286         (indirect_jump): Add CDX notation.
12287         (jump): Update asm cases, update length attribute expression.
12288         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
12289         (nios2_cbranch): Update asm cases and length attribute expression
12290         to handle CDX variants.
12291         (nios2_cmp<code>): Update asm template.
12292         (nop): Add CDX notation, update type attributes.
12293         (trap): Add CDX notation.
12294         (ctrapsi4): Update asm cases and length attribute expression to
12295         handle CDX variant.
12296         * doc/md.texi (Machine Constraints): Document P constraint.
12297
12298 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12299             Cesar Philippidis  <cesar@codesourcery.com>
12300             Chung-Lin Tang  <cltang@codesourcery.com>
12301
12302         * config/nios2/nios2.h (SMALL_INT12): New macro.
12303         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
12304         (nios2_valid_addr_expr_p): Use it.
12305         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
12306         with implicit "io" instructions on R2.
12307         * config/nios2/constraints.md (w): New constraint.
12308         * config/nios2/predicates.md (ldstio_memory_operand): New.
12309         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
12310         operand predicate and constraint.
12311         (ld<bh>io_signed, st<bhw>io>): Likewise.
12312         * doc/md.texi (Machine Constraints): Document w constraint.
12313
12314 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12315             Cesar Philippidis  <cesar@codesourcery.com>
12316             Chung-Lin Tang  <cltang@codesourcery.com>
12317
12318         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
12319         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
12320         Nios II architecture level.
12321         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
12322         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
12323         (OPTION_DEFAULT_SPECS): Define.
12324         (ASM_SPEC): Add -march= spec strings.
12325         * config/nios2/nios2.c (nios2_option_override): Check for
12326         conflicts involving new options.
12327         * config.gcc (nios2*-*-*): Support --with-arch=.
12328         * doc/invoke.texi (Option Summary, Nios II Options): Document
12329         -march=, -mbmx, and -mcdx.
12330
12331 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
12332
12333         PR rtl-optimization/66626
12334         * lra-constraints.c (lra_constraints): Prevent equivalence
12335         substitution for static chain pseudo in functions with nonlocal
12336         goto.
12337
12338 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12339
12340         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
12341         (nios2_emit_stack_limit_check): Add size parameter.  Handle
12342         -fstack-limit-symbol as well as -fstack-limit-register.
12343         (nios2_expand_prologue): Emit only a single stack limit check,
12344         even if multiple stack adjustments are required.
12345         (nios2_option_override): Diagnose unsupported combination of -fpic
12346         and -stack-limit-symbol.
12347
12348 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
12349
12350         * Makefile.in (top_srcdir): New.
12351         * configure.ac: Use AM_ZLIB.
12352         * configure: Regeneated.
12353
12354 2015-07-14  Matthias Klose  <doko@ubuntu.com>
12355
12356         PR target/66840
12357         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
12358
12359 2015-07-14  Richard Biener  <rguenther@suse.de>
12360
12361         PR tree-optimization/66863
12362         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
12363         what we record for conversion use stmt lhs inequalities.
12364
12365 2015-07-14  Richard Biener  <rguenther@suse.de>
12366
12367         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
12368         (decision_tree::gen_gimple): Likewise.
12369
12370 2015-07-14  Tom de Vries  <tom@codesourcery.com>
12371
12372         * gcc.c (greater_than_spec_func): Declare forward.
12373         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
12374         -ftree-parallelize-loops={0,1}.
12375         (static_spec_functions): Add greater_than_spec_func function with name
12376         "gt".
12377         (greater_than_spec_func): New function.
12378
12379 2015-07-14  Richard Biener  <rguenther@suse.de>
12380
12381         * tree-ssa-dom.c (record_temporary_equivalences): Merge
12382         wideing type conversion case from record_equivalences_from_incoming_edge
12383         and use record_equality to record equivalences.
12384         (record_equivalences_from_incoming_edge): Call
12385         record_temporary_equivalences.
12386
12387 2015-07-14  Richard Biener  <rguenther@suse.de>
12388
12389         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
12390         (struct if_expr): New.
12391         (struct with_expr): Likewise.
12392         (is_a_helper): Add helpers for if_expr and with_expr.
12393         (struct simplify): Add simplify_kind enum and member.  Remove
12394         ifexpr_vec member.
12395         (simplify::simplify): Adjust.
12396         (lower_commutative): Adjust.
12397         (lower_opt_convert): Likewise.
12398         (lower_cond): Likewise.
12399         (replace_id): Handle with_expr and if_expr.
12400         (lower_for): Adjust.
12401         (dt_simplify::gen_1): New recursive worker, split out from ...
12402         (dt_simplify::gen): ... here.  Deal with if and with expansion
12403         recursively.
12404         (capture_info::capture_info): Take context argument
12405         (capture_info::walk_result): Only analyze specific result.
12406         (parser::parse_result): New function.
12407         (parser::parse_simplify): Adjust to parse ifs with then end
12408         else case.
12409         (parser::parse_if): Simplify.
12410         (parser::parse_pattern): Pass down simplify kind.
12411         * match.pd: Convert if structure to new syntax.
12412
12413 2015-07-13  Marek Polacek  <polacek@redhat.com>
12414
12415         * rtl.c (rtx_equal_p_cb): Fix typo.
12416
12417 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
12418
12419         * omega.h: Don't include config.h, don't include params.h again if
12420         omega.h has already been included.
12421         * graphite-poly.h: Include sese.h.
12422         * graphite.c: Don't include sese.h, remove needless includes and
12423         minimize includes outside #ifdef HAVE_isl block.
12424         * graphite-blocking.c: Don't include sese.h, remove needless includes,
12425         and wrap entire file in #ifdef HAVE_isl
12426         * graphite-dependences.c: Likewise.
12427         * graphite-interchange.c: Likewise.
12428         * graphite-isl-ast-to-gimple.c: Likewise.
12429         * graphite-optimize-isl.c: Likewise.
12430         * graphite-poly.c: Likewise.
12431         * graphite-scop-detection.c: Likewise.
12432         * graphite-sese-to-poly.c: Likewise.
12433
12434 2015-07-13  Tom de Vries  <tom@codesourcery.com>
12435
12436         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
12437
12438 2015-07-13  Renlin Li  <renlin.li@arm.com>
12439
12440         PR rtl/66556
12441         * simplify-rtx.c (simplify_const_relational_operation): Add
12442         side_effects_p checks.
12443
12444 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
12445
12446         * bitmap.h: Fix double word typos.
12447         * builtins.c: Same.
12448         * calls.c: Same.
12449         * cfgloopmanip.c: Same.
12450         * cgraph.c: Same.
12451         * cgraph.h: Same.
12452         * cgraphclones.c: Same.
12453         * combine.c: Same.
12454         * config/aarch64/aarch64-protos.h: Same.
12455         * config/aarch64/aarch64.c: Same.
12456         * config/aarch64/aarch64.md: Same.
12457         * config/arm/arm.md: Same.
12458         * config/arm/arm1020e.md: Same.
12459         * config/arm/arm1026ejs.md: Same.
12460         * config/arm/arm926ejs.md: Same.
12461         * config/arm/fa526.md: Same.
12462         * config/arm/fa606te.md: Same.
12463         * config/arm/fa626te.md: Same.
12464         * config/arm/fa726te.md: Same.
12465         * config/arm/fmp626.md: Same.
12466         * config/darwin.c: Same.
12467         * config/epiphany/epiphany.c: Same.
12468         * config/frv/frv.c: Same.
12469         * config/ft32/ft32.c: Same.
12470         * config/gnu-user.h: Same.
12471         * config/h8300/constraints.md: Same.
12472         * config/i386/i386.c: Same.
12473         * config/i386/i386.md: Same.
12474         * config/iq2000/iq2000.md: Same.
12475         * config/mips/mips.c: Same.
12476         * config/mmix/mmix.md: Same.
12477         * config/moxie/moxie.c: Same.
12478         * config/nds32/nds32.md: Same.
12479         * config/pa/pa.h: Same.
12480         * config/rs6000/aix.h: Same.
12481         * config/rs6000/rs6000.h: Same.
12482         * config/sh/sh.c: Same.
12483         * config/tilegx/tilegx.md: Same.
12484         * config/tilepro/gen-mul-tables.cc: Same.
12485         * cse.c: Same.
12486         * dbxout.c: Same.
12487         * doc/invoke.texi: Same.
12488         * dse.c: Same.
12489         * dwarf2out.c: Same.
12490         * final.c: Same.
12491         * gcc.c: Same.
12492         * genmatch.c: Same.
12493         * gimplify.c: Same.
12494         * hash-table.h: Same.
12495         * internal-fn.c: Same.
12496         * ipa-cp.c: Same.
12497         * ipa-devirt.c: Same.
12498         * ipa-icf.c: Same.
12499         * ipa-icf.h: Same.
12500         * ipa-profile.c: Same.
12501         * ipa-prop.c: Same.
12502         * ipa-prop.h: Same.
12503         * ira.c: Same.
12504         * omp-low.c: Same.
12505         * reg-stack.c: Same.
12506         * regcprop.c: Same.
12507         * reorg.c: Same.
12508         * rtl.h: Same.
12509         * sbitmap.h: Same.
12510         * tree-eh.c: Same.
12511         * tree-inline.c: Same.
12512         * tree-sra.c: Same.
12513         * tree-ssa-dom.c: Same.
12514         * tree-ssa-loop-ivopts.c: Same.
12515         * tree-ssa-structalias.c: Same.
12516         * tree-ssa-tail-merge.c: Same.
12517         * tree-ssa-ter.c: Same.
12518         * tree-ssa-threadupdate.c: Same.
12519         * tree-ssa-uninit.c: Same.
12520         * tree-ssanames.c: Same.
12521         * tree-vect-loop-manip.c: Same.
12522         * tree-vrp.c: Same.
12523         * tree.c: Same.
12524         * valtrack.c: Same.
12525         * vec.h: Same.
12526
12527 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12528
12529         PR middle-end/66726
12530         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
12531         tree_ssa_phiopt_worker): Call it.
12532
12533 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12534
12535         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
12536         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
12537         REG_EQUAL note.
12538
12539 2015-07-11  Marek Polacek  <polacek@redhat.com>
12540
12541         PR middle-end/66353
12542         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
12543         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
12544         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
12545         rather than bb_has_abnormal_call_pred.
12546         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
12547         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
12548         rather than bb_has_abnormal_call_pred.
12549
12550 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
12551
12552         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
12553         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
12554         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
12555         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
12556         v850_legitimate_address_p): New functions.
12557         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
12558
12559 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
12560
12561         PR target/66819
12562         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
12563         indirect sibcall with register arguments if register available
12564         for argument passing.
12565         (init_cumulative_args): Set cfun->machine->arg_reg_available
12566         to (cum->nregs > 0) or to true if function has a variable
12567         argument list.
12568         (function_arg_advance_32): Set cfun->machine->arg_reg_available
12569         to false if cum->nregs <= 0.
12570         * config/i386/i386.h (machine_function): Add arg_reg_available.
12571
12572 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
12573
12574         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
12575         and gen_higpart instead of gen_rtx_SUBREG.
12576         * config/i386/i386.md
12577         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
12578         (read-modify peephole2): Use gen_lowpart instead of
12579         gen_rtx_SUBREG for operand 5.
12580
12581 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
12582
12583         * config/tilepro/gen-mul-tables.cc (main): Change include list for
12584         generated files.
12585         * config/tilepro/mul-tables.c: Regenerate.
12586         * config/tilegx/mul-tables.c: Regenerate.
12587
12588 2015-07-10  Richard Biener  <rguenther@suse.de>
12589
12590         * fold-const.c (distribute_bit_expr): Remove.
12591         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
12592         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
12593         to A & (B | C) and simplifying A << C1 << C2 to ...
12594         * match.pd: ... patterns here.
12595
12596 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
12597
12598         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
12599         Mark mem as READONLY and NOTRAP for PIC symbol.
12600
12601 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
12602
12603         * gimple-predict.h: New file.
12604         (gimple_predict_predictor, gimple_predict_set_predictor,
12605         gimple_predict_outcome, gimple_predict_set_outcome,
12606         gimple_build_predict): Relocate here.
12607         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
12608         gimple_predict_outcome, gimple_predict_set_outcome): Move to
12609         gimple-predict.h.
12610         * gimple.c (gimple_build_predict): Move to gimple-predict.h
12611         * basic-block.h: Don't include cfghooks.h.
12612         * backend.h: Don't include predict.h.
12613         * cfghooks.h: Include predict.h.
12614         * gimple-pretty-print.c: Include gimple-predict.h.
12615         * gimplify.c: Likwise.
12616         * predict.c: Adjust includes.
12617         * tree-inline.c: Likewise.
12618         * asan.c: Likewise.
12619         * auto-inc-dec.c: Likewise.
12620         * auto-profile.c: Likewise.
12621         * bb-reorder.c: Likewise.
12622         * builtins.c: Likewise.
12623         * caller-save.c: Likewise.
12624         * calls.c: Likewise.
12625         * cfganal.c: Likewise.
12626         * cfgbuild.c: Likewise.
12627         * cfg.c: Likewise.
12628         * cfgcleanup.c: Likewise.
12629         * cfgexpand.c: Likewise.
12630         * cfghooks.c: Likewise.
12631         * cfgloopanal.c: Likewise.
12632         * cfgloop.c: Likewise.
12633         * cfgloopmanip.c: Likewise.
12634         * cfgrtl.c: Likewise.
12635         * cgraph.c: Likewise.
12636         * cgraphunit.c: Likewise.
12637         * combine.c: Likewise.
12638         * cprop.c: Likewise.
12639         * cse.c: Likewise.
12640         * dce.c: Likewise.
12641         * dojump.c: Likewise.
12642         * dse.c: Likewise.
12643         * except.c: Likewise.
12644         * expmed.c: Likewise.
12645         * expr.c: Likewise.
12646         * final.c: Likewise.
12647         * fold-const.c: Likewise.
12648         * function.c: Likewise.
12649         * fwprop.c: Likewise.
12650         * gcc-plugin.h: Likewise.
12651         * gcse.c: Likewise.
12652         * genattrtab.c: Likewise.
12653         * genemit.c: Likewise.
12654         * gengtype.c: Likewise.
12655         * genopinit.c: Likewise.
12656         * genoutput.c: Likewise.
12657         * genpreds.c: Likewise.
12658         * genrecog.c: Likewise.
12659         * gimple-fold.c: Likewise.
12660         * gimple-iterator.c: Likewise.
12661         * gimple-ssa-isolate-paths.c: Likewise.
12662         * gimple-ssa-strength-reduction.c: Likewise.
12663         * graph.c: Likewise.
12664         * graphite-blocking.c: Likewise.
12665         * graphite.c: Likewise.
12666         * graphite-dependences.c: Likewise.
12667         * graphite-interchange.c: Likewise.
12668         * graphite-isl-ast-to-gimple.c: Likewise.
12669         * graphite-optimize-isl.c: Likewise.
12670         * graphite-poly.c: Likewise.
12671         * graphite-scop-detection.c: Likewise.
12672         * graphite-sese-to-poly.c: Likewise.
12673         * haifa-sched.c: Likewise.
12674         * ifcvt.c: Likewise.
12675         * internal-fn.c: Likewise.
12676         * ipa-cp.c: Likewise.
12677         * ipa-profile.c: Likewise.
12678         * ipa-split.c: Likewise.
12679         * ipa-utils.c: Likewise.
12680         * ira-build.c: Likewise.
12681         * ira-color.c: Likewise.
12682         * ira-conflicts.c: Likewise.
12683         * ira-costs.c: Likewise.
12684         * ira-emit.c: Likewise.
12685         * ira-lives.c: Likewise.
12686         * jump.c: Likewise.
12687         * loop-doloop.c: Likewise.
12688         * loop-init.c: Likewise.
12689         * loop-invariant.c: Likewise.
12690         * loop-unroll.c: Likewise.
12691         * lower-subreg.c: Likewise.
12692         * lra-assigns.c: Likewise.
12693         * lra.c: Likewise.
12694         * lra-coalesce.c: Likewise.
12695         * lra-constraints.c: Likewise.
12696         * lra-lives.c: Likewise.
12697         * lto-cgraph.c: Likewise.
12698         * lto-streamer-in.c: Likewise.
12699         * mode-switching.c: Likewise.
12700         * modulo-sched.c: Likewise.
12701         * omp-low.c: Likewise.
12702         * optabs.c: Likewise.
12703         * passes.c: Likewise.
12704         * postreload.c: Likewise.
12705         * postreload-gcse.c: Likewise.
12706         * profile.c: Likewise.
12707         * recog.c: Likewise.
12708         * regstat.c: Likewise.
12709         * reload1.c: Likewise.
12710         * reorg.c: Likewise.
12711         * rtlanal.c: Likewise.
12712         * sched-ebb.c: Likewise.
12713         * sel-sched-ir.c: Likewise.
12714         * sese.c: Likewise.
12715         * shrink-wrap.c: Likewise.
12716         * simplify-rtx.c: Likewise.
12717         * stmt.c: Likewise.
12718         * store-motion.c: Likewise.
12719         * tracer.c: Likewise.
12720         * trans-mem.c: Likewise.
12721         * tree-call-cdce.c: Likewise.
12722         * tree-cfg.c: Likewise.
12723         * tree-cfgcleanup.c: Likewise.
12724         * tree-chkp.c: Likewise.
12725         * tree-complex.c: Likewise.
12726         * tree-eh.c: Likewise.
12727         * tree-if-conv.c: Likewise.
12728         * tree-loop-distribution.c: Likewise.
12729         * tree-outof-ssa.c: Likewise.
12730         * tree-parloops.c: Likewise.
12731         * tree-predcom.c: Likewise.
12732         * tree-pretty-print.c: Likewise.
12733         * tree-profile.c: Likewise.
12734         * tree-sra.c: Likewise.
12735         * tree-ssa.c: Likewise.
12736         * tree-ssa-coalesce.c: Likewise.
12737         * tree-ssa-dce.c: Likewise.
12738         * tree-ssa-dom.c: Likewise.
12739         * tree-ssa-forwprop.c: Likewise.
12740         * tree-ssa-ifcombine.c: Likewise.
12741         * tree-ssa-loop-ch.c: Likewise.
12742         * tree-ssa-loop-im.c: Likewise.
12743         * tree-ssa-loop-ivcanon.c: Likewise.
12744         * tree-ssa-loop-ivopts.c: Likewise.
12745         * tree-ssa-loop-manip.c: Likewise.
12746         * tree-ssa-loop-prefetch.c: Likewise.
12747         * tree-ssa-loop-unswitch.c: Likewise.
12748         * tree-ssa-math-opts.c: Likewise.
12749         * tree-ssa-phiopt.c: Likewise.
12750         * tree-ssa-pre.c: Likewise.
12751         * tree-ssa-reassoc.c: Likewise.
12752         * tree-ssa-sink.c: Likewise.
12753         * tree-ssa-tail-merge.c: Likewise.
12754         * tree-ssa-threadedge.c: Likewise.
12755         * tree-ssa-threadupdate.c: Likewise.
12756         * tree-switch-conversion.c: Likewise.
12757         * tree-tailcall.c: Likewise.
12758         * tree-vect-data-refs.c: Likewise.
12759         * tree-vect-loop.c: Likewise.
12760         * tree-vect-loop-manip.c: Likewise.
12761         * tree-vectorizer.c: Likewise.
12762         * tree-vrp.c: Likewise.
12763         * ubsan.c: Likewise.
12764         * value-prof.c: Likewise.
12765         * varasm.c: Likewise.
12766         * var-tracking.c: Likewise.
12767         * config/aarch64/aarch64-builtins.c: Likewise.
12768         * config/aarch64/aarch64.c: Likewise.
12769         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
12770         * config/alpha/alpha.c: Likewise.
12771         * config/arc/arc.c: Likewise.
12772         * config/arm/arm.c: Likewise.
12773         * config/avr/avr.c: Likewise.
12774         * config/bfin/bfin.c: Likewise.
12775         * config/c6x/c6x.c: Likewise.
12776         * config/cr16/cr16.c: Likewise.
12777         * config/cris/cris.c: Likewise.
12778         * config/darwin.c: Likewise.
12779         * config/darwin-c.c: Likewise.
12780         * config/epiphany/epiphany.c: Likewise.
12781         * config/epiphany/mode-switch-use.c: Likewise.
12782         * config/epiphany/resolve-sw-modes.c: Likewise.
12783         * config/fr30/fr30.c: Likewise.
12784         * config/frv/frv.c: Likewise.
12785         * config/ft32/ft32.c: Likewise.
12786         * config/h8300/h8300.c: Likewise.
12787         * config/i386/i386.c: Likewise.
12788         * config/i386/winnt.c: Likewise.
12789         * config/ia64/ia64.c: Likewise.
12790         * config/iq2000/iq2000.c: Likewise.
12791         * config/lm32/lm32.c: Likewise.
12792         * config/m32c/m32c.c: Likewise.
12793         * config/m32r/m32r.c: Likewise.
12794         * config/m68k/m68k.c: Likewise.
12795         * config/mcore/mcore.c: Likewise.
12796         * config/mep/mep.c: Likewise.
12797         * config/microblaze/microblaze.c: Likewise.
12798         * config/mips/mips.c: Likewise.
12799         * config/mmix/mmix.c: Likewise.
12800         * config/mn10300/mn10300.c: Likewise.
12801         * config/moxie/moxie.c: Likewise.
12802         * config/msp430/msp430.c: Likewise.
12803         * config/nds32/nds32.c: Likewise.
12804         * config/nds32/nds32-cost.c: Likewise.
12805         * config/nds32/nds32-fp-as-gp.c: Likewise.
12806         * config/nds32/nds32-intrinsic.c: Likewise.
12807         * config/nds32/nds32-isr.c: Likewise.
12808         * config/nds32/nds32-md-auxiliary.c: Likewise.
12809         * config/nds32/nds32-memory-manipulation.c: Likewise.
12810         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
12811         * config/nds32/nds32-predicates.c: Likewise.
12812         * config/nios2/nios2.c: Likewise.
12813         * config/nvptx/nvptx.c: Likewise.
12814         * config/pa/pa.c: Likewise.
12815         * config/pdp11/pdp11.c: Likewise.
12816         * config/rl78/rl78.c: Likewise.
12817         * config/rs6000/rs6000.c: Likewise.
12818         * config/rx/rx.c: Likewise.
12819         * config/s390/s390.c: Likewise.
12820         * config/sh/sh.c: Likewise.
12821         * config/sh/sh-mem.cc: Likewise.
12822         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
12823         * config/sh/sh_treg_combine.cc: Likewise.
12824         * config/sparc/sparc.c: Likewise.
12825         * config/spu/spu.c: Likewise.
12826         * config/stormy16/stormy16.c: Likewise.
12827         * config/tilegx/tilegx.c: Likewise.
12828         * config/tilepro/tilepro.c: Likewise.
12829         * config/v850/v850.c: Likewise.
12830         * config/vax/vax.c: Likewise.
12831         * config/visium/visium.c: Likewise.
12832         * config/xtensa/xtensa.c: Likewise.
12833
12834 2015-07-10  Richard Biener  <rguenther@suse.de>
12835
12836         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
12837         (decision_tree::gen_gimple): Likewise.
12838         (decision_tree::gen_generic): Likewise.
12839
12840 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
12841
12842         PR target/66813
12843         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
12844         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
12845
12846 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
12847
12848         PR middle-end/66820
12849         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
12850         or ORT_TASK contexts.
12851         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
12852         is non-zero.
12853
12854 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12855
12856         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
12857         above function.
12858
12859 2015-07-10  Tom de Vries  <tom@codesourcery.com>
12860
12861         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
12862         insert nit + 1 bound.
12863
12864 2015-07-10  Richard Biener  <rguenther@suse.de>
12865
12866         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
12867         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
12868         (if_convertible_loop_p_1): For this always compute bb predicates.
12869         (if_convertible_loop_p): And free them.
12870
12871 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
12872
12873         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
12874         in dump message.
12875
12876 2015-07-10  Richard Biener  <rguenther@suse.de>
12877
12878         PR tree-optimization/66823
12879         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
12880         inverted predicate.
12881
12882 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
12883
12884         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
12885         to handle mips[32|64]r3 and mips[32|64]r5.
12886
12887 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
12888
12889         PR middle-end/66633
12890         * tree-nested.c (get_static_chain): Or in a flag into
12891         info->static_chain_added.
12892         (get_frame_field, get_nonlocal_debug_decl): Likewise.
12893         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
12894         2015-07-01 changes.
12895         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
12896         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
12897         add it to clauses.
12898
12899         PR tree-optimization/66718
12900         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
12901         field.
12902         (vect_simd_lane_linear): New function.
12903         (vectorizable_simd_clone_call): Support using linear arguments for
12904         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
12905
12906 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
12907
12908         PR target/66821
12909         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
12910
12911 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
12912
12913         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
12914         Use machine mode, not enum machine_mode in the prototype.
12915
12916         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
12917         classify 128-bit floating point support.
12918         (FLOAT128_IBM_P): Likewise.
12919         (FLOAT128_VECTOR_P): Likewise.
12920         (FLOAT128_2REG_P): Likewise.
12921         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
12922         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
12923         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
12924         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
12925
12926         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
12927         tests against TFmode/TDmode, since those modes do not use VSX
12928         addresses.
12929         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
12930         support.
12931         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
12932         tests against TFmode, etc.
12933         (invalid_e500_subreg): Add tests against IFmode/KFmode.
12934         (reg_offset_addressing_ok_p): Likewise.
12935         (rs6000_legitimate_offset_address_p): Likewise.
12936         (rs6000_legitimize_address): Likewise.
12937         (rs6000_legitimize_reload_address): Likewise.
12938         (rs6000_legitimate_address_p): Clean up tests against TFmode and
12939         TDmode to use the new helper macros, which will include IFmode and
12940         KFmode.
12941         (rs6000_emit_move): Likewise.
12942         (rs6000_darwin64_record_arg_recurse): Likewise.
12943         (print_operand): Likewise.
12944         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
12945         that uses a single vector register as a vector and not as a
12946         floating point register in terms of the calling sequence.
12947         (rs6000_discover_homogeneous_aggregate): Likewise.
12948         (rs6000_return_in_memory): Likewise.
12949         (init_cumulative_args): Likewise.
12950         (rs6000_function_arg_boundary): Likewise.
12951         (rs6000_function_arg_advance_1): Likewise.
12952         (rs6000_function_arg): Likewise.
12953         (rs6000_pass_by_reference): Likewise.
12954         (rs6000_gimplify_va_arg): Likewise.
12955         (rs6000_secondary_reload_memory): Use machine_mode not enum
12956         machine mode.
12957         (rs6000_split_multireg_move): Use new helper macros.
12958         (spe_func_has_64bit_regs_p): Likewise.
12959         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
12960         (output_toc): Use new helper macros.
12961         (rs6000_register_move_cost): Likewise.
12962         (rs6000_function_value): Add IEEE 128-bit floating point calling
12963         sequence support.
12964         (rs6000_libcall_value): Likewise.
12965         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
12966         floating point support.
12967         (rs6000_vector_mode_supported_p): Likewise.
12968
12969 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
12970
12971         PR rtl-optimization/66782
12972         * lra-int.h (struct lra_insn_recog_data): Add comment about
12973         clobbered hard regs for arg_hard_regs.
12974         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
12975         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
12976         Add condition for processing used hard regs.
12977         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
12978         Process clobbered hard regs.
12979
12980 2015-07-09  Michael Matz  <matz@suse.de>
12981
12982         * genmatch.c (fprintf_indent): New function.
12983         (operand::gen_transform): Add indent parameter.
12984         (expr::gen_transform, c_expr::gen_transform,
12985         capture::gen_transform): Ditto and use fprintf_indent.
12986         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
12987         (dt_operand::gen, dt_operand::gen_predicate,
12988         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
12989         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
12990         (decision_tree::gen_gimple): Adjust calls and indent generated
12991         code.
12992         (decision_tree::gen_generic): Ditto.
12993         (write_predicate): Ditto.
12994
12995 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
12996
12997         PR target/66814
12998         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
12999         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
13000         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
13001         {GENERAL,SSE,MMX}_REG_P where appropriate.
13002
13003 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
13004
13005         * lto-streamer.h: Don't include target.h and alloc-pool.h.
13006         * builtins.c: Adjust includes.
13007         * gimple.c: Likewise.
13008         * ipa-icf.c: Likewise.
13009         * lto-opts.c: Likewise.
13010         * ipa-reference.c: Likewise.
13011         * lto-section-out.c: Likewise.
13012         * lto-streamer-in.c: Likewise.
13013         * lto-streamer-out.c: Likewise.
13014         * opts-global.c: Likewise.
13015         * symtab.c: Likewise.
13016         * tree-chkp.c: Likewise.
13017         * tree-ssa-live.c: Likewise.
13018         * tree-streamer-in.c: Likewise.
13019         * tree-streamer-out.c: Likewise.
13020         * config/darwin.c: Likewise.
13021         * config/i386/winnt.c: Likewise.
13022
13023 2015-07-09  Richard Biener  <rguenther@suse.de>
13024
13025         * genmatch.c (struct expr): Add force_single_use flag.
13026         (expr::expr): Add copy constructor.
13027         (capture_info::walk_match): Gather force_single_use captures.
13028         (expr::gen_transform): Use possibly NULLified sequence.
13029         (dt_simplify::gen): Apply single-use restrictions by NULLifying
13030         seq if any constrained expr is not single-use.
13031         (parser::parse_expr): Refactor to allow multiple flags.  Handle
13032         's' flag to force an expression have a single-use if the pattern
13033         simplifies to more than one statement.
13034         * match.pd: Convert most single_use conditionals to :s flags.
13035
13036 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13037
13038         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
13039         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
13040         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
13041
13042 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
13043
13044         * flags.h: Don't include flag-types.h or options.h.
13045         * opts-common.c: Adjust includes.
13046         * opts-global.c: Likewise.
13047         * common/config/epiphany/epiphany-common.c: Likewise.
13048
13049 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13050
13051         PR target/66818
13052         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
13053         for IA MCU.
13054
13055 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13056
13057         PR target/66817
13058         * config/i386/i386.c (ix86_return_in_memory): Return true
13059         if int_size_in_bytes returns negative for IA MCU.
13060
13061 2015-07-09  Marek Polacek  <polacek@redhat.com>
13062
13063         PR tree-optimization/66718
13064         * Makefile.in (OBJS): Add gimple-laddress.o.
13065         * passes.def: Schedule pass_laddress.
13066         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
13067         * tree-pass.h (make_pass_laddress): Declare.
13068         * gimple-laddress.c: New file.
13069
13070 2015-07-09  Richard Biener  <rguenther@suse.de>
13071
13072         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
13073
13074 2015-07-09  Richard Biener  <rguenther@suse.de>
13075
13076         PR tree-optimization/66807
13077         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
13078
13079 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
13080
13081         * function.c (stack_protect_epilogue): Use if rather than switch for
13082         check targetm.have_stack_protect_test.
13083
13084 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13085
13086         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
13087         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
13088         * config/arc/arc.h: Likewise.
13089         * config/arm/arm.h: Likewise.
13090         * config/bfin/bfin.h: Likewise.
13091         * config/epiphany/epiphany.h: Likewise.
13092         * config/frv/frv.h: Likewise.
13093         * config/ia64/ia64.h: Likewise.
13094         * config/iq2000/iq2000.h: Likewise.
13095         * config/lm32/lm32.h: Likewise.
13096         * config/m32r/m32r.h: Likewise.
13097         * config/mcore/mcore.h: Likewise.
13098         * config/mep/mep.h: Likewise.
13099         * config/microblaze/microblaze.h: Likewise.
13100         * config/mips/mips.h: Likewise.
13101         * config/mmix/mmix.h: Likewise.
13102         * config/mn10300/mn10300.h: Likewise.
13103         * config/nds32/nds32.h: Likewise.
13104         * config/nios2/nios2.h: Likewise.
13105         * config/pa/pa.h: Likewise.
13106         * config/rl78/rl78.h: Likewise.
13107         * config/sh/sh.h: Likewise.
13108         * config/sparc/sparc.h: Likewise.
13109         * config/stormy16/stormy16.h: Likewise.
13110         * config/tilegx/tilegx.h: Likewise.
13111         * config/tilepro/tilepro.h: Likewise.
13112         * config/v850/v850.h: Likewise.
13113         * config/xtensa/xtensa.h: Likewise.
13114         * doc/tm.texi: Regenerate.
13115         * doc/tm.texi.in: Adjust.
13116         * combine.c (simplify_set): Likewise.
13117         (simplify_comparison): Likewise.
13118         * expr.c (store_constructor): Likewise.
13119         * internal-fn.c (expand_arith_overflow): Likewise.
13120         * reload.c (push_reload): Likewise.
13121         (find_reloads): Likewise.
13122         (find_reloads_subreg_address): Likewise.
13123         * reload1.c (eliminate_regs_1): Likewise.
13124         * rtlanal.c (nonzero_bits1): Likewise.
13125         (num_sign_bit_copies1): Likewise.
13126         * simplify-rtx.c (simplify_truncation): Likewise.
13127
13128 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13129
13130         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
13131         of AUTO_INC_DEC with the preprocessor.
13132         * combine.c (combine_instructions): Likewise.
13133         (can_combine_p): Likewise.
13134         (try_combine): Likewise.
13135         * emit-rtl.c (try_split): Likewise.
13136         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
13137         * lower-subreg.c (resolve_simple_move): Likewise.
13138         * lra.c (update_inc_notes): Likewise.
13139         * recog.c (asm_operand_ok): Likewise.
13140         (constrain_operands): Likewise.
13141         * regrename.c (scan_rtx_address): Likewise.
13142         * reload.c (update_auto_inc_notes): Likewise.
13143         (reg_inc_found_and_valid_p): Likewise.
13144         * reload1.c (reload): Likewise.
13145         (emit_input_reload_insns): Likewise.
13146         (delete_output_reload): Likewise.
13147         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
13148         * valtrack.c (cleanup_auto_inc_dec): Likewise.
13149
13150 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13151
13152         * rtl.h: Always define AUTO_INC_DEC.
13153         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
13154         * combine.c (combine_instructions): Likewise.
13155         (can_combine_p): Likewise.
13156         (try_combine): Likewise.
13157         * emit-rtl.c (try_split): Likewise.
13158         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
13159         * lower-subreg.c (resolve_simple_move): Likewise.
13160         * lra.c (update_inc_notes): Likewise.
13161         * recog.c (asm_operand_ok): Likewise.
13162         (constrain_operands): Likewise.
13163         * regrename.c (scan_rtx_address): Likewise.
13164         * reload.c (update_auto_inc_notes): Likewise.
13165         (find_equiv_reg): Likewise.
13166         * reload1.c (reload): Likewise.
13167         (reload_as_needed): Likewise.
13168         (choose_reload_regs): Likewise.
13169         (emit_input_reload_insns): Likewise.
13170         (delete_output_reload): Likewise.
13171         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
13172         * valtrack.c (cleanup_auto_inc_dec): Likewise.
13173
13174 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13175
13176         * combine.c (can_combine_def_p): Don't check the value of
13177         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
13178         (combinable_i3pat): Likewise.
13179         (mark_used_regs_combine): Likewise.
13180         * regrename.c (rename_chains): Likewise.
13181         * reload.c (find_reloads_address): Likewise.
13182         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
13183
13184 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13185
13186         * combine.c (update_rsp_from_reg_equal): Don't check if
13187         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
13188         (reg_nonzero_bits_for_combine): Likewise.
13189         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
13190         1.
13191         * config/frv/frv.h: Likewise.
13192         * config/lm32/lm32.h: Likewise.
13193         * config/mep/mep.h: Likewise.
13194         * config/mips/mips.h: Likewise.
13195         * config/rs6000/rs6000.h: Likewise.
13196         * config/sh/sh.h: Likewise.
13197         * config/tilegx/tilegx.h (enum reg_class): Likewise.
13198         * config/tilepro/tilepro.h: Likewise.
13199         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
13200         * doc/tm.texi: Regenerate.
13201         * doc/tm.texi.in: Adjust.
13202         * rtlanal.c (nonzero_bits1): Likewise.
13203
13204 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13205
13206         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
13207         with the preprocessor.
13208         (combine_instructions): Likewise.
13209         (try_combine): Likewise.
13210         (subst): Likewise.
13211         (distribute_notes): Likewise.
13212
13213 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13214
13215         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
13216         defined.
13217         (simplify_set): Likewise.
13218         * cse.c (cse_insn): Likewise.
13219         * fold-const.c (fold_single_bit_test): Likewise.
13220         (fold_unary_loc): Likewise.
13221         * postreload.c (reload_cse_simplify_set): Likewise.
13222         (reload_cse_simplify_operands): Likewise.
13223
13224 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
13225
13226         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
13227         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
13228
13229 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
13230
13231         PR target/66746
13232         * config/i386/x86intrin.h: Include <adxintrin.h> even if
13233         __iamcu__ is defined.
13234
13235 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13236
13237         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
13238
13239 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
13240
13241         PR target/66523
13242         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
13243         names from preservation.
13244
13245 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
13246
13247         PR target/66806
13248         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
13249         change for IAMCU.
13250         (function_arg_advance_32): Don't pass vectors in registers for
13251         IAMCU.
13252         (function_arg_32): Likewise.
13253         (ix86_return_in_memory): Don't return vectors in registers for
13254         IAMCU.
13255
13256 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
13257
13258         PR middle-end/66334
13259         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
13260         hard regno live at the start of BB with incoming abnormal edges.
13261         * lra-lives.c (process_bb_lives): Ditto.
13262
13263 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
13264
13265         PR libgomp/65099
13266         * config/nvptx/mkoffload.c (main): Create an offload image only in
13267         64-bit configurations.
13268
13269 2015-07-08  Martin Liska  <mliska@suse.cz>
13270
13271         PR bootstrap/66744
13272         * tree-sra.c (create_access_1): Call ctor without brackets.
13273         (create_artificial_child_access): Likewise.
13274
13275 2015-07-08  Richard Biener  <rguenther@suse.de>
13276
13277         PR tree-optimization/66793
13278         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
13279         Properly split the block after stmts ending it.
13280
13281 2015-07-08  Richard Biener  <rguenther@suse.de>
13282
13283         PR tree-optimization/66794
13284         * passes.c (execute_function_todo): Assert that post-dominators
13285         are not computed.
13286         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
13287         Free post-dominators.
13288
13289 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13290
13291         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
13292         with early exit.
13293
13294 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13295
13296         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
13297         more than or equal 8 and less than 32 when optimizing for size.
13298
13299 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13300
13301         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
13302         COSTS_N_INSNS (1) and increment it appropriately throughout the
13303         function.
13304
13305 2015-07-08  Richard Biener  <rguenther@suse.de>
13306
13307         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
13308
13309 2015-07-08  Alan Modra  <amodra@gmail.com>
13310
13311         * target.def (rtx_costs): Remove "code" param, add "mode".
13312         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
13313         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
13314         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
13315         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
13316         call.  Track mode when given in rtx.
13317         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
13318         (default_address_cost): Pass Pmode to rtx_cost.
13319         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
13320         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
13321         with NULL set.
13322         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
13323         (notreg_cost): Add mode param.  Use it.
13324         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
13325         mode param and pass to set_src_cost.  Update all calls.
13326         (hash_scan_set): Formatting.
13327         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
13328         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
13329         * hooks.h: Ditto.
13330         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
13331         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
13332         emit_store_flag): Update set_src_cost and rtx_cost calls.
13333         * auto-inc-dec.c (attempt_change): Likewise.
13334         * calls.c (precompute_register_parameters): Likewise.
13335         * combine.c (expand_compound_operation, make_extraction,
13336         force_to_mode, distribute_and_simplify_rtx): Likewise.
13337         * dojump.c (prefer_and_bit_test): Likewise.
13338         * dse.c (find_shift_sequence): Likewise.
13339         * expr.c (compress_float_constant): Likewise.
13340         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
13341         * ifcvt.c (noce_try_sign_mask): Likewise.
13342         * loop-doloop.c (doloop_optimize): Likewise.
13343         * loop-invariant.c (create_new_invariant): Likewise.
13344         * lower-subreg.c (shift_cost, compute_costs): Likewise.
13345         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
13346         lshift_cheap_p): Likewise.
13347         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
13348         try_replace_in_use, reload_cse_move2add): Likewise.
13349         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
13350         Likewise.
13351         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13352         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
13353         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
13354         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
13355         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
13356         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
13357         to rtx_cost calls.
13358         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
13359         * config/arc/arc.c (arc_rtx_costs): Likewise.
13360         * config/arm/arm.c (arm_rtx_costs): Likewise.
13361         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
13362         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
13363         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
13364         * config/cris/cris.c (cris_rtx_costs): Likewise.
13365         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
13366         * config/frv/frv.c (frv_rtx_costs): Likewise.
13367         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
13368         * config/i386/i386.c (ix86_rtx_costs): Likewise.
13369         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
13370         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
13371         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
13372         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
13373         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
13374         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
13375         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
13376         * config/mep/mep.c (mep_rtx_cost): Likewise.
13377         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
13378         * config/mips/mips.c (mips_rtx_costs): Likewise.
13379         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
13380         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
13381         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
13382         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
13383         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
13384         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
13385         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
13386         * config/pa/pa.c (hppa_rtx_costs): Likewise.
13387         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
13388         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
13389         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
13390         * config/s390/s390.c (s390_rtx_costs): Likewise.
13391         * config/sh/sh.c (sh_rtx_costs): Likewise.
13392         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
13393         * config/spu/spu.c (spu_rtx_costs): Likewise.
13394         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
13395         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
13396         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
13397         * config/v850/v850.c (v850_rtx_costs): Likewise.
13398         * config/vax/vax.c (vax_rtx_costs): Likewise.
13399         * config/visium/visium.c (visium_rtx_costs): Likewise.
13400         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
13401         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
13402         "code" param, and pass as outer_code to first rtx_cost call.  Pass
13403         mode to rtx_cost calls.
13404         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
13405         calls.
13406         (aarch64_rtx_costs_wrapper): Update.
13407         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
13408         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
13409         rtx_cost calls.
13410         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
13411         and rtx_cost calls.
13412         (avr_operand_rtx_cost): Similarly.
13413         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
13414         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
13415         * config/mips/mips.c (mips_stack_address_p): Comment typo.
13416         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
13417         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
13418         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
13419         rtx_cost.
13420         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
13421         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
13422         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
13423         * doc/tm.texi: Regenerate.
13424
13425 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
13426
13427         * tree-core.h: Include symtab.h.
13428         * rtl.h: Include hard-reg-set.h but not flags.h.
13429         (HARD_CONST): Remove condition compilation involving HARD_CONST since
13430         hard-reg-set.h is always included.
13431         * regs.h: Don't include hard-reg-set.h or rtl.h.
13432         * cfg.h: Include dominance.h.
13433         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
13434         * backend.h: New.  Aggregate commonly used backend header files.
13435         * gimple-ssa.h: Don't include tree-hasher.h.
13436         * ssa.h: New.  Aggregate commonly used SSA header files.
13437         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
13438         * sel-sched-ir.h: Flatten includes.
13439         * lra-int.h: Flatten completely.
13440         * sel-sched-dump.h: Flatten includes.
13441         * ira-int.h: Flatten includes.
13442         * gimple-streamer.h: Remove all includes.
13443         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
13444         * resource.h: Flatten hard-reg-set.h and df.h.
13445         * sched-int.h: Flatten insn-arrt.h and df.h.
13446         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
13447         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
13448         * genattrtab.c (write_header): Adjust generated includes.
13449         * genautomata.c (main): Likewise.
13450         * genconditions.c (write-header): Likewise.
13451         * genemit.c (main): Likewise.
13452         * gengtype.c (open_base_files): Likewise.
13453         * genopinit.c (main): Likewise.
13454         * genoutput.c (output_prologue): Likewise.
13455         * genpeep.c (main): Likewise.
13456         * genpreds.c (write_insn_preds_c): Likewise.
13457         * genrecog.c (write_header): Likewise.
13458         * alias.c: Adjust includes.
13459         * asan.c: Likewise.
13460         * attribs.c: Likewise.
13461         * auto-inc-dec.c: Likewise.
13462         * auto-profile.c: Likewise.
13463         * bb-reorder.c: Likewise.
13464         * bt-load.c: Likewise.
13465         * builtins.c: Likewise.
13466         * caller-save.c: Likewise.
13467         * calls.c: Likewise.
13468         * ccmp.c: Likewise.
13469         * cfg.c: Likewise.
13470         * cfganal.c: Likewise.
13471         * cfgbuild.c: Likewise.
13472         * cfgcleanup.c: Likewise.
13473         * cfgexpand.c: Likewise.
13474         * cfghooks.c: Likewise.
13475         * cfgloop.c: Likewise.
13476         * cfgloopanal.c: Likewise.
13477         * cfgloopmanip.c: Likewise.
13478         * cfgrtl.c: Likewise.
13479         * cgraph.c: Likewise.
13480         * cgraphbuild.c: Likewise.
13481         * cgraphclones.c: Likewise.
13482         * cgraphunit.c: Likewise.
13483         * cilk-common.c: Likewise.
13484         * combine-stack-adj.c: Likewise.
13485         * combine.c: Likewise.
13486         * compare-elim.c: Likewise.
13487         * convert.c: Likewise.
13488         * coverage.c: Likewise.
13489         * cppbuiltin.c: Likewise.
13490         * cprop.c: Likewise.
13491         * cse.c: Likewise.
13492         * cselib.c: Likewise.
13493         * data-streamer-in.c: Likewise.
13494         * data-streamer-out.c: Likewise.
13495         * data-streamer.c: Likewise.
13496         * dbxout.c: Likewise.
13497         * dce.c: Likewise.
13498         * ddg.c: Likewise.
13499         * debug.c: Likewise.
13500         * df-core.c: Likewise.
13501         * df-problems.c: Likewise.
13502         * df-scan.c: Likewise.
13503         * dfp.c: Likewise.
13504         * dojump.c: Likewise.
13505         * dominance.c: Likewise.
13506         * domwalk.c: Likewise.
13507         * double-int.c: Likewise.
13508         * dse.c: Likewise.
13509         * dumpfile.c: Likewise.
13510         * dwarf2asm.c: Likewise.
13511         * dwarf2cfi.c: Likewise.
13512         * dwarf2out.c: Likewise.
13513         * emit-rtl.c: Likewise.
13514         * et-forest.c: Likewise.
13515         * except.c: Likewise.
13516         * explow.c: Likewise.
13517         * expmed.c: Likewise.
13518         * expr.c: Likewise.
13519         * final.c: Likewise.
13520         * fixed-value.c: Likewise.
13521         * fold-const.c: Likewise.
13522         * function.c: Likewise.
13523         * fwprop.c: Likewise.
13524         * gcc-plugin.h: Likewise.
13525         * gcse-common.c: Likewise.
13526         * gcse.c: Likewise.
13527         * generic-match-head.c: Likewise.
13528         * ggc-page.c: Likewise.
13529         * gimple-builder.c: Likewise.
13530         * gimple-expr.c: Likewise.
13531         * gimple-fold.c: Likewise.
13532         * gimple-iterator.c: Likewise.
13533         * gimple-low.c: Likewise.
13534         * gimple-match-head.c: Likewise.
13535         * gimple-pretty-print.c: Likewise.
13536         * gimple-ssa-isolate-paths.c: Likewise.
13537         * gimple-ssa-strength-reduction.c: Likewise.
13538         * gimple-streamer-in.c: Likewise.
13539         * gimple-streamer-out.c: Likewise.
13540         * gimple-walk.c: Likewise.
13541         * gimple.c: Likewise.
13542         * gimplify-me.c: Likewise.
13543         * gimplify.c: Likewise.
13544         * godump.c: Likewise.
13545         * graph.c: Likewise.
13546         * graphite-blocking.c: Likewise.
13547         * graphite-dependences.c: Likewise.
13548         * graphite-interchange.c: Likewise.
13549         * graphite-isl-ast-to-gimple.c: Likewise.
13550         * graphite-optimize-isl.c: Likewise.
13551         * graphite-poly.c: Likewise.
13552         * graphite-scop-detection.c: Likewise.
13553         * graphite-sese-to-poly.c: Likewise.
13554         * graphite.c: Likewise.
13555         * haifa-sched.c: Likewise.
13556         * hw-doloop.c: Likewise.
13557         * ifcvt.c: Likewise.
13558         * init-regs.c: Likewise.
13559         * internal-fn.c: Likewise.
13560         * ipa-chkp.c: Likewise.
13561         * ipa-comdats.c: Likewise.
13562         * ipa-cp.c: Likewise.
13563         * ipa-devirt.c: Likewise.
13564         * ipa-icf-gimple.c: Likewise.
13565         * ipa-icf.c: Likewise.
13566         * ipa-inline-analysis.c: Likewise.
13567         * ipa-inline-transform.c: Likewise.
13568         * ipa-inline.c: Likewise.
13569         * ipa-polymorphic-call.c: Likewise.
13570         * ipa-profile.c: Likewise.
13571         * ipa-prop.c: Likewise.
13572         * ipa-pure-const.c: Likewise.
13573         * ipa-ref.c: Likewise.
13574         * ipa-reference.c: Likewise.
13575         * ipa-split.c: Likewise.
13576         * ipa-utils.c: Likewise.
13577         * ipa-visibility.c: Likewise.
13578         * ipa.c: Likewise.
13579         * ira-build.c: Likewise.
13580         * ira-color.c: Likewise.
13581         * ira-conflicts.c: Likewise.
13582         * ira-costs.c: Likewise.
13583         * ira-emit.c: Likewise.
13584         * ira-lives.c: Likewise.
13585         * ira.c: Likewise.
13586         * jump.c: Likewise.
13587         * langhooks.c: Likewise.
13588         * lcm.c: Likewise.
13589         * loop-doloop.c: Likewise.
13590         * loop-init.c: Likewise.
13591         * loop-invariant.c: Likewise.
13592         * loop-iv.c: Likewise.
13593         * loop-unroll.c: Likewise.
13594         * lower-subreg.c: Likewise.
13595         * lra-assigns.c: Likewise.
13596         * lra-coalesce.c: Likewise.
13597         * lra-constraints.c: Likewise.
13598         * lra-eliminations.c: Likewise.
13599         * lra-lives.c: Likewise.
13600         * lra-remat.c: Likewise.
13601         * lra-spills.c: Likewise.
13602         * lra.c: Likewise.
13603         * lto-cgraph.c: Likewise.
13604         * lto-compress.c: Likewise.
13605         * lto-opts.c: Likewise.
13606         * lto-section-in.c: Likewise.
13607         * lto-section-out.c: Likewise.
13608         * lto-streamer-in.c: Likewise.
13609         * lto-streamer-out.c: Likewise.
13610         * lto-streamer.c: Likewise.
13611         * mcf.c: Likewise.
13612         * mode-switching.c: Likewise.
13613         * modulo-sched.c: Likewise.
13614         * omega.c: Likewise.
13615         * omp-low.c: Likewise.
13616         * optabs.c: Likewise.
13617         * opts-global.c: Likewise.
13618         * passes.c: Likewise.
13619         * plugin.c: Likewise.
13620         * postreload-gcse.c: Likewise.
13621         * postreload.c: Likewise.
13622         * predict.c: Likewise.
13623         * print-rtl.c: Likewise.
13624         * print-tree.c: Likewise.
13625         * profile.c: Likewise.
13626         * real.c: Likewise.
13627         * realmpfr.c: Likewise.
13628         * recog.c: Likewise.
13629         * ree.c: Likewise.
13630         * reg-stack.c: Likewise.
13631         * regcprop.c: Likewise.
13632         * reginfo.c: Likewise.
13633         * regrename.c: Likewise.
13634         * regstat.c: Likewise.
13635         * reload.c: Likewise.
13636         * reload1.c: Likewise.
13637         * reorg.c: Likewise.
13638         * resource.c: Likewise.
13639         * rtl-chkp.c: Likewise.
13640         * rtlanal.c: Likewise.
13641         * rtlhooks.c: Likewise.
13642         * sanopt.c: Likewise.
13643         * sched-deps.c: Likewise.
13644         * sched-ebb.c: Likewise.
13645         * sched-rgn.c: Likewise.
13646         * sched-vis.c: Likewise.
13647         * sdbout.c: Likewise.
13648         * sel-sched-dump.c: Likewise.
13649         * sel-sched-ir.c: Likewise.
13650         * sel-sched.c: Likewise.
13651         * sese.c: Likewise.
13652         * shrink-wrap.c: Likewise.
13653         * simplify-rtx.c: Likewise.
13654         * stack-ptr-mod.c: Likewise.
13655         * stmt.c: Likewise.
13656         * stor-layout.c: Likewise.
13657         * store-motion.c: Likewise.
13658         * stringpool.c: Likewise.
13659         * symtab.c: Likewise.
13660         * target-globals.c: Likewise.
13661         * targhooks.c: Likewise.
13662         * toplev.c: Likewise.
13663         * tracer.c: Likewise.
13664         * trans-mem.c: Likewise.
13665         * tree-affine.c: Likewise.
13666         * tree-browser.c: Likewise.
13667         * tree-call-cdce.c: Likewise.
13668         * tree-cfg.c: Likewise.
13669         * tree-cfgcleanup.c: Likewise.
13670         * tree-chkp-opt.c: Likewise.
13671         * tree-chkp.c: Likewise.
13672         * tree-chrec.c: Likewise.
13673         * tree-complex.c: Likewise.
13674         * tree-data-ref.c: Likewise.
13675         * tree-dfa.c: Likewise.
13676         * tree-diagnostic.c: Likewise.
13677         * tree-dump.c: Likewise.
13678         * tree-eh.c: Likewise.
13679         * tree-emutls.c: Likewise.
13680         * tree-if-conv.c: Likewise.
13681         * tree-inline.c: Likewise.
13682         * tree-into-ssa.c: Likewise.
13683         * tree-iterator.c: Likewise.
13684         * tree-loop-distribution.c: Likewise.
13685         * tree-nested.c: Likewise.
13686         * tree-nrv.c: Likewise.
13687         * tree-object-size.c: Likewise.
13688         * tree-outof-ssa.c: Likewise.
13689         * tree-parloops.c: Likewise.
13690         * tree-phinodes.c: Likewise.
13691         * tree-predcom.c: Likewise.
13692         * tree-pretty-print.c: Likewise.
13693         * tree-profile.c: Likewise.
13694         * tree-scalar-evolution.c: Likewise.
13695         * tree-sra.c: Likewise.
13696         * tree-ssa-address.c: Likewise.
13697         * tree-ssa-alias.c: Likewise.
13698         * tree-ssa-ccp.c: Likewise.
13699         * tree-ssa-coalesce.c: Likewise.
13700         * tree-ssa-copy.c: Likewise.
13701         * tree-ssa-copyrename.c: Likewise.
13702         * tree-ssa-dce.c: Likewise.
13703         * tree-ssa-dom.c: Likewise.
13704         * tree-ssa-dse.c: Likewise.
13705         * tree-ssa-forwprop.c: Likewise.
13706         * tree-ssa-ifcombine.c: Likewise.
13707         * tree-ssa-live.c: Likewise.
13708         * tree-ssa-loop-ch.c: Likewise.
13709         * tree-ssa-loop-im.c: Likewise.
13710         * tree-ssa-loop-ivcanon.c: Likewise.
13711         * tree-ssa-loop-ivopts.c: Likewise.
13712         * tree-ssa-loop-manip.c: Likewise.
13713         * tree-ssa-loop-niter.c: Likewise.
13714         * tree-ssa-loop-prefetch.c: Likewise.
13715         * tree-ssa-loop-unswitch.c: Likewise.
13716         * tree-ssa-loop.c: Likewise.
13717         * tree-ssa-math-opts.c: Likewise.
13718         * tree-ssa-operands.c: Likewise.
13719         * tree-ssa-phiopt.c: Likewise.
13720         * tree-ssa-phiprop.c: Likewise.
13721         * tree-ssa-pre.c: Likewise.
13722         * tree-ssa-propagate.c: Likewise.
13723         * tree-ssa-reassoc.c: Likewise.
13724         * tree-ssa-sccvn.c: Likewise.
13725         * tree-ssa-scopedtables.c: Likewise.
13726         * tree-ssa-sink.c: Likewise.
13727         * tree-ssa-strlen.c: Likewise.
13728         * tree-ssa-structalias.c: Likewise.
13729         * tree-ssa-tail-merge.c: Likewise.
13730         * tree-ssa-ter.c: Likewise.
13731         * tree-ssa-threadedge.c: Likewise.
13732         * tree-ssa-threadupdate.c: Likewise.
13733         * tree-ssa-uncprop.c: Likewise.
13734         * tree-ssa-uninit.c: Likewise.
13735         * tree-ssa.c: Likewise.
13736         * tree-ssanames.c: Likewise.
13737         * tree-stdarg.c: Likewise.
13738         * tree-streamer-in.c: Likewise.
13739         * tree-streamer-out.c: Likewise.
13740         * tree-streamer.c: Likewise.
13741         * tree-switch-conversion.c: Likewise.
13742         * tree-tailcall.c: Likewise.
13743         * tree-vect-data-refs.c: Likewise.
13744         * tree-vect-generic.c: Likewise.
13745         * tree-vect-loop-manip.c: Likewise.
13746         * tree-vect-loop.c: Likewise.
13747         * tree-vect-patterns.c: Likewise.
13748         * tree-vect-slp.c: Likewise.
13749         * tree-vect-stmts.c: Likewise.
13750         * tree-vectorizer.c: Likewise.
13751         * tree-vrp.c: Likewise.
13752         * tree.c: Likewise.
13753         * tsan.c: Likewise.
13754         * ubsan.c: Likewise.
13755         * valtrack.c: Likewise.
13756         * value-prof.c: Likewise.
13757         * var-tracking.c: Likewise.
13758         * varasm.c: Likewise.
13759         * varpool.c: Likewise.
13760         * vmsdbgout.c: Likewise.
13761         * vtable-verify.c: Likewise.
13762         * web.c: Likewise.
13763         * wide-int.cc: Likewise.
13764         * xcoffout.c: Likewise.
13765         * config/aarch64/aarch64-builtins.c: Likewise.
13766         * config/aarch64/aarch64.c: Likewise.
13767         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
13768         * config/alpha/alpha.c: Likewise.
13769         * config/arc/arc.c: Likewise.
13770         * config/arm/aarch-common.c: Likewise.
13771         * config/arm/arm-builtins.c: Likewise.
13772         * config/arm/arm-c.c: Likewise.
13773         * config/arm/arm.c: Likewise.
13774         * config/avr/avr-c.c: Likewise.
13775         * config/avr/avr-log.c: Likewise.
13776         * config/avr/avr.c: Likewise.
13777         * config/bfin/bfin.c: Likewise.
13778         * config/c6x/c6x.c: Likewise.
13779         * config/cr16/cr16.c: Likewise.
13780         * config/cris/cris.c: Likewise.
13781         * config/darwin-c.c: Likewise.
13782         * config/darwin.c: Likewise.
13783         * config/epiphany/epiphany.c: Likewise.
13784         * config/epiphany/mode-switch-use.c: Likewise.
13785         * config/epiphany/resolve-sw-modes.c: Likewise.
13786         * config/fr30/fr30.c: Likewise.
13787         * config/frv/frv.c: Likewise.
13788         * config/ft32/ft32.c: Likewise.
13789         * config/h8300/h8300.c: Likewise.
13790         * config/i386/i386-c.c: Likewise.
13791         * config/i386/i386.c: Likewise.
13792         * config/i386/msformat-c.c: Likewise.
13793         * config/i386/winnt-cxx.c: Likewise.
13794         * config/i386/winnt-stubs.c: Likewise.
13795         * config/i386/winnt.c: Likewise.
13796         * config/ia64/ia64-c.c: Likewise.
13797         * config/ia64/ia64.c: Likewise.
13798         * config/iq2000/iq2000.c: Likewise.
13799         * config/lm32/lm32.c: Likewise.
13800         * config/m32c/m32c-pragma.c: Likewise.
13801         * config/m32c/m32c.c: Likewise.
13802         * config/m32r/m32r.c: Likewise.
13803         * config/m68k/m68k.c: Likewise.
13804         * config/mcore/mcore.c: Likewise.
13805         * config/mep/mep-pragma.c: Likewise.
13806         * config/mep/mep.c: Likewise.
13807         * config/microblaze/microblaze-c.c: Likewise.
13808         * config/microblaze/microblaze.c: Likewise.
13809         * config/mips/mips.c: Likewise.
13810         * config/mmix/mmix.c: Likewise.
13811         * config/mn10300/mn10300.c: Likewise.
13812         * config/moxie/moxie.c: Likewise.
13813         * config/msp430/msp430-c.c: Likewise.
13814         * config/msp430/msp430.c: Likewise.
13815         * config/nds32/nds32-cost.c: Likewise.
13816         * config/nds32/nds32-fp-as-gp.c: Likewise.
13817         * config/nds32/nds32-intrinsic.c: Likewise.
13818         * config/nds32/nds32-isr.c: Likewise.
13819         * config/nds32/nds32-md-auxiliary.c: Likewise.
13820         * config/nds32/nds32-memory-manipulation.c: Likewise.
13821         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
13822         * config/nds32/nds32-predicates.c: Likewise.
13823         * config/nds32/nds32.c: Likewise.
13824         * config/nios2/nios2.c: Likewise.
13825         * config/nvptx/nvptx.c: Likewise.
13826         * config/pa/pa.c: Likewise.
13827         * config/pdp11/pdp11.c: Likewise.
13828         * config/rl78/rl78-c.c: Likewise.
13829         * config/rl78/rl78.c: Likewise.
13830         * config/rs6000/rs6000-c.c: Likewise.
13831         * config/rs6000/rs6000.c: Likewise.
13832         * config/rx/rx.c: Likewise.
13833         * config/s390/s390-c.c: Likewise.
13834         * config/s390/s390.c: Likewise.
13835         * config/sh/sh-c.c: Likewise.
13836         * config/sh/sh-mem.cc: Likewise.
13837         * config/sh/sh.c: Likewise.
13838         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
13839         * config/sh/sh_treg_combine.cc: Likewise.
13840         * config/sol2-c.c: Likewise.
13841         * config/sol2-cxx.c: Likewise.
13842         * config/sol2-stubs.c: Likewise.
13843         * config/sol2.c: Likewise.
13844         * config/sparc/sparc-c.c: Likewise.
13845         * config/sparc/sparc.c: Likewise.
13846         * config/spu/spu-c.c: Likewise.
13847         * config/spu/spu.c: Likewise.
13848         * config/stormy16/stormy16.c: Likewise.
13849         * config/tilegx/mul-tables.c: Likewise.
13850         * config/tilegx/tilegx-c.c: Likewise.
13851         * config/tilegx/tilegx.c: Likewise.
13852         * config/tilepro/mul-tables.c: Likewise.
13853         * config/tilepro/tilepro-c.c: Likewise.
13854         * config/tilepro/tilepro.c: Likewise.
13855         * config/v850/v850-c.c: Likewise.
13856         * config/v850/v850.c: Likewise.
13857         * config/vax/vax.c: Likewise.
13858         * config/visium/visium.c: Likewise.
13859         * config/vms/vms-c.c: Likewise.
13860         * config/vms/vms.c: Likewise.
13861         * config/vxworks.c: Likewise.
13862         * config/xtensa/xtensa.c: Likewise.
13863
13864 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
13865
13866         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
13867         Remove operand constraints.  Change operand 2 predicate to
13868         nonmemory operand.  Limit const_int values to mode bitsize.  Only
13869         allow const_int values less than 32 when optimizing for size.
13870         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
13871         Remove operand constraints.
13872         (*bt<mode>): Use SImode for const_int values less than 32.
13873         (regmode): Remove mode attribute.
13874
13875 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
13876
13877         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
13878         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
13879           moxie_legitimate_address_p): New functions.
13880           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
13881
13882 2015-07-07  Tom de Vries  <tom@codesourcery.com>
13883
13884         PR tree-optimization/66642
13885         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
13886         header comment.  Rename split_edge variable to edge_at_split.  Split
13887         exit edge to create new loop exit bb.  Insert loop exit phis in new
13888         loop exit bb.
13889
13890 2015-07-07  Tom de Vries  <tom@codesourcery.com>
13891
13892         * tree-cfg.c (get_virtual_phi): New function.
13893         * tree-cfg.h (get_virtual_phi): Declare.
13894         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
13895         (rewrite_virtuals_into_loop_closed_ssa): New function.
13896         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
13897         Declare.
13898         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
13899         (transform_to_exit_first_loop_alt): Use
13900         rewrite_virtuals_into_loop_closed_ssa.
13901
13902 2015-07-07  Richard Biener  <rguenther@suse.de>
13903
13904         * fold-const.c (fold_binary_loc): Move
13905         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
13906         * match.pd: ... here.
13907         Add (X * C1) % C2 -> 0 simplification pattern derived from
13908         extract_muldiv_1.
13909
13910 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
13911
13912         PR target/66780
13913         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
13914         change for target/65249.
13915
13916 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
13917
13918         * symtab.c (address_matters_1): Fix typo in comment above.
13919         (can_increase_alignment_p): Likewise.
13920
13921 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
13922
13923         * function.c (free_after_compilation): Clear PROP_cfg in
13924         f->curr_properties.
13925
13926 2015-07-07  Richard Biener  <rguenther@suse.de>
13927
13928         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
13929         add which use to.
13930         (add_control_edge): Remove excessive vertical space in dumping.
13931         (process_ssa_edge_worklist): Simulate at most one statement and
13932         return whether we did.  Do not simulate PHIs if they are in a
13933         BB not yet simulated.
13934         (ssa_propagate): Adjust to always drain the BB worklist whenever
13935         a BB is available there, likewise the VARYING edges list before
13936         the interesting edge list.
13937
13938 2015-07-07  Christian Bruel  <christian.bruel@st.com>
13939
13940         PR target/52144
13941         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
13942
13943 2015-07-07  Richard Biener  <rguenther@suse.de>
13944
13945         PR middle-end/66739
13946         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
13947         A - B.
13948
13949 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
13950
13951         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
13952         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
13953         Copy operand 0 to a temporary if !ext_register_operand.  Remove
13954         ancient extract_bit_field workaround.
13955         (insv<mode>_1): Rename from mov<mode>_insv_1.
13956         (*insvqi): Rename from *movqi_insv_2.
13957         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
13958         for renamed insvsi_1.
13959         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
13960
13961 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
13962
13963         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
13964         call to nvptx_reorg_subreg.
13965
13966 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
13967
13968         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
13969         * graphite-dependencies.c, graphite-interchange.c,
13970         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
13971         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
13972         Likewise.
13973
13974 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
13975
13976         * match.pd: Remove element_mode inside HONOR_*.
13977         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
13978         (~X | X -> -1, ~X ^ X -> -1): Merge.
13979         * tree.c (build_each_one_cst): New function.
13980         * tree.h (build_each_one_cst): Likewise.
13981
13982 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
13983
13984         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
13985         PROCESSOR_IAMCU.
13986
13987 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
13988
13989         * config.gcc <mips*-*-*>: Add fused-madd.opt.
13990         * config/mips/mips.opt (mfused-madd): Remove.
13991         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
13992         * config/mips/mips.h (TARGET_MIPS8000): New.
13993         (ISA_HAS_FP_MADD4_MSUB4): Remove.
13994         (ISA_HAS_FP_MADDF_MSUBF): Remove.
13995         (ISA_HAS_FP_MADD3_MSUB3): Remove.
13996         (ISA_HAS_NMADD4_NMSUB4): Remove.
13997         (ISA_HAS_NMADD3_NMSUB3): Remove.
13998         (ISA_HAS_FUSED_MADD4): New.
13999         (ISA_HAS_UNFUSED_MADD4): New.
14000         (ISA_HAS_FUSED_MADDF): New.
14001         (ISA_HAS_FUSED_MADD3): New.
14002         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
14003         (*fma<mode>4_madd3) New.
14004         (*fma<mode>4_madd4) New.
14005         (*fma<mode>4_maddf) New.
14006         (fms<mode>4) New.
14007         (*fms<mode>4_msub3) New.
14008         (*fms<mode>4_msub4) New.
14009         (fnma<mode>4) New.
14010         (*fnma<mode>4_nmadd3) New.
14011         (*fnma<mode>4_nmadd4) New.
14012         (fnms<mode>4) New.
14013         (*fnms<mode>4_nmsub3) New.
14014         (*fnms<mode>4_nmsub4) New.
14015         (*madd4<mode>) Modify to be unfused only.
14016         (*msub4<mode>) Modify to be unfused only.
14017         (*nmadd4<mode>) Modify to be unfused only.
14018         (*nmsub4<mode>) Modify to be unfused only.
14019         (*madd3<mode>) Remove.
14020         (*msub3<mode>) Remove.
14021         (*nmadd3<mode>) Remove.
14022         (*nmsub3<mode>) Remove.
14023         (*nmadd3<mode>_fastmath) Remove.
14024         (*nmsub3<mode>_fastmath) Remove.
14025         (*nmadd4<mode>_fastmath) Update condition.
14026         (*nmsub4<mode>_fastmath) Update condition.
14027
14028 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
14029
14030         PR target/65956
14031         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
14032         alignment attribute, exploring one level down for records and arrays.
14033
14034 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
14035
14036         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
14037         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
14038         Copy operand 1 to a temporary if !ext_register_operand.  Remove
14039         ancient extract_bit_field workaround.
14040         (*extv<mode>): Rename from *mov<mode>_extv_1.
14041         (*extvqi): Rename from *movqi_extv_1.
14042         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
14043         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
14044         to a temporary if !ext_register_operand.  Remove ancient
14045         extract_bit_field workaround.
14046         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
14047         (*extzvqi): Rename from *movqi_extzv_2.
14048         (*testqi_ext_3): Remove modes from const_int_operand predicated
14049         operands.  Add "n" constraint.
14050         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
14051         operand.  Add "J" constraint.
14052         (*btsq, *btrq, *btcq peephole2s): Remove mode from
14053         const_0_to_63 predicated operand.
14054         (regmode): New insn attribute.
14055         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
14056         to nonmemory_operand.  Use regmode insn attribute.
14057         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
14058         (*jcc_bt<mode>_mask): Remove mode from operand 3.
14059         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
14060         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
14061         operands.  Use "N" constraint instead of "n".
14062
14063 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
14064
14065         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
14066
14067 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14068
14069         PR target/66749
14070         * config/i386/i386.c (iamcu_cost): New.
14071         (m_IAMCU): Likewise.
14072         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
14073         (processor_target_table): Add an entry for "iamcu".
14074         (processor_alias_table): Likewise.
14075         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
14076         (ix86_adjust_cost): Likewise.
14077         (ia32_multipass_dfa_lookahead): Likewise.
14078         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
14079         * config/i386/x86-tune.def: Updated for m_IAMCU.
14080
14081 2015-07-06  Richard Biener  <rguenther@suse.de>
14082
14083         PR tree-optimization/66772
14084         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
14085         values are available in the PHI node BB when there are
14086         still unexecutable edges.
14087
14088 2015-07-06  Richard Biener  <rguenther@suse.de>
14089
14090         PR tree-optimization/66767
14091         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
14092         Make sure to build the alignment test on a SSA name without
14093         final alignment info valid only if the alignment test
14094         evaluates to true.
14095
14096 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
14097
14098         PR target/66620
14099         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
14100         loop start when inserting LSETUP.
14101
14102 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14103
14104         PR target/53383
14105         * config/i386/i386.c (ix86_option_override_internal): Allow
14106         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
14107
14108 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14109
14110         * read-md.c (decimal_string): Rename to ...
14111         (md_decimal_string): ... this.
14112         (handle_enum): Reflect this.
14113
14114 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
14115
14116         PR target/66731
14117         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
14118
14119 2015-07-06  Richard Biener  <rguenther@suse.de>
14120
14121         PR middle-end/66759
14122         * match.pd: Add missing constraint of y to REAL_CST in
14123         REAL_CST - x CMP y to y - CST CMP x simplification.
14124
14125 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
14126
14127         PR tree-optimization/66757
14128         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
14129
14130 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
14131             Sandra Loosemore <sandra@codesourcery.com>
14132
14133         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
14134         Delete extern declaration.
14135         (gprel_constant_p): Add extern declaration.
14136         * config/nios2/constraints.md ("S"): Use gprel_constant_p
14137         instead of nios2_symbol_ref_in_small_data_p.
14138         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
14139         (nios2_symbol_ref_in_small_data_p): Make static.
14140         (gprel_constant_p): Make non-static.
14141
14142 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
14143
14144         * doc/fragments.texi (Target Fragment): Convert debian.org
14145         link to use https.
14146         * doc/install.texi (Configuration): Ditto.
14147
14148 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
14149
14150         PR tree-optimization/66718
14151         * tree-vect-stmts.c (vectorizable_call): Replace uses of
14152         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
14153
14154         PR tree-optimization/66718
14155         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
14156         vectorizable_load, vectorizable_condition): Move vectype,
14157         nunits, ncopies computation after checking what kind of statement
14158         stmt is.
14159
14160 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14161
14162         * target-insns.def (extv, extzv, insv): New targetm instruction
14163         patterns.
14164         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
14165         interface.
14166         * recog.c (simplify_while_replacing): Likewise.
14167
14168 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14169
14170         * target-insns.def (doloop_begin, doloop_end): New targetm
14171         instruction patterns.
14172         * loop-init.c: Include target.h.
14173         (pass_loop2::gate): Use the new targetm patterns instead of
14174         HAVE_*/gen_* interface.
14175         (pass_rtl_doloop::gate): Likewise.
14176         (pass_rtl_doloop::execute): Remove preprocessor condition.
14177         * hw-doloop.c: Build unconditionally.
14178         * loop-doloop.c: Likewise.
14179         (doloop_optimize): Use the new targetm patterns instead of
14180         HAVE_*/gen_* interface.
14181         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
14182         * modulo-sched.c (doloop_register_get): Likewise.
14183
14184 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14185
14186         * target-insns.def (clear_cache): New targetm instruction pattern.
14187         * builtins.c (expand_builtin___clear_cache): Use it instead of
14188         HAVE_*/gen_* interface.
14189
14190 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14191
14192         * target-insns.def (allocate_stack, check_stack, probe_stack)
14193         (probe_stack_address, split_stack_prologue, split_stack_space_check):
14194         New targetm instruction patterns.
14195         * explow.c (allocate_dynamic_stack_space): Use them instead of
14196         HAVE_*/gen_* interface.
14197         (emit_stack_probe): Likewise.
14198         (probe_stack_range): Likewise.
14199         * function.c (thread_prologue_and_epilogue_insns): Likewise.
14200
14201 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14202
14203         * target-insns.def (stack_protect_set, stack_protect_test): New
14204         targetm instruction patterns.
14205         * cfgexpand.c (stack_protect_prologue): Use them instead of
14206         HAVE_*/gen_* interface.
14207         * function.c (stack_protect_epilogue): Likewise.
14208
14209 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14210
14211         * expr.h (gen_move_insn_uncast): Delete.
14212         * expr.c (gen_move_insn_uncast): Delete.
14213
14214 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14215
14216         * target-insns.def (restore_stack_block, restore_stack_function)
14217         (restore_stack_nonlocal, save_stack_block, save_stack_function)
14218         (save_stack_nonlocal): New targetm instruction patterns.
14219         * builtins.c (expand_builtin_apply): Use them instead of
14220         HAVE_*/gen_* interface.
14221         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
14222
14223 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14224
14225         * target-insns.def (trap): New targetm instruction pattern.
14226         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
14227         interface.
14228         * explow.c (allocate_dynamic_stack_space): Likewise.
14229         * ifcvt.c (find_if_header): Likewise.
14230
14231 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14232
14233         * target-insns.def (prefetch): New targetm instruction pattern.
14234         * tree-ssa-loop-prefetch.c: Include targeth.
14235         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
14236         of HAVE_*/gen_* interface.
14237         * builtins.c (expand_builtin_prefetch): Likewise.
14238         * toplev.c (process_options): Likewise.
14239
14240 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14241
14242         * target-insns.def (untyped_call, untyped_return): New targetm
14243         instruction patterns.
14244         * builtins.c (expand_builtin_apply): Use them instead of
14245         HAVE_*/gen_* interface.
14246         (result_vector): Define unconditionally.
14247
14248 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14249
14250         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
14251         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
14252         (nonlocal_goto_receiver): New targetm instruction patterns.
14253         * builtins.c (expand_builtin_setjmp_setup): Use them instead
14254         of HAVE_*/gen_* interface.
14255         (expand_builtin_setjmp_receiver): Likewise.
14256         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
14257         * except.c (expand_dw2_landing_pad_for_region): Likewise.
14258
14259 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14260
14261         * target.def: Add code_for_* hooks.
14262         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
14263         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
14264         * target-insns.def (casesi, tablejump): New targetm instruction
14265         patterns.
14266         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
14267         (do_tablejump): Likewise.
14268         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
14269         (expand_sjlj_dispatch_table): Likewise.
14270         * targhooks.c (default_case_values_threshold): Likewise.
14271
14272 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
14273
14274         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
14275         Use rtx_insn * instead of rtx.
14276         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
14277         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
14278         (nios2_call_tls_get_addr): Likewise.
14279         (nios2_emit_expensive_div): Likewise.
14280         (nios2_emit_move_sequence): Change return type to bool.
14281         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
14282         Change return type to bool.
14283
14284 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14285
14286         PR target/66747
14287         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
14288
14289 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
14290
14291         PR target/66114
14292         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
14293         of register_operand.  Remove constraint.
14294
14295 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
14296
14297         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
14298         the first argument.
14299
14300 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
14301
14302         * attribs.c (decl_attributes): Guard inform with the return value
14303         of the preceding warning.
14304
14305 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
14306
14307         * doc/invoke.texi (moverride): Move to correct section.
14308
14309 2015-07-03  Richard Biener  <rguenther@suse.de>
14310
14311         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
14312         Copy from tree.c
14313         (dt_operand::gen_gimple_expr): After valueizing operands
14314         re-canonicalize operand order for commutative tree codes.
14315
14316 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
14317
14318         PR target/66746.
14319         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
14320         is defined.
14321         (__crc32w): Likewise.
14322         (__crc32d): Likewise.
14323         (__rdpmc): Likewise.
14324         (__rdtscp): Likewise.
14325         (_rdpmc): Likewise.
14326         (_rdtscp): Likewise.
14327         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
14328         is defined.
14329
14330 2015-07-03  Richard Biener  <rguenther@suse.de>
14331
14332         * fold-const.c (fold_mathfn_compare): Remove.
14333         (fold_inf_compare): Likewise.
14334         (fold_comparison): Move floating point comparison simplifications...
14335         * match.pd: ... to patterns here.  Introduce simple_comparisons
14336         operator list and use it for patterns formerly in fold_comparison.
14337
14338 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
14339
14340         PR tree-optimization/66119
14341         * toplev.c (process_options): Don't set up default values for
14342         the sra_max_scalarization_size_{speed,size} parameters.
14343         * tree-sra (analyze_all_variable_accesses): If no values
14344         have been set for the sra_max_scalarization_size_{speed,size}
14345         parameters, call get_move_ratio to get target defaults.
14346
14347 2015-07-03  Richard Biener  <rguenther@suse.de>
14348
14349         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
14350         * match.pd: ... here.
14351
14352 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
14353
14354         PR target/37072
14355         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
14356         is not actually the default on FreeBSD.
14357
14358 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14359
14360         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
14361         definition.
14362         (CMPGE_8HI): Likewise.
14363         (CMPGE_4SI): Likewise.
14364         (CMPGE_2DI): Likewise.
14365         (CMPGE_U16QI): Likewise.
14366         (CMPGE_U8HI): Likewise.
14367         (CMPGE_U4SI): Likewise.
14368         (CMPGE_U2DI): Likewise.
14369         (CMPLE_16QI): Likewise.
14370         (CMPLE_8HI): Likewise.
14371         (CMPLE_4SI): Likewise.
14372         (CMPLE_2DI): Likewise.
14373         (CMPLE_U16QI): Likewise.
14374         (CMPLE_U8HI): Likewise.
14375         (CMPLE_U4SI): Likewise.
14376         (CMPLE_U2DI): Likewise.
14377         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14378         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
14379         ALTIVEC_BUILTIN_VEC_CMPLE.
14380         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
14381         floating-point vector modes.
14382         (vector_nlt<mode>): New define_expand.
14383         (vector_nltu<mode>): Likewise.
14384         (vector_ngt<mode>): Likewise.
14385         (vector_ngtu<mode>): Likewise.
14386
14387 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
14388
14389         PR rtl-optimization/66706
14390         * combine.c (make_compound_operation): If an AND of SUBREG of
14391         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
14392
14393 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
14394
14395         * tree-pass.h (make_pass_ch_vect): New.
14396         * passes.def: Add pass_ch_vect just before pass_if_conversion.
14397
14398         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
14399         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
14400         make_pass_ch_vect): New.
14401         (pass_ch): Extend ch_base.
14402
14403         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
14404         (ch_base::copy_headers): ...here.
14405
14406 2015-07-02  Richard Biener  <rguenther@suse.de>
14407
14408         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
14409         * fold-const.c (get_pointer_modulus_and_residue): Remove.
14410         (fold_binary_loc): Implement (T)ptr & CST in terms of
14411         get_pointer_alignment_1.
14412         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
14413         Make sure to build the alignment test on a SSA name without
14414         final alignment info valid only after the prologue.
14415
14416 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
14417
14418         * config/cris/cris.md ("epilogue"): Remove condition.
14419         ("prologue"): Ditto.
14420
14421 2015-07-02  Richard Biener  <rguenther@suse.de>
14422
14423         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
14424         parameter to record a condition that is false.
14425         (record_conditions): When recording an extra NE_EXPR that is
14426         true also record a EQ_EXPR that is false.
14427
14428 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
14429
14430         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
14431         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
14432         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
14433         (set_iv, find_interesting_uses_address, add_candidate_1): New
14434         argument to alloc_iv.
14435         (find_interesting_uses_op, find_interesting_uses_cond): Don't
14436         duplicate struct iv.
14437         (free_loop_data): Don't free struct iv explicitly.
14438         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
14439
14440 2015-07-01  DJ Delorie  <dj@redhat.com>
14441
14442         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
14443         (LIB_SPEC): Add.
14444         (SUPPORTS_DISCRIMINATOR): Define.
14445
14446 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
14447
14448         PR bootstrap/66685
14449         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
14450         there are no CALLs in the same pattern.
14451
14452 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14453
14454         PR rtl-optimization/61047
14455         * rtlanal.c (get_initial_register_offset): New function.
14456         (rtx_addr_can_trap_p_1): Check offsets of stack references.
14457
14458 2015-07-01  Richard Biener  <rguenther@suse.de>
14459
14460         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
14461         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
14462         ~X CMP C -> X CMP' ~C to ...
14463         * match.pd: ... patterns here.
14464
14465 2015-07-01  Nick Clifton  <nickc@redhat.com>
14466
14467         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
14468         a 16-bit value into a 20-bit memory slot.
14469
14470 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14471
14472         * doc/sourcebuild.texi (AArch64-specific attributes): Document
14473         "aarch64_tiny", "aarch64_small", "aarch64_large",
14474         "aarch64_little_endian", "aarch64_big_endian".
14475
14476 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14477
14478         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
14479         Document "aarch64_small_fpic".
14480
14481 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14482
14483         * configure.ac: Add check for aarch64 assembler -fpic relocation
14484         modifier support.
14485         * configure: Regenerate.
14486         * config.in: Regenerate.
14487         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
14488         to -fPIC if not support of -fpic relocation modifier in assembler.
14489
14490 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
14491
14492         PR bootstrap/66685
14493         * rtl.c (classify_insn): Handle returns in PARALLELs.
14494
14495 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
14496
14497         PR middle-end/66633
14498         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
14499         to true if the function is nested and if not optimizing.
14500         (convert_local_omp_clauses): Initialize need_frame to true if the
14501         function contains nested functions and if not optimizing.
14502
14503 2015-07-01  Richard Biener  <rguenther@suse.de>
14504
14505         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
14506         (X & Y) ^ Y -> ~X & Y transforms to ...
14507         * match.pd: ... here.
14508
14509 2015-07-01  Richard Biener <rguenther@suse.de>
14510
14511         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
14512         of converts to avoid uninteresting noise from the conversion
14513         simplifying patterns.
14514
14515 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
14516
14517         * config/c6x/c6x.c (try_rename_operands): Do not depend on
14518         gcc_assert evaluating its argument for side-effect.
14519
14520 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
14521
14522         PR target/64833
14523         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
14524         flag_pic is set.
14525
14526 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
14527
14528         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
14529         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
14530         (hash_scc): Add this_ref_p and ref_p parameters and pass them
14531         to the inner DFS walk.
14532
14533 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14534
14535         * target-insns.def (jump): New targetm instruction pattern.
14536         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
14537         instead of gen_jump.
14538         (fix_up_crossing_landing_pad): Likewise.
14539         (add_labels_and_missing_jumps): Likewise.
14540         (fix_crossing_conditional_branches): Likewise.
14541         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
14542         (force_nonfallthru_and_redirect): Likewise.
14543         * cse.c (cse_insn): Likewise.
14544         * expmed.c (expand_divmod): Likewise.
14545         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
14546         * haifa-sched.c (init_before_recovery): Likewise.
14547         (sched_create_recovery_edges): Likewise.
14548         * ifcvt.c (find_cond_trap): Likewise.
14549         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
14550         (expand_float, expand_fix): Likewise.
14551         * stmt.c (emit_jump): Likewise.
14552
14553 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14554
14555         * defaults.h (HAVE_load_multiple, gen_load_multiple)
14556         (HAVE_store_multiple, gen_store_multiple): Delete.
14557         * target-insns.def (load_multiple, store_multiple): New targetm
14558         instruction patterns.
14559         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
14560         of HAVE_*/gen_* interface.
14561
14562 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14563
14564         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
14565         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
14566         (gen_mem_signal_fence): Delete.
14567         * target-insns.def (mem_signal_fence, mem_thread_fence)
14568         (memory_barrier): New targetm instruction patterns.
14569         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
14570         interface.
14571         (expand_mem_signal_fence): Likewise.
14572
14573 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14574
14575         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
14576         * target-insns.def (epilogue, prologue, sibcall_prologue): New
14577         targetm instruction patterns.
14578         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
14579         interface.
14580         * calls.c (expand_call): Likewise.
14581         * cfgrtl.c (cfg_layout_finalize): Likewise.
14582         * df-scan.c (df_get_entry_block_def_set): Likewise.
14583         (df_get_exit_block_use_set): Likewise.
14584         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
14585         * final.c (final_start_function): Likewise.
14586         * function.c (thread_prologue_and_epilogue_insns): Likewise.
14587         (reposition_prologue_and_epilogue_notes): Likewise.
14588         * reorg.c (find_end_label): Likewise.
14589         * toplev.c (process_options): Likewise.
14590
14591 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
14592
14593         * typed-splay-tree.h: New file.
14594
14595 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
14596
14597         PR debug/66691
14598         * lra-int.h (lra_substitute_pseudo): Add a parameter.
14599         (lra_substitute_pseudo_within_insn): Ditto.
14600         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
14601         of constant.
14602         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
14603         to lra_substitute_pseudo.
14604         * lra-lives.c (process_bb_lives): Add an argument to
14605         lra_substitute_pseudo_within_insn call.
14606         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
14607         argument to lra_substitute_pseudo and
14608         lra_substitute_pseudo_within_insn calls.
14609         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
14610
14611 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
14612
14613         * configure: Regenerated.
14614
14615 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
14616
14617         * config.gcc: Support i[34567]86-*-elfiamcu target.
14618         * config/i386/iamcu.h: New.
14619         * config/i386/i386.opt: Add -miamcu.
14620         * doc/invoke.texi: Document -miamcu.
14621         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
14622         off x87/MMX/SSE/AVX codegen for -miamcu.
14623         * config/i386/i386-c.c (ix86_target_macros_internal): Define
14624         __iamcu/__iamcu__ for -miamcu.
14625         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
14626         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
14627         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
14628         * config/i386/i386.c (ix86_option_override_internal): Ignore and
14629         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
14630         MCU by default.  Default long double to 64-bit for Intel MCU.
14631         Turn on -freg-struct-return for Intel MCU.  Issue an error when
14632         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
14633         AVX is turned on.
14634         (function_arg_advance_32): Pass value whose size is no larger
14635         than 8 bytes in registers for Intel MCU.
14636         (function_arg_32): Likewise.
14637         (ix86_return_in_memory): Return value whose size is no larger
14638         than 8 bytes in registers for Intel MCU.
14639         (iamcu_alignment): New function.
14640         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
14641         true.
14642         (ix86_local_alignment): Don't increase alignment for Intel MCU.
14643         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
14644         true.
14645
14646 2015-06-30  Marek Polacek  <polacek@redhat.com>
14647
14648         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
14649         both operands of the resulting expression.
14650
14651         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
14652         the final expression with the operand's type and then convert
14653         it to the type of the expression.
14654
14655 2015-06-30  Richard Biener  <rguenther@suse.de>
14656
14657         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
14658         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
14659         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
14660         * match.pd: ... to patterns here.
14661
14662 2015-06-30  Richard Biener  <rguenther@suse.de>
14663
14664         PR tree-optimization/66704
14665         * tree-vect-data-refs.c (vect_setup_realignment): Use
14666         make_ssa_name for non-SSA name source.
14667
14668 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
14669
14670         PR middle-end/66702
14671         * omp-low.c (simd_clone_adjust): Handle addressable linear
14672         or uniform parameters or non-gimple type uniform parameters.
14673
14674 2015-06-30  Richard Biener  <rguenther@suse.de>
14675
14676         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
14677         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
14678         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
14679         * match.pd: ... here.
14680         Add a few cases of A - B -> A + (-B) when B "easily" negates.
14681         Move (x & y) | x -> x and friends before
14682         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
14683
14684 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
14685
14686         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
14687         -mfix-ut699 is not specified.
14688         (leon3_load): Rename into...
14689         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
14690         is specified.
14691
14692 2015-06-30  Marek Polacek  <polacek@redhat.com>
14693
14694         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
14695         * match.pd: ... here.
14696
14697 2015-06-30  Richard Biener  <rguenther@suse.de>
14698
14699         * target-insns.def (canonicalize_funcptr_for_compare): Add.
14700         * fold-const.c (build_range_check): Replace uses of
14701         HAVE_canonicalize_funcptr_for_compare.
14702         (fold_widened_comparison): Likewise.
14703         (fold_sign_changed_comparison): Likewise.
14704         * dojump.c: Include "target.h".
14705         (do_compare_and_jump): Replace uses of
14706         HAVE_canonicalize_funcptr_for_compare and
14707         gen_canonicalize_funcptr_for_compare.
14708         * expr.c (do_store_flag): Likewise.
14709
14710 2015-06-30  Tom de Vries  <tom@codesourcery.com>
14711
14712         PR tree-optimization/66652
14713         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
14714         max_loop_iterations to determine if nit + 1 overflows.
14715
14716 2015-06-30  Richard Biener  <rguenther@suse.de>
14717
14718         * tree-vrp.c (register_edge_assert_for_2): Also register
14719         asserts for dominating conversion results.
14720
14721 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
14722
14723         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
14724         field in struct iv.
14725
14726 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
14727
14728         PR target/66509
14729         * configure.ac: Fix filds and fildq test for 64-bit.
14730         * configure: Regenerated.
14731
14732 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
14733
14734         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
14735         (nvptx_reorg): Here.  Keep the non-subreg pieces.
14736
14737 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
14738
14739         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
14740         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
14741
14742 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
14743
14744         * config/i386/i386.md (*jcc_1): Use %! in asm template.
14745         Set attribute "length_nobnd" instead of "length".
14746         (*jcc_2): Ditto.
14747         (jump): Ditto.
14748         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
14749
14750 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
14751
14752         * config/nios2/nios2.c (nios2_delegitimize_address): Make
14753         assert less restrictive.
14754
14755 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14756
14757         PR fortran/66605
14758         * cgraphunit.c (cgraph_node::finalize_function): Do not call
14759         do_warn_unused_parameter.
14760         * function.c (do_warn_unused_parameter): Move from here.
14761         * function.h (do_warn_unused_parameter): Do not declare.
14762
14763 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
14764
14765         PR target/65697
14766         * gcc.target/arm/armv-sync-comp-swap.c: New.
14767         * gcc.target/arm/armv-sync-op-acquire.c: New.
14768         * gcc.target/arm/armv-sync-op-full.c: New.
14769         * gcc.target/arm/armv-sync-op-release.c: New.
14770
14771 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
14772
14773         PR target/65697
14774         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
14775         initial acquire barrier with final barrier.
14776
14777 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
14778
14779         PR target/65697
14780         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
14781         initial acquire barrier with final barrier.
14782
14783 2015-06-29  Richard Henderson  <rth@redhat.com>
14784
14785         * config/i386/constraints.md (Bf): New constraint.
14786         * config/i386/i386-c.c (ix86_target_macros): Define
14787         __GCC_ASM_FLAG_OUTPUTS__.
14788         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
14789         as flags outputs.
14790         * doc/extend.texi (FlagOutputOperands): Document them.
14791
14792 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
14793
14794         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
14795         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
14796         unspec name.
14797         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
14798         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
14799         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
14800         (aarch64_symbol_context): Ditto.
14801         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
14802         and use new pattern name.
14803         (aarch64_expand_mov_immediate): Ditto.
14804         (aarch64_print_operand): Ditto.
14805         (aarch64_classify_tls_symbol): Ditto.
14806
14807 2015-06-29  Marek Polacek  <polacek@redhat.com>
14808             Marc Glisse  <marc.glisse@inria.fr>
14809
14810         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
14811         * match.pd: ... pattern here.
14812
14813 2015-06-29  Tom de Vries  <tom@codesourcery.com>
14814
14815         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
14816         function structure.
14817
14818 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
14819
14820         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
14821         feature description, split out the native option, add a link to
14822         the feature documentation, rearrange and slightly rewrite text.
14823         (Aarch64 options, -mcpu): Likewise.
14824         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
14825         +rdma implies Adv. SIMD.
14826
14827 2015-06-29  Marek Polacek  <polacek@redhat.com>
14828
14829         PR c/66322
14830         * function.c (stack_protect_epilogue): Remove a cast to int.
14831         * doc/invoke.texi: Update -Wswitch-bool description.
14832
14833 2015-06-29  Richard Biener  <rguenther@suse.de>
14834
14835         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
14836         * fold-const.c (fold_binary_loc): Move &A - &B simplification
14837         via ptr_difference_const ...
14838         * match.pd: ... here.
14839         When matching (X ^ Y) == Y also match with swapped operands.
14840
14841 2015-06-29  Richard Biener  <rguenther@suse.de>
14842
14843         * lto-streamer.h (LTO_major_version): Bump to 5.
14844
14845 2015-06-29  Richard Biener  <rguenther@suse.de>
14846
14847         PR tree-optimization/66677
14848         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
14849         STMT_VINFO_VEC_STMT clobbering less strict.
14850
14851 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
14852
14853         PR middle-end/64130
14854         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
14855         division, compute max and min when value ranges for dividend and
14856         divisor are available.
14857
14858 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
14859             Sandra Loosemore <sandra@codesourcery.com>
14860
14861         * regrename.h (regrename_do_replace): Change to return bool.
14862         * regrename.c (rename_chains): Check return value of
14863         regname_do_replace.
14864         (regrename_do_replace): Re-validate the modified insns and
14865         return bool status.
14866         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
14867         Update to match rename_chains changes.
14868         * config/c6x/c6x.c (try_rename_operands): Assert that
14869         regrename_do_replace returns true.
14870
14871 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
14872
14873         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
14874         operand 2 here.  Use copy_addr_to_reg to copy non-index
14875         register operand 2 to a temporary.
14876         (<mode>_stx): Ditto for operand 1.
14877         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
14878         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
14879         (ix86_store_bounds): Ditto.
14880
14881 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
14882
14883         * print-tree.c (print_node) [TREE_VEC]: Print its length.
14884
14885 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
14886
14887         * gimple.c (gimple_call_set_fndecl): Remove.
14888         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
14889         build1_loc directly instead of build_fold_addr_expr_loc.
14890
14891 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
14892
14893         * hash-map.h (hash_map::traverse): Use the definition of the
14894         Key typedef rather than the typedef itself.
14895
14896 2015-06-26  Martin Jambor  <mjambor@suse.cz>
14897
14898         PR debug/66301
14899         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
14900         NULL instead of calling dump_enabled_p.
14901
14902 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
14903
14904         * config/aarch64/aarch64.opt: (override): New.
14905         * doc/invoke.texi (override): Document.
14906         * config/aarch64/aarch64.c (aarch64_flag_desc): New
14907         (aarch64_fusible_pairs): Likewise.
14908         (aarch64_tuning_flags): Likewise.
14909         (aarch64_tuning_override_function): Likewise.
14910         (aarch64_tuning_override_functions): Likewise.
14911         (aarch64_parse_one_option_token): Likewise.
14912         (aarch64_parse_boolean_options): Likewise.
14913         (aarch64_parse_fuse_string): Likewise.
14914         (aarch64_parse_tune_string): Likewise.
14915         (aarch64_parse_one_override_token): Likewise.
14916         (aarch64_parse_override_string): Likewise.
14917         (aarch64_override_options): Parse the -override string if it
14918         is present.
14919
14920 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
14921
14922         * config/aarch64/aarch64-protos.h (tune_params): Remove
14923         const from members.
14924         (aarch64_tune_params): Remove const, change to no longer be
14925         a pointer.
14926         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
14927         change to no longer be a pointer, initialize to generic_tunings.
14928         (aarch64_min_divisions_for_recip_mul): Change dereference of
14929         aarch64_tune_params to member access.
14930         (aarch64_reassociation_width): Likewise.
14931         (aarch64_rtx_mult_cost): Likewise.
14932         (aarch64_address_cost): Likewise.
14933         (aarch64_branch_cost): Likewise.
14934         (aarch64_rtx_costs): Likewise.
14935         (aarch64_register_move_cost): Likewise.
14936         (aarch64_memory_move_cost): Likewise.
14937         (aarch64_sched_issue_rate): Likewise.
14938         (aarch64_builtin_vectorization_cost): Likewise.
14939         (aarch64_override_options): Take a copy of the selected tuning
14940         struct in to aarch64_tune_params, rather than just setting
14941         a pointer, change dereferences of aarch64_tune_params to member
14942         accesses.
14943         (aarch64_override_options_after_change): Change dereferences of
14944         aarch64_tune_params to member access.
14945         (aarch64_macro_fusion_p): Likewise.
14946         (aarch_macro_fusion_pair_p): Likewise.
14947         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
14948
14949 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
14950
14951         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
14952         (aarch64_tune_flags): Likewise.
14953         (AARCH64_TUNE_FMA_STEERING): Likewise.
14954         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
14955         to AARCH64_FL_USE_FMA_STEERING_PASS.
14956         (cortex-a57.cortex-a53): Likewise.
14957         (cortex-a72): Use cortexa72_tunings.
14958         (cortex-a72.cortex-a53): Likewise.
14959         (exynos-m1): Likewise.
14960         * config/aarch64/aarch64-protos.h (tune_params): Add
14961         a field: extra_tuning_flags.
14962         * config/aarch64/aarch64-tuning-flags.def: New.
14963         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
14964         (aarch64_extra_tuning_flags): Likewise.
14965         (aarch64_tune_params): Declare here.
14966         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
14967         (cortexa53_tunings): Likewise.
14968         (cortexa57_tunings): Likewise.
14969         (thunderx_tunings): Likewise.
14970         (xgene1_tunings): Likewise.
14971         (cortexa72_tunings): New.
14972         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
14973          (gate): Check against aarch64_tune_params.
14974         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
14975         aarch64-protos.h.
14976
14977 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
14978
14979         * config/aarch64/aarch64-fusion-pairs.def: New.
14980         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
14981         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
14982         aarch64_fusion_pairs.
14983         (AARCH64_FUSE_MOV_MOVK): Likewise.
14984         (AARCH64_FUSE_ADRP_ADD): Likewise.
14985         (AARCH64_FUSE_MOVK_MOVK): Likewise.
14986         (AARCH64_FUSE_ADRP_LDR): Likewise.
14987         (AARCH64_FUSE_CMP_BRANCH): Likewise.
14988
14989 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
14990
14991         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
14992         SYMBOL_SMALL_GOT_28K.
14993         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
14994         relocation modifiers.
14995         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
14996         (ldr_got_small_28k_<mode>): New.
14997         (ldr_got_small_28k_sidi): New.
14998         * config/aarch64/iterators.md (got_modifier): New mode iterator.
14999         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
15000         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
15001         SYMBOL_SMALL_GOT_28K.
15002         (aarch64_rtx_costs): Add costs for new instruction sequences.
15003         (initialize_aarch64_code_model): Initialize new model.
15004         (aarch64_classify_symbol): Recognize new model and new symbol classification.
15005         (aarch64_asm_preferred_eh_data_format): Support new model.
15006         (aarch64_load_symref_appropriately): Generate new instruction
15007         sequences for -fpic.
15008         (TARGET_USE_PSEUDO_PIC_REG): New definition.
15009         (aarch64_use_pseudo_pic_reg): New function.
15010
15011 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
15012
15013         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
15014         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
15015         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
15016         (aarch64_expand_mov_immediate): Ditto.
15017         (aarch64_print_operand): Ditto.
15018         (aarch64_classify_symbol): Ditto.
15019
15020 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
15021
15022         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
15023
15024 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
15025
15026         PR bootstrap/66638
15027         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
15028         assertion failed.  Remove assertion itself.
15029
15030 2015-06-26  Richard Biener  <rguenther@suse.de>
15031
15032         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
15033         and -A CMP CST -> A CMP -CST which is redundant with a pattern
15034         in match.pd.
15035         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
15036         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
15037         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
15038         * match.pd: ... patterns here.
15039
15040 2015-06-26  Marek Polacek  <polacek@redhat.com>
15041
15042         * match.pd ((x | y) & ~(x & y) -> x ^ y,
15043         (x | y) & (~x ^ y) -> x & y): New patterns.
15044
15045 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
15046
15047         * rtl.h (emit): Add an optional boolean parameter to control
15048         whether barriers are emitted.
15049         * emit-rtl.c (emit): Likewise.
15050         * gensupport.c (get_emit_function): Return null rather than "emit".
15051         * genemit.c (gen_emit_seq): Handle the null return value.
15052         Don't emit barriers after the final instruction in the sequence.
15053         * gentarget-def.c (main): Don't emit barriers after the instruction.
15054
15055 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15056
15057         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
15058         TARGET_UNIFIED_ASM.
15059
15060 2015-06-26  Richard Biener  <rguenther@suse.de>
15061
15062         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
15063
15064 2015-06-26  Richard Biener  <rguenther@suse.de>
15065
15066         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
15067         irrespective on whether the inner operation has a single use
15068         of both off are constant.
15069
15070 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
15071             Segher Boessenkool  <segher@kernel.crashing.org>
15072
15073         PR target/66412
15074         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
15075         before doing PUT_MODE or PUT_CODE on operands to avoid
15076         in-place RTX modification.
15077
15078 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
15079
15080         * gentarget-def.c (def_target_insn): Cast return of strtol to
15081         unsigned int.
15082
15083 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15084
15085         * gimple.h (gimple_call_set_fn): Move inline function.
15086         * gimple.c (gimple_call_set_fn): Relocate here.
15087
15088 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
15089
15090         PR target/65979
15091         PR target/66611
15092         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
15093         the replacement insn will work.
15094
15095 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
15096
15097         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
15098         by default.
15099
15100 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15101
15102         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
15103         * cgraph.h: Include ipa-ref.h and plugin-api.h.
15104         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
15105         (symtab_node::address_can_be_compared_p): Move function.
15106         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
15107         definition here.
15108         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
15109         * auto-profile.c: Likewise.
15110         * bb-reorder.c: Likewise.
15111         * builtins.c: Likewise.
15112         * calls.c: Likewise.
15113         * cfgexpand.c: Likewise.
15114         * cgraphbuild.c: Likewise.
15115         * cgraphclones.c: Likewise.
15116         * cgraphunit.c: Likewise.
15117         * combine.c: Likewise.
15118         * coverage.c: Likewise.
15119         * data-streamer-in.c: Likewise.
15120         * data-streamer-out.c: Likewise.
15121         * data-streamer.c: Likewise.
15122         * dbxout.c: Likewise.
15123         * dwarf2out.c: Likewise.
15124         * except.c: Likewise.
15125         * expr.c: Likewise.
15126         * final.c: Likewise.
15127         * fold-const.c: Likewise.
15128         * ggc-page.c: Likewise.
15129         * gimple-fold.c: Likewise.
15130         * gimple-iterator.c: Likewise.
15131         * gimple-pretty-print.c: Likewise.
15132         * gimple-streamer-in.c: Likewise.
15133         * gimple-streamer-out.c: Likewise.
15134         * gimple.c: Likewise.
15135         * gimplify.c: Likewise.
15136         * ipa-chkp.c: Likewise.
15137         * ipa-comdats.c: Likewise.
15138         * ipa-cp.c: Likewise.
15139         * ipa-devirt.c: Likewise.
15140         * ipa-icf-gimple.c: Likewise.
15141         * ipa-icf.c: Likewise.
15142         * ipa-inline-analysis.c: Likewise.
15143         * ipa-inline-transform.c: Likewise.
15144         * ipa-inline.c: Likewise.
15145         * ipa-polymorphic-call.c: Likewise.
15146         * ipa-profile.c: Likewise.
15147         * ipa-prop.c: Likewise.
15148         * ipa-pure-const.c: Likewise.
15149         * ipa-ref.c: Likewise.
15150         * ipa-reference.c: Likewise.
15151         * ipa-split.c: Likewise.
15152         * ipa-utils.c: Likewise.
15153         * ipa-visibility.c: Likewise.
15154         * ipa.c: Likewise.
15155         * langhooks.c: Likewise.
15156         * lto-cgraph.c: Likewise.
15157         * lto-compress.c: Likewise.
15158         * lto-opts.c: Likewise.
15159         * lto-section-in.c: Likewise.
15160         * lto-section-out.c: Likewise.
15161         * lto-streamer-in.c: Likewise.
15162         * lto-streamer-out.c: Likewise.
15163         * lto-streamer.c: Likewise.
15164         * omp-low.c: Likewise.
15165         * opts-global.c: Likewise.
15166         * passes.c: Likewise.
15167         * predict.c: Likewise.
15168         * print-tree.c: Likewise.
15169         * profile.c: Likewise.
15170         * ree.c: Likewise.
15171         * sanopt.c: Likewise.
15172         * stor-layout.c: Likewise.
15173         * symtab.c: Likewise.
15174         * toplev.c: Likewise.
15175         * trans-mem.c: Likewise.
15176         * tree-cfg.c: Likewise.
15177         * tree-chkp.c: Likewise.
15178         * tree-eh.c: Likewise.
15179         * tree-emutls.c: Likewise.
15180         * tree-inline.c: Likewise.
15181         * tree-nested.c: Likewise.
15182         * tree-parloops.c: Likewise.
15183         * tree-pretty-print.c: Likewise.
15184         * tree-profile.c: Likewise.
15185         * tree-sra.c: Likewise.
15186         * tree-ssa-alias.c: Likewise.
15187         * tree-ssa-live.c: Likewise.
15188         * tree-ssa-loop-ivcanon.c: Likewise.
15189         * tree-ssa-loop-ivopts.c: Likewise.
15190         * tree-ssa-pre.c: Likewise.
15191         * tree-ssa-sccvn.c: Likewise.
15192         * tree-ssa-strlen.c: Likewise.
15193         * tree-ssa-structalias.c: Likewise.
15194         * tree-streamer-in.c: Likewise.
15195         * tree-streamer-out.c: Likewise.
15196         * tree-streamer.c: Likewise.
15197         * tree-switch-conversion.c: Likewise.
15198         * tree-tailcall.c: Likewise.
15199         * tree-vect-data-refs.c: Likewise.
15200         * tree-vect-stmts.c: Likewise.
15201         * tree-vectorizer.c: Likewise.
15202         * tree.c: Likewise.
15203         * tsan.c: Likewise.
15204         * ubsan.c: Likewise.
15205         * value-prof.c: Likewise.
15206         * varasm.c: Likewise.
15207         * varpool.c: Likewise.
15208         * config/arm/arm.c: Likewise.
15209         * config/bfin/bfin.c: Likewise.
15210         * config/c6x/c6x.c: Likewise.
15211         * config/cris/cris.c: Likewise.
15212         * config/darwin-c.c: Likewise.
15213         * config/darwin.c: Likewise.
15214         * config/i386/i386.c: Likewise.
15215         * config/i386/winnt.c: Likewise.
15216         * config/microblaze/microblaze.c: Likewise.
15217         * config/mips/mips.c: Likewise.
15218         * config/rs6000/rs6000.c: Likewise.
15219         * config/rx/rx.c: Likewise.
15220         * config/s390/s390.c: Likewise.
15221         * config/tilegx/mul-tables.c: Likewise.
15222
15223 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15224
15225         * config/aarch64/aarch64.c, config/alpha/alpha.c,
15226         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
15227         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
15228         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
15229         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
15230         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
15231         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
15232         config/microblaze/microblaze.c, config/mips/mips.c,
15233         config/mmix/mmix.c, config/mn10300/mn10300.c,
15234         config/moxie/moxie.c, config/msp430/msp430.c,
15235         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
15236         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
15237         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
15238         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
15239         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
15240         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
15241         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
15242         target-def.h include.
15243         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
15244
15245 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15246
15247         * Makefile.in (TARGET_DEF): Add target-insns.def.
15248         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
15249         (build/gentarget-def.o): New rule.
15250         (genprogrtl): Add target-def.
15251         * target-insns.def, gentarget-def.c: New files.
15252         * target.def: Add targetm.have_* and targetm.gen_* hooks,
15253         based on the contents of target-insns.def.
15254         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
15255         (HAVE_return, gen_return): Delete.
15256         * target-def.h: Include insn-target-def.h.
15257         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
15258         instead of direct calls.  Rely on them to do the appropriate assertions.
15259         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
15260         (convert_jumps_to_returns): Use targetm interface instead of
15261         direct calls.
15262         (thread_prologue_and_epilogue_insns): Likewise.
15263         * reorg.c (find_end_label, dbr_schedule): Likewise.
15264         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
15265         * shrink-wrap.c (convert_to_simple_return): Likewise.
15266         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
15267
15268 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15269
15270         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
15271         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
15272         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
15273         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
15274         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
15275         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
15276         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
15277         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
15278         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
15279         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
15280         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
15281         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
15282         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
15283         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
15284         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
15285         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
15286         includes to end.
15287
15288 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15289
15290         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
15291         (unbounded_int_hashmap_traits::key_type): Likewise.
15292         * hash-map.h (hash_map): Get the key type from the traits.
15293         * hash-traits.h (default_hash_traits): By default, inherit from the
15294         template parameter.
15295         * alias.c (alias_set_traits): Delete.
15296         (alias_set_entry_d::children): Use alias_set_hash as the first
15297         template parameter.
15298         (record_alias_subset): Update accordingly.
15299         * except.c (tree_hash_traits): Delete.
15300         (type_to_runtime_map): Use tree_hash as the first template parameter.
15301         (init_eh): Update accordingly.
15302         * genmatch.c (capture_id_map_hasher): Delete.
15303         (cid_map_t): Use nofree_string_hash as first template parameter.
15304         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
15305         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
15306         Use symbol_compare_hash as the first template parameter in
15307         subdivide_hash_map.
15308         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
15309         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
15310         template parameter.
15311         * passes.c (pass_registry_hasher): Delete.
15312         (name_to_pass_map): Use nofree_string_hash as the first template
15313         parameter.
15314         (register_pass_name): Update accordingly.
15315         * sanopt.c (sanopt_tree_map_traits): Delete.
15316         (sanopt_tree_triplet_map_traits): Delete.
15317         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
15318         template parameter.
15319         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
15320         the first template parameter.
15321         * sese.c (rename_map_hasher): Delete.
15322         (rename_map_type): Use tree_ssa_name_hash as the first template
15323         parameter.
15324         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
15325         (function_summary::m_map): Use map_hash as the first template
15326         parameter.
15327         (function_summary::release): Update accordingly.
15328         * tree-if-conv.c (phi_args_hash_traits): Delete.
15329         (predicate_scalar_phi): Use tree_operand_hash as the first template
15330         parameter to phi_arg_map.
15331         * tree-inline.h (dependence_hasher): Delete.
15332         (copy_body_data::dependence_map): Use dependence_hash as the first
15333         template parameter.
15334         * tree-inline.c (remap_dependence_clique): Update accordingly.
15335         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
15336         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
15337         parameter.
15338         (addr_stridxptr): Update accordingly.
15339         * value-prof.c (profile_id_traits): Delete.
15340         (cgraph_node_map): Use profile_id_hash as the first template
15341         parameter.
15342         (init_node_map): Update accordingly.
15343         * config/alpha/alpha.c (string_traits): Delete.
15344         (machine_function::links): Use nofree_string_hash as the first
15345         template parameter.
15346         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
15347         * config/m32c/m32c.c (pragma_traits): Delete.
15348         (pragma_htab): Use nofree_string_hash as the first template parameter.
15349         (m32c_note_pragma_address): Update accordingly.
15350         * config/mep/mep.c (pragma_traits): Delete.
15351         (pragma_htab): Use nofree_string_hash as the first template parameter.
15352         (mep_note_pragma_flag): Update accordingly.
15353         * config/mips/mips.c (mips16_flip_traits): Delete.
15354         (mflip_mips16_htab): Use nofree_string_hash as the first template
15355         parameter.
15356         (mflip_mips16_use_mips16_p): Update accordingly.
15357         (local_alias_traits): Delete.
15358         (mips16_local_aliases): Use nofree_string_hash as the first template
15359         parameter.
15360         (mips16_local_alias): Update accordingly.
15361
15362 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15363
15364         * hash-map-traits.h (default_hashmap_traits): Delete.
15365
15366 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15367
15368         * hash-map-traits.h (unbounded_hashmap_traits): New class.
15369         (unbounded_int_hashmap_traits): Likewise.
15370         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
15371
15372 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15373
15374         * ipa-icf.h (symbol_compare_hash): New class.
15375         (symbol_compare_hashmap_traits): Use it.
15376         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
15377         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
15378         (mem_alloc_description::reverse_mem_map_t): Remove redundant
15379         default_hashmap_traits.
15380         * sanopt.c (sanopt_tree_triplet_hash): New class.
15381         (sanopt_tree_triplet_map_traits): Use it.
15382
15383 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15384
15385         * gengtype-parse.c (require_template_declaration): Allow '+' in
15386         template parameters.  Consolidate cases.
15387         * hash-traits.h (int_hash): New class.
15388         * alias.c (alias_set_hash): New structure.
15389         (alias_set_traits): Use it.
15390         * symbol-summary.h (function_summary::map_hash): New class.
15391         (function_summary::summary_hashmap_traits): Use it.
15392         * tree-inline.h (dependence_hash): New class.
15393         (dependence_hasher): Use it.
15394         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
15395         * value-prof.c (profile_id_hash): New class.
15396         (profile_id_traits): Use it.
15397
15398 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15399
15400         * config/mips/mips.c (mips16_flip_traits): Use it.
15401         (local_alias_traits, mips16_local_aliases): Convert from a map of
15402         rtxes to a map of symbol names.
15403         (mips16_local_alias): Update accordingly.
15404
15405 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15406
15407         * hash-traits.h (string_hash, nofree_string_hash): New classes.
15408         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
15409         * passes.c (pass_registry_hasher): Likewise.
15410         * config/alpha/alpha.c (string_traits): Likewise.
15411         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
15412         * config/m32c/m32c.c (pragma_traits): Likewise.
15413         * config/mep/mep.c (pragma_traits): Likewise.
15414
15415 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15416
15417         * tree-hash-traits.h (tree_hash): New class.
15418         * except.c: Include tree-hash-traits.h.
15419         (tree_hash_traits): Use tree_hash.
15420
15421 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15422
15423         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
15424         * sese.c: Include tree-hash-traits.h.
15425         (rename_map_hasher): Use tree_ssa_name_hasher.
15426
15427 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15428
15429         * tree-hash-traits.h (tree_decl_hash): New class.
15430         * tree-ssa-strlen.c: Include tree-hash-traits.h.
15431         (stridxlist_hash_traits): Use tree_decl_hash.
15432
15433 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15434
15435         * tree-hash-traits.h: New file.
15436         (tree_operand_hash): New class.
15437         * sanopt.c: Include tree-hash-traits.h.
15438         (sanopt_tree_map_traits): Use tree_operand_hash.
15439         * tree-if-conv.c: Include tree-hash-traits.h.
15440         (phi_args_hash_traits): Use tree_operand_hash.
15441         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
15442         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
15443
15444 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15445
15446         * hash-map-traits.h: Include hash-traits.h.
15447         (simple_hashmap_traits): New class.
15448         * mem-stats.h (hash_map): Change the default traits to
15449         simple_hashmap_traits<default_hash_traits<Key> >.
15450
15451 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15452
15453         * hash-table.h: Update comments.
15454
15455 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15456
15457         * hash-traits.h (default_hash_traits): New structure.
15458         * hash-set.h (default_hashset_traits): Delete.
15459         (hash_set): Use default_hash_traits<Key> instead of
15460         default_hashset_traits.  Delete hash_entry type and use Key directly.
15461         * ipa-devirt.c (pair_traits): Delete.
15462         (default_hash_traits <type_pair>): Override.
15463         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
15464         (odr_types_equivalent_p, add_type_duplicate): Likewise.
15465
15466 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15467
15468         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
15469
15470 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15471
15472         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
15473         (has_is_empty, is_empty_helper): Delete.
15474         (has_mark_deleted, mark_deleted_helper): Delete.
15475         (has_mark_empty, mark_empty_helper): Delete.
15476         (hash_table::is_deleted): Call the Descriptor unconditionally.
15477         (hash_table::is_empty): Likewise.
15478         (hash_table::mark_deleted): Likewise.
15479         (hash_table::mark_empty): Likewise.
15480
15481 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15482
15483         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
15484         redundant typedefs and members.
15485         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
15486         redundant typedefs.
15487         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
15488         * ipa-devirt.c (odr_name_hasher): Likewise.
15489         (polymorphic_call_target_hasher): Likewise.
15490         * ira-costs.c (cost_classes_hasher): Likewise.
15491         * statistics.c (stats_counter_hasher): Likewise.
15492         * trans-mem.c (log_entry_hasher): Likewise.
15493         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
15494         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
15495         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
15496         * var-tracking.c (variable_hasher): Likewise.
15497         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
15498         Remove redundant typedefs and members.
15499
15500 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15501
15502         * hash-traits.h (ggc_cache_hasher): Rename to...
15503         (ggc_cache_remove): ...this and remove typedefs.
15504         (ggc_cache_ptr_hash): New class.
15505         * hash-table.h: Update commentary.
15506         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
15507         rather than ggc_cache_hasher.
15508         (const_wide_int_hasher, reg_attr_hasher): Likewise.
15509         (const_double_hasher, const_fixed_hasher): Likewise.
15510         * function.c (insn_cache_hasher): Likewise.
15511         * trans-mem.c (tm_wrapper_hasher): Likewise.
15512         * tree.h (tree_decl_map_cache_hasher): Likewise.
15513         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
15514         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
15515         * ubsan.c (tree_type_map_cache_hasher): Likewise.
15516         * varasm.c (tm_clone_hasher): Likewise.
15517         * config/i386/i386.c (dllimport_hasher): Likewise.
15518         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
15519         (tree_hasher): Likewise.
15520
15521 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15522
15523         * hash-traits.h (ggc_hasher): Rename to...
15524         (ggc_remover): ...this and remove typedefs.
15525         (ggc_cache_hasher): Update accordingly.  Add typedefs.
15526         (ggc_ptr_hash): New class.
15527         * hash-table.h: Update comment.
15528         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
15529         ggc_hasher.
15530         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
15531         (tree_descriptor_hasher): Likewise.
15532         * cgraph.c (function_version_hasher): Likewise.
15533         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
15534         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
15535         (dw_loc_list_hasher, addr_hasher): Likewise.
15536         * function.h (used_type_hasher): Likewise.
15537         * function.c (temp_address_hasher): Likewise.
15538         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
15539         * libfuncs.h (libfunc_hasher): Likewise.
15540         * lto-streamer.h (decl_state_hasher): Likewise.
15541         * optabs.c (libfunc_decl_hasher): Likewise.
15542         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
15543         * varasm.c (section_hasher, object_block_hasher): Likewise.
15544         (const_rtx_desc_hasher): Likewise.
15545         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
15546         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
15547
15548 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15549
15550         * hash-traits.h (free_ptr_hash): New class.
15551         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
15552         rather than typed_free_remove.  Remove redudant typedefs.
15553         (external_ref_hasher): Likewise.
15554         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
15555         (ehspec_hasher): Likewise.
15556         * ggc-common.c (saving_hasher): Likewise.
15557         * gimplify.c (gimplify_hasher): Likewise.
15558         * haifa-sched.c (delay_i2_hasher): Likewise.
15559         * loop-invariant.c (invariant_expr_hasher): Likewise.
15560         * loop-iv.c (biv_entry_hasher): Likewise.
15561         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
15562         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
15563         * tree-cfg.c (locus_discrim_hasher): Likewise.
15564         * tree-eh.c (finally_tree_hasher): Likewise.
15565         * tree-into-ssa.c (var_info_hasher): Likewise.
15566         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
15567         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
15568         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
15569         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
15570         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
15571         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
15572         (shared_bitmap_hasher): Likewise.
15573         * tree-ssa-threadupdate.c (redirection_data): Likewise.
15574         * tree-vectorizer.h (peel_info_hasher): Likewise.
15575         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
15576         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
15577
15578 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15579
15580         * hash-table.h: Update comments.
15581         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
15582         (nofree_ptr_hash): New class.
15583         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
15584         than typed_noop_remove.  Remove redudant typedefs.
15585         * attribs.c (attribute_hasher): Likewise.
15586         * cfg.c (bb_copy_hasher): Likewise.
15587         * cselib.c (cselib_hasher): Likewise.
15588         * dse.c (invariant_group_base_hasher): Likewise.
15589         * dwarf2cfi.c (trace_info_hasher): Likewise.
15590         * dwarf2out.c (macinfo_entry_hasher): Likewise.
15591         (comdat_type_hasher, loc_list_hasher): Likewise.
15592         * gcse.c (pre_ldst_expr_hasher): Likewise.
15593         * genmatch.c (id_base): Likewise.
15594         * genrecog.c (test_pattern_hasher): Likewise.
15595         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
15596         * haifa-sched.c (delay_i1_hasher): Likewise.
15597         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
15598         * ipa-icf.h (congruence_class_group_hash): Likewise.
15599         * ipa-profile.c (histogram_hash): Likewise.
15600         * ira-color.c (allocno_hard_regs_hasher): Likewise.
15601         * lto-streamer.h (string_slot_hasher): Likewise.
15602         * lto-streamer.c (tree_entry_hasher): Likewise.
15603         * plugin.c (event_hasher): Likewise.
15604         * postreload-gcse.c (expr_hasher): Likewise.
15605         * store-motion.c (st_expr_hasher): Likewise.
15606         * tree-sra.c (uid_decl_hasher): Likewise.
15607         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
15608         (ssa_name_var_hash): Likewise.
15609         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
15610         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
15611         * tree-ssa-pre.c (pre_expr_d): Likewise.
15612         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
15613         * vtable-verify.h (registration_hasher): Likewise.
15614         * vtable-verify.c (vtbl_map_hasher): Likewise.
15615         * config/arm/arm.c (libcall_hasher): Likewise.
15616         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
15617         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
15618         * config/sol2.c (comdat_entry_hasher): Likewise.
15619         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
15620         (print_fold_checksum, fold_checksum_tree): Likewise.
15621         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
15622         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
15623         (fold_build_call_array_loc): Likewise.
15624         * tree-ssa-ccp.c (gimple_htab): Likewise.
15625         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
15626         rather than pointer_type.
15627
15628 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15629
15630         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
15631         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
15632
15633 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15634
15635         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
15636         (ggc_hasher::ggc_mx): Likewise.
15637         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
15638         that duplicate ggc_hasher ones.
15639
15640 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15641
15642         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
15643         (gt_cleare_cache): Check here for deleted and empty entries.
15644         Replace handle_cache_entry with a call to keep_cache_entry.
15645         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
15646         (ggc_cache_hasher::keep_cache_entry): New function.
15647         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
15648         (tm_wrapper_hasher::keep_cache_entry): New function.
15649         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
15650         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
15651         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
15652         (type_cache_hasher::keep_cache_entry): New function.
15653         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
15654         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
15655         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
15656         (tree_type_map_cache_hasher::keep_cache_entry): New function.
15657         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
15658         (tm_clone_hasher::keep_cache_entry): New function.
15659         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
15660         (dllimport_hasher::keep_cache_entry): New function.
15661
15662 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15663
15664         * hash-table.h: Include hash-traits.h.
15665         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
15666         (ggc_cache_hasher): Move to...
15667         * hash-traits.h: ...this new file.
15668
15669 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15670
15671         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
15672         struct cl_optimization.
15673         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
15674         * tree.c (make_node_stat): Allocate cl_optimization struct.
15675         (copy_node_stat): Allocate and copy cl_optimization struct.
15676
15677 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15678
15679         * function.h (struct incoming_args): Move struct.
15680         (pass_by_reference, reference_callee_copied): Remove prototypes.
15681         * emit-rtl.h (struct incoming_args): Relocate struct here.
15682         * calls.h (pass_by_reference, reference_callee_copied): Relocate
15683         prototypes here.
15684         * function.c (pass_by_reference, reference_callee_copied): Move.
15685         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
15686         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
15687         * ipa-chkp.c: Include calls.h.
15688
15689 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
15690
15691         * alias.h (alias_set_type): Move typedef.
15692         * coretypes.h (alias_set_type): Relocate typedef here.
15693         * rtl.h: Don't include alias.h.
15694
15695 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15696
15697         * cgraph.h (cgraph_rtl_info): Move to rtl.h
15698         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
15699         and instance.
15700         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
15701         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
15702         doesn't exist.
15703         * calls.c: Include hard-reg-set.h before rtl.h.
15704         * ira.c: Likewise.
15705
15706 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
15707             Vladimir Makarov  <vmakarov@redhat.com>
15708
15709         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
15710         Add assert.
15711
15712 2015-06-25  Richard Biener  <rguenther@suse.de>
15713
15714         * fold-const.c (fold_binary_loc): Move simplification of
15715         (X <<>> C1) & C2 ...
15716         * match.pd: ... here.
15717
15718 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
15719
15720         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
15721
15722 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15723
15724         * match.pd: Add patterns for vec_conds between 1 and 0.
15725
15726 2015-06-25  Richard Biener  <rguenther@suse.de>
15727
15728         * tree-vect-stmts.c (vectorizable_conversion): Do not set
15729         STMT_VINFO_VEC_STMT for SLP.
15730         (vectorizable_store): Likewise.
15731         (vectorizable_load): Likewise.
15732         (vect_transform_stmt): Catch SLP vectorization clobbering
15733         STMT_VINFO_VEC_STMT.
15734
15735 2015-06-25  Richard Biener  <rguenther@suse.de>
15736
15737         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
15738         dumping.
15739         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
15740         cleanup resulting dead code and parameters.
15741         (vect_transform_slp_perm_load): Adjust.
15742
15743 2015-06-25  Nick Clifton  <nickc@redhat.com>
15744
15745         * config/bfin/bfin.c (bfin_expand_prologue): Set
15746         current_function_static_stack_size if flag_stack_usage_info is set.
15747         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
15748         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
15749         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
15750         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
15751
15752 2015-06-25  Tom de Vries  <tom@codesourcery.com>
15753
15754         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
15755         comment that the generated IV is unsigned.
15756
15757 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15758
15759         PR target/29693
15760         * config/arm/arm.c (arm_dbx_register_number): Return
15761         DWARF_FRAME_REGISTERS by default.
15762
15763 2015-06-25  Tom de Vries  <tom@codesourcery.com>
15764
15765         * dominance.c (calculate_dominance_info): Fix verify_dominators call
15766         argument.  Call verify_dominator when reusing dominator info.
15767
15768 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
15769
15770         PR target/66563
15771         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
15772         an additional element of the unspec vector.  Modify indices
15773         of operands.
15774         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
15775         * config/sh/sh.c (prepare_move_operands): Pass incremented
15776         const_int to gen_GOTaddr2picreg.
15777         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
15778
15779 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
15780
15781         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
15782         Condition on TARGET_FLOAT.
15783
15784 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
15785
15786         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
15787         and (no)crypto.
15788
15789 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
15790
15791         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
15792
15793         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
15794         aarch64_err_no_fpadvsimd.
15795
15796         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
15797         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
15798         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
15799         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
15800         Turn error into assert, test TARGET_FLOAT.
15801         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
15802         TARGET_FLOAT.
15803
15804 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
15805
15806         PR debug/66482
15807         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
15808
15809 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
15810
15811         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
15812
15813 2015-06-24  Renlin Li <renlin.li@arm.com>
15814
15815         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
15816         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
15817
15818 2015-06-24  Richard Biener  <rguenther@suse.de>
15819
15820         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
15821         (main): Likewise.
15822         (lower_opt_convert): Support lowering of conditional view_convert.
15823         (parser::parse_operation): Likewise.
15824         (parser::parse_for): Likewise.
15825
15826 2015-06-24  Renlin Li  <renlin.li@arm.com>
15827
15828         * varasm.c (emit_local): Use unsigned int for align variable.
15829
15830 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15831
15832         PR target/63408
15833         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
15834         for negative numbers.
15835
15836 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15837
15838         PR rtl-optimization/66306
15839         * reload.c (find_reloads): Swap the match_dup info for
15840         commutative operands.
15841
15842 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15843
15844         * config/s390/vx-builtins.md
15845         ("vec_scatter_element<mode>_<non_vec_int>")
15846         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
15847         attribute with bhfgq.
15848
15849 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15850
15851         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
15852
15853 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15854
15855         * config/s390/s390-builtin-types.def: Add flag to indicate the
15856         options under which the function type is needed.
15857         * config/s390/s390-builtins.def: Add flag to indicate the options
15858         under which the builtin is enabled.
15859         * config/s390/s390-builtins.h: Add flags parameter to macro
15860         definitions.
15861         (bflags_for_builtin): New function.
15862         (flags_for_builtin): Renamed to ...
15863         (opflags_for_builtin): ... this.
15864         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
15865         flags_for_builtin to bflags_for_builtin and
15866         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
15867         * config/s390/s390.c: Add initialization of bflags_builtin and
15868         opflags_builtin arrays.
15869         Remove code for flags_builtin.
15870         (s390_init_builtins): Only create builtin function types if one of
15871         their flags is active.
15872         Only create builtins if all of their flags are active.
15873         (s390_expand_builtin): Rename flags_for_builtin to
15874         opflags_for_builtin.
15875
15876 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15877
15878         * config/s390/vecintrin.h: Remove internal builtins.
15879
15880 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15881
15882         * config/s390/s390.c (s390_secondary_reload): Fix check for
15883         GENERAL_REGS register class.
15884
15885 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15886
15887         * config/s390/s390.c (s390_support_vector_misalignment): Call
15888         default implementation for !TARGET_VX.
15889
15890 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15891
15892         * config/s390/s390.c (s390_legitimate_constant_p): Add
15893         TARGET_VX check.
15894
15895 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15896
15897         * config/s390/s390.c (s390_vector_abi): New variable definition.
15898         (s390_check_type_for_vector_abi): New function.
15899         (TARGET_ASM_FILE_END): New macro definition.
15900         (s390_asm_file_end): New function.
15901         (s390_function_arg): Call s390_check_type_for_vector_abi.
15902         (s390_gimplify_va_arg): Likewise.
15903         * configure: Regenerate.
15904         * configure.ac: Check for .gnu_attribute Binutils feature.
15905
15906 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
15907
15908         PR target/65803
15909         * config/bfin/bfin.c (hwloop_optimize): Initialize
15910         JUMP_LABEL for newly created jump.
15911
15912 2015-06-23  Tristan Gingold  <gingold@adacore.com>
15913
15914         * collect-utils.c (collect_wait): Unlink the response file here
15915         instead of...
15916         (do_wait): ...here.
15917         (utils_cleanup): ...and here.
15918
15919 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
15920
15921         * df-scan.c: Don't include target-def.h.
15922         * targhooks.c: Likewise.
15923         * config/arm/arm-c.c: Likewise.
15924         * config/i386/i386-c.c: Likewise.
15925         * config/nds32/nds32-cost.c: Likewise.
15926         * config/nds32/nds32-fp-as-gp.c: Likewise.
15927         * config/nds32/nds32-intrinsic.c: Likewise.
15928         * config/nds32/nds32-isr.c: Likewise.
15929         * config/nds32/nds32-md-auxiliary.c: Likewise.
15930         * config/nds32/nds32-memory-manipulation.c: Likewise.
15931         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
15932         * config/nds32/nds32-predicates.c: Likewise.
15933
15934 2015-06-23  Richard Biener  <rguenther@suse.de>
15935
15936         PR tree-optimization/66636
15937         * tree-vect-stmts.c (vectorizable_store): Properly compute the
15938         def type for further defs for strided stores.
15939
15940 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
15941
15942         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
15943         conditional selects.
15944         (setcc_int<mode>, setcc_float<mode>): Reformat.
15945
15946 2015-06-23  Marek Polacek  <polacek@redhat.com>
15947
15948         * match.pd ((x + y) - (x | y) -> x & y,
15949         (x + y) - (x & y) -> x | y): New patterns.
15950
15951 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
15952
15953         PR 65711
15954         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
15955         '-dynamic-linker' within %{!shared: ...}.
15956
15957 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
15958
15959         PR target/66560
15960         * config/i386/predicates.md (addsub_vm_operator): New predicate.
15961         (addsub_vs_operator): Ditto.
15962         (addsub_vs_parallel): Ditto.
15963         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
15964         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
15965         Put minus RTX before plus and adjust vec_merge selector.
15966         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
15967         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
15968         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
15969         (addsub vec_merge splitters): New combiner splitters.
15970         (addsub vec_select/vec_concat splitters): Ditto.
15971
15972 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
15973
15974         PR tree-optimization/66449
15975         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
15976         POINTER_PLUS_EXPR for pointers.
15977
15978 2015-06-23  Alan Modra  <amodra@gmail.com>
15979
15980         * rtlanal.c (commutative_operand_precedence): Correct comments.
15981         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
15982         declaration.  Return an int.  Distinguish REG,REG return from
15983         others.
15984         (struct simplify_plus_minus_op_data): Make local to function.
15985         (simplify_plus_minus): Don't set canonicalized if merely sorting
15986         registers.  Avoid packing ops if nothing changes.  White space fixes.
15987
15988 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
15989
15990         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
15991         -fdump-ada-spec is passed but not if -fsyntax-only is.
15992
15993 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
15994
15995         PR bootstrap/63740
15996         * lra-lives.c (process_bb_lives): Check insn copying the same
15997         reload pseudo and don't create a copy for it.
15998
15999 2015-06-22  Tom de Vries  <tom@codesourcery.com>
16000
16001         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
16002         for cond_stmt.
16003
16004 2015-06-22  Tom de Vries  <tom@codesourcery.com>
16005
16006         * builtins.def (DEF_GOMP_BUILTIN): Test
16007         'flag_tree_parallelize_loops > 1' instead of
16008         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
16009
16010 2015-06-22  Tom de Vries  <tom@codesourcery.com>
16011
16012         * dominance.c (calculate_dominance_info): Verify dominators if
16013         early-out.
16014
16015 2015-06-22  Marek Polacek  <polacek@redhat.com>
16016
16017         * match.pd ((x ^ y) ^ (x | y) -> x & y,
16018         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
16019         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
16020         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
16021
16022 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
16023
16024         PR target/65871
16025         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
16026         cost of embedded comparison.
16027
16028 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16029
16030         PR target/65914
16031         * config/rs6000/predicates.md (altivec_register_operand): Permit
16032         virtual stack registers.
16033         (vsx_register_operand): Likewise.
16034         (vfloat_operand): Likewise.
16035         (vint_operand): Likewise.
16036         (vlogical_operand): Likewise.
16037
16038 2015-06-22  Richard Biener  <rguenther@suse.de>
16039
16040         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
16041         and single_scalar_iteration_cost members.
16042         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
16043         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
16044         (vect_get_single_scalar_iteration_cost): Remove.
16045         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
16046         Use LOOP_VINFO_SCALAR_ITERATION_COST.
16047         * tree-vect-loop.c (destroy_loop_vec_info): Free
16048         scalar_cost_vec.
16049         (vect_get_single_scalar_iteration_cost): Compute result into
16050         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
16051         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
16052         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
16053         (vect_estimate_min_profitable_iters): Use them.
16054
16055 2015-06-22  Christian Bruel  <christian.bruel@st.com>
16056
16057         PR target/52144
16058         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
16059         (TARGET_INSERT_ATTRIBUTES): Define.
16060         (thumb_flipper): New var.
16061         * config/arm/arm.opt (-mflip-thumb): New switch.
16062
16063 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
16064             Martin Liska  <mliska@suse.cz>
16065
16066         PR ipa/65908
16067         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
16068         construction of arg_types.
16069         (sem_function::sem_function): Likewise.
16070         (sem_function::~sem_function): Remove destruction of arg_types.
16071         (sem_function::compatible_parm_types_p): New function.
16072         (sem_function::equals_wpa): Reorg matching of return values
16073         and parameter types.
16074         (sem_function::equals_private): Reorg mathcing of argument types.
16075         (sem_function::parse_tree_args): Remove.
16076         * ipa-icf.h (init_wpa): Do not call it.
16077         (parse_tree_args): Remove.
16078         (compatible_parm_types_p): Declare.
16079         (result_type): Remove.
16080         (arg_types): Remove.
16081
16082 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
16083
16084         PR ipa/66351
16085         * ipa-polymorphic-call.c
16086         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
16087         initializing alias oracle; fix formating; set base_alias_set if it
16088         is known.
16089
16090 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
16091
16092         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
16093         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
16094         (find_inc): Likewise.
16095         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
16096         swapping.
16097         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
16098         * df-scan.c (df_swap_refs): Remove.
16099         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
16100         * dominance.c (link_roots): Use std::swap instead of manually swapping.
16101         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
16102         * fold-const.c (fold_relational_const): Likewise.
16103         * genattrtab.c (simplify_test_exp): Likewise.
16104         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
16105         gimple_simplify): Likewise.
16106         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
16107         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
16108         * ipa-devirt.c (add_type_duplicate): Likewise.
16109         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
16110         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
16111         * lra.c (lra_create_copy): Likewise.
16112         * lto-streamer-out.c (DFS::DFS): Likewise.
16113         * modulo-sched.c (get_sched_window): Likewise.
16114         * omega.c (omega_pretty_print_problem): Likewise.
16115         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
16116         * reload1.c (reloads_unique_chain_p): Likewise.
16117         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
16118         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
16119         use std::swap.
16120         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
16121         manually swapping.
16122         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
16123         predicate_mem_writes): Likewise.
16124         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
16125         * tree-predcom.c (combine_chains): Likewise.
16126         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
16127         refs_may_alias_p_1): Likewise.
16128         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
16129         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
16130         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
16131         number_of_iterations_cond): Likewise.
16132         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
16133         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
16134         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
16135         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
16136         * tree-vrp.c (extract_range_from_binary_expr_1,
16137         extract_range_from_unary_expr_1): Likewise.
16138
16139 2015-06-20  Marek Polacek  <polacek@redhat.com>
16140
16141         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
16142
16143 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
16144
16145         PR target/66591
16146         * config/sh/sh.c (prepare_move_operands): Replace subreg
16147         index term with R0 for base and index addressing.
16148
16149 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
16150
16151         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
16152         op1 is an fp zero.
16153         (movsf_aarch64): Change condition from register_operand to
16154         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
16155         load1.  Change type for alternative 7 to store1.
16156         (movdf_aarch64): Likewise.
16157
16158 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
16159
16160         * config/vax/vax.md: Adjust sign/zero extend patterns to
16161         handle SUBREGs in operands[1].
16162
16163 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16164
16165         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
16166         of manually swapping.
16167         (expand_vec_perm_interleave2): Likewise.
16168
16169 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
16170
16171         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
16172         reuse bounds created for abnormal ssa names.
16173
16174 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
16175
16176         * config/nvptx/nvptx.md (allocate_stack): Rename to...
16177         (allocate_stack_<mode>): ... this, and add :P on both
16178         match_operand and unspec.
16179         (allocate_stack): New expander.
16180
16181 2015-06-19  Christian Bruel  <christian.bruel@st.com>
16182
16183         PR target/66541
16184         PR target/52144
16185         * config/arm/arm.c (arm_set_current_function): Handle
16186         explicit default options.
16187
16188 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
16189
16190         * config/i386/i386.md (*movsicc_noc_zext): New insn.
16191         (zero-extended cmove with mem peephole2): New pattern.
16192         (cmove with mem peephole2): Merge patterns.
16193
16194 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
16195
16196         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
16197
16198 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
16199
16200         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
16201         * config/mips/mips.md (*madd4<mode>): Ditto.
16202         (*nmadd3<mode>) Ditto.
16203         (*nmadd4<mode>_fastmath): Ditto.
16204         (*nmadd3<mode>_fastmath): Ditto.
16205         (*nmsub4<mode>): Ditto.
16206         (*nmsub3<mode>): Ditto.
16207         (*nmsub4<mode>_fastmath): Ditto.
16208         (*nmsub3<mode>_fastmath): Ditto.
16209
16210 2015-06-18  Michael Matz  <matz@suse.de>
16211
16212         PR middle-end/66253
16213         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
16214         grouped strided stores.
16215         (vectorizable_load): Don't use the DR from first_stmt in
16216         the non-SLP grouped strided case.
16217
16218 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16219
16220         PR target/66569
16221         * function.c (assign_bounds): Add arguments assign_regs,
16222         assign_special, assign_bt.
16223         (assign_parms): For vararg functions handle bounds in BT
16224         and special slots after incoming vararg bounds.
16225
16226 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16227
16228         PR middle-end/66568
16229         * cfgexpand.c (expand_return): Handle missing bounds.
16230         (expand_gimple_stmt_1): Likewise.
16231         * tree-chkp.c (chkp_expand_zero_bounds): New.
16232         * tree-chkp.h (chkp_expand_zero_bounds): New.
16233
16234 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16235
16236         PR middle-end/66567
16237         * ipa-chkp.c (chkp_maybe_create_clone): Require
16238         functions to be instrumentable.
16239         * tree-chkp.c (chkp_replace_function_pointer): Use
16240         chkp_instrumentable_p instead of attribute check.
16241
16242 2015-06-18  Richard Biener  <rguenther@suse.de>
16243
16244         PR tree-optimization/66510
16245         * tree-vect-stmts.c (vectorizable_load): Properly compute the
16246         number of vector loads for SLP permuted loads.
16247         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
16248         check the stride for loop vectorization.
16249         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
16250         vectorization factor.
16251         (vect_analyze_group_access): If the group size is not a power
16252         of two require a epilogue loop.
16253         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
16254         compute and optimizing and alias test pruning after final
16255         vectorization factor computation.
16256         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
16257         vector alignment.
16258         (vect_transform_slp_perm_load): Properly compute the original
16259         number of vector load stmts.
16260
16261 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
16262
16263         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
16264         "unlikely character , in @var" warning.
16265
16266 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
16267
16268         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
16269         (ix86_function_arg_advance): Ditto.
16270         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
16271
16272 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16273
16274         * function.h (struct rtl_data): Remove struct and accessor macros.
16275         * emit-rtl.h (struct rtl_data): Relocate to here.
16276         * Makefile.in (GTFILES): Add emit-rtl.h.
16277         * df-core.c: Include emit-rtl.h.
16278         * genattrtab.c: Likewise.
16279         * genconditions.c: Likewise.
16280         * genpreds.c: Likewise.
16281         * genrecog.c: Likewise.
16282         * regcprop.c: Likewise.
16283         * resource.c: Likewise.
16284         * sched-rgn.c: Likewise.
16285         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
16286         * config/i386/winnt.c: Likewise.
16287
16288 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
16289
16290         PR middle-end/66429
16291         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
16292         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
16293         and has_force_vectorize_loops flags from cfun into
16294         child_cfun.
16295         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
16296         if simduid is non-NULL.
16297         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
16298         * passes.def (pass_simduid_cleanup): Add new pass after loop
16299         passes.
16300         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
16301         indirection from htab argument's type.
16302         (shrink_simd_arrays): New function.
16303         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
16304         Don't call adjust_simduid_builtins if there are no loops.
16305         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
16306         (pass_simduid_cleanup::execute): New method.
16307         (make_pass_simduid_cleanup): New function.
16308
16309 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
16310
16311         * tree-core.h (tree_target_option): Make opts field a pointer to a
16312         cl_target_option instead of an instance of the struct.
16313         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
16314         the structure.
16315         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
16316         TARGET_OPTION_NODE.
16317         (copy_node_stat): Allocate and copy struct cl_target_option.
16318
16319 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16320
16321         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
16322         Remove conditional exposure of prototypes.
16323         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
16324         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
16325         definitions in tree.h with functions.
16326         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
16327         anon_aggrname_p.
16328         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
16329
16330 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
16331
16332         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
16333         (*cmp<mode>_signed): ... this.
16334         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
16335         (*cmp<mode>_unsigned): ... this.  Remove %b.
16336
16337 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16338
16339         * coretypes.h: Include input.h and as-a.h.
16340         * rtl.h: Include input.h and as-a.h for generator files.
16341         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
16342         * vec.c: Don't include diagnostic-core.h.
16343         * alias.c: Do not include input.h, line-map.h or is-a.h.
16344         * asan.c: Likewise.
16345         * attribs.c: Likewise.
16346         * auto-inc-dec.c: Likewise.
16347         * auto-profile.c: Likewise.
16348         * bb-reorder.c: Likewise.
16349         * bt-load.c: Likewise.
16350         * builtins.c: Likewise.
16351         * caller-save.c: Likewise.
16352         * calls.c: Likewise.
16353         * ccmp.c: Likewise.
16354         * cfg.c: Likewise.
16355         * cfganal.c: Likewise.
16356         * cfgbuild.c: Likewise.
16357         * cfgcleanup.c: Likewise.
16358         * cfgexpand.c: Likewise.
16359         * cfghooks.c: Likewise.
16360         * cfgloop.c: Likewise.
16361         * cfgloop.h: Likewise.
16362         * cfgloopanal.c: Likewise.
16363         * cfgloopmanip.c: Likewise.
16364         * cfgrtl.c: Likewise.
16365         * cgraph.c: Likewise.
16366         * cgraphbuild.c: Likewise.
16367         * cgraphclones.c: Likewise.
16368         * cgraphunit.c: Likewise.
16369         * cilk-common.c: Likewise.
16370         * combine-stack-adj.c: Likewise.
16371         * combine.c: Likewise.
16372         * compare-elim.c: Likewise.
16373         * convert.c: Likewise.
16374         * coverage.c: Likewise.
16375         * cppbuiltin.c: Likewise.
16376         * cprop.c: Likewise.
16377         * cse.c: Likewise.
16378         * cselib.c: Likewise.
16379         * data-streamer-in.c: Likewise.
16380         * data-streamer-out.c: Likewise.
16381         * data-streamer.c: Likewise.
16382         * dbxout.c: Likewise.
16383         * dce.c: Likewise.
16384         * ddg.c: Likewise.
16385         * debug.c: Likewise.
16386         * df-core.c: Likewise.
16387         * df-problems.c: Likewise.
16388         * df-scan.c: Likewise.
16389         * df.h: Likewise.
16390         * dfp.c: Likewise.
16391         * diagnostic-core.h: Likewise.
16392         * diagnostic.c: Likewise.
16393         * dojump.c: Likewise.
16394         * dominance.c: Likewise.
16395         * domwalk.c: Likewise.
16396         * double-int.c: Likewise.
16397         * dse.c: Likewise.
16398         * dumpfile.c: Likewise.
16399         * dumpfile.h: Likewise.
16400         * dwarf2asm.c: Likewise.
16401         * dwarf2cfi.c: Likewise.
16402         * dwarf2out.c: Likewise.
16403         * emit-rtl.c: Likewise.
16404         * et-forest.c: Likewise.
16405         * except.c: Likewise.
16406         * explow.c: Likewise.
16407         * expmed.c: Likewise.
16408         * expr.c: Likewise.
16409         * final.c: Likewise.
16410         * fixed-value.c: Likewise.
16411         * fold-const.c: Likewise.
16412         * function.c: Likewise.
16413         * fwprop.c: Likewise.
16414         * gcc-plugin.h: Likewise.
16415         * gcse.c: Likewise.
16416         * generic-match-head.c: Likewise.
16417         * ggc-page.c: Likewise.
16418         * gimple-builder.c: Likewise.
16419         * gimple-expr.c: Likewise.
16420         * gimple-fold.c: Likewise.
16421         * gimple-iterator.c: Likewise.
16422         * gimple-low.c: Likewise.
16423         * gimple-match-head.c: Likewise.
16424         * gimple-pretty-print.c: Likewise.
16425         * gimple-ssa-isolate-paths.c: Likewise.
16426         * gimple-ssa-strength-reduction.c: Likewise.
16427         * gimple-streamer-in.c: Likewise.
16428         * gimple-streamer-out.c: Likewise.
16429         * gimple-streamer.h: Likewise.
16430         * gimple-walk.c: Likewise.
16431         * gimple.c: Likewise.
16432         * gimplify-me.c: Likewise.
16433         * gimplify.c: Likewise.
16434         * godump.c: Likewise.
16435         * graph.c: Likewise.
16436         * graphite-blocking.c: Likewise.
16437         * graphite-dependences.c: Likewise.
16438         * graphite-interchange.c: Likewise.
16439         * graphite-isl-ast-to-gimple.c: Likewise.
16440         * graphite-optimize-isl.c: Likewise.
16441         * graphite-poly.c: Likewise.
16442         * graphite-scop-detection.c: Likewise.
16443         * graphite-sese-to-poly.c: Likewise.
16444         * graphite.c: Likewise.
16445         * haifa-sched.c: Likewise.
16446         * hw-doloop.c: Likewise.
16447         * ifcvt.c: Likewise.
16448         * init-regs.c: Likewise.
16449         * input.c: Likewise.
16450         * internal-fn.c: Likewise.
16451         * ipa-chkp.c: Likewise.
16452         * ipa-comdats.c: Likewise.
16453         * ipa-cp.c: Likewise.
16454         * ipa-devirt.c: Likewise.
16455         * ipa-icf-gimple.c: Likewise.
16456         * ipa-icf.c: Likewise.
16457         * ipa-inline-analysis.c: Likewise.
16458         * ipa-inline-transform.c: Likewise.
16459         * ipa-inline.c: Likewise.
16460         * ipa-polymorphic-call.c: Likewise.
16461         * ipa-profile.c: Likewise.
16462         * ipa-prop.c: Likewise.
16463         * ipa-pure-const.c: Likewise.
16464         * ipa-ref.c: Likewise.
16465         * ipa-reference.c: Likewise.
16466         * ipa-split.c: Likewise.
16467         * ipa-utils.c: Likewise.
16468         * ipa-visibility.c: Likewise.
16469         * ipa.c: Likewise.
16470         * ira-build.c: Likewise.
16471         * ira-color.c: Likewise.
16472         * ira-conflicts.c: Likewise.
16473         * ira-costs.c: Likewise.
16474         * ira-emit.c: Likewise.
16475         * ira-lives.c: Likewise.
16476         * ira.c: Likewise.
16477         * jump.c: Likewise.
16478         * langhooks.c: Likewise.
16479         * lcm.c: Likewise.
16480         * loop-doloop.c: Likewise.
16481         * loop-init.c: Likewise.
16482         * loop-invariant.c: Likewise.
16483         * loop-iv.c: Likewise.
16484         * loop-unroll.c: Likewise.
16485         * lower-subreg.c: Likewise.
16486         * lra-assigns.c: Likewise.
16487         * lra-coalesce.c: Likewise.
16488         * lra-constraints.c: Likewise.
16489         * lra-eliminations.c: Likewise.
16490         * lra-lives.c: Likewise.
16491         * lra-remat.c: Likewise.
16492         * lra-spills.c: Likewise.
16493         * lra.c: Likewise.
16494         * lto-cgraph.c: Likewise.
16495         * lto-compress.c: Likewise.
16496         * lto-opts.c: Likewise.
16497         * lto-section-in.c: Likewise.
16498         * lto-section-out.c: Likewise.
16499         * lto-streamer-in.c: Likewise.
16500         * lto-streamer-out.c: Likewise.
16501         * lto-streamer.c: Likewise.
16502         * mcf.c: Likewise.
16503         * mode-switching.c: Likewise.
16504         * modulo-sched.c: Likewise.
16505         * omega.c: Likewise.
16506         * omp-low.c: Likewise.
16507         * optabs.c: Likewise.
16508         * opts-global.c: Likewise.
16509         * opts.h: Likewise.
16510         * passes.c: Likewise.
16511         * plugin.c: Likewise.
16512         * postreload-gcse.c: Likewise.
16513         * postreload.c: Likewise.
16514         * predict.c: Likewise.
16515         * pretty-print.h: Likewise.
16516         * print-rtl.c: Likewise.
16517         * print-tree.c: Likewise.
16518         * profile.c: Likewise.
16519         * real.c: Likewise.
16520         * realmpfr.c: Likewise.
16521         * recog.c: Likewise.
16522         * ree.c: Likewise.
16523         * reg-stack.c: Likewise.
16524         * regcprop.c: Likewise.
16525         * reginfo.c: Likewise.
16526         * regrename.c: Likewise.
16527         * regstat.c: Likewise.
16528         * reload.c: Likewise.
16529         * reload1.c: Likewise.
16530         * reorg.c: Likewise.
16531         * resource.c: Likewise.
16532         * rtl-chkp.c: Likewise.
16533         * rtl-error.c: Likewise.
16534         * rtlanal.c: Likewise.
16535         * rtlhooks.c: Likewise.
16536         * sanopt.c: Likewise.
16537         * sched-deps.c: Likewise.
16538         * sched-ebb.c: Likewise.
16539         * sched-rgn.c: Likewise.
16540         * sched-vis.c: Likewise.
16541         * sdbout.c: Likewise.
16542         * sel-sched-dump.c: Likewise.
16543         * sel-sched-ir.c: Likewise.
16544         * sel-sched.c: Likewise.
16545         * sese.c: Likewise.
16546         * shrink-wrap.c: Likewise.
16547         * simplify-rtx.c: Likewise.
16548         * stack-ptr-mod.c: Likewise.
16549         * statistics.c: Likewise.
16550         * stmt.c: Likewise.
16551         * stor-layout.c: Likewise.
16552         * store-motion.c: Likewise.
16553         * streamer-hooks.c: Likewise.
16554         * stringpool.c: Likewise.
16555         * symtab.c: Likewise.
16556         * target-globals.c: Likewise.
16557         * targhooks.c: Likewise.
16558         * toplev.c: Likewise.
16559         * tracer.c: Likewise.
16560         * trans-mem.c: Likewise.
16561         * tree-affine.c: Likewise.
16562         * tree-browser.c: Likewise.
16563         * tree-call-cdce.c: Likewise.
16564         * tree-cfg.c: Likewise.
16565         * tree-cfgcleanup.c: Likewise.
16566         * tree-chkp-opt.c: Likewise.
16567         * tree-chkp.c: Likewise.
16568         * tree-chrec.c: Likewise.
16569         * tree-complex.c: Likewise.
16570         * tree-data-ref.c: Likewise.
16571         * tree-dfa.c: Likewise.
16572         * tree-diagnostic.c: Likewise.
16573         * tree-dump.c: Likewise.
16574         * tree-eh.c: Likewise.
16575         * tree-emutls.c: Likewise.
16576         * tree-if-conv.c: Likewise.
16577         * tree-inline.c: Likewise.
16578         * tree-into-ssa.c: Likewise.
16579         * tree-iterator.c: Likewise.
16580         * tree-loop-distribution.c: Likewise.
16581         * tree-nested.c: Likewise.
16582         * tree-nrv.c: Likewise.
16583         * tree-object-size.c: Likewise.
16584         * tree-outof-ssa.c: Likewise.
16585         * tree-parloops.c: Likewise.
16586         * tree-phinodes.c: Likewise.
16587         * tree-predcom.c: Likewise.
16588         * tree-pretty-print.c: Likewise.
16589         * tree-profile.c: Likewise.
16590         * tree-scalar-evolution.c: Likewise.
16591         * tree-sra.c: Likewise.
16592         * tree-ssa-address.c: Likewise.
16593         * tree-ssa-alias.c: Likewise.
16594         * tree-ssa-ccp.c: Likewise.
16595         * tree-ssa-coalesce.c: Likewise.
16596         * tree-ssa-copy.c: Likewise.
16597         * tree-ssa-copyrename.c: Likewise.
16598         * tree-ssa-dce.c: Likewise.
16599         * tree-ssa-dom.c: Likewise.
16600         * tree-ssa-dse.c: Likewise.
16601         * tree-ssa-forwprop.c: Likewise.
16602         * tree-ssa-ifcombine.c: Likewise.
16603         * tree-ssa-live.c: Likewise.
16604         * tree-ssa-loop-ch.c: Likewise.
16605         * tree-ssa-loop-im.c: Likewise.
16606         * tree-ssa-loop-ivcanon.c: Likewise.
16607         * tree-ssa-loop-ivopts.c: Likewise.
16608         * tree-ssa-loop-manip.c: Likewise.
16609         * tree-ssa-loop-niter.c: Likewise.
16610         * tree-ssa-loop-prefetch.c: Likewise.
16611         * tree-ssa-loop-unswitch.c: Likewise.
16612         * tree-ssa-loop.c: Likewise.
16613         * tree-ssa-math-opts.c: Likewise.
16614         * tree-ssa-operands.c: Likewise.
16615         * tree-ssa-phiopt.c: Likewise.
16616         * tree-ssa-phiprop.c: Likewise.
16617         * tree-ssa-pre.c: Likewise.
16618         * tree-ssa-propagate.c: Likewise.
16619         * tree-ssa-reassoc.c: Likewise.
16620         * tree-ssa-sccvn.c: Likewise.
16621         * tree-ssa-scopedtables.c: Likewise.
16622         * tree-ssa-sink.c: Likewise.
16623         * tree-ssa-strlen.c: Likewise.
16624         * tree-ssa-structalias.c: Likewise.
16625         * tree-ssa-tail-merge.c: Likewise.
16626         * tree-ssa-ter.c: Likewise.
16627         * tree-ssa-threadedge.c: Likewise.
16628         * tree-ssa-threadupdate.c: Likewise.
16629         * tree-ssa-uncprop.c: Likewise.
16630         * tree-ssa-uninit.c: Likewise.
16631         * tree-ssa.c: Likewise.
16632         * tree-ssanames.c: Likewise.
16633         * tree-stdarg.c: Likewise.
16634         * tree-streamer-in.c: Likewise.
16635         * tree-streamer-out.c: Likewise.
16636         * tree-streamer.c: Likewise.
16637         * tree-switch-conversion.c: Likewise.
16638         * tree-tailcall.c: Likewise.
16639         * tree-vect-data-refs.c: Likewise.
16640         * tree-vect-generic.c: Likewise.
16641         * tree-vect-loop-manip.c: Likewise.
16642         * tree-vect-loop.c: Likewise.
16643         * tree-vect-patterns.c: Likewise.
16644         * tree-vect-slp.c: Likewise.
16645         * tree-vect-stmts.c: Likewise.
16646         * tree-vectorizer.c: Likewise.
16647         * tree-vrp.c: Likewise.
16648         * tree.c: Likewise.
16649         * tsan.c: Likewise.
16650         * ubsan.c: Likewise.
16651         * valtrack.c: Likewise.
16652         * value-prof.c: Likewise.
16653         * var-tracking.c: Likewise.
16654         * varasm.c: Likewise.
16655         * varpool.c: Likewise.
16656         * vmsdbgout.c: Likewise.
16657         * vtable-verify.c: Likewise.
16658         * web.c: Likewise.
16659         * wide-int.cc: Likewise.
16660         * xcoffout.c: Likewise.
16661         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
16662         * common/common-targhooks.c: Likewise.
16663         * config/aarch64/aarch64-builtins.c: Likewise.
16664         * config/aarch64/aarch64.c: Likewise.
16665         * config/alpha/alpha.c: Likewise.
16666         * config/arc/arc.c: Likewise.
16667         * config/arm/aarch-common.c: Likewise.
16668         * config/arm/arm-builtins.c: Likewise.
16669         * config/arm/arm-c.c: Likewise.
16670         * config/arm/arm.c: Likewise.
16671         * config/avr/avr-c.c: Likewise.
16672         * config/avr/avr-log.c: Likewise.
16673         * config/avr/avr.c: Likewise.
16674         * config/bfin/bfin.c: Likewise.
16675         * config/c6x/c6x.c: Likewise.
16676         * config/cr16/cr16.c: Likewise.
16677         * config/cris/cris.c: Likewise.
16678         * config/darwin-c.c: Likewise.
16679         * config/darwin.c: Likewise.
16680         * config/default-c.c: Likewise.
16681         * config/epiphany/epiphany.c: Likewise.
16682         * config/epiphany/mode-switch-use.c: Likewise.
16683         * config/epiphany/resolve-sw-modes.c: Likewise.
16684         * config/fr30/fr30.c: Likewise.
16685         * config/frv/frv.c: Likewise.
16686         * config/ft32/ft32.c: Likewise.
16687         * config/glibc-c.c: Likewise.
16688         * config/h8300/h8300.c: Likewise.
16689         * config/i386/i386-c.c: Likewise.
16690         * config/i386/i386.c: Likewise.
16691         * config/i386/msformat-c.c: Likewise.
16692         * config/i386/winnt-cxx.c: Likewise.
16693         * config/i386/winnt-stubs.c: Likewise.
16694         * config/i386/winnt.c: Likewise.
16695         * config/ia64/ia64-c.c: Likewise.
16696         * config/ia64/ia64.c: Likewise.
16697         * config/iq2000/iq2000.c: Likewise.
16698         * config/lm32/lm32.c: Likewise.
16699         * config/m32c/m32c-pragma.c: Likewise.
16700         * config/m32c/m32c.c: Likewise.
16701         * config/m32r/m32r.c: Likewise.
16702         * config/m68k/m68k.c: Likewise.
16703         * config/mcore/mcore.c: Likewise.
16704         * config/mep/mep-pragma.c: Likewise.
16705         * config/mep/mep.c: Likewise.
16706         * config/microblaze/microblaze-c.c: Likewise.
16707         * config/microblaze/microblaze.c: Likewise.
16708         * config/mips/mips.c: Likewise.
16709         * config/mmix/mmix.c: Likewise.
16710         * config/mn10300/mn10300.c: Likewise.
16711         * config/moxie/moxie.c: Likewise.
16712         * config/msp430/msp430-c.c: Likewise.
16713         * config/msp430/msp430.c: Likewise.
16714         * config/nds32/nds32-cost.c: Likewise.
16715         * config/nds32/nds32-fp-as-gp.c: Likewise.
16716         * config/nds32/nds32-intrinsic.c: Likewise.
16717         * config/nds32/nds32-isr.c: Likewise.
16718         * config/nds32/nds32-md-auxiliary.c: Likewise.
16719         * config/nds32/nds32-memory-manipulation.c: Likewise.
16720         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
16721         * config/nds32/nds32-predicates.c: Likewise.
16722         * config/nds32/nds32.c: Likewise.
16723         * config/nios2/nios2.c: Likewise.
16724         * config/nvptx/nvptx.c: Likewise.
16725         * config/pa/pa.c: Likewise.
16726         * config/pdp11/pdp11.c: Likewise.
16727         * config/rl78/rl78-c.c: Likewise.
16728         * config/rl78/rl78.c: Likewise.
16729         * config/rs6000/rs6000-c.c: Likewise.
16730         * config/rs6000/rs6000.c: Likewise.
16731         * config/rx/rx.c: Likewise.
16732         * config/s390/s390-c.c: Likewise.
16733         * config/s390/s390.c: Likewise.
16734         * config/sh/sh-c.c: Likewise.
16735         * config/sh/sh-mem.cc: Likewise.
16736         * config/sh/sh.c: Likewise.
16737         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
16738         * config/sh/sh_treg_combine.cc: Likewise.
16739         * config/sol2-c.c: Likewise.
16740         * config/sol2-cxx.c: Likewise.
16741         * config/sol2-stubs.c: Likewise.
16742         * config/sol2.c: Likewise.
16743         * config/sparc/sparc-c.c: Likewise.
16744         * config/sparc/sparc.c: Likewise.
16745         * config/spu/spu-c.c: Likewise.
16746         * config/spu/spu.c: Likewise.
16747         * config/stormy16/stormy16.c: Likewise.
16748         * config/tilegx/mul-tables.c: Likewise.
16749         * config/tilegx/tilegx-c.c: Likewise.
16750         * config/tilegx/tilegx.c: Likewise.
16751         * config/tilepro/mul-tables.c: Likewise.
16752         * config/tilepro/tilepro-c.c: Likewise.
16753         * config/tilepro/tilepro.c: Likewise.
16754         * config/v850/v850-c.c: Likewise.
16755         * config/v850/v850.c: Likewise.
16756         * config/vax/vax.c: Likewise.
16757         * config/visium/visium.c: Likewise.
16758         * config/vms/vms-c.c: Likewise.
16759         * config/vms/vms.c: Likewise.
16760         * config/vxworks.c: Likewise.
16761         * config/winnt-c.c: Likewise.
16762         * config/xtensa/xtensa.c: Likewise.
16763
16764 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
16765
16766         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
16767         function.
16768         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
16769
16770 2015-06-17  Richard Biener  <rguenther@suse.de>
16771
16772         PR tree-optimization/66251
16773         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
16774         stmts for SLP strided stores.
16775
16776         Revert
16777         2015-05-22  Richard Biener  <rguenther@suse.de>
16778
16779         PR tree-optimization/66251
16780         * tree-vect-stmts.c (vectorizable_conversion): Properly
16781         set STMT_VINFO_VEC_STMT even for the SLP case.
16782
16783         2015-05-26  Michael Matz  <matz@suse.de>
16784
16785         PR middle-end/66251
16786         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
16787         STMT_VINFO_VEC_STMT, also with SLP.
16788
16789 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
16790
16791         PR target/56766
16792         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
16793         (*avx_addsubv4df3_1s): Ditto.
16794         (*sse3_addsubv2df3_1): Ditto.
16795         (*sse3_addsubv2df3_1s): Ditto.
16796         (*avx_addsubv8sf3_1): Ditto.
16797         (*avx_addsubv8sf3_1s): Ditto.
16798         (*sse3_addsubv4sf3_1): Ditto.
16799         (*sse3_addsubv4sf3_1s): Ditto.
16800
16801 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
16802
16803         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
16804         (SYSROOT_SUFFIX_SPEC): Update.
16805         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
16806         (STARTFILE_PREFIX_SPEC): Update.
16807         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
16808         (MULTILIB_REQUIRED): New.
16809         (MULTILIB_OSDIRNAMES): New.
16810         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
16811         (MULTILIB_REQUIRED): New.
16812         (MULTILIB_OSDIRNAMES): New.
16813
16814 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
16815
16816         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
16817         * config/aarch64/aarch64-options-extensions.def: Update "fP",
16818         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
16819         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
16820         (AARCH64_FL_PAN): New.
16821         (AARCH64_FL_LOR): New.
16822         (AARCH64_FL_RDMA): New.
16823         (AARCH64_FL_FOR_ARCH8_1): New.
16824         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
16825         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
16826
16827 2015-06-16  Martin Liska  <mliska@suse.cz>
16828
16829         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
16830         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
16831         guard.
16832
16833 2015-06-16  Richard Biener  <rguenther@suse.de>
16834
16835         * tree-vect-stmts.c (vectorizable_store): Adjust.
16836         (vectorizable_load): Likewise.
16837         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
16838         Simplify.
16839         (vect_create_data_ref_ptr): Likewise.
16840         (bump_vector_ptr): Adjust.
16841
16842 2015-06-16  Richard Biener  <rguenther@suse.de>
16843
16844         * tree-vect-stmts.c (vectorizable_load): Properly start loads
16845         with the first element if this is grouped loads.
16846
16847 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
16848
16849         * config/arm/arm-protos.h (struct tune_params): Rename
16850         log_op_non_sc to log_op_non_short_circuit, and rename enum
16851         values to expand SC to SHORT_CIRCUIT.
16852         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
16853         to LOG_OP_NON_SHORT_CIRCUIT.
16854         (arm_fastmul_tune):Likewise
16855         (arm_strongarm_tune): Likewise.
16856         (arm_xscale_tune): Likewise.
16857         (arm_9e_tune): Likewise.
16858         (arm_marvell_pj4_tune): Likewise.
16859         (arm_v6t2_tune): Likewise.
16860         (arm_cortex_tune): Likewise.
16861         (arm_cortex_a8_tune): Likewise.
16862         (arm_cortex_a7_tune): Likewise.
16863         (arm_cortex_a15_tune): Likewise.
16864         (arm_cortex_a53_tune): Likewise.
16865         (arm_cortex_a57_tune): Likewise.
16866         (arm_xgene1_tune): Likewise.
16867         (arm_cortex_a5_tune): Likewise.
16868         (arm_cortex_a9_tune): Likewise.
16869         (arm_cortex_a12_tune): Likewise.
16870         (arm_v7m_tune): Likewise.
16871         (arm_cortex_m7_tune): Likewise.
16872         (arm_v6m_tune): Likewise.
16873         (arm_fa726te_tune): Likewise.
16874
16875 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
16876
16877         * altivec.md: Delete UNSPEC_VMLADDUHM.
16878         (mulv4si3_p8): New pattern.
16879         (mulv4si3): Use it for POWER8.
16880         (mulv8hi3): Use vmladduhm with zero addend.
16881         (altivec_vmladduhm): Descriptive RTL.
16882
16883 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
16884
16885         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
16886         to use neon_move instead of mov_imm.
16887         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
16888         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
16889
16890         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
16891         aarch64_float_const_zero_rtx_p check before TFmode check.
16892         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
16893         an fp zero.
16894         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
16895         code and attributes to match.  Change condition from register_operand
16896         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
16897         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
16898         to store2.
16899
16900 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
16901
16902         PR debug/66535
16903         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
16904         there is no parent.
16905
16906 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
16907
16908         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
16909         HOST_WIDE_INT parameter.
16910
16911 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
16912
16913         PR ipa/66181
16914         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
16915         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
16916         TYPE_NO_FORCE_BLK.
16917         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
16918
16919 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
16920
16921         * rtl.h (classify_insn): Declare.
16922         * emit-rtl.c (classify_insn): Move to...
16923         * rtl.c: ...here and add generator support.
16924         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
16925         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
16926         * genemit.c (gen_emit_seq): New function.
16927         (gen_expand, gen_split): Use it.
16928
16929 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
16930
16931         * tree.c (make_vector_stat): Fix comment to state that the
16932         function returns a VECTOR_CST.
16933
16934 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
16935
16936         * gensupport.h (add_implicit_parallel): Declare.
16937         * genrecog.c (add_implicit_parallel): Move to...
16938         * gensupport.c (add_implicit_parallel): ...here.
16939         (process_one_cond_exec): Use it.
16940         * genemit.c (gen_insn): Likewise.
16941
16942 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
16943
16944         PR bootstrap/66448
16945         * passes.c (rest_of_decl_compilation): Do not register globals for
16946         early debug if they are declared in built-ins.
16947
16948 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
16949
16950         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
16951
16952 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16953
16954         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
16955         manually swapping.
16956         (noce_try_cmove_arith): Likewise.
16957         (noce_get_alt_condition): Likewise.
16958
16959 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
16960
16961         * common/config/i386/i386-common.c
16962         (OPTION_MASK_ISA_MWAITX_SET): New.
16963         (ix86_handle_option): Handle mwaitx.
16964         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
16965         (x86_64-*-*): Likewise.
16966         * config/i386/mwaitxintrin.h: New header.
16967         * config/i386/cpuid.h (bit_MWAITX):  Define.
16968         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
16969         MWAITX support.
16970         * config/i386/i386.opt (mwaitx): New.
16971         * config/i386/i386-builtin-types.def
16972         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
16973         * config/i386/i386-c.c: Define __MWAITX__ if needed.
16974         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
16975         (PTA_MWAITX): New.
16976         (ix86_option_override_internal): Handle new option.
16977         (processor_alias_table): Added PTA_MWAITX.
16978         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
16979         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
16980         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
16981         IX86_BUILTIN_MONITORX  built-ins.
16982         * config/i386/i386.h (TARGET_MWAITX): New.
16983         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
16984         UNSPEC_MONITORX.
16985         (mwaitx):  New pattern.
16986         (monitorx_<mode>): New pattern.
16987         * config/i386/x86intrin.h: Include mwaitxintrin.h.
16988         * doc/extend.texi: Document monitorx and mwaitx builtins.
16989         * doc/invoke.texi: Document -mmwaitx option.
16990
16991 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
16992
16993         * emit-rtl.c (need_atomic_barrier_p): Mask model with
16994         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
16995
16996 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
16997
16998         * dbxout.c (xcoff_debug_hooks): Provide a function for
16999         register_main_translation_unit hook.
17000
17001 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
17002
17003         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
17004         variants cases from switch.
17005         (rs6000_post_atomic_barrier): Same.
17006         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
17007         (rs6000_expand_atomic_exchange): Same.
17008         (rs6000_expand_atomic_op): Same.
17009         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
17010         SYNC variants cases from switch.
17011         (atomic_load): Same.
17012         (atomic_store): Same.
17013
17014 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
17015
17016         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
17017         CONST_INT for goto.
17018
17019 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
17020
17021         PR bootstrap/66448
17022         * dwarf2out.c (check_die): Check for common duplicate attributes.
17023         (add_location_or_const_value_attribute): Do not add duplicate
17024         attributes.
17025         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
17026         time around.
17027         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
17028         (gen_type_die_with_usage): Call check_die.
17029         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
17030
17031 2015-06-11  Jason Merrill  <jason@redhat.com>
17032
17033         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
17034         dies.
17035
17036 2015-06-11  Marek Polacek  <polacek@redhat.com>
17037
17038         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
17039
17040 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
17041
17042         PR bootstrap/66252
17043         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
17044         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
17045         (*addx_extend_sp32): Fix pasto.
17046         (*subx_extend): Rename into...
17047         (*subx_extend_sp32): ...this.
17048         (*adddi3_extend_sp32): Add earlyclobber.
17049         (*subdi3_insn_sp32): Likewise.
17050         (*subdi3_extend_sp32): Likewise.
17051         (*and_not_di_sp32): Likewise.
17052         (*or_not_di_sp32): Likewise.
17053         (*xor_not_di_sp32): Likewise.
17054         (*negdi2_sp32): Likewise.
17055         (*one_cmpldi2_sp32): Likewise.
17056
17057 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
17058
17059         * debug.h (struct gcc_debug_hooks): Add a
17060         register_main_translation_unit hook.
17061         * debug.c (do_nothing_debug_hooks): Provide a function for this
17062         new hook.
17063         * dbxout.c (dbx_debug_hooks): Likewise.
17064         * sdbout.c (sdb_debug_hooks): Likewise.
17065         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
17066         * dwarf2out.c (main_translation_unit): New global variable.
17067         (dwarf2out_register_main_translation_unit): New function
17068         implementing the new hook.
17069         (dwarf2_debug_hooks): Assign
17070         dwarf2out_register_main_translation_unit to this new hook.
17071         (dwarf2out_init): Associate any main translation unit to
17072         comp_unit_die ().
17073
17074 2015-06-11  Marek Polacek  <polacek@redhat.com>
17075
17076         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
17077
17078 2015-06-11  Marek Polacek  <polacek@redhat.com>
17079
17080         * match.pd: Use single_use throughout.
17081
17082 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17083
17084         * config/arm/arm.c (arm_option_params_internal): When optimising
17085         for speed set max_insns_skipped when arm_restrict_it.
17086
17087 2015-06-11  Christian Bruel  <christian.bruel@st.com>
17088
17089         PR target/52144
17090         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
17091          macros in ...
17092         (arm_cpu_builtins): New function.
17093         (arm_pragma_target_parse): Call arm_cpu_builtins.
17094         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
17095         (arm_register_target_pragmas): Likewise.
17096         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
17097          Call arm_register_target_pragmas.
17098         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
17099         (arm_pragma_target_parse): Likewise.
17100
17101 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
17102
17103         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
17104         of the second operand.
17105
17106 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
17107
17108         PR target/66473
17109         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
17110         to prepare mask operand for AVX512 modes.
17111
17112 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
17113
17114         PR target/66474
17115         * doc/md.texi (Machine Constraints): Document that on the PowerPC
17116         if you use a constraint that targets a VSX register, you must use
17117         %x<n> in the template.
17118
17119 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
17120
17121         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
17122         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
17123         (define_insn "trap"): New definition.
17124
17125 2015-06-10  Richard Biener  <rguenther@suse.de>
17126
17127         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
17128         out from ...
17129         (vect_supported_load_permutation_p): ... here.  Handle
17130         supportable permutations in reductions.
17131         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
17132         for vectorizing strided group loads.
17133
17134 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
17135
17136         PR target/66470
17137         * config/i386/i386.c (ix86_split_long_move): For collisions
17138         involving direct tls segment refs, move the UNSPEC_TP possibly
17139         wrapped in ZERO_EXTEND out of the address for lea, to each of
17140         the memory loads.
17141
17142 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17143
17144         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
17145         dmb sy. Adjust tabs.
17146
17147 2015-06-10  Tom de Vries  <tom@codesourcery.com>
17148
17149         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
17150
17151 2015-06-10  Martin Liska  <mliska@suse.cz>
17152
17153         PR bootstrap/66471
17154         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
17155         all enum values in mem_alloc_origin.
17156         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
17157         name.
17158         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
17159         * bitmap.c (bitmap_register): Likewise.
17160         (dump_bitmap_statistics): Likewise.
17161         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
17162         (ggc_record_overhead): Likewise.
17163         * hash-map.h: Likewise.
17164         * hash-set.h: Likewise.
17165         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
17166         * hash-table.h: Likewise.
17167         * vec.c (vec_prefix::register_overhead): Likewise.
17168         (vec_prefix::release_overhead): Likewise.
17169         (dump_vec_loc_statistics): Likewise.
17170
17171 2015-06-09  Christian Bruel  <christian.bruel@st.com>
17172
17173         PR target/52144
17174         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
17175         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
17176         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
17177         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
17178         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
17179         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
17180         (arm_valid_target_attribute_p): Likewise.
17181         (arm_set_current_function, arm_can_inline_p): Likewise.
17182         (arm_valid_target_attribute_rec): Likewise.
17183         (arm_previous_fndecl): New variable.
17184         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
17185         (TARGET_CAN_INLINE_P): Define.
17186         (arm_asm_trampoline_template): Emit mode.
17187         (arm_file_start): Don't set unified syntax.
17188         (arm_declare_function_name): Set unified syntax and mode.
17189         (arm_option_override): Init target_option_default_node.
17190         and target_option_current_node.
17191         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
17192         (*call_symbol): Likewise.
17193         * doc/extend.texi: Document ARM/Thumb target attribute.
17194         * doc/invoke.texi: Likewise.
17195
17196 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17197
17198         Revert:
17199         2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17200         PR rtl-optimization/64164
17201         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
17202         * tree-ssa-copyrename.c: Removed.
17203         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
17204         -ftree-coalesce-vars.
17205         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
17206         * common.opt (ftree-copyrename): Ignore.
17207         (ftree-coalesce-inlined-vars): Likewise.
17208         * doc/invoke.texi: Remove the ignored options above.
17209         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
17210         * tree-ssa-coalesce.h: ... here.
17211         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
17212         headers required by it.
17213         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
17214         across variables when flag_tree_coalesce_vars.  Check register
17215         use and promoted modes to allow coalescing.  Moved to
17216         tree-ssa-coalesce.c.
17217         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
17218         with its member functions to tree-ssa-coalesce.c.
17219         (var_map_base_init): Likewise.  Renamed to
17220         compute_samebase_partition_bases.
17221         (partition_view_normal): Drop want_bases parameter.
17222         (partition_view_bitmap): Likewise.
17223         * tree-ssa-live.h: Adjust declarations.
17224         * tree-ssa-coalesce.c: Include explow.h.
17225         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
17226         default defs at the entry point.
17227         (dump_part_var_map): New.
17228         (compute_optimized_partition_bases): New, called by...
17229         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
17230         of compute_samebase_partition_bases.  Adjust.
17231         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
17232         * cfgexpand.c (leader_merge): New.
17233         (get_rtl_for_parm_ssa_default_def): New.
17234         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
17235         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
17236         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
17237         redundant MEM attr setting.
17238         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
17239         from...
17240         (expand_one_stack_var): ... this.  New wrapper to check and
17241         skip already expanded SSA partitions.
17242         (record_alignment_for_reg_var): New, factored out of...
17243         (expand_one_var): ... this.
17244         (expand_one_ssa_partition): New.
17245         (adjust_one_expanded_partition_var): New.
17246         (expand_one_register_var): Check and skip already expanded SSA
17247         partitions.
17248         (expand_used_vars): Don't create DECLs for anonymous SSA
17249         names.  Expand all SSA partitions, then adjust all SSA names.
17250         (pass::execute): Replace the loops that set
17251         SA.partition_to_pseudo from partition leaders and cleared
17252         DECL_RTL for multi-location variables, and that which used to
17253         rename vars and set attrs, with one that clears DECL_RTL and
17254         checks that PARMs and RESULTs default_defs match DECL_RTL.
17255         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
17256         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
17257         * explow.c (promote_ssa_mode): New.
17258         * explow.h (promote_ssa_mode): Declare.
17259         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
17260         * function.c: Include cfgexpand.h.
17261         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
17262         (use_register_for_parm_decl): Wrapper for the above to
17263         special-case the result_ptr.
17264         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
17265         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
17266         multiple locations.
17267         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
17268         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
17269         (assign_parm_setup_block): Prefer SSA-assigned location.
17270         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
17271         if stack_parm is NULL.
17272         (assign_parm_setup_stack): Prefer SSA-assigned location.
17273         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
17274         rtl before testing for pointer bounds.  Special-case result_ptr.
17275         (expand_function_start): Maybe reset DECL_RTL of result.
17276         Prefer SSA-assigned location for result and static chain.
17277         Factor out DECL_RESULT and SET_DECL_RTL.
17278         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
17279         anonymous SSA names.  Use promote_ssa_mode.
17280         (get_temp_reg): Likewise.
17281         (remove_ssa_form): Adjust.
17282         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
17283         and get its reg_usage for reg invalidation.
17284         (compute_bb_dataflow): Pass it insn.
17285         (emit_notes_in_bb): Likewise.
17286         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
17287         fail assert on conversion between unsigned types.
17288
17289 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17290
17291         PR tree-optimization/65460
17292         * omp-low.c (expand_omp_target): Set parallelized_function on
17293         cgraph_node for child_fn.
17294
17295 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17296
17297         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
17298         parallelized_function before add_new_function.
17299
17300 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
17301
17302         * gcc-plugin.h: Move decls to plugin.h and include it.
17303         * plugin.h: Relocate decls from gcc-plugin.h
17304         * ggc-page.c: Include required header files.
17305         * passes.c: Likewise.
17306         * cgraphunit.c: Likewise.
17307
17308 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17309
17310         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
17311
17312 2015-06-09  Jason Merrill  <jason@redhat.com>
17313
17314         PR bootstrap/66448
17315         * toplev.c (check_global_declaration): Don't warn about a clone.
17316
17317 2015-06-09  Marek Polacek  <polacek@redhat.com>
17318
17319         PR tree-optimization/66299
17320         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
17321         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
17322         patterns.
17323
17324 2015-06-09  Richard Biener  <rguenther@suse.de>
17325
17326         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
17327         (vect_analyze_slp_instance): Instead do not falsely drop
17328         load permutations.
17329
17330 2015-06-09  Richard Biener  <rguenther@suse.de>
17331
17332         PR middle-end/66423
17333         * match.pd: Handle A % (unsigned)(1 << B).
17334
17335 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
17336
17337         * varasm.c (output_object_block_htab): Remove.
17338         (output_object_block_compare): New.
17339         (output_object_blocks): Sort named object_blocks before outputting
17340         them.
17341
17342 2015-06-09  Richard Biener  <rguenther@suse.de>
17343
17344         PR tree-optimization/66419
17345         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
17346         consider GROUP_GAP when detecting a perfect subchain.
17347
17348 2015-06-09  Nick Clifton  <nickc@redhat.com>
17349
17350         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
17351         place read only data in the .frodata section.
17352
17353 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
17354
17355         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
17356         (atomic_store<mode>): Likewise.
17357
17358 2015-06-09  Richard Biener  <rguenther@suse.de>
17359
17360         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
17361
17362 2015-06-09  Richard Biener  <rguenther@suse.de>
17363
17364         PR middle-end/66413
17365         * tree-inline.c (insert_init_debug_bind): Unshare value.
17366
17367 2015-06-09  Richard Biener  <rguenther@suse.de>
17368
17369         PR tree-optimization/66396
17370         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
17371         Rename virtual operands.
17372
17373 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17374
17375         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
17376         always return false.
17377
17378 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17379
17380         PR rtl-optimization/64164
17381         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
17382         * tree-ssa-copyrename.c: Removed.
17383         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
17384         -ftree-coalesce-vars.
17385         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
17386         * common.opt (ftree-copyrename): Ignore.
17387         (ftree-coalesce-inlined-vars): Likewise.
17388         * doc/invoke.texi: Remove the ignored options above.
17389         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
17390         * tree-ssa-coalesce.h: ... here.
17391         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
17392         headers required by it.
17393         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
17394         across variables when flag_tree_coalesce_vars.  Check register
17395         use and promoted modes to allow coalescing.  Moved to
17396         tree-ssa-coalesce.c.
17397         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
17398         with its member functions to tree-ssa-coalesce.c.
17399         (var_map_base_init): Likewise.  Renamed to
17400         compute_samebase_partition_bases.
17401         (partition_view_normal): Drop want_bases parameter.
17402         (partition_view_bitmap): Likewise.
17403         * tree-ssa-live.h: Adjust declarations.
17404         * tree-ssa-coalesce.c: Include explow.h.
17405         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
17406         default defs at the entry point.
17407         (dump_part_var_map): New.
17408         (compute_optimized_partition_bases): New, called by...
17409         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
17410         of compute_samebase_partition_bases.  Adjust.
17411         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
17412         * cfgexpand.c (leader_merge): New.
17413         (get_rtl_for_parm_ssa_default_def): New.
17414         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
17415         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
17416         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
17417         redundant MEM attr setting.
17418         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
17419         from...
17420         (expand_one_stack_var): ... this.  New wrapper to check and
17421         skip already expanded SSA partitions.
17422         (record_alignment_for_reg_var): New, factored out of...
17423         (expand_one_var): ... this.
17424         (expand_one_ssa_partition): New.
17425         (adjust_one_expanded_partition_var): New.
17426         (expand_one_register_var): Check and skip already expanded SSA
17427         partitions.
17428         (expand_used_vars): Don't create DECLs for anonymous SSA
17429         names.  Expand all SSA partitions, then adjust all SSA names.
17430         (pass::execute): Replace the loops that set
17431         SA.partition_to_pseudo from partition leaders and cleared
17432         DECL_RTL for multi-location variables, and that which used to
17433         rename vars and set attrs, with one that clears DECL_RTL and
17434         checks that PARMs and RESULTs default_defs match DECL_RTL.
17435         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
17436         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
17437         * explow.c (promote_ssa_mode): New.
17438         * explow.h (promote_ssa_mode): Declare.
17439         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
17440         * function.c: Include cfgexpand.h.
17441         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
17442         (use_register_for_parm_decl): Wrapper for the above to
17443         special-case the result_ptr.
17444         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
17445         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
17446         multiple locations.
17447         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
17448         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
17449         (assign_parm_setup_block): Prefer SSA-assigned location.
17450         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
17451         if stack_parm is NULL.
17452         (assign_parm_setup_stack): Prefer SSA-assigned location.
17453         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
17454         rtl before testing for pointer bounds.  Special-case result_ptr.
17455         (expand_function_start): Maybe reset DECL_RTL of result.
17456         Prefer SSA-assigned location for result and static chain.
17457         Factor out DECL_RESULT and SET_DECL_RTL.
17458         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
17459         anonymous SSA names.  Use promote_ssa_mode.
17460         (get_temp_reg): Likewise.
17461         (remove_ssa_form): Adjust.
17462         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
17463         and get its reg_usage for reg invalidation.
17464         (compute_bb_dataflow): Pass it insn.
17465         (emit_notes_in_bb): Likewise.
17466         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
17467         fail assert on conversion between unsigned types.
17468
17469 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17470
17471         PR debug/58315
17472         * tree-inline.c (reset_debug_binding): New.
17473         (reset_debug_bindings): Likewise.
17474         (expand_call_inline): Call it.
17475
17476 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
17477
17478         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
17479         TYPE_STRING_FLAG.
17480
17481 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
17482
17483         * lto-streamer-out.c (lto_output_location): Stream
17484         reserved locations correctly.
17485         * lto-streamer-in.c (lto_output_location): Likewise.
17486
17487 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
17488
17489         * coretypes.h: Include hash-table.h and hash-set.h for host files.
17490         * ggc.h: Don't include statistics.h>
17491         * hash-map.h: Remove all includes.
17492         * hash-set.h: Likewise.
17493         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
17494         the include list. Remove <new>.
17495         * inchash.h: Remove all includes.
17496         * mem-stats.h: Likewise.
17497         * vec.h: No special processing for generators or ggc.
17498         * alias.c : Adjust include files.
17499         * alloc-pool.c : Likewise.
17500         * alloc-pool.h : Likewise.
17501         * asan.c : Likewise.
17502         * attribs.c : Likewise.
17503         * auto-inc-dec.c : Likewise.
17504         * auto-profile.c : Likewise.
17505         * bb-reorder.c : Likewise.
17506         * bitmap.c : Likewise.
17507         * bitmap.h : Likewise.
17508         * bt-load.c : Likewise.
17509         * builtins.c : Likewise.
17510         * caller-save.c : Likewise.
17511         * calls.c : Likewise.
17512         * ccmp.c : Likewise.
17513         * cfg.c : Likewise.
17514         * cfganal.c : Likewise.
17515         * cfgbuild.c : Likewise.
17516         * cfgcleanup.c : Likewise.
17517         * cfgexpand.c : Likewise.
17518         * cfghooks.c : Likewise.
17519         * cfgloop.c : Likewise.
17520         * cfgloop.h : Likewise.
17521         * cfgloopanal.c : Likewise.
17522         * cfgloopmanip.c : Likewise.
17523         * cfgrtl.c : Likewise.
17524         * cgraph.c : Likewise.
17525         * cgraphbuild.c : Likewise.
17526         * cgraphclones.c : Likewise.
17527         * cgraphunit.c : Likewise.
17528         * cilk-common.c : Likewise.
17529         * combine-stack-adj.c : Likewise.
17530         * combine.c : Likewise.
17531         * compare-elim.c : Likewise.
17532         * context.c : Likewise.
17533         * convert.c : Likewise.
17534         * coverage.c : Likewise.
17535         * cppbuiltin.c : Likewise.
17536         * cprop.c : Likewise.
17537         * cse.c : Likewise.
17538         * cselib.c : Likewise.
17539         * data-streamer-in.c : Likewise.
17540         * data-streamer-out.c : Likewise.
17541         * data-streamer.c : Likewise.
17542         * data-streamer.h : Likewise.
17543         * dbxout.c : Likewise.
17544         * dce.c : Likewise.
17545         * ddg.c : Likewise.
17546         * debug.c : Likewise.
17547         * df-core.c : Likewise.
17548         * df-problems.c : Likewise.
17549         * df-scan.c : Likewise.
17550         * df.h : Likewise.
17551         * dfp.c : Likewise.
17552         * dojump.c : Likewise.
17553         * dominance.c : Likewise.
17554         * domwalk.c : Likewise.
17555         * double-int.c : Likewise.
17556         * dse.c : Likewise.
17557         * dumpfile.c : Likewise.
17558         * dwarf2asm.c : Likewise.
17559         * dwarf2cfi.c : Likewise.
17560         * dwarf2out.c : Likewise.
17561         * emit-rtl.c : Likewise.
17562         * et-forest.c : Likewise.
17563         * except.c : Likewise.
17564         * except.h : Likewise.
17565         * explow.c : Likewise.
17566         * expmed.c : Likewise.
17567         * expr.c : Likewise.
17568         * final.c : Likewise.
17569         * fixed-value.c : Likewise.
17570         * fold-const.c : Likewise.
17571         * function.c : Likewise.
17572         * fwprop.c : Likewise.
17573         * gcc-plugin.h : Likewise.
17574         * gcc.c : Likewise.
17575         * gcse-common.c : Likewise.
17576         * gcse.c : Likewise.
17577         * genattrtab.c : Likewise.
17578         * genautomata.c : Likewise.
17579         * genconditions.c : Likewise.
17580         * genemit.c : Likewise.
17581         * generic-match-head.c : Likewise.
17582         * genextract.c : Likewise.
17583         * gengtype-state.c : Likewise.
17584         * gengtype.c : Likewise.
17585         * genhooks.c : Likewise.
17586         * genmatch.c : Likewise.
17587         * genmodes.c : Likewise.
17588         * genrecog.c : Likewise.
17589         * gensupport.c : Likewise.
17590         * ggc-common.c : Likewise.
17591         * ggc-internal.h : Likewise.
17592         * ggc-none.c : Likewise.
17593         * ggc-page.c : Likewise.
17594         * gimple-builder.c : Likewise.
17595         * gimple-expr.c : Likewise.
17596         * gimple-fold.c : Likewise.
17597         * gimple-iterator.c : Likewise.
17598         * gimple-low.c : Likewise.
17599         * gimple-match-head.c : Likewise.
17600         * gimple-pretty-print.c : Likewise.
17601         * gimple-ssa-isolate-paths.c : Likewise.
17602         * gimple-ssa-strength-reduction.c : Likewise.
17603         * gimple-ssa.h : Likewise.
17604         * gimple-streamer-in.c : Likewise.
17605         * gimple-streamer-out.c : Likewise.
17606         * gimple-streamer.h : Likewise.
17607         * gimple-walk.c : Likewise.
17608         * gimple.c : Likewise.
17609         * gimplify-me.c : Likewise.
17610         * gimplify.c : Likewise.
17611         * godump.c : Likewise.
17612         * graph.c : Likewise.
17613         * graphds.c : Likewise.
17614         * graphite-blocking.c : Likewise.
17615         * graphite-dependences.c : Likewise.
17616         * graphite-interchange.c : Likewise.
17617         * graphite-isl-ast-to-gimple.c : Likewise.
17618         * graphite-optimize-isl.c : Likewise.
17619         * graphite-poly.c : Likewise.
17620         * graphite-scop-detection.c : Likewise.
17621         * graphite-sese-to-poly.c : Likewise.
17622         * graphite.c : Likewise.
17623         * haifa-sched.c : Likewise.
17624         * hard-reg-set.h : Likewise.
17625         * hw-doloop.c : Likewise.
17626         * ifcvt.c : Likewise.
17627         * inchash.c : Likewise.
17628         * incpath.c : Likewise.
17629         * init-regs.c : Likewise.
17630         * input.c : Likewise.
17631         * internal-fn.c : Likewise.
17632         * ipa-chkp.c : Likewise.
17633         * ipa-comdats.c : Likewise.
17634         * ipa-cp.c : Likewise.
17635         * ipa-devirt.c : Likewise.
17636         * ipa-icf-gimple.c : Likewise.
17637         * ipa-icf.c : Likewise.
17638         * ipa-inline-analysis.c : Likewise.
17639         * ipa-inline-transform.c : Likewise.
17640         * ipa-inline.c : Likewise.
17641         * ipa-polymorphic-call.c : Likewise.
17642         * ipa-profile.c : Likewise.
17643         * ipa-prop.c : Likewise.
17644         * ipa-pure-const.c : Likewise.
17645         * ipa-ref.c : Likewise.
17646         * ipa-reference.c : Likewise.
17647         * ipa-split.c : Likewise.
17648         * ipa-utils.c : Likewise.
17649         * ipa-visibility.c : Likewise.
17650         * ipa.c : Likewise.
17651         * ira-build.c : Likewise.
17652         * ira-color.c : Likewise.
17653         * ira-conflicts.c : Likewise.
17654         * ira-costs.c : Likewise.
17655         * ira-emit.c : Likewise.
17656         * ira-lives.c : Likewise.
17657         * ira.c : Likewise.
17658         * jump.c : Likewise.
17659         * langhooks.c : Likewise.
17660         * lcm.c : Likewise.
17661         * libfuncs.h : Likewise.
17662         * lists.c : Likewise.
17663         * loop-doloop.c : Likewise.
17664         * loop-init.c : Likewise.
17665         * loop-invariant.c : Likewise.
17666         * loop-iv.c : Likewise.
17667         * loop-unroll.c : Likewise.
17668         * lower-subreg.c : Likewise.
17669         * lra-assigns.c : Likewise.
17670         * lra-coalesce.c : Likewise.
17671         * lra-constraints.c : Likewise.
17672         * lra-eliminations.c : Likewise.
17673         * lra-lives.c : Likewise.
17674         * lra-remat.c : Likewise.
17675         * lra-spills.c : Likewise.
17676         * lra.c : Likewise.
17677         * lto-cgraph.c : Likewise.
17678         * lto-compress.c : Likewise.
17679         * lto-opts.c : Likewise.
17680         * lto-section-in.c : Likewise.
17681         * lto-section-out.c : Likewise.
17682         * lto-streamer-in.c : Likewise.
17683         * lto-streamer-out.c : Likewise.
17684         * lto-streamer.c : Likewise.
17685         * lto-streamer.h : Likewise.
17686         * mcf.c : Likewise.
17687         * mode-switching.c : Likewise.
17688         * modulo-sched.c : Likewise.
17689         * omega.c : Likewise.
17690         * omp-low.c : Likewise.
17691         * optabs.c : Likewise.
17692         * opts-global.c : Likewise.
17693         * opts.h : Likewise.
17694         * passes.c : Likewise.
17695         * plugin.c : Likewise.
17696         * postreload-gcse.c : Likewise.
17697         * postreload.c : Likewise.
17698         * predict.c : Likewise.
17699         * print-rtl.c : Likewise.
17700         * print-tree.c : Likewise.
17701         * profile.c : Likewise.
17702         * read-md.c : Likewise.
17703         * read-md.h : Likewise.
17704         * read-rtl.c : Likewise.
17705         * real.c : Likewise.
17706         * realmpfr.c : Likewise.
17707         * recog.c : Likewise.
17708         * ree.c : Likewise.
17709         * reg-stack.c : Likewise.
17710         * regcprop.c : Likewise.
17711         * reginfo.c : Likewise.
17712         * regrename.c : Likewise.
17713         * regstat.c : Likewise.
17714         * reload.c : Likewise.
17715         * reload1.c : Likewise.
17716         * reorg.c : Likewise.
17717         * resource.c : Likewise.
17718         * rtl-chkp.c : Likewise.
17719         * rtl.c : Likewise.
17720         * rtl.h : Likewise.
17721         * rtlanal.c : Likewise.
17722         * rtlhash.c : Likewise.
17723         * rtlhash.h : Likewise.
17724         * rtlhooks.c : Likewise.
17725         * sanopt.c : Likewise.
17726         * sched-deps.c : Likewise.
17727         * sched-ebb.c : Likewise.
17728         * sched-rgn.c : Likewise.
17729         * sched-vis.c : Likewise.
17730         * sdbout.c : Likewise.
17731         * sel-sched-dump.c : Likewise.
17732         * sel-sched-ir.c : Likewise.
17733         * sel-sched-ir.h : Likewise.
17734         * sel-sched.c : Likewise.
17735         * sese.c : Likewise.
17736         * shrink-wrap.c : Likewise.
17737         * shrink-wrap.h : Likewise.
17738         * simplify-rtx.c : Likewise.
17739         * stack-ptr-mod.c : Likewise.
17740         * statistics.c : Likewise.
17741         * stmt.c : Likewise.
17742         * stor-layout.c : Likewise.
17743         * store-motion.c : Likewise.
17744         * stringpool.c : Likewise.
17745         * symtab.c : Likewise.
17746         * target-globals.c : Likewise.
17747         * targhooks.c : Likewise.
17748         * tlink.c : Likewise.
17749         * toplev.c : Likewise.
17750         * tracer.c : Likewise.
17751         * trans-mem.c : Likewise.
17752         * tree-affine.c : Likewise.
17753         * tree-affine.h : Likewise.
17754         * tree-browser.c : Likewise.
17755         * tree-call-cdce.c : Likewise.
17756         * tree-cfg.c : Likewise.
17757         * tree-cfgcleanup.c : Likewise.
17758         * tree-chkp-opt.c : Likewise.
17759         * tree-chkp.c : Likewise.
17760         * tree-chrec.c : Likewise.
17761         * tree-complex.c : Likewise.
17762         * tree-data-ref.c : Likewise.
17763         * tree-dfa.c : Likewise.
17764         * tree-diagnostic.c : Likewise.
17765         * tree-dump.c : Likewise.
17766         * tree-eh.c : Likewise.
17767         * tree-eh.h : Likewise.
17768         * tree-emutls.c : Likewise.
17769         * tree-hasher.h : Likewise.
17770         * tree-if-conv.c : Likewise.
17771         * tree-inline.c : Likewise.
17772         * tree-inline.h : Likewise.
17773         * tree-into-ssa.c : Likewise.
17774         * tree-iterator.c : Likewise.
17775         * tree-loop-distribution.c : Likewise.
17776         * tree-nested.c : Likewise.
17777         * tree-nrv.c : Likewise.
17778         * tree-object-size.c : Likewise.
17779         * tree-outof-ssa.c : Likewise.
17780         * tree-parloops.c : Likewise.
17781         * tree-phinodes.c : Likewise.
17782         * tree-predcom.c : Likewise.
17783         * tree-pretty-print.c : Likewise.
17784         * tree-profile.c : Likewise.
17785         * tree-scalar-evolution.c : Likewise.
17786         * tree-sra.c : Likewise.
17787         * tree-ssa-address.c : Likewise.
17788         * tree-ssa-alias.c : Likewise.
17789         * tree-ssa-ccp.c : Likewise.
17790         * tree-ssa-coalesce.c : Likewise.
17791         * tree-ssa-copy.c : Likewise.
17792         * tree-ssa-copyrename.c : Likewise.
17793         * tree-ssa-dce.c : Likewise.
17794         * tree-ssa-dom.c : Likewise.
17795         * tree-ssa-dse.c : Likewise.
17796         * tree-ssa-forwprop.c : Likewise.
17797         * tree-ssa-ifcombine.c : Likewise.
17798         * tree-ssa-live.c : Likewise.
17799         * tree-ssa-loop-ch.c : Likewise.
17800         * tree-ssa-loop-im.c : Likewise.
17801         * tree-ssa-loop-ivcanon.c : Likewise.
17802         * tree-ssa-loop-ivopts.c : Likewise.
17803         * tree-ssa-loop-manip.c : Likewise.
17804         * tree-ssa-loop-niter.c : Likewise.
17805         * tree-ssa-loop-prefetch.c : Likewise.
17806         * tree-ssa-loop-unswitch.c : Likewise.
17807         * tree-ssa-loop.c : Likewise.
17808         * tree-ssa-math-opts.c : Likewise.
17809         * tree-ssa-operands.c : Likewise.
17810         * tree-ssa-phiopt.c : Likewise.
17811         * tree-ssa-phiprop.c : Likewise.
17812         * tree-ssa-pre.c : Likewise.
17813         * tree-ssa-propagate.c : Likewise.
17814         * tree-ssa-reassoc.c : Likewise.
17815         * tree-ssa-sccvn.c : Likewise.
17816         * tree-ssa-scopedtables.c : Likewise.
17817         * tree-ssa-sink.c : Likewise.
17818         * tree-ssa-strlen.c : Likewise.
17819         * tree-ssa-structalias.c : Likewise.
17820         * tree-ssa-tail-merge.c : Likewise.
17821         * tree-ssa-ter.c : Likewise.
17822         * tree-ssa-threadedge.c : Likewise.
17823         * tree-ssa-threadupdate.c : Likewise.
17824         * tree-ssa-uncprop.c : Likewise.
17825         * tree-ssa-uninit.c : Likewise.
17826         * tree-ssa.c : Likewise.
17827         * tree-ssanames.c : Likewise.
17828         * tree-stdarg.c : Likewise.
17829         * tree-streamer-in.c : Likewise.
17830         * tree-streamer-out.c : Likewise.
17831         * tree-streamer.c : Likewise.
17832         * tree-streamer.h : Likewise.
17833         * tree-switch-conversion.c : Likewise.
17834         * tree-tailcall.c : Likewise.
17835         * tree-vect-data-refs.c : Likewise.
17836         * tree-vect-generic.c : Likewise.
17837         * tree-vect-loop-manip.c : Likewise.
17838         * tree-vect-loop.c : Likewise.
17839         * tree-vect-patterns.c : Likewise.
17840         * tree-vect-slp.c : Likewise.
17841         * tree-vect-stmts.c : Likewise.
17842         * tree-vectorizer.c : Likewise.
17843         * tree-vectorizer.h : Likewise.
17844         * tree-vrp.c : Likewise.
17845         * tree.c : Likewise.
17846         * tsan.c : Likewise.
17847         * ubsan.c : Likewise.
17848         * valtrack.c : Likewise.
17849         * valtrack.h : Likewise.
17850         * value-prof.c : Likewise.
17851         * var-tracking.c : Likewise.
17852         * varasm.c : Likewise.
17853         * varpool.c : Likewise.
17854         * vec.c: Likewise.
17855         * vmsdbgout.c : Likewise.
17856         * vtable-verify.c : Likewise.
17857         * vtable-verify.h : Likewise.
17858         * web.c : Likewise.
17859         * wide-int.cc : Likewise.
17860         * xcoffout.c : Likewise.
17861         * config/aarch64/aarch64-builtins.c : Likewise.
17862         * config/aarch64/aarch64.c : Likewise.
17863         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
17864         * config/alpha/alpha.c : Likewise.
17865         * config/arc/arc.c : Likewise.
17866         * config/arm/aarch-common.c : Likewise.
17867         * config/arm/arm-builtins.c : Likewise.
17868         * config/arm/arm-c.c : Likewise.
17869         * config/arm/arm.c : Likewise.
17870         * config/avr/avr-c.c : Likewise.
17871         * config/avr/avr-log.c : Likewise.
17872         * config/avr/avr.c : Likewise.
17873         * config/bfin/bfin.c : Likewise.
17874         * config/c6x/c6x.c : Likewise.
17875         * config/cr16/cr16.c : Likewise.
17876         * config/cris/cris.c : Likewise.
17877         * config/darwin-c.c : Likewise.
17878         * config/darwin.c : Likewise.
17879         * config/default-c.c : Likewise.
17880         * config/epiphany/epiphany.c : Likewise.
17881         * config/epiphany/mode-switch-use.c : Likewise.
17882         * config/epiphany/resolve-sw-modes.c : Likewise.
17883         * config/fr30/fr30.c : Likewise.
17884         * config/frv/frv.c : Likewise.
17885         * config/ft32/ft32.c : Likewise.
17886         * config/glibc-c.c : Likewise.
17887         * config/h8300/h8300.c : Likewise.
17888         * config/i386/i386-c.c : Likewise.
17889         * config/i386/i386.c : Likewise.
17890         * config/i386/msformat-c.c : Likewise.
17891         * config/i386/winnt-cxx.c : Likewise.
17892         * config/i386/winnt-stubs.c : Likewise.
17893         * config/i386/winnt.c : Likewise.
17894         * config/ia64/ia64-c.c : Likewise.
17895         * config/ia64/ia64.c : Likewise.
17896         * config/iq2000/iq2000.c : Likewise.
17897         * config/lm32/lm32.c : Likewise.
17898         * config/m32c/m32c-pragma.c : Likewise.
17899         * config/m32c/m32c.c : Likewise.
17900         * config/m32r/m32r.c : Likewise.
17901         * config/m68k/m68k.c : Likewise.
17902         * config/mcore/mcore.c : Likewise.
17903         * config/mep/mep-pragma.c : Likewise.
17904         * config/mep/mep.c : Likewise.
17905         * config/microblaze/microblaze-c.c : Likewise.
17906         * config/microblaze/microblaze.c : Likewise.
17907         * config/mips/mips.c : Likewise.
17908         * config/mmix/mmix.c : Likewise.
17909         * config/mn10300/mn10300.c : Likewise.
17910         * config/moxie/moxie.c : Likewise.
17911         * config/msp430/msp430-c.c : Likewise.
17912         * config/msp430/msp430.c : Likewise.
17913         * config/nds32/nds32-cost.c : Likewise.
17914         * config/nds32/nds32-fp-as-gp.c : Likewise.
17915         * config/nds32/nds32-intrinsic.c : Likewise.
17916         * config/nds32/nds32-isr.c : Likewise.
17917         * config/nds32/nds32-md-auxiliary.c : Likewise.
17918         * config/nds32/nds32-memory-manipulation.c : Likewise.
17919         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
17920         * config/nds32/nds32-predicates.c : Likewise.
17921         * config/nds32/nds32.c : Likewise.
17922         * config/nios2/nios2.c : Likewise.
17923         * config/nvptx/nvptx.c : Likewise.
17924         * config/pa/pa.c : Likewise.
17925         * config/pdp11/pdp11.c : Likewise.
17926         * config/rl78/rl78-c.c : Likewise.
17927         * config/rl78/rl78.c : Likewise.
17928         * config/rs6000/rs6000-c.c : Likewise.
17929         * config/rs6000/rs6000.c : Likewise.
17930         * config/rx/rx.c : Likewise.
17931         * config/s390/s390-c.c : Likewise.
17932         * config/s390/s390.c : Likewise.
17933         * config/sh/sh-c.c : Likewise.
17934         * config/sh/sh-mem.cc : Likewise.
17935         * config/sh/sh.c : Likewise.
17936         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
17937         * config/sh/sh_treg_combine.cc : Likewise.
17938         * config/sol2-c.c : Likewise.
17939         * config/sol2-cxx.c : Likewise.
17940         * config/sol2-stubs.c : Likewise.
17941         * config/sol2.c : Likewise.
17942         * config/sparc/sparc-c.c : Likewise.
17943         * config/sparc/sparc.c : Likewise.
17944         * config/spu/spu-c.c : Likewise.
17945         * config/spu/spu.c : Likewise.
17946         * config/stormy16/stormy16.c : Likewise.
17947         * config/tilegx/mul-tables.c : Likewise.
17948         * config/tilegx/tilegx-c.c : Likewise.
17949         * config/tilegx/tilegx.c : Likewise.
17950         * config/tilepro/mul-tables.c : Likewise.
17951         * config/tilepro/tilepro-c.c : Likewise.
17952         * config/tilepro/tilepro.c : Likewise.
17953         * config/v850/v850-c.c : Likewise.
17954         * config/v850/v850.c : Likewise.
17955         * config/vax/vax.c : Likewise.
17956         * config/visium/visium.c : Likewise.
17957         * config/vms/vms-c.c : Likewise.
17958         * config/vms/vms.c : Likewise.
17959         * config/vxworks.c : Likewise.
17960         * config/winnt-c.c : Likewise.
17961         * config/xtensa/xtensa.c : Likewise.
17962
17963 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
17964
17965         PR lto/65378
17966         * ipa-utils.h (warn_types_mismatch): Update prototype.
17967         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
17968         parameters.
17969         (type_mismatch_p): New function.
17970         (warn_types_mismatch): Reorg to work better on non-C++ types.
17971         (odr_types_equivalent_p): Add loc1/loc2 parameters.
17972         (add_type_duplicate): Update.
17973
17974 2015-06-08  Tom de Vries  <tom@codesourcery.com>
17975
17976         PR rtl-optimization/66444
17977         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
17978         call_used_regs.
17979
17980 2015-06-08  Richard Biener  <rguenther@suse.de>
17981
17982         PR tree-optimization/66422
17983         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
17984         block after inserted gcc_unreachable.
17985
17986 2015-06-08  Nick Clifton  <nickc@redhat.com>
17987
17988         * config/rx/rx.c (rx_function_value): Do not promote vector types.
17989         (rx_promote_function_mode): Likewise.
17990         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
17991
17992 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
17993
17994         * genattrtab.c (insn_alternatives): Change type from int *
17995         to uint64_t *.
17996         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
17997         (get_attr_value): Change type of num_alt to uint64_t.
17998         (compute_alternative_mask): Change return type from
17999         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
18000         (make_alternative_compare, mk_attr_alt): Change argument type
18001         from int to uint64_t.
18002         (simplify_test_exp): Change type of i from int to uint64_t.
18003         Shift ((uint64_t) 1) instead of 1 up.
18004         (main): Adjust oballocvec first argument from int to uint64_t.
18005         Shift ((uint64_t) 1) instead of 1 up.
18006
18007 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
18008
18009         PR other/65366
18010         * gdbhooks.py: Import sys.
18011         (intptr): New function.  Replace int(...) by intptr(...).
18012
18013 2015-06-08  Richard Biener  <rguenther@suse.de>
18014
18015         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
18016         adjustment for gaps at the end of a SLP load group properly.
18017         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
18018         all permutations we can generate.
18019         (vect_transform_slp_perm_load): Use the correct group-size.
18020
18021 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
18022
18023         * genmatch.c (expr::gen_transform): For conditions, guess the type
18024         from the second operand.
18025
18026 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18027
18028         PR tree-optimization/66442
18029         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
18030         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
18031         if the loop latch is not a singleton.  Use
18032         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
18033
18034 2015-06-08  Marek Polacek  <polacek@redhat.com>
18035
18036         PR sanitizer/66452
18037         * toplev.c (check_global_declaration): Don't warn about artificial
18038         decls.
18039
18040 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18041
18042         PR tree-optimization/66436
18043         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
18044         dump file.
18045         * gimplify.c: Add tree-dump.h include.
18046         (gimplify_function_tree): Dump function to gimple dump file.
18047         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
18048         dump file.
18049
18050 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18051
18052         PR tree-optimization/66435
18053         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
18054         function.
18055
18056 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
18057
18058         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
18059         of ptr_type_node to not be ptr_to_node.
18060         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
18061         TREE_TYPE of pointers.
18062         * gimple-expr.c (useless_type_conversion): Reorder the check for
18063         function pointers and TYPE_CANONICAL.
18064
18065 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
18066
18067         PR bootstrap/66319
18068         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
18069         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
18070         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
18071         later.
18072         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
18073         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
18074         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
18075         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
18076         and non iso if unix2003.
18077
18078 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
18079
18080         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
18081
18082 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
18083
18084         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
18085         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
18086         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
18087         except.c, final.c, function.c, gcse-common.c, genemit.c,
18088         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
18089         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
18090         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
18091         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
18092         more derived ones.
18093
18094 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
18095
18096         * combine.c (combine_split_insns): Remove cast.
18097         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
18098         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
18099         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
18100         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
18101         * genemit.c (gen_split): Change return type of generated functions to
18102         rtx_insn.
18103         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
18104         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
18105         gen_peephole2_* functions.
18106         (print_subroutine, main): Likewise.
18107         * recog.c (peephole2_optimize): Remove cast.
18108         (peep2_next_insn): Promote return type to rtx_insn.
18109         * recog.h (peep2_next_insn): Fix prototype.
18110         * rtl.h (try_split, split_insns): Likewise.
18111
18112 2015-06-06  DJ Delorie  <dj@redhat.com>
18113
18114         * config/msp430/msp430.c (msp430_asm_integer): Support addition
18115         and subtraction too.
18116
18117 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
18118
18119         PR target/66410
18120         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
18121         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
18122         instead of Snd.  Disparage Sid/z alternative with '^'.
18123
18124 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
18125
18126         * dwarf2out.c: Remove deferred_locations*.
18127         (dwarf2_debug_hooks): Add early_finish hook.
18128         Remove global_decl hook.
18129         Add early_global_decl and late_global_decl hook.
18130         New global early_dwarf.
18131         New structure set_early_dwarf.
18132         (output_die): Indicate whether a DIE was generated early
18133         when generating assembly with -dA.
18134         (struct limbo_die_struct): Document created_for field.
18135         Remove file_table_last_lookup.
18136         (remove_AT): Return TRUE if successful.
18137         (remove_child_TAG): Clear die_parent.
18138         (reparent_child): New function abstracted from...
18139         (splice_child_die): ...here.
18140         (new_die): ICE if a DIE ends up in limbo too late.
18141         (check_die): New.
18142         (defer_location): Remove.
18143         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
18144         (fill_variable_array_bounds): New.
18145         (decl_start_label): Call fill_variable_array_bounds.
18146         (gen_formal_parameter_die): Rewrite to reuse previously generated
18147         DIEs.
18148         (gen_subprogram_die): Same.
18149         (gen_variable_die): Same.
18150         (gen_const_die): Same.
18151         (gen_label_die): Same.
18152         (gen_lexical_block_die): Same.
18153         (decl_will_get_specification_p): New.
18154         (local_function_static): New.
18155         (gen_struct_or_union_type_die): Fill in variable-length fields.
18156         (gen_typedef_die): Fill in variable-length typedefs.
18157         (gen_tagged_type_die): Gracefully return on error_mark_node.
18158         Handle re-entrancy.
18159         (gen_type_die_with_usage): Handle variable-length types.
18160         Remove duplicate code for ARRAY_TYPE case.
18161         (process_scope_var): Only process imported modules during early
18162         dwarf.
18163         (dwarf2out_early_global_decl): New.
18164         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
18165         (dwarf2out_type_decl): Set early_dwarf while calling
18166         dwarf2out_decl.
18167         (dwarf2out_decl): Verify that we did not recreate a previously
18168         generated DIE.
18169         Do not return on DECL_EXTERNALs in VAR_DECLs.
18170         Abstract some code to local_function_static.
18171         (lookup_filename): Remove use of file_table_last_lookup.
18172         Gracefully exit on missing file_name.
18173         (dwarf2out_finish): Verify limbo list.
18174         Remove deferred_locations_list use.
18175         Move deferred_asm_name and limbo flushing to...
18176         (dwarf2out_early_finish): ...here.  New.
18177         (dwarf2out_c_finalize): Remove set of deferred_location_list,
18178         deferred_asm_name, and file_table_last_lookup.
18179         * cgraph.h (referred_to_p): Add default argument.
18180         * cgraphunit.c (referred_to_p): Add and handle include_self
18181         argument.
18182         (analyze_functions): Add first_time argument.
18183         Call check_global_declaration for all symbols.
18184         Call late_global_decl for nodes for moribund nodes.
18185         (finalize_compilation_unit): Add new argument to
18186         analyze_functions.
18187         Call early_global_decl for functions.
18188         Call early_finish debug hook.
18189         * dbxout.c (dbxout_early_global_decl): New.
18190         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
18191         (dbx_debug_hooks): Add new hooks.
18192         (xcoff_debug_hooks): Same.
18193         * debug.c (do_nothing_debug_hooks): Add early_finish field.
18194         Add early and late debug hooks.
18195         Remove global_decl hook.
18196         * debug.h (struct gcc_debug_hooks): Add early_finish,
18197         early_global_decl, and late_global_decl fields.
18198         Remove global_decl field.
18199         Document gcc_debug_hooks.
18200         * gengtype.c (output_typename): Remove.
18201         * godump.c (go_early_global_decl): New.
18202         (go_late_global_decl): New.
18203         (go_global_decl): Remove.
18204         (dump_go_spec_init): Remove global_decl.  Add
18205         {early,late}_global_decl.
18206         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
18207         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
18208         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
18209         (write_global_declarations): Remove.
18210         (global_decl_processing): New.
18211         * langhooks.h (struct lang_hooks_for_decls): Remove
18212         final_write_globals field.
18213         Add post_compilation_parsing_cleanups field.
18214         * passes.c (rest_of_decl_compilation): Call early_global_decl.
18215         * sdbout.c: Add early and late_global_decl hooks.  Remove
18216         sdbout_global_decl hook.
18217         Add early_finish field for sdb_debug_hooks.
18218         (sdbout_global_decl): Remove.
18219         (sdbout_early_global_decl): New.
18220         (sdbout_late_global_decl): New.
18221         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
18222         * toplev.c (check_global_declaration): Rename from
18223         check_global_declaration_1.
18224         Adapt to use symtab infrastructure.
18225         (check_global_declarations): Remove.
18226         (emit_debug_global_declarations): Remove.
18227         (compile_file): Remove call to final_write_globals langhook.
18228         Run the actual compilation process.
18229         Perform any post compilation parser cleanups.
18230         Generate late debug info.
18231         * toplev.h (check_global_declaration): New.
18232         (check_global_declaration_1): Remove.
18233         (check_global_declarations): Remove.
18234         (write_global_declarations): Remove.
18235         (emit_debug_global_declarations): Remove.
18236         (global_decl_processing): New.
18237         * tree-core.h (struct tree_block): Add DIE field.
18238         * tree.h (BLOCK_DIE): New.
18239         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
18240         throughout.
18241         (vmsdbgout_early_global_decl): New.
18242         (vmsdbgout_late_global_decl): New.
18243         Add early_finish debug hook field to vmsdbg_debug_hooks.
18244         Remove vmsdbgout_decl to vmsdbgout_function_decl.
18245         Add early and late_global_decl debug hooks.
18246
18247 2015-06-05  Julian Brown  <julian@codesourcery.com>
18248             Sandra Loosemore  <sandra@codesourcery.com>
18249
18250         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
18251         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
18252         to print-sysroot-suffix.sh script.
18253
18254 2015-06-05  Tom de Vries  <tom@codesourcery.com>
18255
18256         merge from gomp4 branch:
18257         2015-05-28  Tom de Vries  <tom@codesourcery.com>
18258
18259         PR tree-optimization/65443
18260         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
18261         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
18262         (try_transform_to_exit_first_loop_alt): New function.
18263         (transform_to_exit_first_loop): Use
18264         try_transform_to_exit_first_loop_alt.
18265
18266 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
18267
18268         * builtins.c (expand_builtin_atomic_compare_exchange): Call
18269         emit_cmp_and_jump_insns with the mode of target.
18270
18271 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
18272
18273         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
18274
18275 2015-06-04  DJ Delorie  <dj@redhat.com>
18276
18277         * config/msp430/msp430.md (movsi_s): New.  Special case for
18278         storing a 20-bit symbol into a 32-bit register.
18279         * config/msp430/msp430.c (msp430_subreg): Add support for it.
18280         * config/msp430/predicates.md (msp430_symbol_operand): New.
18281
18282 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
18283
18284         * c-family/c-common.c (noplt): New attribute.
18285         (handle_noplt_attribute): New handler.
18286         * calls.c (prepare_call_address): Check for noplt
18287         attribute.
18288         * config/i386/i386.c (ix86_expand_call): Check
18289         for noplt attribute.
18290         (ix86_nopic_noplt_attribute_p): New function.
18291         (ix86_output_call_insn): Output indirect call for non-pic
18292         no plt calls.
18293         * doc/extend.texi (noplt): Document new attribute.
18294         * doc/invoke.texi: Document new attribute.
18295
18296 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
18297
18298         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
18299         real.h, and fixed-value.h when included in host source files.
18300         * double-int.h: Remove redundant #includes listed above.
18301         * fixed-value.h: Likewise.
18302         * real.h: Likewise.
18303         * wide-int.h: Likewise.
18304         * inchash.h: Likewise.
18305         * rtl.h: Add some include files When included from a generator file.
18306         * target.h: Remove wide-int.h and insn-modes.h from the include list.
18307         * internal-fn.h: Don't include coretypes.h.
18308         * alias.c: Adjust includes for restructured coretypes.h.
18309         * asan.c: Likewise.
18310         * attribs.c: Likewise.
18311         * auto-inc-dec.c: Likewise.
18312         * auto-profile.c: Likewise.
18313         * bb-reorder.c: Likewise.
18314         * bt-load.c: Likewise.
18315         * builtins.c: Likewise.
18316         * caller-save.c: Likewise.
18317         * calls.c: Likewise.
18318         * ccmp.c: Likewise.
18319         * cfg.c: Likewise.
18320         * cfganal.c: Likewise.
18321         * cfgbuild.c: Likewise.
18322         * cfgcleanup.c: Likewise.
18323         * cfgexpand.c: Likewise.
18324         * cfghooks.c: Likewise.
18325         * cfgloop.c: Likewise.
18326         * cfgloop.h: Likewise.
18327         * cfgloopanal.c: Likewise.
18328         * cfgloopmanip.c: Likewise.
18329         * cfgrtl.c: Likewise.
18330         * cgraph.c: Likewise.
18331         * cgraphbuild.c: Likewise.
18332         * cgraphclones.c: Likewise.
18333         * cgraphunit.c: Likewise.
18334         * cilk-common.c: Likewise.
18335         * combine-stack-adj.c: Likewise.
18336         * combine.c: Likewise.
18337         * compare-elim.c: Likewise.
18338         * convert.c: Likewise.
18339         * coverage.c: Likewise.
18340         * cppbuiltin.c: Likewise.
18341         * cprop.c: Likewise.
18342         * cse.c: Likewise.
18343         * cselib.c: Likewise.
18344         * data-streamer-in.c: Likewise.
18345         * data-streamer-out.c: Likewise.
18346         * data-streamer.c: Likewise.
18347         * dbxout.c: Likewise.
18348         * dce.c: Likewise.
18349         * ddg.c: Likewise.
18350         * debug.c: Likewise.
18351         * df-core.c: Likewise.
18352         * df-problems.c: Likewise.
18353         * df-scan.c: Likewise.
18354         * df.h: Likewise.
18355         * dfp.c: Likewise.
18356         * dojump.c: Likewise.
18357         * dominance.c: Likewise.
18358         * domwalk.c: Likewise.
18359         * double-int.c: Likewise.
18360         * dse.c: Likewise.
18361         * dumpfile.c: Likewise.
18362         * dwarf2asm.c: Likewise.
18363         * dwarf2cfi.c: Likewise.
18364         * dwarf2out.c: Likewise.
18365         * dwarf2out.h: Likewise.
18366         * emit-rtl.c: Likewise.
18367         * et-forest.c: Likewise.
18368         * except.c: Likewise.
18369         * explow.c: Likewise.
18370         * expmed.c: Likewise.
18371         * expr.c: Likewise.
18372         * final.c: Likewise.
18373         * fixed-value.c: Likewise.
18374         * fold-const.c: Likewise.
18375         * function.c: Likewise.
18376         * fwprop.c: Likewise.
18377         * gcc-plugin.h: Likewise.
18378         * gcse.c: Likewise.
18379         * generic-match-head.c: Likewise.
18380         * ggc-page.c: Likewise.
18381         * gimple-builder.c: Likewise.
18382         * gimple-expr.c: Likewise.
18383         * gimple-fold.c: Likewise.
18384         * gimple-iterator.c: Likewise.
18385         * gimple-low.c: Likewise.
18386         * gimple-match-head.c: Likewise.
18387         * gimple-pretty-print.c: Likewise.
18388         * gimple-ssa-isolate-paths.c: Likewise.
18389         * gimple-ssa-strength-reduction.c: Likewise.
18390         * gimple-streamer-in.c: Likewise.
18391         * gimple-streamer-out.c: Likewise.
18392         * gimple-streamer.h: Likewise.
18393         * gimple-walk.c: Likewise.
18394         * gimple.c: Likewise.
18395         * gimplify-me.c: Likewise.
18396         * gimplify.c: Likewise.
18397         * godump.c: Likewise.
18398         * graph.c: Likewise.
18399         * graphite-blocking.c: Likewise.
18400         * graphite-dependences.c: Likewise.
18401         * graphite-interchange.c: Likewise.
18402         * graphite-isl-ast-to-gimple.c: Likewise.
18403         * graphite-optimize-isl.c: Likewise.
18404         * graphite-poly.c: Likewise.
18405         * graphite-scop-detection.c: Likewise.
18406         * graphite-sese-to-poly.c: Likewise.
18407         * graphite.c: Likewise.
18408         * haifa-sched.c: Likewise.
18409         * hooks.h: Likewise.
18410         * hw-doloop.c: Likewise.
18411         * ifcvt.c: Likewise.
18412         * incpath.c: Likewise.
18413         * init-regs.c: Likewise.
18414         * internal-fn.c: Likewise.
18415         * ipa-chkp.c: Likewise.
18416         * ipa-comdats.c: Likewise.
18417         * ipa-cp.c: Likewise.
18418         * ipa-devirt.c: Likewise.
18419         * ipa-icf-gimple.c: Likewise.
18420         * ipa-icf.c: Likewise.
18421         * ipa-inline-analysis.c: Likewise.
18422         * ipa-inline-transform.c: Likewise.
18423         * ipa-inline.c: Likewise.
18424         * ipa-polymorphic-call.c: Likewise.
18425         * ipa-profile.c: Likewise.
18426         * ipa-prop.c: Likewise.
18427         * ipa-pure-const.c: Likewise.
18428         * ipa-ref.c: Likewise.
18429         * ipa-reference.c: Likewise.
18430         * ipa-split.c: Likewise.
18431         * ipa-utils.c: Likewise.
18432         * ipa-visibility.c: Likewise.
18433         * ipa.c: Likewise.
18434         * ira-build.c: Likewise.
18435         * ira-color.c: Likewise.
18436         * ira-conflicts.c: Likewise.
18437         * ira-costs.c: Likewise.
18438         * ira-emit.c: Likewise.
18439         * ira-lives.c: Likewise.
18440         * ira.c: Likewise.
18441         * jump.c: Likewise.
18442         * langhooks.c: Likewise.
18443         * lcm.c: Likewise.
18444         * loop-doloop.c: Likewise.
18445         * loop-init.c: Likewise.
18446         * loop-invariant.c: Likewise.
18447         * loop-iv.c: Likewise.
18448         * loop-unroll.c: Likewise.
18449         * lower-subreg.c: Likewise.
18450         * lra-assigns.c: Likewise.
18451         * lra-coalesce.c: Likewise.
18452         * lra-constraints.c: Likewise.
18453         * lra-eliminations.c: Likewise.
18454         * lra-lives.c: Likewise.
18455         * lra-remat.c: Likewise.
18456         * lra-spills.c: Likewise.
18457         * lra.c: Likewise.
18458         * lto-cgraph.c: Likewise.
18459         * lto-compress.c: Likewise.
18460         * lto-opts.c: Likewise.
18461         * lto-section-in.c: Likewise.
18462         * lto-section-out.c: Likewise.
18463         * lto-streamer-in.c: Likewise.
18464         * lto-streamer-out.c: Likewise.
18465         * lto-streamer.c: Likewise.
18466         * mcf.c: Likewise.
18467         * mode-switching.c: Likewise.
18468         * modulo-sched.c: Likewise.
18469         * omega.c: Likewise.
18470         * omp-low.c: Likewise.
18471         * optabs.c: Likewise.
18472         * opts-global.c: Likewise.
18473         * passes.c: Likewise.
18474         * plugin.c: Likewise.
18475         * postreload-gcse.c: Likewise.
18476         * postreload.c: Likewise.
18477         * predict.c: Likewise.
18478         * print-rtl.c: Likewise.
18479         * print-tree.c: Likewise.
18480         * profile.c: Likewise.
18481         * real.c: Likewise.
18482         * realmpfr.c: Likewise.
18483         * realmpfr.h: Likewise.
18484         * recog.c: Likewise.
18485         * ree.c: Likewise.
18486         * reg-stack.c: Likewise.
18487         * regcprop.c: Likewise.
18488         * reginfo.c: Likewise.
18489         * regrename.c: Likewise.
18490         * regs.h: Likewise.
18491         * regstat.c: Likewise.
18492         * reload.c: Likewise.
18493         * reload1.c: Likewise.
18494         * reorg.c: Likewise.
18495         * resource.c: Likewise.
18496         * rtl-chkp.c: Likewise.
18497         * rtlanal.c: Likewise.
18498         * rtlhooks.c: Likewise.
18499         * sanopt.c: Likewise.
18500         * sched-deps.c: Likewise.
18501         * sched-ebb.c: Likewise.
18502         * sched-rgn.c: Likewise.
18503         * sched-vis.c: Likewise.
18504         * sdbout.c: Likewise.
18505         * sel-sched-dump.c: Likewise.
18506         * sel-sched-ir.c: Likewise.
18507         * sel-sched.c: Likewise.
18508         * sese.c: Likewise.
18509         * shrink-wrap.c: Likewise.
18510         * shrink-wrap.h: Likewise.
18511         * simplify-rtx.c: Likewise.
18512         * stack-ptr-mod.c: Likewise.
18513         * statistics.c: Likewise.
18514         * stmt.c: Likewise.
18515         * stor-layout.c: Likewise.
18516         * store-motion.c: Likewise.
18517         * stringpool.c: Likewise.
18518         * symtab.c: Likewise.
18519         * target-globals.c: Likewise.
18520         * targhooks.c: Likewise.
18521         * toplev.c: Likewise.
18522         * tracer.c: Likewise.
18523         * trans-mem.c: Likewise.
18524         * tree-affine.c: Likewise.
18525         * tree-affine.h: Likewise.
18526         * tree-browser.c: Likewise.
18527         * tree-call-cdce.c: Likewise.
18528         * tree-cfg.c: Likewise.
18529         * tree-cfgcleanup.c: Likewise.
18530         * tree-chkp-opt.c: Likewise.
18531         * tree-chkp.c: Likewise.
18532         * tree-chrec.c: Likewise.
18533         * tree-complex.c: Likewise.
18534         * tree-data-ref.c: Likewise.
18535         * tree-dfa.c: Likewise.
18536         * tree-diagnostic.c: Likewise.
18537         * tree-dump.c: Likewise.
18538         * tree-eh.c: Likewise.
18539         * tree-emutls.c: Likewise.
18540         * tree-if-conv.c: Likewise.
18541         * tree-inline.c: Likewise.
18542         * tree-into-ssa.c: Likewise.
18543         * tree-iterator.c: Likewise.
18544         * tree-loop-distribution.c: Likewise.
18545         * tree-nested.c: Likewise.
18546         * tree-nrv.c: Likewise.
18547         * tree-object-size.c: Likewise.
18548         * tree-outof-ssa.c: Likewise.
18549         * tree-parloops.c: Likewise.
18550         * tree-phinodes.c: Likewise.
18551         * tree-predcom.c: Likewise.
18552         * tree-pretty-print.c: Likewise.
18553         * tree-pretty-print.h: Likewise.
18554         * tree-profile.c: Likewise.
18555         * tree-scalar-evolution.c: Likewise.
18556         * tree-sra.c: Likewise.
18557         * tree-ssa-address.c: Likewise.
18558         * tree-ssa-alias.c: Likewise.
18559         * tree-ssa-ccp.c: Likewise.
18560         * tree-ssa-coalesce.c: Likewise.
18561         * tree-ssa-copy.c: Likewise.
18562         * tree-ssa-copyrename.c: Likewise.
18563         * tree-ssa-dce.c: Likewise.
18564         * tree-ssa-dom.c: Likewise.
18565         * tree-ssa-dse.c: Likewise.
18566         * tree-ssa-forwprop.c: Likewise.
18567         * tree-ssa-ifcombine.c: Likewise.
18568         * tree-ssa-live.c: Likewise.
18569         * tree-ssa-loop-ch.c: Likewise.
18570         * tree-ssa-loop-im.c: Likewise.
18571         * tree-ssa-loop-ivcanon.c: Likewise.
18572         * tree-ssa-loop-ivopts.c: Likewise.
18573         * tree-ssa-loop-manip.c: Likewise.
18574         * tree-ssa-loop-niter.c: Likewise.
18575         * tree-ssa-loop-prefetch.c: Likewise.
18576         * tree-ssa-loop-unswitch.c: Likewise.
18577         * tree-ssa-loop.c: Likewise.
18578         * tree-ssa-loop.h: Likewise.
18579         * tree-ssa-math-opts.c: Likewise.
18580         * tree-ssa-operands.c: Likewise.
18581         * tree-ssa-phiopt.c: Likewise.
18582         * tree-ssa-phiprop.c: Likewise.
18583         * tree-ssa-pre.c: Likewise.
18584         * tree-ssa-propagate.c: Likewise.
18585         * tree-ssa-reassoc.c: Likewise.
18586         * tree-ssa-sccvn.c: Likewise.
18587         * tree-ssa-scopedtables.c: Likewise.
18588         * tree-ssa-sink.c: Likewise.
18589         * tree-ssa-strlen.c: Likewise.
18590         * tree-ssa-structalias.c: Likewise.
18591         * tree-ssa-tail-merge.c: Likewise.
18592         * tree-ssa-ter.c: Likewise.
18593         * tree-ssa-threadedge.c: Likewise.
18594         * tree-ssa-threadupdate.c: Likewise.
18595         * tree-ssa-uncprop.c: Likewise.
18596         * tree-ssa-uninit.c: Likewise.
18597         * tree-ssa.c: Likewise.
18598         * tree-ssanames.c: Likewise.
18599         * tree-stdarg.c: Likewise.
18600         * tree-streamer-in.c: Likewise.
18601         * tree-streamer-out.c: Likewise.
18602         * tree-streamer.c: Likewise.
18603         * tree-switch-conversion.c: Likewise.
18604         * tree-tailcall.c: Likewise.
18605         * tree-vect-data-refs.c: Likewise.
18606         * tree-vect-generic.c: Likewise.
18607         * tree-vect-loop-manip.c: Likewise.
18608         * tree-vect-loop.c: Likewise.
18609         * tree-vect-patterns.c: Likewise.
18610         * tree-vect-slp.c: Likewise.
18611         * tree-vect-stmts.c: Likewise.
18612         * tree-vectorizer.c: Likewise.
18613         * tree-vrp.c: Likewise.
18614         * tree.c: Likewise.
18615         * tsan.c: Likewise.
18616         * ubsan.c: Likewise.
18617         * valtrack.c: Likewise.
18618         * value-prof.c: Likewise.
18619         * var-tracking.c: Likewise.
18620         * varasm.c: Likewise.
18621         * varpool.c: Likewise.
18622         * vmsdbgout.c: Likewise.
18623         * vtable-verify.c: Likewise.
18624         * web.c: Likewise.
18625         * wide-int-print.cc: Likewise.
18626         * wide-int-print.h: Likewise.
18627         * wide-int.cc: Likewise.
18628         * xcoffout.c: Likewise.
18629         * config/aarch64/aarch64-builtins.c: Likewise.
18630         * config/aarch64/aarch64.c: Likewise.
18631         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
18632         * config/alpha/alpha.c: Likewise.
18633         * config/arc/arc.c: Likewise.
18634         * config/arm/aarch-common.c: Likewise.
18635         * config/arm/arm-builtins.c: Likewise.
18636         * config/arm/arm-c.c: Likewise.
18637         * config/arm/arm.c: Likewise.
18638         * config/avr/avr-c.c: Likewise.
18639         * config/avr/avr-log.c: Likewise.
18640         * config/avr/avr.c: Likewise.
18641         * config/bfin/bfin.c: Likewise.
18642         * config/c6x/c6x.c: Likewise.
18643         * config/cr16/cr16.c: Likewise.
18644         * config/cris/cris.c: Likewise.
18645         * config/darwin-c.c: Likewise.
18646         * config/darwin.c: Likewise.
18647         * config/default-c.c: Likewise.
18648         * config/epiphany/epiphany.c: Likewise.
18649         * config/epiphany/mode-switch-use.c: Likewise.
18650         * config/epiphany/resolve-sw-modes.c: Likewise.
18651         * config/fr30/fr30.c: Likewise.
18652         * config/frv/frv.c: Likewise.
18653         * config/ft32/ft32.c: Likewise.
18654         * config/glibc-c.c: Likewise.
18655         * config/h8300/h8300.c: Likewise.
18656         * config/i386/i386-c.c: Likewise.
18657         * config/i386/i386.c: Likewise.
18658         * config/i386/msformat-c.c: Likewise.
18659         * config/i386/winnt-cxx.c: Likewise.
18660         * config/i386/winnt-stubs.c: Likewise.
18661         * config/i386/winnt.c: Likewise.
18662         * config/ia64/ia64-c.c: Likewise.
18663         * config/ia64/ia64.c: Likewise.
18664         * config/iq2000/iq2000.c: Likewise.
18665         * config/lm32/lm32.c: Likewise.
18666         * config/m32c/m32c-pragma.c: Likewise.
18667         * config/m32c/m32c.c: Likewise.
18668         * config/m32r/m32r.c: Likewise.
18669         * config/m68k/m68k.c: Likewise.
18670         * config/mcore/mcore.c: Likewise.
18671         * config/mep/mep-pragma.c: Likewise.
18672         * config/mep/mep.c: Likewise.
18673         * config/microblaze/microblaze-c.c: Likewise.
18674         * config/microblaze/microblaze.c: Likewise.
18675         * config/mips/mips.c: Likewise.
18676         * config/mmix/mmix.c: Likewise.
18677         * config/mn10300/mn10300.c: Likewise.
18678         * config/moxie/moxie.c: Likewise.
18679         * config/msp430/msp430-c.c: Likewise.
18680         * config/msp430/msp430.c: Likewise.
18681         * config/nds32/nds32-cost.c: Likewise.
18682         * config/nds32/nds32-fp-as-gp.c: Likewise.
18683         * config/nds32/nds32-intrinsic.c: Likewise.
18684         * config/nds32/nds32-isr.c: Likewise.
18685         * config/nds32/nds32-md-auxiliary.c: Likewise.
18686         * config/nds32/nds32-memory-manipulation.c: Likewise.
18687         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
18688         * config/nds32/nds32-predicates.c: Likewise.
18689         * config/nds32/nds32.c: Likewise.
18690         * config/nios2/nios2.c: Likewise.
18691         * config/nvptx/nvptx.c: Likewise.
18692         * config/pa/pa.c: Likewise.
18693         * config/pdp11/pdp11.c: Likewise.
18694         * config/rl78/rl78-c.c: Likewise.
18695         * config/rl78/rl78.c: Likewise.
18696         * config/rs6000/rs6000-c.c: Likewise.
18697         * config/rs6000/rs6000.c: Likewise.
18698         * config/rx/rx.c: Likewise.
18699         * config/s390/s390-c.c: Likewise.
18700         * config/s390/s390.c: Likewise.
18701         * config/sh/sh-c.c: Likewise.
18702         * config/sh/sh-mem.cc: Likewise.
18703         * config/sh/sh.c: Likewise.
18704         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
18705         * config/sh/sh_treg_combine.cc: Likewise.
18706         * config/sol2-c.c: Likewise.
18707         * config/sol2-cxx.c: Likewise.
18708         * config/sol2-stubs.c: Likewise.
18709         * config/sol2.c: Likewise.
18710         * config/sparc/sparc-c.c: Likewise.
18711         * config/sparc/sparc.c: Likewise.
18712         * config/spu/spu-c.c: Likewise.
18713         * config/spu/spu.c: Likewise.
18714         * config/stormy16/stormy16.c: Likewise.
18715         * config/tilegx/mul-tables.c: Likewise.
18716         * config/tilegx/tilegx-c.c: Likewise.
18717         * config/tilegx/tilegx.c: Likewise.
18718         * config/tilepro/mul-tables.c: Likewise.
18719         * config/tilepro/tilepro-c.c: Likewise.
18720         * config/tilepro/tilepro.c: Likewise.
18721         * config/v850/v850-c.c: Likewise.
18722         * config/v850/v850.c: Likewise.
18723         * config/vax/vax.c: Likewise.
18724         * config/visium/visium.c: Likewise.
18725         * config/vms/vms-c.c: Likewise.
18726         * config/vms/vms.c: Likewise.
18727         * config/vxworks.c: Likewise.
18728         * config/winnt-c.c: Likewise.
18729         * config/xtensa/xtensa.c: Likewise.
18730         * common/config/bfin/bfin-common.c: Likewise.
18731
18732 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
18733
18734         * tree.h (tree_code_for_canonical_type_merging): New function.
18735         * tree.c (gimple_canonical_types_compatible_p): Use
18736         tree_code_for_canonical_type_merging..
18737
18738 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18739
18740         PR c++/66192
18741         PR target/66200
18742         * doc/tm.texi: Regenerate.
18743         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
18744         * target.def (TARGET_RELAXED_ORDERING): Likewise.
18745         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
18746         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
18747         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
18748         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
18749         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
18750         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
18751         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
18752
18753 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18754
18755         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
18756         register fma steering pass.
18757         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
18758         AARCH64_TUNE_FMA_STEERING.
18759
18760 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
18761
18762         * tree.c (verify_type_variant): Verify that type and variant is
18763         compatible.
18764         (gimple_canonical_types_compatible_p): Look for main variants.
18765
18766 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
18767
18768         * config.gcc (powerpc*-*-*): Add support for a new configure
18769         option --with-advance-toolchain=<xxx> which overrides using the
18770         default header files, libraries and dynamic linker.
18771
18772         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
18773         specs to support the configure --with-advance-toolchain=<xxx>
18774         option.
18775         (INCLUDE_EXTRA_SPEC): Likewise.
18776         (LINK_OS_EXTRA_SPEC32): Likewise.
18777         (LINK_OK_EXTRA_SPEC64): Likewise.
18778         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
18779         (DYNAMIC_LINKER_PREFIX): Likewise.
18780         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
18781         toolchain support.
18782         (GLIBC_DYNAMIC_LINKER32): Likewise.
18783         (GLIBC_DYNAMIC_LINKER64): Likewise.
18784         (LINK_OS_LINUX_SPEC32): Likewise.
18785         (LINK_OS_LINUX_SPEC64): Likewise.
18786
18787         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
18788         configuration option.
18789
18790 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
18791
18792         PR target/66275
18793         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
18794         to determine current function ABI.
18795         (ix86_function_value_regno_p): Ditto.
18796
18797 2015-06-03  Martin Liska  <mliska@suse.cz>
18798
18799         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
18800         * bitmap.h (struct bitmap_usage): Likewise.
18801         * ggc-common.c (struct ggc_usage): Likewise.
18802         * mem-stats.h (struct mem_location): Likewise.
18803         (struct mem_usage): Likewise.
18804         * vec.c (struct vec_usage): Likewise.
18805
18806 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
18807
18808         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
18809         -Bsymbolic.
18810
18811 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
18812
18813         * doc/plugins.texi (enum plugin_event): New event.
18814         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
18815         and PLUGIN_FINISH_FUNCTION.
18816         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
18817         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
18818
18819 2015-06-03  Richard Biener  <rguenther@suse.de>
18820
18821         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
18822         compute GROUP_GAP for the first element.
18823         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
18824         on in-group gaps.
18825
18826 2015-06-03  Nick Clifton  <nickc@redhat.com>
18827
18828         * config/rl78/rl78-real.md: Add peepholes to avoid a register
18829         copy when calling a function.
18830         * config/rl78/rl78.c (need_to_save): Do not push the frame
18831         pointer in an interrupt handler prologue if it is never used.
18832
18833 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18834
18835         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
18836
18837 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
18838
18839         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
18840         reference when cloning alias node.
18841
18842 2015-06-03  Martin Liska  <mliska@suse.cz>
18843
18844         * alloc-pool.h (struct pool_usage): Correct space padding.
18845         * ggc-page.c (ggc_print_statistics): Align columns in a report.
18846         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
18847         * tree.c (dump_tree_statistics): Align columns in a report.
18848
18849 2015-06-03  Martin Liska  <mliska@suse.cz>
18850
18851         * alloc-pool.c (allocate_pool_descriptor): Remove.
18852         (struct pool_output_info): Likewise.
18853         (print_alloc_pool_statistics): Likewise.
18854         (dump_alloc_pool_statistics): Likewise.
18855         * alloc-pool.h (struct pool_usage): New struct.
18856         (pool_allocator::initialize): Change usage of memory statistics
18857         to a new interface.
18858         (pool_allocator::release): Likewise.
18859         (pool_allocator::allocate): Likewise.
18860         (pool_allocator::remove): Likewise.
18861         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
18862         for a pool allocator.
18863         * mem-stats.h (struct mem_location): Add new ctor.
18864         (struct mem_usage): Add counter for number of
18865         instances.
18866         (mem_alloc_description::register_descriptor): New overload of
18867         * mem-stats.h (mem_location::to_string): New function.
18868         * bitmap.h (struct bitmap_usage): Use this new function.
18869         * ggc-common.c (struct ggc_usage): Likewise.
18870         the function.
18871
18872 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
18873
18874         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
18875         of GCC_INSN_FLAGS_H block.
18876
18877 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
18878
18879         * explow.c (plus_constant): Update check after force_const_mem call
18880         to see if the value returned is not a NULL_RTX.
18881
18882 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
18883
18884         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
18885         remove instumentation thunks calling reachable functions.
18886         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
18887         * lto/lto-partition.c (privatize_symbol_name_1): New.
18888         (privatize_symbol_name): Privatize both decl and orig_decl
18889         names for instrumented functions.
18890         * cgraph.c (cgraph_node::verify_node): Add transparent
18891         alias chain check for instrumented node.
18892
18893 2015-06-03  Marek Polacek  <polacek@redhat.com>
18894
18895         PR c/64223
18896         PR c/29358
18897         * tree.c (attribute_value_equal): Handle attribute format.
18898         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
18899
18900 2015-06-03  Richard Biener  <rguenther@suse.de>
18901
18902         PR tree-optimization/63916
18903         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
18904         Forward-propagate non-invariant addresses by splicing their
18905         reference ops if the result isn't going to be used by PRE.
18906         (vn_reference_lookup_3): Remove pointless assert.
18907
18908 2015-06-03  Richard Biener  <rguenther@suse.de>
18909
18910         PR tree-optimization/66375
18911         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
18912         add to the evolution before following SSA edges.
18913
18914 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
18915
18916         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
18917         (dump_use, dump_cand, find_induction_variables): Pass new argument
18918         to dump_iv.
18919         (record_use): Preserve the ssa name information in IV.
18920
18921 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
18922
18923         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
18924         NO_MODE_TEST.
18925         (add_mode_tests): Don't add mode tests if the predicate only
18926         accepts scalar constant integers.  Otherwise, allow the mode
18927         of "op" to be VOIDmode if the predicate does accept such integers.
18928
18929 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
18930
18931         PR target/66258
18932         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
18933         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
18934         (aarch64_secondary_reload): Likewise
18935         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
18936         to !TARGET_FLOAT.
18937         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
18938         Likewise.
18939
18940 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
18941             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
18942
18943         PR target/65768
18944         * cprop.c (try_replace_reg): Check cost of constants before propagating.
18945
18946 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
18947
18948         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
18949         provide access to the IBM extended double floating point mode if
18950         long double is IEEE 128-bit floating point.
18951         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
18952         point if long double is the IBM extended double type.
18953
18954         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
18955         enable adding IEEE 128-bit floating point support.
18956         (-mfloat128-software): Likewise.
18957         (-mfloat128-sw): Likewise.
18958
18959         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
18960         128-bit floating point types to occupy any register if
18961         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
18962         -mfloat128-software is enabled.
18963         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
18964         support.
18965         (rs6000_option_override_internal): Add -mfloat128-* support.
18966         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
18967
18968         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
18969         and float128 type nodes.
18970         (ieee128_float_type_node): Likewise.
18971         (ibm128_float_type_node): Likewise.
18972
18973 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
18974
18975         PR target/66136
18976         * config/aarch64/geniterators.sh: Rewrite in awk.
18977
18978 2015-06-02  Martin Liska  <mliska@suse.cz>
18979
18980         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
18981         values to avoid -Wmaybe-uninitialized errors.
18982
18983 2015-06-02  Richard Biener  <rguenther@suse.de>
18984
18985         PR debug/65549
18986         * dwarf2out.c (lookup_context_die): New function.
18987         (resolve_addr): Avoid forcing a full DIE for the
18988         target of a DW_TAG_GNU_call_site during late compilation.
18989         Instead create a stub DIE without a type if we have a
18990         context DIE present.
18991
18992 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
18993
18994         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
18995
18996 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
18997
18998         PR tree-optimization/48052
18999         * cfgloop.h (struct control_iv): New.
19000         (struct loop): New field control_ivs.
19001         * tree-ssa-loop-niter.c : Include "stor-layout.h".
19002         (number_of_iterations_lt): Set no_overflow information.
19003         (number_of_iterations_exit): Init control iv in niter struct.
19004         (record_control_iv): New.
19005         (estimate_numbers_of_iterations_loop): Call record_control_iv.
19006         (loop_exits_before_overflow): New.  Interface factored out of
19007         scev_probably_wraps_p.
19008         (scev_probably_wraps_p): Factor loop niter related code into
19009         loop_exits_before_overflow.
19010         (free_numbers_of_iterations_estimates_loop): Free control ivs.
19011         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
19012
19013 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
19014
19015         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
19016         the target doesn't belong to the current function.
19017
19018 2015-06-02  Marek Polacek  <polacek@redhat.com>
19019
19020         PR middle-end/66345
19021         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
19022         get_maxval_strlen does not produce an INTEGER_CST.
19023
19024 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
19025
19026         * config/arc/constraints.md: Use lower-case names in match_code.
19027         * config/mmix/constraints.md: Likewise.
19028
19029 2015-06-02  Richard Biener  <rguenther@suse.de>
19030
19031         PR tree-optimization/65961
19032         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
19033         check and clarify dump message.
19034         (vect_build_slp_tree): If all children are built up from scalars
19035         build up the parent from scalars instead.
19036         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
19037
19038 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
19039
19040         PR other/65366
19041         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
19042         instead of print ... .
19043
19044 2015-06-02  Alan Modra  <amodra@gmail.com>
19045
19046         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
19047         2014-08-11 change.
19048
19049 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
19050
19051         PR tree-optimization/52563
19052         PR tree-optimization/62173
19053         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
19054         (alloc_iv, set_iv): New parameter.
19055         (determine_biv_step): Delete.
19056         (find_bivs): Inline original determine_biv_step.  Pass new
19057         argument to set_iv.
19058         (idx_find_step): Use no_overflow information for conversion.
19059         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
19060         resolve_mixers handle folded_casts.
19061         (instantiate_scev_name): Change bool parameter to bool pointer.
19062         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
19063         (instantiate_array_ref, instantiate_scev_not): Ditto.
19064         (instantiate_scev_3, instantiate_scev_2): Ditto.
19065         (instantiate_scev_1, instantiate_scev_r): Ditto.
19066         (instantiate_scev_convert, ): Change parameter.  Pass argument
19067         to chrec_convert_aggressive.
19068         (instantiate_scev): Change argument.
19069         (resolve_mixers): New parameter and set it.
19070         (scev_const_prop): New argument.
19071         * tree-scalar-evolution.h (resolve_mixers): New parameter.
19072         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
19073         of chrec_conert_1.
19074         (chrec_convert): New parameter.  Move definition below.
19075         (chrec_convert_aggressive): New parameter and set it.  Call
19076         convert_affine_scev.
19077         * tree-chrec.h (chrec_convert): New parameter.
19078         (chrec_convert_aggressive): Ditto.
19079
19080 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
19081
19082         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
19083         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
19084         the LHS of a no-return call if its type has variable size.
19085         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
19086         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
19087
19088 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
19089
19090         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
19091         * config.in: Regenerate.
19092
19093 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
19094
19095         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
19096         consecutive accesses within outer-loop with force_vectorize
19097         for references with zero step in inner-loop.
19098
19099 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
19100
19101         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
19102         rather than from gcc/build directory.
19103
19104 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
19105
19106         PR target/65697
19107         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
19108         for __sync memory models, emit initial loads and final barriers as
19109         appropriate.
19110
19111 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
19112
19113         PR target/65697
19114         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
19115         (aarch64_split_atomic_op): Check for __sync memory models, emit
19116         appropriate initial loads and final barriers.
19117
19118 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
19119
19120         * Makefile.in: Fix gcov dependencies that should
19121         not point to a build folder.
19122
19123 2015-06-01  Richard Biener  <rguenther@suse.de>
19124
19125         Revert
19126         2015-05-29  Richard Biener  <rguenther@suse.de>
19127
19128         PR tree-optimization/66314
19129         * tree-ssa-threadupdate.c (create_block_for_threading): Add
19130         parameter that says which loop the new block belongs to.
19131         (ssa_create_duplicates): Blocks duplicated for the threaded
19132         path belong to the loop of the thread destination.
19133
19134 2015-06-01  Martin Liska  <mliska@suse.cz>
19135
19136         * sched-deps.c: Include pool-alloc.h before
19137         cselib.h header file is included.
19138
19139 2015-06-01  Richard Biener  <rguenther@suse.de>
19140
19141         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
19142         functions.
19143
19144 2015-06-01  Martin Liska  <mliska@suse.cz>
19145
19146         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
19147         a function local variable.
19148
19149 2015-06-01  Martin Liska  <mliska@suse.cz>
19150
19151         * alloc-pool.c (create_alloc_pool): Remove.
19152         (empty_alloc_pool): Likewise.
19153         (free_alloc_pool): Likewise.
19154         (free_alloc_pool_if_empty): Likewise.
19155         (pool_alloc): Likewise.
19156         (pool_free): Likewise.
19157         * alloc-pool.h: Remove old declarations.
19158
19159 2015-06-01  Martin Liska  <mliska@suse.cz>
19160
19161         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
19162         (ira_create_object): Likewise.
19163         (ira_create_allocno): Likewise.
19164         (ira_create_live_range): Likewise.
19165         (copy_live_range): Likewise.
19166         (ira_finish_live_range): Likewise.
19167         (ira_free_allocno_costs): Likewise.
19168         (finish_allocno): Likewise.
19169         (finish_allocnos): Likewise.
19170         (initiate_prefs): Likewise.
19171         (ira_create_pref): Likewise.
19172         (finish_pref): Likewise.
19173         (finish_prefs): Likewise.
19174         (initiate_copies): Likewise.
19175         (ira_create_copy): Likewise.
19176         (finish_copy): Likewise.
19177         (finish_copies): Likewise.
19178         (finish_prefs): Likewise.
19179
19180 2015-06-01  Martin Liska  <mliska@suse.cz>
19181
19182         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
19183         (allocate_and_init_ipcp_value): Likewise.
19184         (ipcp_lattice::add_value): Likewise.
19185         (merge_agg_lats_step): Likewise.
19186         (ipcp_driver): Likewise.
19187         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
19188         (ipa_free_all_structures_after_iinln): Likewise.
19189         * ipa-prop.h: Likewise.
19190
19191 2015-06-01  Martin Liska  <mliska@suse.cz>
19192
19193         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
19194         pool allocator.
19195         (set_hint_predicate): Likewise.
19196         (inline_summary_alloc): Likewise.
19197         (reset_inline_edge_summary): Likewise.
19198         (reset_inline_summary): Likewise.
19199         (set_cond_stmt_execution_predicate): Likewise.
19200         (set_switch_stmt_execution_predicate): Likewise.
19201         (compute_bb_predicates): Likewise.
19202         (estimate_function_body_sizes): Likewise.
19203         (inline_free_summary): Likewise.
19204
19205 2015-06-01  Martin Liska  <mliska@suse.cz>
19206
19207         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
19208         (ipa_edge_duplication_hook): Likewise.
19209         (ipa_free_all_structures_after_ipa_cp): Likewise.
19210         (ipa_free_all_structures_after_iinln): Likewise.
19211
19212 2015-06-01  Martin Liska  <mliska@suse.cz>
19213
19214         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
19215         (ipa_profile_generate_summary): Likewise.
19216         (ipa_profile_read_summary): Likewise.
19217         (ipa_profile): Likewise.
19218
19219 2015-06-01  Martin Liska  <mliska@suse.cz>
19220
19221         * tree-ssa-structalias.c (new_var_info): Use new type-based
19222         pool allocator.
19223         (new_constraint): Likewise.
19224         (init_alias_vars): Likewise.
19225         (delete_points_to_sets): Likewise.
19226
19227 2015-06-01  Martin Liska  <mliska@suse.cz>
19228
19229         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
19230         (free_strinfo): Likewise.
19231         (pass_strlen::execute): Likewise.
19232
19233 2015-06-01  Martin Liska  <mliska@suse.cz>
19234
19235         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
19236         pool allocator.
19237         (vn_reference_insert_pieces): Likewise.
19238         (vn_phi_insert): Likewise.
19239         (visit_reference_op_call): Likewise.
19240         (copy_phi): Likewise.
19241         (copy_reference): Likewise.
19242         (process_scc): Likewise.
19243         (allocate_vn_table): Likewise.
19244         (free_vn_table): Likewise.
19245
19246 2015-06-01  Martin Liska  <mliska@suse.cz>
19247
19248         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
19249         pool allocator.
19250         (add_repeat_to_ops_vec): Likewise.
19251         (get_ops): Likewise.
19252         (maybe_optimize_range_tests): Likewise.
19253         (init_reassoc): Likewise.
19254         (fini_reassoc): Likewise.
19255
19256 2015-06-01  Martin Liska  <mliska@suse.cz>
19257
19258         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
19259         pool allocator.
19260         (bitmap_set_new): Likewise.
19261         (get_or_alloc_expr_for_constant): Likewise.
19262         (get_or_alloc_expr_for): Likewise.
19263         (phi_translate_1): Likewise.
19264         (compute_avail): Likewise.
19265         (init_pre): Likewise.
19266         (fini_pre): Likewise.
19267
19268 2015-06-01  Martin Liska  <mliska@suse.cz>
19269
19270         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
19271         (delete_dep_node): Likewise.
19272         (create_deps_list): Likewise.
19273         (free_deps_list): Likewise.
19274         (sched_deps_init): Likewise.
19275         (sched_deps_finish): Likewise.
19276
19277 2015-06-01  Martin Liska  <mliska@suse.cz>
19278
19279         * regcprop.c (free_debug_insn_changes): Use new type-based
19280         pool allocator.
19281         (replace_oldest_value_reg): Likewise.
19282         (pass_cprop_hardreg::execute): Likewise.
19283
19284 2015-06-01  Martin Liska  <mliska@suse.cz>
19285
19286         * ira-build.c (initiate_cost_vectors): Use new type-based
19287         pool allocator.
19288         (ira_allocate_cost_vector): Likewise.
19289         (ira_free_cost_vector): Likewise.
19290         (finish_cost_vectors): Likewise.
19291
19292 2015-06-01  Martin Liska  <mliska@suse.cz>
19293
19294         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
19295         pool allocator.
19296         (free_sched_pools): Likewise.
19297         * sel-sched-ir.h (_list_alloc): Likewise.
19298         (_list_remove): Likewise.
19299
19300 2015-06-01  Martin Liska  <mliska@suse.cz>
19301
19302         * stmt.c (add_case_node): Use new type-based pool allocator.
19303         (expand_case): Likewise.
19304         (expand_sjlj_dispatch_table): Likewise.
19305
19306 2015-06-01  Martin Liska  <mliska@suse.cz>
19307
19308         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
19309         (free_bb): Likewise.
19310         (pass_cse_reciprocals::execute): Likewise.
19311
19312 2015-06-01  Martin Liska  <mliska@suse.cz>
19313
19314         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
19315         (sra_deinitialize) Likewise.
19316         (create_access_1) Likewise.
19317         (build_accesses_from_assign) Likewise.
19318         (create_artificial_child_access) Likewise.
19319
19320 2015-06-01  Martin Liska  <mliska@suse.cz>
19321
19322         * dse.c (get_group_info):Use new type-based pool allocator.
19323         (dse_step0) Likewise.
19324         (free_store_info) Likewise.
19325         (delete_dead_store_insn) Likewise.
19326         (free_read_records) Likewise.
19327         (record_store) Likewise.
19328         (replace_read) Likewise.
19329         (check_mem_read_rtx) Likewise.
19330         (scan_insn) Likewise.
19331         (dse_step1) Likewise.
19332         (dse_step7) Likewise.
19333
19334 2015-06-01  Martin Liska  <mliska@suse.cz>
19335
19336         * df-scan.c (struct df_scan_problem_data):Use new type-based
19337         pool allocator.
19338         (df_scan_free_internal) Likewise.
19339         (df_scan_alloc) Likewise.
19340         (df_grow_reg_info) Likewise.
19341         (df_free_ref) Likewise.
19342         (df_insn_create_insn_record) Likewise.
19343         (df_mw_hardreg_chain_delete) Likewise.
19344         (df_insn_info_delete) Likewise.
19345         (df_free_collection_rec) Likewise.
19346         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
19347         (df_sort_and_compress_mws) Likewise.
19348         (df_ref_create_structure) Likewise.
19349         (df_ref_record) Likewise.
19350
19351 2015-06-01  Martin Liska  <mliska@suse.cz>
19352
19353         * df-problems.c (df_chain_create):Use new type-based pool allocator.
19354         (df_chain_unlink_1) Likewise.
19355         (df_chain_unlink) Likewise.
19356         (df_chain_remove_problem) Likewise.
19357         (df_chain_alloc) Likewise.
19358         (df_chain_free) Likewise.
19359         * df.h (struct dataflow) Likewise.
19360
19361 2015-06-01  Martin Liska  <mliska@suse.cz>
19362
19363         * cselib.c (new_elt_list):Use new type-based pool allocator.
19364         (new_elt_loc_list) Likewise.
19365         (unchain_one_elt_list) Likewise.
19366         (unchain_one_elt_loc_list) Likewise.
19367         (unchain_one_value) Likewise.
19368         (new_cselib_val) Likewise.
19369         (cselib_init) Likewise.
19370         (cselib_finish) Likewise.
19371
19372 2015-06-01  Martin Liska  <mliska@suse.cz>
19373
19374         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
19375         (sh_reorg) Likewise.
19376
19377 2015-06-01  Martin Liska  <mliska@suse.cz>
19378
19379         * cfg.c (initialize_original_copy_tables):Use new type-based
19380         pool allocator.
19381         (free_original_copy_tables) Likewise.
19382         (copy_original_table_clear) Likewise.
19383         (copy_original_table_set) Likewise.
19384
19385 2015-06-01  Martin Liska  <mliska@suse.cz>
19386
19387         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
19388         pool allocator.
19389         (asan_mem_ref_new) Likewise.
19390         (free_mem_ref_resources) Likewise.
19391
19392 2015-06-01  Martin Liska  <mliska@suse.cz>
19393
19394         * var-tracking.c (variable_htab_free):Use new type-based
19395         pool allocator.
19396         (attrs_list_clear) Likewise.
19397         (attrs_list_insert) Likewise.
19398         (attrs_list_copy) Likewise.
19399         (shared_hash_unshare) Likewise.
19400         (shared_hash_destroy) Likewise.
19401         (unshare_variable) Likewise.
19402         (var_reg_delete_and_set) Likewise.
19403         (var_reg_delete) Likewise.
19404         (var_regno_delete) Likewise.
19405         (drop_overlapping_mem_locs) Likewise.
19406         (variable_union) Likewise.
19407         (insert_into_intersection) Likewise.
19408         (canonicalize_values_star) Likewise.
19409         (variable_merge_over_cur) Likewise.
19410         (dataflow_set_merge) Likewise.
19411         (remove_duplicate_values) Likewise.
19412         (variable_post_merge_new_vals) Likewise.
19413         (dataflow_set_preserve_mem_locs) Likewise.
19414         (dataflow_set_remove_mem_locs) Likewise.
19415         (variable_from_dropped) Likewise.
19416         (variable_was_changed) Likewise.
19417         (set_slot_part) Likewise.
19418         (clobber_slot_part) Likewise.
19419         (delete_slot_part) Likewise.
19420         (loc_exp_insert_dep) Likewise.
19421         (notify_dependents_of_changed_value) Likewise.
19422         (emit_notes_for_differences_1) Likewise.
19423         (vt_emit_notes) Likewise.
19424         (vt_initialize) Likewise.
19425         (vt_finalize) Likewise.
19426
19427 2015-06-01  Martin Liska  <mliska@suse.cz>
19428
19429         * ira-color.c (init_update_cost_records):Use new type-based
19430         pool allocator.
19431         (get_update_cost_record) Likewise.
19432         (free_update_cost_record_list) Likewise.
19433         (finish_update_cost_records) Likewise.
19434         (initiate_cost_update) Likewise.
19435
19436 2015-06-01  Martin Liska  <mliska@suse.cz>
19437
19438         * lra.c (init_insn_regs): Use new type-based pool allocator.
19439         (new_insn_reg) Likewise.
19440         (free_insn_reg) Likewise.
19441         (free_insn_regs) Likewise.
19442         (finish_insn_regs) Likewise.
19443         (init_insn_recog_data) Likewise.
19444         (init_reg_info) Likewise.
19445         (finish_reg_info) Likewise.
19446         (lra_free_copies) Likewise.
19447         (lra_create_copy) Likewise.
19448         (invalidate_insn_data_regno_info) Likewise.
19449
19450 2015-06-01  Martin Liska  <mliska@suse.cz>
19451
19452         * lra-lives.c (free_live_range): Use new type-based pool allocator.
19453         (free_live_range_list) Likewise.
19454         (create_live_range) Likewise.
19455         (copy_live_range) Likewise.
19456         (lra_merge_live_ranges) Likewise.
19457         (remove_some_program_points_and_update_live_ranges) Likewise.
19458         (lra_live_ranges_init) Likewise.
19459         (lra_live_ranges_finish) Likewise.
19460
19461 2015-06-01  Martin Liska  <mliska@suse.cz>
19462
19463         * et-forest.c (et_new_occ): Use new type-based pool allocator.
19464         (et_new_tree): Likewise.
19465         (et_free_tree): Likewise.
19466         (et_free_tree_force): Likewise.
19467         (et_free_pools): Likewise.
19468         (et_split): Likewise.
19469
19470 2015-06-01  Martin Liska  <mliska@suse.cz>
19471
19472         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
19473         to header file.
19474         * alloc-pool.h (pool_allocator::pool_allocator): New function.
19475         (pool_allocator::release): Likewise.
19476         (inline pool_allocator::release_if_empty): Likewise.
19477         (inline pool_allocator::~pool_allocator): Likewise.
19478         (pool_allocator::allocate): Likewise.
19479         (pool_allocator::remove): Likewise.
19480
19481 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19482
19483         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
19484         in comment.
19485
19486 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19487
19488         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
19489         to fusible_ops.
19490         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
19491         (arm_macro_fusion_p): Likewise.
19492         (arm_macro_fusion_pair_p): Likewise.
19493
19494 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19495
19496         * config/aarch64/aarch64-protos.h (tune_params): Rename
19497         fuseable_ops to fusible_ops.
19498         * config/aarch64/aarch64.c (generic_tunings): Rename
19499         fuseable_ops to fusible_ops.
19500         (cortexa53_tunings): Likewise.
19501         (cortexa57_tunings): Likewise.
19502         (thunderx_tunings): Likewise.
19503         (xgene1_tunings): Likewise.
19504         (aarch64_macro_fusion_p): Likewise.
19505         (aarch64_macro_fusion_pair_p): Likewise.
19506
19507 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19508
19509         * config/s390/driver-native.c: New file.
19510         * config/s390/x-native: New file.
19511         * config.host: Add new files for s390.
19512         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
19513         and -march=native
19514         * config.gcc: Likewise.
19515         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
19516         * config/s390/s390-opts.h (enum processor_type): Ditto.
19517         * config/s390/s390.c (s390_option_override): Catch unhandled
19518         PROCESSOR_NATIVE
19519
19520 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
19521
19522         PR target/65527
19523         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
19524         redirection for instrumented calls.
19525         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
19526         (append_compiler_options): Append -fcheck-pointer-bounds.
19527         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
19528         (chkp_redirect_edge): New.
19529         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
19530         (chkp_redirect_edge): New.
19531
19532 2015-06-01  Richard Biener  <rguenther@suse.de>
19533
19534         PR tree-optimization/66280
19535         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
19536         def-use walking.
19537
19538 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19539
19540         * config/aarch64/aarch64.md
19541         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
19542         logic_shift_imm.
19543
19544 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
19545
19546         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
19547         Remove obsolete kludge.
19548
19549 2015-06-01  Richard Biener  <rguenther@suse.de>
19550
19551         * tree-ssa-reassoc.c (get_rank): Simplify.
19552
19553 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
19554
19555         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
19556         * configure: Regenerated.
19557
19558 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
19559
19560         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
19561         issue (add space between string literal and macro).
19562         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
19563
19564 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
19565
19566         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
19567         implict or explicit -fPIE or -fpie.
19568
19569 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
19570
19571         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
19572
19573 2015-05-28  DJ Delorie  <dj@redhat.com>
19574
19575         * expmed.c (extract_bit_field_1): Avoid clobbering a
19576         yet-to-be-used base/index register.
19577
19578 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
19579
19580         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
19581         (alias_stats): Add num_universal.
19582         (alias_set_subset_of): Special case pointers; be ready for NULL
19583         children.
19584         (alias_sets_conflict_p): Special case pointers; be ready for NULL
19585         children.
19586         (init_alias_set_entry): Break out from ...
19587         (record_alias_subset): ... here; propagate new fields;
19588         allocate children only when really needed.
19589         (get_alias_set): Do less generous pointer globbing.
19590         (dump_alias_stats_in_alias_c): Update statistics.
19591
19592 2015-05-30  Alan Modra  <amodra@gmail.com>
19593
19594         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
19595         correct block for use of r12.
19596         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
19597
19598 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19599
19600         PR target/66215
19601         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
19602         with -mhotpatch=.
19603
19604 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
19605
19606         PR tree-optimization/66142
19607         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
19608         virtual phis that feed themselves.
19609
19610 2015-05-29  Richard Biener  <rguenther@suse.de>
19611
19612         PR tree-optimization/66314
19613         * tree-ssa-threadupdate.c (create_block_for_threading): Add
19614         parameter that says which loop the new block belongs to.
19615         (ssa_create_duplicates): Blocks duplicated for the threaded
19616         path belong to the loop of the thread destination.
19617
19618 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19619
19620         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
19621         to cleanup-saved-temps.
19622         * doc/sourcebuild.texi (Clean up generated test files): Expand
19623         introduction.
19624         (dg-keep-saved-temps): Document new proc.
19625         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
19626         cleanup-saved-temps): Remove.
19627
19628 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
19629
19630         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
19631         gcc_AC_CHECK_DECLS.
19632         * configure: Regenerate.
19633
19634 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
19635
19636         * config/nios2/linux.h (CPP_SPEC): Define.
19637
19638 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
19639
19640         * config/microblaze/linux.h (CPP_SPEC): Define.
19641
19642 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
19643
19644         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
19645         -pthread is specified.
19646
19647 2015-05-28  Richard Biener  <rguenther@suse.de>
19648
19649         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
19650         (vect_fixup_scalar_cycles_with_patterns): Likewise.
19651         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
19652         after pattern recog.
19653         (vect_create_epilog_for_reduction): Properly handle reductions
19654         with patterns.
19655         (vectorizable_reduction): Likewise.
19656         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
19657         reduction chains.
19658         (vect_get_constant_vectors): Create the correct number of
19659         initial values for reductions.
19660         (vect_schedule_slp_instance): Handle reduction chains that are
19661         type changing properly.
19662         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
19663
19664 2015-05-28  Richard Biener  <rguenther@suse.de>
19665
19666         PR tree-optimization/66142
19667         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
19668         values better in memcpy destination handling.  Handle non-aliasing
19669         we discover here.
19670
19671 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
19672
19673         PR target/63810
19674         * config/darwin-c.c (version_components): New global enum.
19675         (parse_version, version_as_legacy_macro)
19676         (version_as_modern_macro, macosx_version_as_macro): New functions.
19677         (version_as_macro): Remove.
19678         (darwin_cpp_builtins): Use new function.
19679
19680 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
19681
19682         * builtins.c (expand_builtin_acc_on_device): Mark parameters
19683         with ATTRIBUTE_UNUSED.
19684
19685 2015-05-28  Julian Brown  <julian@codesourcery.com>
19686
19687         PR libgomp/65742
19688
19689         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
19690         sequence for !ACCEL_COMPILER.
19691
19692 2015-05-28  Nick Clifton  <nickc@redhat.com>
19693
19694         * config/rx/rx.c (push_regs): New function.  Extracts code from...
19695         (rx_expand_prologue): ... here.  Use push_regs to push even small
19696         spans of registers.
19697         (pop_regs): New function.
19698         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
19699         registers.
19700
19701 2015-05-28  Richard Biener  <rguenther@suse.de>
19702
19703         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
19704         member.
19705         (SLP_INSTANCE_BODY_COST_VEC): Remove.
19706         (vect_update_slp_costs_according_to_vf): Likewise.
19707         (vect_slp_analyze_operations): Update prototype.
19708         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
19709         vect_update_slp_costs_according_to_vf, adjust.
19710         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
19711         (vect_analyze_slp_cost_1): Likewise.
19712         (vect_analyze_slp_cost): Likewise.  Properly deal with
19713         widening reduction ops.  Commit body costs.
19714         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
19715         cost for loops from here.
19716         (vect_slp_analyze_operations): But do it from here when
19717         the vectorization factor is known and stmts are analyzed.
19718         (vect_bb_vectorization_profitable_p): Simplify.
19719         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
19720         (vect_update_slp_costs_according_to_vf): Remove.
19721
19722 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
19723             H.J. Lu  <hongjiu.lu@intel.com>
19724
19725         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
19726         (BUILD_CFLAGS): Likewise.
19727         (BUILD_CXXFLAGS): Likewise.
19728         (LINKER): Add @NO_PIE_FLAG@.
19729         (BUILD_LDFLAGS): Likewise.
19730         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
19731         --enable-default-pie.
19732         * common.opt (fPIE): Initialize to -1.
19733         (fpie): Likewise.
19734         (no-pie): New option.
19735         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
19736         * configure.ac: Add --enable-default-pie.
19737         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
19738         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
19739         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
19740         * gcc.c (NO_PIE_SPEC): New.
19741         (PIE_SPEC): Likewise.
19742         (NO_FPIE1_SPEC): Likewise.
19743         (FPIE1_SPEC): Likewise.
19744         (NO_FPIE2_SPEC): Likewise.
19745         (FPIE2_SPEC): Likewise.
19746         (NO_FPIE2_SPEC): Likewise.
19747         (FPIE_SPEC): Likewise.
19748         (NO_FPIE_SPEC): Likewise.
19749         (NO_FPIC1_SPEC): Likewise.
19750         (FPIC1_SPEC): Likewise.
19751         (NO_FPIC2_SPEC): Likewise.
19752         (FPIC2_SPEC): Likewise.
19753         (NO_FPIC2_SPEC): Likewise.
19754         (FPIC_SPEC): Likewise.
19755         (NO_FPIC_SPEC): Likewise.
19756         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
19757         (FPIE1_OR_FPIC1_SPEC): Likewise.
19758         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
19759         (FPIE2_OR_FPIC2_SPEC): Likewise.
19760         (NO_FPIE_AND_FPIC_SPEC): Likewise.
19761         (FPIE_OR_FPIC_SPEC): Likewise.
19762         (LD_PIE_SPEC): Likewise.
19763         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
19764         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
19765         * config/darwin.h (PIE_SPEC): Renamed to ...
19766         (DARWIN_PIE_SPEC): This.
19767         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
19768         * config/darwin9.h (PIE_SPEC): Renamed to ...
19769         (DARWIN_PIE_SPEC): This.
19770         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
19771         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
19772         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
19773         FPIE2_OR_FPIC2_SPEC.
19774         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
19775         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
19776         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
19777         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
19778         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
19779         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
19780         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
19781         * config/m32r/m32r.h (ASM_SPEC): Likewise.
19782         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
19783         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
19784         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
19785         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
19786         * config/sparc/linux.h (ASM_SPEC): Likewise.
19787         * config/sparc/linux64.h (ASM_SPEC): Likewise.
19788         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
19789         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
19790         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
19791         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
19792         * config/sparc/sparc.h (ASM_SPEC): Likewise.
19793         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
19794         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
19795         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
19796         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
19797         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
19798         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
19799         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
19800         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
19801         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
19802         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
19803         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
19804         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
19805         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
19806         * config/vax/linux.h (ASM_SPEC): Likewise.
19807         * doc/install.texi: Document --enable-default-pie.
19808         * doc/invoke.texi: Document -no-pie.
19809         * config.in: Regenerated.
19810         * configure: Likewise.
19811
19812 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19813
19814         PR rtl-optimization/66168
19815         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
19816         can_move_invariant_reg.
19817
19818 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
19819
19820         PR target/66148
19821         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
19822         REG_EQUAL note when doing insert.
19823
19824         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
19825         instead of "%d" for 'o' operand.
19826
19827 2015-05-27  Nathan Sidwell  <nathan@acm.org>
19828
19829         PR c++/66270
19830         * tree.c (build_pointer_type_for_mode): Canonical type does not
19831         inherit can_alias_all.
19832         (build_reference_type_for_mode): Likewise.
19833
19834 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
19835
19836         * expr.h (array_at_struct_end_p): Move to...
19837         (array_ref_element_size): Likewise.
19838         (component_ref_field_offset): Likewise.
19839         * tree.h (array_ref_element_size): ...here.
19840         (array_at_struct_end_p): Likewise.
19841         (component_ref_field_offset): Likewise.
19842         * expr.c (array_ref_element_size): Move to...
19843         (array_ref_low_bound): Likewise.
19844         (array_at_struct_end_p): Likewise.
19845         (array_ref_up_bound): Likewise.
19846         (component_ref_field_offset): Likewise.
19847         * tree.c (array_ref_element_size): ...here.
19848         (array_ref_low_bound): Likewise.
19849         (array_ref_up_bound): Likewise.
19850         (array_at_struct_end_p): Likewise.
19851         (component_ref_field_offset): Likewise.
19852
19853 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
19854             Szabolcs Nagy  <szabolcs.nagy@arm.com>
19855
19856         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
19857
19858 2015-05-27  Jason Merrill  <jason@redhat.com>
19859
19860         PR bootstrap/66304
19861         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
19862         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
19863         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
19864
19865 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
19866
19867         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
19868         is true.
19869
19870         * statistics.c (statistics_fini_pass): Print pass name.
19871
19872 2015-05-27  Richard Biener  <rguenther@suse.de>
19873
19874         PR tree-optimization/66272
19875         Revert parts of
19876         2014-08-15  Richard Biener  <rguenther@suse.de>
19877
19878         PR tree-optimization/62031
19879         * tree-data-ref.c (dr_analyze_indices): Do not set
19880         DR_UNCONSTRAINED_BASE.
19881         (dr_may_alias_p): All indirect accesses have to go the
19882         formerly DR_UNCONSTRAINED_BASE path.
19883         * tree-data-ref.h (struct indices): Remove
19884         unconstrained_base member.
19885         (DR_UNCONSTRAINED_BASE): Remove.
19886
19887 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
19888
19889         * dwarf2out.c: Remove block_map.
19890         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
19891         (gen_lexical_block_die): Same.
19892         (dwarf2out_function_decl): Remove block_map use.
19893         (dwarf2out_c_finalize): Same.
19894         * tree-core.h (struct tree_block): Add die field.
19895         * tree.h (BLOCK_DIE): New.
19896
19897 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19898
19899         PR target/65358
19900         * expr.c (memory_load_overlap): New function.
19901         (emit_push_insn): When pushing partial args to the stack would
19902         clobber the register part load the overlapping part into a pseudo
19903         and put it into the hard reg after pushing.  Change return type
19904         to bool.  Add bool argument.
19905         * expr.h (emit_push_insn): Change return type to bool.
19906         Add bool argument.
19907         * calls.c (expand_call): Cancel sibcall optimization when encountering
19908         partial argument on targets with ARGS_GROW_DOWNWARD and
19909         !STACK_GROWS_DOWNWARD.
19910         (emit_library_call_value_1): Update callsite of emit_push_insn.
19911         (store_one_arg): Likewise.
19912
19913 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
19914
19915         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
19916
19917 2015-05-27  Martin Liska  <mliska@suse.cz>
19918
19919         * Makefile.in: Add additional dependencies related to memory report
19920         enhancement.
19921         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
19922         * bitmap.c (struct bitmap_descriptor_d): Remove.
19923         (struct loc): Likewise.
19924         (struct bitmap_desc_hasher): Likewise.
19925         (bitmap_desc_hasher::hash): Likewise.
19926         (bitmap_desc_hasher::equal): Likewise.
19927         (get_bitmap_descriptor): Likewise.
19928         (bitmap_register): User new memory descriptor API.
19929         (register_overhead): Likewise.
19930         (bitmap_find_bit): Register nsearches and search_iter statistics.
19931         (struct bitmap_output_info): Remove.
19932         (print_statistics): Likewise.
19933         (dump_bitmap_statistics): Use new memory descriptor.
19934         * bitmap.h (struct bitmap_usage): New class.
19935         * genmatch.c: Extend header file inclusion.
19936         * genpreds.c: Likewise.
19937         * ggc-common.c (struct ggc_usage): New class.
19938         (struct ggc_loc_desc_hasher): Remove.
19939         (ggc_loc_desc_hasher::hash): Likewise.
19940         (ggc_loc_desc_hasher::equal): Likewise.
19941         (struct ggc_ptr_hash_entry): Likewise.
19942         (struct ptr_hash_hasher): Likewise.
19943         (ptr_hash_hasher::hash): Likewise.
19944         (ptr_hash_hasher::equal): Likewise.
19945         (make_loc_descriptor): Likewise.
19946         (ggc_prune_ptr): Likewise.
19947         (dump_ggc_loc_statistics): Use new memory descriptor.
19948         (ggc_record_overhead): Likewise.
19949         (ggc_free_overhead): Likewise.
19950         (final_cmp_statistic): Remove.
19951         (cmp_statistic): Likewise.
19952         (ggc_add_statistics): Liekwise.
19953         (ggc_prune_overhead_list): Likewise.
19954         * hash-map-traits.h: New file.
19955         * hash-map.h (struct default_hashmap_traits): Move the traits to a
19956         separate header file.
19957         * hash-set.h: Pass memory statistics info to ctor.
19958         * hash-table.c (void dump_hash_table_loc_statistics): New function.
19959         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
19960         (hash_table::~hash_table): Register memory release operation.
19961         (hash_table::alloc_entries): Handle memory allocation operation.
19962         (hash_table::expand): Likewise.
19963         * inchash.c (iterative_hash_hashval_t): Move implementation to header
19964         file.
19965         (iterative_hash_host_wide_int): Likewise.
19966         * inchash.h (class hash): Likewise.
19967         * mem-stats-traits.h: New file.
19968         * mem-stats.h: New file.
19969         (mem_location): Add new class.
19970         (mem_usage): Likewise.
19971         (mem_alloc_description): Likewise.
19972         * sese.c: Add new header file inclusision.
19973         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
19974         and hash_set.
19975         * tree-sra.c: Add new header file inclusision.
19976         * vec.c (struct vec_descriptor): Remove.
19977         (hash_descriptor): Likewise.
19978         (struct vec_usage): Likewise.
19979         (struct ptr_hash_entry): Likewise.
19980         (hash_ptr): Likewise.
19981         (eq_ptr): Likewise.
19982         (vec_prefix::register_overhead): Use new memory descriptor API.
19983         (vec_prefix::release_overhead): Likewise.
19984         (add_statistics): Remove.
19985         (dump_vec_loc_statistics): Use new memory descriptor API.
19986         * vec.h (struct vec_prefix): Likewise.
19987         (va_heap::reserve): Likewise.
19988         (va_heap::release): Likewise.
19989         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
19990
19991 2015-05-27  Richard Biener  <rguenther@suse.de>
19992
19993         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
19994         earlier and remove ??? comment.
19995         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
19996         and got called from loop analysis bail out.  Always pass the SLP
19997         node to the vectorizable_* functions.
19998         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
19999         the premature SLP check here.
20000         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
20001         detected SLP stmts.
20002         (vect_detect_hybrid_slp_1): Likewise.
20003
20004 2015-05-26  Jeff Law  <law@redhat.com>
20005
20006         * combine.c (find_split_point): Verify that the shift count is a
20007         constant when choosing (plus (ashift ...)) as a split point.
20008
20009         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
20010         No functional changes.
20011
20012 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
20013
20014         * ipa-polymorphic-call.c
20015         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
20016         case when call target is already known.
20017
20018 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
20019
20020         PR target/65979
20021         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
20022         take into account the case that operands[1] and operands[2]
20023         are the same register.
20024
20025 2015-05-26  Michael Matz  <matz@suse.de>
20026
20027         PR middle-end/66251
20028
20029         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
20030         stores.
20031         (vect_create_vectorized_demotion_stmts): Always set
20032         STMT_VINFO_VEC_STMT, also with SLP.
20033         (vectorizable_store): Handle strided group stores.
20034
20035 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
20036
20037         PR target/66049
20038         * config/aarch64/aarch64.md
20039         (*adds_shift_imm_<mode>):  New pattern.
20040         (*subs_shift_imm_<mode>):  Likewise.
20041         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
20042         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
20043         (*add_uxt<mode>_shift2): Likewise.
20044         (*add_uxtsi_shift2_uxtw): Likewise.
20045         (*sub_uxt<mode>_shift2): Likewise.
20046         (*sub_uxtsi_shift2_uxtw): Likewise.
20047
20048 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
20049
20050         * config/rs6000/constraints.md (Y, U): Use match_test.
20051
20052 2015-05-26  Christian Bruel  <christian.bruel@st.com>
20053
20054         PR target/52144
20055         * config/arm/arm.c (arm_option_check_internal)
20056         (arm_option_params_internal): Check opts->target_flags to set macros.
20057         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
20058         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
20059         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
20060         (builtin_define): Replaced with def_or_undef_macro.
20061         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
20062         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
20063         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
20064         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
20065         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
20066         (TARGET_ARM_FEATURE_LDREX_P)
20067         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
20068         * config/arm/arm-c.c (def_or_undef_macro): New function.
20069         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
20070
20071 2015-05-26  Christian Bruel  <christian.bruel@st.com>
20072
20073         * c-common.h (builtin_define_with_int_value)
20074         (builtin_define_type_sizeof): Declare.
20075         * c-cppbuiltin.c (builtin_define_with_int_value)
20076         (builtin_define_type_sizeof): Externalize.
20077         (builtin_define_std): Cleanup declaration.
20078         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
20079         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
20080         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
20081         (builtin_define, builtin_assert): New macros.
20082
20083 2015-05-26  Richard Biener  <rguenther@suse.de>
20084
20085         PR tree-optimization/66142
20086         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
20087         MEM_REFs for the same base address.
20088
20089 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20090
20091         PR ipa/66181
20092         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
20093
20094 2015-05-26  Jason Merrill  <jason@redhat.com>
20095
20096         * configure.ac: Set CXXFLAGS for ISL test.
20097         * configure: Regenerate.
20098
20099         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
20100         strstr and basename.
20101         * configure: Regenerate.
20102
20103 2015-05-26  Richard Biener  <rguenther@suse.de>
20104
20105         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
20106         X % C -> X & (C - 1) for C being a power-of two to ...
20107         * match.pd: ... patterns.
20108
20109 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
20110
20111         * match.pd (swapped_tcc_comparison): New operator list.
20112         (-A CMP -B): New simplification.
20113         * fold-const.c (fold_comparison): Remove corresponding code.
20114
20115 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
20116
20117         * caller-save.c (init_caller_save): Base temporary register numbers
20118         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
20119         * cfgloopanal.c (init_set_costs): Likewise.
20120         * dojump.c (prefer_and_bit_test): Likewise.
20121         * expr.c (init_expr_target): Likewise.
20122         * ira.c (setup_prohibited_mode_move_regs): Likewise.
20123         * lower-subreg.c (init_lower_subreg): Likewise.
20124         * postreload.c (reload_cse_regs_1): Likewise.
20125
20126 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
20127
20128         * gensupport.h (compute_test_codes): Declare.
20129         * gensupport.c (compute_predicate_codes): Rename to...
20130         (compute_test_codes): ...this.  Generalize error message.
20131         (process_define_predicate): Update accordingly.
20132         * genpreds.c (compute_maybe_allows): Delete.
20133         (add_constraint): Use compute_test_codes to determine whether
20134         something can accept a SUBREG, REG or MEM.
20135
20136 2015-05-26  Torvald Riegel  <triegel@redhat.com>
20137
20138         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
20139         'memory model' to align with C++11; fix description of memory orders;
20140         fix a few typos.
20141
20142 2015-05-26  Richard Biener  <rguenther@suse.de>
20143
20144         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
20145         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
20146         detect whether we apply SLP.  Remove call to
20147         vect_update_slp_costs_according_to_vf.
20148         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
20149         vect_update_slp_costs_according_to_vf from here.  Dispatch
20150         to vect_slp_analyze_operations to analyze SLP stmts.
20151         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
20152         unused bb_vec_info parameter, adjust assert.
20153         (vect_slp_analyze_operations): Pass in the slp instance tree
20154         instead of bb_vec_info.
20155         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
20156         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
20157
20158 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
20159
20160         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
20161         Q_REGS.  Expand comment.
20162         (REG_CLASS_NAMES): Ditto.
20163         (REG_CLASS_CONTENTS): Ditto.
20164
20165 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
20166
20167         PR target/66274
20168         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
20169         when LEGACY_INT_REGNO_P is processed.
20170
20171 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
20172
20173         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
20174
20175 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
20176
20177         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
20178         register if not marked dead/unused, before return.
20179
20180 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20181
20182         PR lto/66180
20183         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
20184         is set; check for assembler name at LTO time.
20185         (type_in_anonymous_namespace): Remove hacks, check that all
20186         anonymous types are called "<anon>"
20187         (odr_type_p): Simplify; add check for "<anon>"
20188         (odr_subtypes_equivalent): Add odr_type_p check.
20189         * tree.c (need_assembler_name_p): Even anonymous namespace needs
20190         assembler name.
20191
20192 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20193
20194         * ipa-utils.h (method_class_type): Remove.
20195         * cgraphunit.c (walk_polymorphic_call_targets): Use
20196         TYPE_METHOD_BASETYPE.
20197         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
20198         on main variants only.
20199         (method_class_type): Remove.
20200         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
20201         (build_type_inheritance_graph): Likewise.
20202         * ipa-icf.c (sem_function::equals_wpa): Likewise.
20203         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
20204         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
20205
20206 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20207
20208         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
20209         is_typedef_decl, typedef_variant_p): Constify.
20210         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
20211         is_typedef_decl, typedef_variant_p): Constify.
20212
20213 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20214
20215         * defaults.h (gen_tablejump): New function.
20216         (HAVE_tablejump): Add default value.
20217         * expr.c: Adjust.
20218         * stmt.c: Likewise.
20219
20220 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20221
20222         * defaults.h (gen_store_multiple): New function.
20223         (HAVE_store_multiple): Add default value.
20224         * expr.c (move_block_from_reg): Adjust.
20225
20226 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20227
20228         * defaults.h (gen_load_multiple): New function.
20229         (HAVE_load_multiple): Add default value.
20230         * expr.c (move_block_to_reg): Adjust.
20231
20232 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20233
20234         * defaults.h (gen_mem_signal_fence): New function.
20235         (HAVE_mem_signal_fence): Add default value.
20236         * optabs.c: Adjust.
20237
20238 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20239
20240         * defaults.h (gen_memory_barrier): New function.
20241         (HAVE_memory_barrier): Add default value.
20242         * optabs.c: Adjust.
20243
20244 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20245
20246         * defaults.h (gen_mem_thread_fence): New function.
20247         (HAVE_mem_thread_fence): Add default definition.
20248         * optabs.c: Adjust.
20249
20250 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20251
20252         * combine.c (find_split_point): Check the value of HAVE_lo_sum
20253         instead of if it is defined.
20254         (combine_simplify_rtx): Likewise.
20255         * lra-constraints.c (process_address_1): Likewise.
20256         * config/darwin.c: Adjust.
20257         * genconfig.c (main): Always define HAVE_lo_sum.
20258
20259 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20260
20261         * genmatch.c (parser::parse_operation): Reject expanding
20262         operator-list inside 'for'.
20263
20264 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20265
20266         * genmatch.c (parser::parse_for): Reject iterator if used as
20267         operator-list.
20268
20269 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20270
20271         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
20272         after end of id-list.
20273
20274 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
20275
20276         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
20277         we do not try to compute canonical type for type that does not need
20278         alias set.
20279         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
20280         FUNCITON_TYPE.
20281         * tree.h (type_with_alias_set_p): New.
20282
20283 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
20284
20285         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
20286         function attributes.
20287         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
20288
20289 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
20290
20291         * Makefile.in (check_gcc_parallelize): Delete.
20292         (lang_checks_parallelized): Update comment.
20293
20294 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
20295
20296         PR rtl-optimization/66237
20297         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
20298         location of an "as_a" cast.
20299
20300 2015-05-22  Jeff Law  <law@redhat.com>
20301
20302         * config/pa/pa.md (non-canonical shift-add insns): Remove.
20303         (peepholes with non-canonical RTL sources): Remove.
20304         (peepholes for indexed stores of FP regs in integer modes): Match and
20305         generate canonical RTL.
20306
20307 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20308
20309         PR tree-optimization/63387
20310         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
20311         ((x ord x) & (y ord y) -> (x ord y),
20312         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
20313         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
20314         vectors like scalars.
20315
20316 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20317
20318         * convert.c (convert_to_integer, convert_to_vector): Include the
20319         types in the error message.
20320
20321 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20322
20323         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
20324         simplifications.
20325
20326 2015-05-22  Jeff Law  <law@redhat.com>
20327
20328         * config/pa/pa.md (integer_indexed_store splitters): Use
20329         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
20330         insns -- adjusting the constant 2nd operand accordingly.
20331
20332         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
20333         (plus (ashift X log2) Y) if it is a split point.
20334
20335         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
20336         out of hppa_legitimize_address to handle both forms of a multiply
20337         by 2, 4 or 8.
20338         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
20339         Always generate the ASHIFT variant as the result is not directly
20340         used in a MEM.  Update comments and refactor slightly to improve
20341         readability.
20342
20343 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20344
20345         PR target/65491
20346         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
20347         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
20348         (aarch64_composite_type_p): Return false if given type and mode are
20349         for a short vector.
20350
20351 2015-05-22  Richard Biener  <rguenther@suse.de>
20352
20353         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
20354         member.
20355         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
20356         patterns when determining whether SLP is pure.
20357         (vect_is_slp_reduction): Remove check for pattern stmts.
20358         (vect_is_simple_reduction_1): Remove dead code.
20359         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
20360         (vect_get_and_check_slp_defs): Pass in the stmt number.
20361         Allow the first def in a reduction to be not a pattern stmt when
20362         the rest of the stmts def are patterns.
20363         (vect_build_slp_tree_1): Allow tcc_expression codes like
20364         SAD_EXPR and DOT_PROD_EXPR.
20365         (vect_build_slp_tree): Adjust.
20366         (vect_analyze_slp): Refactor and move BB vect error message ...
20367         (vect_slp_analyze_bb_1): ... here.
20368
20369 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
20370
20371         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
20372         for CSWTCH temporary.
20373
20374 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20375
20376         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
20377         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
20378         unknown unspecs.
20379
20380 2015-05-22  Richard Biener  <rguenther@suse.de>
20381
20382         PR tree-optimization/66251
20383         * tree-vect-stmts.c (vectorizable_conversion): Properly
20384         set STMT_VINFO_VEC_STMT even for the SLP case.
20385
20386 2015-05-22  Marek Polacek  <polacek@redhat.com>
20387
20388         * doc/extend.texi: Use @pxref instead of @xref.
20389
20390 2015-05-22  hiraditya  <hiraditya@msn.com>
20391
20392         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
20393         redundant if.
20394
20395 2015-05-22  Richard Biener  <rguenther@suse.de>
20396
20397         PR tree-optimization/65701
20398         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
20399         Move peeling cost models into one place.  Peel for alignment
20400         for single loads only if an aligned load is cheaper than
20401         an unaligned load.
20402
20403 2015-05-22  Marek Polacek  <polacek@redhat.com>
20404
20405         PR c/47043
20406         * doc/extend.texi (Enumerator Attributes): New section.
20407         Document syntax of enumerator attributes.
20408
20409 2015-05-22  Richard Biener  <rguenther@suse.de>
20410
20411         * tree-vect-loop.c (get_reduction_op): New function.
20412         (vect_model_reduction_cost): Use it, add reduc_index parameter.
20413         Make ready for BB reductions.
20414         (vect_create_epilog_for_reduction): Use get_reduction_op.
20415         (vectorizable_reduction): Init reduc_index to a valid value.
20416         Adjust vect_model_reduction_cost call.
20417         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
20418         operand for reduction defaults.  Add SAD_EXPR support.
20419         Assert we have a neutral op for SLP reductions.
20420         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
20421         walking pattern stmt ops only recurse to SSA names.
20422
20423 2015-05-22  Richard Biener  <rguenther@suse.de>
20424
20425         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
20426         assert with guard, remove check on detected reduction.
20427         (vect_recog_sad_pattern): Likewise.
20428         (vect_recog_widen_sum_pattern): Likewise.
20429
20430 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20431
20432         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
20433         __always_inline__ attribute.
20434         (vaesdq_u8): Likewise.
20435         (vaesmcq_u8): Likewise.
20436         (vaesimcq_u8): Likewise.
20437         (vsha1cq_u32): Likewise.
20438         (vsha1mq_u32): Likewise.
20439         (vsha1pq_u32): Likewise.
20440         (vsha1h_u32): Likewise.
20441         (vsha1su0q_u32): Likewise.
20442         (vsha1su1q_u32): Likewise.
20443         (vsha256hq_u32): Likewise.
20444         (vsha256h2q_u32): Likewise.
20445         (vsha256su0q_u32): Likewise.
20446         (vsha256su1q_u32): Likewise.
20447         (vmull_p64): Likewise.
20448         (vmull_high_p64): Likewise.
20449
20450 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20451
20452         * final.c (final_scan_insn): Don't check HAVE_peephole with the
20453         preprocessor.
20454         * output.h: Likewise.
20455         * genconfig.c (main): Alwways define HAVE_peephole.
20456         * genpeep.c: Don't emit checks of HAVE_peephole.
20457
20458 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20459
20460         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
20461         check HAVE_conditional_move with the preprocessor.
20462
20463 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20464
20465         * genconfig.c (main): Always define HAVE_conditional_move.
20466         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
20467         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
20468         is defined.
20469
20470 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20471
20472         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
20473         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
20474         and FRAME_POINTER_REGNUM with the preprocessor.
20475
20476 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20477
20478         * defaults.h: Add default for STACK_PUSH_CODE.
20479         * expr.c: Don't redefine STACK_PUSH_CODE.
20480         * recog.c: Likewise.
20481
20482 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20483
20484         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
20485         sched-deps.c: Use if instead of preprocessor checks with
20486         STACK_GROWS_DOWNWARD.
20487
20488 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20489
20490         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
20491         is defined.
20492         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
20493         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
20494         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
20495         * doc/tm.texi: Regenerate.
20496
20497 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
20498
20499         PR target/66232
20500         * config/i386/constraints.md (Bg): New constraint for GOT memory
20501         operand.
20502         * config/i386/i386.md (*call_got_x32): New pattern.
20503         (*call_value_got_x32): Likewise.
20504         * config/i386/predicates.md (GOT_memory_operand): New predicate.
20505
20506 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
20507
20508         PR tree-optimization/66233
20509         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
20510         Simplify.
20511
20512 2015-05-21  Jeff Law  <law@redhat.com>
20513
20514         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
20515         than MULT for shadd sequences.
20516
20517 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
20518
20519         * alias.c (alias_stats): New static var.
20520         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
20521         (dump_alias_stats_in_alias_c): New function.
20522         * alias.h (dump_alias_stats_in_alias_c): Declare.
20523         * tree-ssa-alias.c (dump_alias_stats): Call it.
20524
20525 2015-05-08  Michael Matz  <matz@suse.de>
20526
20527         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
20528         to strided_p.
20529         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
20530         (STMT_VINFO_STRIDED_P): ... this.
20531         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
20532         (vect_verify_datarefs_alignment): Likewise.
20533         (vect_enhance_data_refs_alignment): Likewise.
20534         (vect_analyze_data_ref_access): Likewise.
20535         (vect_analyze_data_refs): Accept strided stores.
20536         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
20537         (vect_model_load_cost): Adjust for macro rename.
20538         (vectorizable_mask_load_store): Likewise.
20539         (vectorizable_load): Likewise.
20540         (vectorizable_store): Open code strided stores.
20541
20542 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20543
20544         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
20545         Document sqrt_insn.
20546
20547 2015-05-21  Richard Biener  <rguenther@suse.de>
20548
20549         PR c++/66211
20550         * match.pd: Guard pattern optimzing (int)(float)int
20551         conversions to apply only on GIMPLE.
20552
20553 2015-05-21  Jeff Law  <law@redhat.com>
20554
20555         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
20556         multiply-accumulate/shift-add insn generation.
20557
20558 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
20559
20560         PR target/54236
20561         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
20562         operands[1] are the same.
20563
20564 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
20565
20566         PR middle-end/66221
20567         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
20568         build_distinct_type_copy to copy bounds.
20569
20570 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
20571
20572         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
20573         Change to unsigned int.
20574
20575 2015-05-20  Jeff Law  <law@redhat.com>
20576
20577         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
20578         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
20579         (pa_shadd_constant_p): Allow constants for shadd insns rather
20580         than valid scaling constants for memory addresses.
20581         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
20582         * config/pa/predicates.md (mem_shadd_operand): New predicate.
20583         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
20584         (shift-add insns using ASHIFT): New patterns.
20585
20586 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
20587
20588         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
20589         feasible.
20590         (fix_up_fall_thru_edges): Likewise.
20591         (fix_crossing_conditional_branches): Likewise. Promote jump targets
20592         from to rtx_insn to rtx_code_label where feasible.
20593         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
20594         gen_move_insn (returned type changed to rtx_insn).
20595         * builtins.c (expand_errno_check): Fix arguments of
20596         do_compare_rtx_and_jump (now expects rtx_code_label).
20597         (expand_builtin_acc_on_device): Likewise.
20598         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
20599         invert_jump (now exprects rtx_jump_insn).
20600         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
20601         (construct_init_block): Use rtx_code_label.
20602         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
20603         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
20604         calling redirect_jump.
20605         (patch_jump_insn): Likewise.
20606         (redirect_branch_edge): Likewise.
20607         (force_nonfallthru_and_redirect): Likewise.
20608         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
20609         when suitable.
20610         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
20611         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
20612         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
20613         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
20614         to store the value retured by gen_label_rtx.
20615         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
20616         rtx_jump_insn.
20617         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
20618         (split_branches): Fix calls of redirect_jump.
20619         * dojump.c (jumpifnot): Promote argument type from rtx to
20620         rtx_code_label.
20621         (jumpifnot_1): Likewise.
20622         (jumpif): Likewise.
20623         (jumpif_1): Likewise.
20624         (do_jump_1): Likewise.
20625         (do_jump): Likewise. Use rtx_code_label when feasible.
20626         (do_jump_by_parts_greater_rtx): Likewise.
20627         (do_jump_by_parts_zero_rtx): Likewise.
20628         (do_jump_by_parts_equality_rtx): Likewise.
20629         (do_compare_rtx_and_jump): Likewise.
20630         * dojump.h: Update function prototypes.
20631         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
20632         returns rtx_insn).
20633         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
20634         rtx_jump_insn.
20635         (emit_label_before): Likewise.
20636         (emit_jump_insn_after_noloc): Likewise.
20637         (emit_jump_insn_after_setloc): Likewise.
20638         (emit_jump_insn_after): Likewise
20639         (emit_jump_insn_before_setloc): Likewise.
20640         (emit_jump_insn_before): Likewise.
20641         (emit_label_before): Promote return type to rtx_code_label.
20642         (emit_label): Likewise.
20643         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
20644         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
20645         gen_move_insn.
20646         (emit_stack_restore): Likewise.
20647         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
20648         (do_cmp_and_jump): Likewise.
20649         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
20650         from rtx to rtx_code_label.
20651         (gen_move_insn_uncast): New function.
20652         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
20653         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
20654         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
20655         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
20656         invert_jump_1 and redirect_jump_1.
20657         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
20658         do_compare_rtx_and_jump.
20659         (expand_addsub_overflow): Likewise.
20660         (expand_neg_overflow): Likewise.
20661         (expand_mul_overflow): Likewise.
20662         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
20663         return value of gen_move_insn.
20664         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
20665         * loop-doloop.c (add_test): Use rtx_code_label.
20666         (doloop_modify): Likewise.
20667         (doloop_optimize): Likewise.
20668         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
20669         * lra-constraints.c (emit_spill_move): Remove cast of value returned
20670         by gen_move_insn.
20671         (inherit_reload_reg): Add cast when calling dump_insn_slim.
20672         (split_reg): Likewise.
20673         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
20674         gen_move_insn.
20675         * optabs.c (expand_binop_directly): Remove casts of values returned by
20676         maybe_gen_insn.
20677         (expand_unop_direct): Likewise.
20678         (expand_abs): Likewise.
20679         (maybe_emit_unop_insn): Likewise.
20680         (maybe_gen_insn): Promote return type to rtx_insn.
20681         * optabs.h: Update prototype of maybe_gen_insn.
20682         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
20683         redundant cast.
20684         * recog.c (struct peep2_insn_data): Promote type of insn field to
20685         rtx_insn.
20686         (peep2_reinit_state): Use NULL instead of NULL_RTX.
20687         (peep2_attempt): Remove casts of insn in peep2_insn_data.
20688         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
20689         * recog.h (struct insn_gen_fn): Promote return types of function
20690         pointers and operator ().from rtx to rtx_insn.
20691         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
20692         (fill_eager_delay_slots): Likewise.
20693         (relax_delay_slots): Likewise.
20694         (make_return_insns): Likewise.
20695         (dbr_schedule): Likewise.
20696         (optimize_skips): Likewise.
20697         (reorg_redirect_jump): Likewise.
20698         (fill_slots_from_thread): Likewise.
20699         * reorg.h: Update prototypes.
20700         * resource.c (find_dead_or_set_registers): Use dyn_cast to
20701         rtx_jump_insn instead of check.  Use it's jump_target method.
20702         * rtl.h (rtx_jump_insn::jump_label): Define new method.
20703         (rtx_jump_insn::jump_target): Define new method.
20704         (rtx_jump_insn::set_jump_target): Define new method.
20705         * rtlanal.c (tablejump_p): Promote type of one local variable.
20706         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
20707         (sched_analyze_insn): Likewise.
20708         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
20709         (print_insn): Likewise.
20710         * stmt.c (label_rtx): Promote return type to rtx_insn.
20711         (force_label_rtx): Likewise.
20712         (jump_target_rtx): Define new function.
20713         (expand_label): Use it, get rid of one cast.
20714         (expand_naked_return): Promote rtx to rtx_code_label.
20715         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
20716         (expand_case): Use rtx_code_label instread of rtx where feasible.
20717         (expand_sjlj_dispatch_table): Likewise.
20718         (emit_case_nodes): Likewise.
20719         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
20720         * store-motion.c (insert_store): Make use of new return type of
20721         gen_move_insn and remove a cast.
20722         (replace_store_insn): Likewise.
20723
20724 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
20725
20726         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
20727         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
20728
20729 2015-05-20  Jeff Law  <law@redhat.com>
20730
20731         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
20732         dispose of the jump thread path when the jump threading
20733         opportunity is cancelled.
20734
20735 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20736
20737         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
20738         when printing the caret character.
20739
20740 2015-05-20  Marek Polacek  <polacek@redhat.com>
20741
20742         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
20743
20744 2015-05-20  Marek Polacek  <polacek@redhat.com>
20745
20746         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
20747         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
20748         * gimple-fold.c (canonicalize_bool): Likewise.
20749         (same_bool_result_p): Likewise.
20750         * tree-if-conv.c (parse_predicate): Likewise.
20751
20752 2015-05-20  Marek Polacek  <polacek@redhat.com>
20753
20754         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
20755         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
20756
20757 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20758
20759         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
20760         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
20761         values.
20762
20763 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
20764
20765         * config/mips/mips.h (micromips_globals): Declare.
20766
20767 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
20768
20769         * timevar.def (TV_INITIALIZE_RTL): New.
20770         * toplev.c (initialize_rtl): Use an auto_timevar to account this
20771         function's time to TV_INITIALIZE_RTL.
20772
20773 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
20774
20775         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
20776         gimple_build_nop calls.
20777         (chkp_find_bounds_for_elem): Likewise.
20778         (chkp_get_zero_bounds): Likewise.
20779         (chkp_get_none_bounds): Likewise.
20780         (chkp_get_bounds_by_definition): Likewise.
20781         (chkp_generate_extern_var_bounds): Likewise.
20782         (chkp_get_bounds_for_decl_addr): Likewise.
20783         (chkp_get_bounds_for_string_cst): Likewise.
20784
20785 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
20786
20787         PR tree-optimization/65447
20788         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
20789         (dump_use, dump_uses): Support to dump sub use.
20790         (record_use): New parameters to support sub use.  Remove call to
20791         dump_use.
20792         (record_sub_use, record_group_use): New functions.
20793         (compute_max_addr_offset, split_all_small_groups): New functions.
20794         (group_address_uses, rewrite_use_address): New functions.
20795         (strip_offset): New declaration.
20796         (find_interesting_uses_address): Call record_group_use.
20797         (add_candidate): New assertion.
20798         (infinite_cost_p): Move definition forward.
20799         (add_costs): Check INFTY cost and return immediately.
20800         (get_computation_cost_at): Clear setup cost and dependent bitmap
20801         for sub uses.
20802         (determine_use_iv_cost_address): Compute cost for sub uses.
20803         (rewrite_use_address_1): Rename from old rewrite_use_address.
20804         (free_loop_data): Free sub uses.
20805         (tree_ssa_iv_optimize_loop): Call group_address_uses.
20806
20807 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
20808             Jim Wilson  <jim.wilson@linaro.org>
20809
20810         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
20811         new  fields loadv and storev.
20812         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
20813         Initialize loadv and storev.
20814         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
20815         (cortexa53_extra_costs): Likewise.
20816         (cortexa57_extra_costs): Likewise.
20817         (xgene1_extra_costs): Likewise.
20818         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
20819         rtx_costs.
20820
20821 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
20822
20823         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
20824          storev.
20825         (cortexa8_extra_costs): Likewise.
20826         (cortexa5_extra_costs): Likewise.
20827         (cortexa7_extra_costs): Likewise.
20828         (cortexa12_extra_costs): Likewise.
20829         (cortexa15_extra_costs): Likewise.
20830         (v7m_extra_costs): Likewise.
20831
20832 2015-05-20  Jeff Law  <law@redhat.com>
20833
20834         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
20835         instead of open-coded version.  Also delete the jump thread created
20836         within this function.
20837
20838 2015-05-20  Alan Modra  <amodra@gmail.com>
20839
20840         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
20841         stack adjusting insn.  Formatting.
20842         (rs6000_emit_prologue): Track stack adjusting insn, and use of
20843         r12.  If possible, emit first -fsplit-stack arg pointer insn
20844         before stack adjust.  Don't use r12 to save cr if split-stack.
20845
20846 2015-05-20  Alan Modra  <amodra@gmail.com>
20847
20848         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
20849         Define.
20850         (rs6000_supports_split_stack): New function.
20851         * gcc/config/rs6000/rs6000.c (machine_function): Add
20852         split_stack_arg_pointer.
20853         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
20854         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
20855         rather than virtual_incoming_args_rtx.
20856         (rs6000_va_start): Likewise.
20857         (split_stack_arg_pointer_used_p): New function.
20858         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
20859         (morestack_ref): New var.
20860         (gen_add3_const, rs6000_expand_split_stack_prologue,
20861         rs6000_internal_arg_pointer, rs6000_live_on_entry,
20862         rs6000_split_stack_space_check): New functions.
20863         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
20864         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
20865         (UNSPECV_SPLIT_STACK_RETURN): Define.
20866         (split_stack_prologue, load_split_stack_limit,
20867         load_split_stack_limit_di, load_split_stack_limit_si,
20868         split_stack_return, split_stack_space_check): New expands and insns.
20869         * gcc/config/rs6000/rs6000-protos.h
20870         (rs6000_expand_split_stack_prologue): Declare.
20871         (rs6000_split_stack_space_check): Declare.
20872
20873 2015-05-20  Alan Modra  <amodra@gmail.com>
20874
20875         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
20876         (direct_return): Test vrsave_size rather than vrsave_mask.
20877         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
20878         (rs6000_emit_epilogue): Likewise.
20879
20880 2015-05-20  Alan Modra  <amodra@gmail.com>
20881
20882         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
20883         when not saving registers.
20884         (debug_stack_info): Adjust to omit printing unused offsets,
20885         as before.
20886         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
20887         expression.
20888
20889 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20890
20891         PR c++/65835
20892         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
20893         value_type to const char *.
20894
20895 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
20896
20897         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
20898         to build a biarch toolchain again.
20899
20900 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
20901
20902         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
20903         or implicit declarations.
20904         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
20905         into it.
20906         (get_odr_type): Check type has linkage before adding bases.
20907         (register_odr_type): Check that type has linkage before adding it.
20908         (type_known_to_have_no_deriavations_p): Rename to ..
20909         (type_known_to_have_no_derivations_p): This one.
20910         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
20911         (type_known_to_have_no_derivations_p): This one.
20912         * ipa-polymorphic-call.c
20913         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
20914         type has linkage.
20915
20916 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
20917
20918         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
20919         (layout_type): Use RECORD_OR_UNION_TYPE_P.
20920
20921 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20922
20923         * config/s390/s390.c (s390_vector_bool_type_p): New function.
20924         (s390_invalid_binary_op): New function.
20925         (TARGET_INVALID_BINARY_OP): Define macro.
20926
20927 2015-05-19  David Sherwood  <david.sherwood@arm.com>
20928
20929         * loop-invariant.c (create_new_invariant): Don't calculate address cost
20930         if mode is not a scalar integer.
20931         (get_inv_cost): Increase computational cost for unused invariants.
20932
20933 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20934
20935         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
20936         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
20937         * config/s390/s390-builtin-types.def: New file.
20938         * config/s390/s390-builtins.def: New file.
20939         * config/s390/s390-builtins.h: New file.
20940         * config/s390/s390-c.c: New file.
20941         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
20942         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
20943         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
20944         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
20945         prototypes.
20946         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
20947         Include.
20948         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
20949         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
20950         variable definitions.
20951         (s390_const_operand_ok): New function.
20952         (s390_expand_builtin): Rewrite.
20953         (s390_init_builtins): New function.
20954         (s390_handle_vectorbool_attribute): New function.
20955         (s390_attribute_table): Add s390_vector_bool attribute.
20956         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
20957         (s390_branch_condition_mask): Generate masks for new modes.
20958         (s390_expand_vec_compare_cc): New function.
20959         (s390_mangle_type): Add mangling for vector bool types.
20960         (enum s390_builtin): Remove.
20961         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
20962         efpc builtins.
20963         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
20964         s390_cpu_cpp_builtins.
20965         (REGISTER_TARGET_PRAGMAS): New macro.
20966         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
20967         (insn_cmp mode attribute): Add new CC modes.
20968         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
20969         (lcbb): New pattern definition.
20970         * config/s390/s390intrin.h: Include vecintrin.h.
20971         * config/s390/t-s390: New file.
20972         * config/s390/vecintrin.h: New file.
20973         * config/s390/vector.md: Include vx-builtins.md.
20974         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
20975         support.
20976
20977 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20978
20979         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
20980         CCVFHE.
20981         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
20982         (s390_select_ccmode): Likewise.
20983         (s390_canonicalize_comparison): Swap operands if necessary.
20984         (s390_expand_vec_compare_scalar): Expand DFmode compare using
20985         single element vector instructions.
20986         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
20987         (s390_branch_condition_mask): Generate CC masks for the new modes.
20988         * config/s390/s390.md (v0, vf, vd): New mode attributes.
20989         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
20990         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
20991         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
20992         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
20993         (*extend<DSF:mode><BFP:mode>2): New insn definition.
20994         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
20995         (extend<DSF:mode><BFP:mode>2): Turn into expander.
20996         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
20997         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
20998         (sqrt<mode>2): Add vector instruction.
20999
21000 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21001
21002         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
21003         constraints.
21004         * config/s390/predicates.md (const0_operand, constm1_operand)
21005         (constable_operand): Accept vector operands.
21006         * config/s390/s390-modes.def: Add supported vector modes.
21007         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
21008         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
21009         (s390_bytemask_vector_p, s390_expand_vec_strlen)
21010         (s390_expand_vec_compare, s390_expand_vcond)
21011         (s390_expand_vec_init): Add prototypes.
21012         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
21013         (s390_vector_mode_supported_p): New function.
21014         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
21015         (s390_contiguous_bitmask_vector_p): New function.
21016         (s390_bytemask_vector_p): New function.
21017         (s390_split_ok_p): Vector regs don't work either.
21018         (regclass_map): Add VEC_REGS.
21019         (s390_legitimate_constant_p): Handle vector constants.
21020         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
21021         (legitimate_reload_vector_constant_p): New function.
21022         (s390_preferred_reload_class): Handle CONST_VECTOR.
21023         (s390_reload_symref_address):  Likewise.
21024         (s390_secondary_reload): Vector memory instructions only support
21025         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
21026         (s390_emit_ccraw_jump): New function.
21027         (s390_expand_vec_strlen): New function.
21028         (s390_expand_vec_compare): New function.
21029         (s390_expand_vcond): New function.
21030         (s390_expand_vec_init): New function.
21031         (s390_dwarf_frame_reg_mode): New function.
21032         (print_operand): Handle addresses with 'O' and 'R' constraints.
21033         (NR_C_MODES, constant_modes): Add vector modes.
21034         (s390_output_pool_entry): Handle vector constants.
21035         (s390_hard_regno_mode_ok): Handle vector registers.
21036         (s390_class_max_nregs): Likewise.
21037         (s390_cannot_change_mode_class): New function.
21038         (s390_invalid_arg_for_unprototyped_fn): New function.
21039         (s390_function_arg_vector): New function.
21040         (s390_function_arg_float): Remove size variable.
21041         (s390_pass_by_reference): Handle vector arguments.
21042         (s390_function_arg_advance): Likewise.
21043         (s390_function_arg): Likewise.
21044         (s390_return_in_memory): Vector values are returned in a VR if
21045         possible.
21046         (s390_function_and_libcall_value): Handle vector arguments.
21047         (s390_gimplify_va_arg): Likewise.
21048         (s390_call_saved_register_used): Consider the arguments named.
21049         (s390_conditional_register_usage): Disable v16-v31 for non-vec
21050         targets.
21051         (s390_preferred_simd_mode): New function.
21052         (s390_support_vector_misalignment): New function.
21053         (s390_vector_alignment): New function.
21054         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
21055         (TARGET_VECTOR_MODE_SUPPORTED_P)
21056         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
21057         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
21058         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
21059         (TARGET_VECTOR_ALIGNMENT): Define target macro.
21060         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
21061         (FIRST_PSEUDO_REGISTER): Increase value.
21062         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
21063         (VECTOR_REG_P): Define macros.
21064         (FIXED_REGISTERS, CALL_USED_REGISTERS)
21065         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
21066         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
21067         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
21068         Add vector registers.
21069         (CANNOT_CHANGE_MODE_CLASS): Call C function.
21070         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
21071         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
21072         memory.
21073         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
21074         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
21075         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
21076         (VR*_REGNUM): New constants.
21077         (ALL): New mode iterator.
21078         (INTALL): Remove mode iterator.
21079         Include vector.md.
21080         (movti): Implement TImode moves for VRs.
21081         Disable TImode splitter for VR targets.
21082         Implement splitting TImode GPR<->VR moves.
21083         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
21084         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
21085         reload<mode>_la_in, reload<mode>_la_out.
21086         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
21087         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
21088         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
21089         (mov<mode> SF SD): Prefer lder, lde for loading.
21090         Add lrl and strl instructions.
21091         Add vector instructions.
21092         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
21093         Call s390_expand_vec_strlen on z13.
21094         (*cc_to_int): Change predicate to nonimmediate_operand.
21095         (addti3): Rename to *addti3.  New expander.
21096         (subti3): Rename to *subti3.  New expander.
21097         * config/s390/vector.md: New file.
21098
21099 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21100
21101         * common/config/s390/s390-common.c (processor_flags_table): Add
21102         z13.
21103         * config.gcc: Add z13.
21104         * config/s390/s390-opts.h (enum processor_type): Add
21105         PROCESSOR_2964_Z13.
21106         * config/s390/s390.c (s390_adjust_priority): Check for
21107         PROCESSOR_2964_Z13.
21108         (s390_reorg): Likewise.
21109         (s390_sched_reorder): Likewise.
21110         (s390_sched_variable_issue): Likewise.
21111         (s390_loop_unroll_adjust): Likewise.
21112         (s390_option_override): Likewise. Default to -mvx when available.
21113         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
21114         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
21115         (TARGET_VX_ABI): Define macros.
21116         macros.
21117         (TARGET_DEFAULT): Add MASK_OPT_VX.
21118         * config/s390/s390.md ("cpu" attribute): Add z13.
21119         ("cpu_facility" attribute): Add vec.
21120         * config/s390/s390.opt (processor_type): Add z13.
21121         (mvx): New options.
21122         * doc/invoke.texi: Add z13 option for -march.
21123
21124 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21125
21126         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
21127         mode check to make sure that only scalar integer values are
21128         accepted.
21129
21130 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
21131
21132         * tree.c (verify_type_variant): Fix #undef.
21133         (gimple_canonical_types_compatible_p): Move here from lto.c
21134         (verify_type): Verify TYPE_CANONICAL compatibility.
21135         * tree.h (gimple_canonical_types_compatible_p): Declare.
21136
21137 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
21138
21139         PR middle-end/66199
21140         * tree.h (OMP_TEAMS_COMBINED): Define.
21141         * gimplify.c (enum gimplify_omp_var_data): Add
21142         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
21143         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
21144         (omp_notice_variable): Accept both ORT_TEAMS
21145         and ORT_COMBINED_TEAMS.  Don't recurse if
21146         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
21147         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
21148         GOVD_FIRSTPRIVATE.
21149         (omp_no_lastprivate): New function.
21150         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
21151         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
21152         notice_outer and set appropriate bits, otherwise make
21153         sure default(none) combined constructs won't complain.
21154         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
21155         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
21156         omp_no_lastprivate either remove the clause or turn it
21157         into OMP_CLAUSE_PRIVATE.
21158         (gimplify_omp_for): Fix up handling of implicit
21159         lastprivate or linear iterators.
21160         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
21161         ORT_COMBINED_TEAMS.
21162         * omp-low.c (lower_omp_for_lastprivate): For combined
21163         for simd use fd.loop.n2 from the for rather than simd.
21164
21165 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21166
21167         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
21168         instead of gen_rtx_raw_REG.
21169         (cris_expand_epilogue): Likewise.
21170         * config/microblaze/microblaze.c (microblaze_classify_address):
21171         Likewise.
21172         * config/sparc/sparc.md: Likewise.
21173
21174 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
21175
21176         * config/alpha/alpha.c (alpha_legitimize_reload_address)
21177         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
21178         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
21179         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
21180         Use CASE_CONST_SCALAR_INT.
21181         (print_operand) <case 'M'>: Use mode_width_operand to check the
21182         value of the constant.
21183         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
21184         * config/alpha/predicates.md (input_operand): Use general_operand
21185         instead of match_code as operand check.
21186         (symbolic_operand): Use match_code with subexpression digits.
21187         * config/alpha/constraints.md (Q): Ditto.
21188
21189 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21190
21191         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
21192
21193 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21194
21195         * config/s390/s390.c (s390_secondary_reload): Fix check for
21196         load/store relative.
21197
21198 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21199
21200         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
21201         alternative_mask to uint64_t.
21202
21203 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
21204
21205         PR tree-optimization/66187
21206         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
21207         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
21208         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
21209
21210 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
21211
21212         * diagnostic.c (diagnostic_report_current_module): Strengthen
21213         local "new_map" from const line_map * to
21214         const line_map_ordinary *.
21215         * genmatch.c (error_cb): Likewise for local "map".
21216         (output_line_directive): Likewise for local "map".
21217         * input.c (expand_location_1): Likewise for local "map".
21218         Pass NULL rather than &map to
21219         linemap_unwind_to_first_non_reserved_loc, since the value is never
21220         read from there, and the value written back not read from here.
21221         (is_location_from_builtin_token): Strengthen local "map" from
21222         const line_map * to const line_map_ordinary *.
21223         (dump_location_info): Strengthen locals "map" from
21224         line_map *, one to const line_map_ordinary *, the other
21225         to const line_map_macro *.
21226         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
21227         const line_map * to const line_map_macro *.
21228         (maybe_unwind_expanded_macro_loc): Add a call to
21229         linemap_check_macro when writing to the "map" field of the
21230         loc_map_pair.
21231         Introduce local const line_map_ordinary * "ord_map", using it in
21232         place of "map" in the part of the function where we know we have
21233         an ordinary map.  Strengthen local "m" from const line_map * to
21234         const line_map_ordinary *.
21235
21236 2015-05-19  Nick Clifton  <nickc@redhat.com>
21237
21238         PR target/66156
21239         * config/msp430/msp430.md (zero_extendhisi2): Add support for
21240         separate source and destination registers.
21241
21242 2015-05-19  Richard Biener  <rguenther@suse.de>
21243
21244         PR tree-optimization/66165
21245         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
21246         for no load permutation.
21247
21248         PR tree-optimization/66185
21249         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
21250         when building the SLP node from scalars.
21251
21252 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
21253             Tristan Gingold  <gingold@adacore.com>
21254
21255         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
21256         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
21257         (expand_stack_restore): Call record_new_stack_level.
21258         (expand_stack_save): Do not call do_pending_stack_adjust.
21259         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
21260         * calls.c (expand_call): Call record_new_stack_level for alloca.
21261         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
21262         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
21263         (update_sjlj_context): New global function.
21264         * except.h (update_sjlj_context): Declare.
21265         * explow.c (record_new_stack_level): New global function.
21266         (allocate_dynamic_stack_space): Call record_new_stack_level.
21267         * explow.h (record_new_stack_level): Declare.
21268         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
21269         * cfgrtl.c (duplicate_insn_chain): Likewise.
21270
21271 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21272
21273         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
21274         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
21275         STACK_GROWS_DOWNWARD as normal if.
21276         (expand_call): Likewise.
21277
21278 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
21279
21280         PR target/54236
21281         * config/sh/sh.md (*round_int_even): New insn_and_split and
21282         accompanying new unnamed split.
21283
21284 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21285
21286         * bitmap.c (bitmap_set_range): Handle count==1 specially.
21287         (bitmap_clear_range): Likewise.
21288         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
21289         bitmap_set_range unconditionally.
21290         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
21291         * df-scan.c (df_mark_reg): Likewise.
21292         * haifa-sched.c (setup_ref_regs): Likewise.
21293         * sched-rgn.c (update_live_1): Likewise.
21294
21295 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21296
21297         * regs.h (END_HARD_REGNO): Delete.
21298         (END_REGNO): Move to...
21299         * rtl.h: ...here.
21300         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
21301         * caller-save.c (mark_set_regs): Likewise.
21302         * combine.c (move_deaths, distribute_notes): Likewise.
21303         * cse.c (invalidate, invalidate_for_call): Likewise.
21304         * df-scan.c (df_ref_record): Likewise.
21305         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
21306         (record_last_reg_set_info): Likewise.
21307         * reg-stack.c (convert_regs_exit): Likewise.
21308         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
21309         * resource.c (update_live_status): Likewise.
21310         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
21311
21312 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21313
21314         * rtl.h (reg_info): Add an nregs field.
21315         (REG_NREGS): Use it.
21316         (SET_REGNO_RAW): Delete.
21317         (set_regno_raw): New function.
21318         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
21319         (END_REGNO): Redefine in terms of REG_NREGS.
21320         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
21321         SET_REGNO_RAW.
21322         * emit-rtl.c (set_mode_and_regno): Likewise.
21323         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
21324         instead of SET_REGNO_RAW.
21325
21326 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21327
21328         * rtl.h (PUT_MODE_RAW): New macro.
21329         (PUT_REG_NOTE_KIND): Use it.
21330         (set_mode_and_regno): Declare.
21331         (gen_raw_REG): Change regno to "unsigned int".
21332         (gen_rtx_REG): Change "unsigned" to "unsigned int".
21333         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
21334         use set_mode_and_regno to change the mode of registers.
21335         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
21336         * emit-rtl.c (set_mode_and_regno): New function.
21337         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
21338         * caller-save.c (reg_save_code): Use set_mode_and_regno.
21339         * expr.c (init_expr_target): Likewise.
21340         * ira.c (setup_prohibited_mode_move_regs): Likewise.
21341         * postreload.c (reload_cse_simplify_operands): Likewise.
21342
21343 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21344
21345         * caller-save.c (init_caller_save): Use word_mode and
21346         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
21347         * expr.c (init_expr_target): Likewise.
21348         * ira.c (setup_prohibited_mode_move_regs): Likewise.
21349         * postreload.c (reload_cse_regs_1): Likewise.
21350
21351 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21352
21353         * rtl.def (REG): Change format to "r".
21354         * rtl.h (rtunion): Remove rt_reg.
21355         (reg_info): New structure.
21356         (rtx_def): Add reg field to main union.
21357         (X0REGATTR): Delete.
21358         (REG_CHECK): New macro.
21359         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
21360         * rtl.c (rtx_format): Document "r".
21361         (rtx_code_size): Handle REG specially.
21362         * gengenrtl.c (special_format): Return true for formats
21363         that include 'r'.
21364         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
21365         Deal with REG_ATTRS after the field loop.
21366         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
21367         * expmed.c (init_expmed): Call gen_raw_REG instead of
21368         gen_rtx_raw_REG.
21369         * expr.c (init_expr_target): Likewise.
21370         * regcprop.c (maybe_mode_change): Likewise.
21371         * varasm.c (make_decl_rtl): Likewise.
21372         * final.c (leaf_renumber_regs_insn): Return early after
21373         handling REGs.
21374         * genemit.c (gen_exp): Handle 'r' fields.
21375         * genpeep.c (match_rtx): Likewise.
21376         * gensupport.c (subst_pattern_match): Likewise.
21377         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
21378         (alter_constraints, subst_dup): Likewise.
21379         * read-rtl.c (read_rtx_code): Likewise.
21380         * print-rtl.c (print_rtx): Likewise.
21381         * genrecog.c (find_operand, find_matching_operand): Likewise.
21382         (validate_pattern, match_pattern_2): Likewise.
21383         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
21384         (rtx_test::regno_field): New function.
21385         (operator ==, safe_to_hoist_p, transition_parameter_type)
21386         (parameter_type_string, print_parameter_value)
21387         (print_nonbool_test, print_test): Handle new enum values.
21388         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
21389         * lra-constraints.c (operands_match_p): Likewise.
21390
21391 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21392
21393         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
21394         Change type of new_regno to unsigned int.
21395         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
21396         new_regno to unsigned int.
21397         (df_ref_change_reg_with_loc): Remove old_regno parameter.
21398         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
21399         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
21400         (SET_REGNO_RAW): Add space after ",".
21401
21402 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21403
21404         * rtl.h (REG_NREGS): New macro
21405         * alias.c (record_set): Use it.
21406         * cfgcleanup.c (mark_effect): Likewise.
21407         * combine.c (likely_spilled_retval_1): Likewise.
21408         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
21409         (move_deaths, distribute_notes): Likewise.
21410         * cselib.c (cselib_record_set): Likewise.
21411         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
21412         * df-scan.c (df_mark_reg): Likewise.
21413         * dse.c (look_for_hardregs): Likewise.
21414         * dwarf2out.c (reg_loc_descriptor): Likewise.
21415         (multiple_reg_loc_descriptor): Likewise.
21416         * expr.c (write_complex_part, read_complex_part): Likewise.
21417         (emit_move_complex): Likewise.
21418         * haifa-sched.c (setup_ref_regs): Likewise.
21419         * ira-lives.c (mark_hard_reg_live): Likewise.
21420         * lra.c (lra_set_insn_recog_data): Likewise.
21421         * mode-switching.c (create_pre_exit): Likewise.
21422         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
21423         (reload_combine_recognize_pattern): Likewise.
21424         (reload_combine_note_use, move2add_record_mode): Likewise.
21425         (reload_cse_move2add): Likewise.
21426         * reg-stack.c (subst_stack_regs_pat): Likewise.
21427         * regcprop.c (kill_value, copy_value): Likewise.
21428         (copyprop_hardreg_forward_1): Likewise.
21429         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
21430         (build_def_use): Likewise.
21431         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
21432         (deps_analyze_insn): Likewise.
21433         * sched-rgn.c (check_live_1, update_live_1): Likewise.
21434         * sel-sched.c (count_occurrences_equiv): Likewise.
21435         * valtrack.c (dead_debug_insert_temp): Likewise.
21436
21437 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21438
21439         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
21440         * dse.c (note_add_store): Likewise.
21441         * ira-lives.c (mark_hard_reg_dead): Likewise.
21442         * loop-invariant.c (mark_reg_store): Likewise.
21443         (mark_reg_death): Likewise.
21444         * postreload.c (reload_combine): Likewise.
21445         (reload_combine_note_store): Likewise.
21446         (reload_combine_note_use): Likewise.
21447         * recog.c (peep2_reg_dead_p): Likewise.
21448
21449 2015-05-19  Alan Modra  <amodra@gmail.com>
21450
21451         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
21452         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
21453         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
21454         unused predicates.
21455         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
21456         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
21457         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
21458         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
21459
21460 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
21461
21462         * config/mips/mips.md (JOIN_MODE): New mode iterator.
21463         (join2_load_Store<JOIN_MODE:mode>): New pattern.
21464         (join2_loadhi): Likewise.
21465         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
21466         load-load and store-stores.
21467         * config/mips/mips.opt (mload-store-pairs): New option.
21468         (TARGET_LOAD_STORE_PAIRS): New macro.
21469         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
21470         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
21471         * config/mips/mips.c (mips_load_store_bonding_p): New function.
21472
21473 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
21474
21475         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
21476         explicit swaps.
21477         * dojump.c (do_compare_rtx_and_jump): Likewise.
21478         * expmed.c (emit_store_flag_1): Likewise.
21479         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
21480         * final.c (sprint_ul): Use std::reverse for reversing a string.
21481         * fold-const.c (extract_muldiv_1): Use std::swap.
21482         * genmodes.c (emit_mode_int_n): Likewise.
21483         * ifcvt.c (dead_or_predicable): Likewise.
21484         * ira-build.c (ira_merge_live_ranges): Likewise.
21485         (swap_allocno_copy_ends_if_necessary): Likewise.
21486         * ira.c (ira_setup_alts): Likewise.
21487         * loop-iv.c (iv_analyze_expr): Likewise.
21488         (implies_p): Likewise.
21489         (canon_condition): Likewise.
21490         * lra-constraints.c (swap_operands): Likewise.
21491         * lra-lives.c (lra_merge_live_ranges): Likewise.
21492         * omega.c (swap): Remove.
21493         (bswap): Remove.
21494         (omega_unprotect_1): Use std::swap.
21495         (omega_solve_geq): Likewise.
21496         * optabs.c (expand_binop_directly): Likewise.
21497         (expand_binop): Likewise.
21498         (emit_conditional_move): Likewise.
21499         (emit_conditional_add): Likewise.
21500         * postreload.c (reload_cse_simplify_operands): Likewise.
21501         * reg-stack.c (emit_swap_insn): Likewise.
21502         (swap_to_top): Likewise.
21503         (compare_for_stack_reg): Likewise.
21504         (subst_asm_stack_regs): Likewise.
21505         * reload.c (find_reloads): Likewise.
21506         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
21507         * sel-sched.c (invoke_reorder_hooks): Likewise.
21508         (create_block_for_bookkeeping): Likewise.
21509         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
21510         (lambda_matrix_right_hermite): Use std::swap.
21511         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
21512         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
21513         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
21514         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
21515         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
21516         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
21517         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
21518         * tree-vrp.c (compare_ranges): Likewise.
21519         * var-tracking.c (add_with_sets): Likewise.
21520         (vt_find_locations): Likewise.
21521
21522 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
21523
21524         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
21525         pie executables.
21526         (FBSD_ENDFILE_SPEC): Likewise.
21527         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
21528         config/freebsd-spec.h.
21529         (ENDFILE_SPEC): Likewise.
21530
21531 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
21532             Richard Henderson  <rth@redhat.com>
21533
21534         PR target/57032
21535         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
21536         Check for a memory location that is not a reference (using an AND)
21537         to an unaligned location here.
21538         * config/alpha/predicates.md (normal_memory_operand): Remove.
21539
21540 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
21541
21542         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
21543         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
21544
21545 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
21546
21547         * config/mips/mips.c (micromips_globals): New variable.
21548         (mips_set_compression_mode): Save and reinitialize target-dependent
21549         state for microMIPS.
21550
21551 2015-05-18  Martin Liska  <mliska@suse.cz>
21552
21553         * dbgcnt.def: Add new counter.
21554         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
21555
21556 2015-05-18  Martin Liska  <mliska@suse.cz>
21557
21558         * dbgcnt.def: Sort counters.
21559         * opts.c (common_handle_option): Do not compile if
21560         -fdbg-cnt-list is enabled.
21561
21562 2015-05-18  Tom de Vries  <tom@codesourcery.com>
21563
21564         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
21565         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
21566         address operator to va_list operand.
21567         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
21568         unconditionally.
21569         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
21570         operand.
21571         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
21572         * config/s390/s390.c (s390_gimplify_va_arg): Same.
21573         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
21574
21575 2015-05-18  Tom de Vries  <tom@codesourcery.com>
21576
21577         * tree-ssa-tail-merge.c: Fix whitespace.
21578
21579 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
21580
21581         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
21582         cortex-a17, and cortex-a17.cortex-a7.
21583
21584 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
21585
21586         PR target/54236
21587         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
21588
21589 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
21590
21591         PR target/66174
21592         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
21593         QImode inner modes for TARGET_AVX512BW.  Force mask operand
21594         to a register for AVX512F modes.
21595
21596 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
21597
21598         * toplev.c (emit_debug_global_declarations): Do not output debug info
21599         when doing slim LTO objects.
21600
21601 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
21602
21603         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
21604         odr_types_equivalent_p): Declare.
21605         (odr_type_p): Use gcc_checking_assert.
21606         (type_in_anonymous_namespace_p) Declare.
21607         (type_with_linkage_p): Declare.
21608         * common.opt (Wlto-type-mismatch): New warning.
21609         * ipa-devirt.c (compound_type_base): New function.
21610         (odr_or_derived_type_p): New function.
21611         (odr_types_equivalent_p): New function.
21612         (add_type_duplicate): Simplify.
21613         (type_with_linkage_p): Add hack to prevent false positives on C types
21614         (type_in_anonymous_namespace_p): Likewise.
21615         * tree.c (need_assembler_name_p): Use type_with_linkage.
21616         * tree.h (type_in_anonymous_namespace_p): Remove.
21617         * doc/invoke.texi (-Wlto-type-mismatch): Document
21618
21619 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
21620
21621         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
21622         (verify_type): Verify STRING_FLAG.
21623
21624 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21625
21626         PR fortran/44054
21627         * tree-pretty-print.c (percent_K_format): Replace locus pointer
21628         with accessor function.
21629         * tree-diagnostic.c (diagnostic_report_current_function): Use
21630         diagnostic_location function.
21631         (maybe_unwind_expanded_macro_loc): Likewise.
21632         (virt_loc_aware_diagnostic_finalizer): Likewise.
21633         (default_tree_printer): Replace locus pointer with accessor function.
21634         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
21635         (diagnostic_set_info_translated): Initialize second location.
21636         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
21637         (diagnostic_show_locus): Handle two locations. Call
21638         diagnostic_print_caret_line.
21639         (diagnostic_print_caret_line): New.
21640         (default_diagnostic_starter): Use diagnostic_location function.
21641         (diagnostic_report_diagnostic): Use diagnostic_location function.
21642         (verbatim): Do not set text.locus.
21643         * diagnostic.h (struct diagnostic_info): Remove location field.
21644         (struct diagnostic_context): Make caret_chars an array of two.
21645         (diagnostic_location): New inline.
21646         (diagnostic_expand_location): Handle two locations.
21647         (diagnostic_same_line): New inline.
21648         (diagnostic_print_caret_line): Declare.
21649         (CARET_LINE_MARGIN): New constant.
21650         * pretty-print.c (pp_printf): Do not set text.locus.
21651         (pp_verbatim): Do not set text.locus.
21652         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
21653         (struct text_info): Replace locus pointer with locations
21654         array. Add accessor functions.
21655
21656 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
21657             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
21658
21659         PR target/65768
21660         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
21661         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
21662          large constants in register instead of splitting them.
21663
21664 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
21665
21666         PR target/66140
21667         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
21668         replacements in memory addresses.
21669         (get_unaligned_address): Ditto.
21670
21671 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
21672
21673         * config/ft32/*: New files for FT32 port.
21674         * doc/install.texi: Add FT32 information.
21675         * doc/invoke.texi: Add FT32 information.
21676         * doc/md.texi: Add FT32 information.
21677         * doc/contrib.texi: Self added.
21678
21679 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
21680
21681         PR tree-optimization/64454
21682         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
21683         (-1 - A -> ~A): Remove unnecessary condition.
21684
21685 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
21686
21687         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
21688         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
21689         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
21690
21691 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
21692
21693         * ipa-chkp.h (chkp_wrap_function): New.
21694         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
21695         (chkp_wrap_function_name): New.
21696         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
21697         to get wrapper name.
21698         * lto-cgraph.c: Include ipa-chkp.h.
21699         (input_cgraph_1): Avoid alias chain for wrappers.
21700
21701 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
21702
21703         PR middle-end/66134
21704         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
21705         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
21706
21707 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21708
21709         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
21710         (AARCH64_FL_SLOWMUL): Delete.
21711         (AARCH64_FL_CRC): Redefine to 1<<3.
21712         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
21713
21714 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21715
21716         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
21717         casting.
21718
21719 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
21720
21721         * config/alpha/alpha.md (extendqidi2): Use general_operand
21722         instead of some_operand for operand[1] predicate.
21723         (extendhidi2): Ditto.
21724         (cbranchdi4): Use general_operand instead of some_operand
21725         for operand[1] and operands[2] predicates.
21726         (cstoredi4): Ditto.
21727         * config/alpha/predicates.md (some_operand): Remove unused predicate.
21728         (some_ni_operand): Ditto.
21729
21730 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
21731
21732         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
21733         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
21734         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
21735         low part of the constant using alpha_emit_set_const_1.
21736         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
21737
21738 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
21739
21740         * varasm.c (output_constant_pool_1): Pass down alignment from
21741         constant pool entry's descriptor to output_constant_pool_2.
21742         (output_object_block): Add comment prior to call to
21743         output_constant_pool_1.
21744
21745 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
21746
21747         PR rtl-optimization/65862
21748         * target.def (ira_change_pseudo_allocno_class): New hook.
21749         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
21750         value of the hook.
21751         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
21752         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
21753         hook.
21754         * ira-costs.c (find_costs_and_classes): Call the hook and change
21755         classes when it is necessary.
21756         * doc/tm.texi: Update.
21757
21758 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
21759
21760         * config/i386/i386.md (sibcall_memory): Check that register with
21761         callee address is not also used as one of the arguments, instead
21762         of checking that it is not live after the sibcall.
21763         (sibcall_pop_memory): Ditto.
21764         (sibcall_value_memory): Ditto.
21765         (sibcall_value_pop_memory): Ditto.
21766
21767 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
21768
21769         * generic-match-head.c (types_match): Handle non-types.
21770         * gimple-match-head.c (types_match): Likewise.
21771         * match.pd: Remove unnecessary TREE_TYPE for types_match.
21772
21773 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
21774
21775         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
21776         (csneg3<mode>_insn): Enable expansion of pattern.
21777
21778 2015-05-14  Nick Clifton  <nickc@redhat.com>
21779
21780         * config/rl78/rl78.c (rl78_select_section): Select the correct
21781         default section based upon the category of the decl.
21782
21783 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
21784
21785         PR rtl-optimization/30967
21786         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
21787         destination mode for the cost of scc patterns.
21788
21789 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
21790
21791         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
21792         using SWIM248 mode iterator.
21793         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
21794         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
21795         for operand[2] constraint.
21796         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
21797
21798 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
21799
21800         PR middle-end/66133
21801         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
21802         make sure it is never noreturn, even when the task body does not
21803         return.
21804         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
21805         right before GIMPLE_OMP_RETURN.
21806         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
21807         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
21808         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
21809
21810 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21811
21812         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
21813         * tree-ssa-math-opts.c: Include params.h
21814         (pow_synth_sqrt_info): New struct.
21815         (representable_as_half_series_p): New function.
21816         (get_fn_chain): Likewise.
21817         (print_nested_fn): Likewise.
21818         (dump_fractional_sqrt_sequence): Likewise.
21819         (dump_integer_part): Likewise.
21820         (expand_pow_as_sqrts): Likewise.
21821         (gimple_expand_builtin_pow): Use above to attempt to expand
21822         pow as series of square roots.  Removed now unused variables.
21823
21824 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
21825
21826         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
21827         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
21828         Remove *p0 and *p1 arguments.  Rewrite function.
21829         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
21830         (alpha_split_const_mov): Update calls to alpha_extract_integer and
21831         alpha_emit_set_long_const.
21832         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
21833         (alpha_output_mi_thunk_osf): Ditto.
21834         * config/alpha/alpha.md (movti): Do not check operands[1]
21835         for CONST_DOUBLE.
21836
21837 2015-05-13  Richard Biener  <rguenther@suse.de>
21838
21839         PR tree-optimization/66129
21840         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
21841         commutative.
21842         (vect_schedule_slp_instance): Fix typo.
21843
21844 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
21845
21846         * common.opt (fdump-internal-locations): New option.
21847         * input.c: Include diagnostic-core.h.
21848         (get_end_location): New function.
21849         (write_digit): New function.
21850         (write_digit_row): New function.
21851         (dump_location_range): New function.
21852         (dump_labelled_location_range): New function.
21853         (dump_location_info): New function.
21854         * input.h (dump_location_info): New prototype.
21855         * toplev.c (compile_file): Handle flag_dump_locations.
21856
21857 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
21858
21859         * gimple-expr.h (is_gimple_constant): Reorder.
21860         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
21861
21862 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
21863
21864         * combine.c (simplify_set): When generating a CC set, if the
21865         source already is in the correct mode, do not wrap it in a
21866         compare.  Simplify the rest of that code.
21867
21868 2015-05-13  Richard Biener  <rguenther@suse.de>
21869
21870         PR tree-optimization/66123
21871         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
21872         a taken edge.
21873
21874 2015-05-13  Richard Biener  <rguenther@suse.de>
21875
21876         PR middle-end/66110
21877         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
21878         specially.
21879         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
21880
21881 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
21882
21883         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
21884         * aclocal.m4: Regenerated with automake-1.11.6.
21885
21886 2015-05-13  Tom de Vries  <tom@codesourcery.com>
21887
21888         PR tree-optimization/66010
21889         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
21890         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
21891         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
21892         and rval based on do_deref.
21893
21894 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
21895
21896         PR target/65103
21897         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
21898         link time constants into adress expressions and therefore set
21899         their cost to 0.
21900
21901 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
21902
21903         PR target/66112
21904         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
21905         Use SWI248 iterator instead of SWI.
21906         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
21907         Use eq_attr "alternative" "0" instead of match_test in
21908         length_immediate attribute computation.
21909         (*mulvhi4, *mulvhi4_1): New define_insns.
21910
21911         PR target/66112
21912         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
21913         SIGNED to get precision of non-negative value.
21914
21915 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
21916
21917         PR target/66048
21918         * function.c (diddle_return_value_1): Process bounds first.
21919         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
21920         register.
21921
21922 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21923
21924         PR rtl-optimization/64616
21925         * loop-invariant.c (can_move_invariant_reg): New.
21926         (move_invariant_reg): Call above new function to decide whether
21927         instruction can just be moved, skipping creation of temporary
21928         register.
21929
21930 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
21931
21932         PR target/pr66047.c
21933         * i386.c (ix86_function_sseregparm): Only return -1 if local function
21934         with implied regparm is called from -mno-sse function.
21935         (init_cumulative_args): Output error if ix86_function_sseregparm
21936         return -1 and SSE register would be needed.
21937         (function_arg_advance_32): Likewise.
21938         (function_arg_32): Likewise.
21939         * i386.h (ix86_args): Add decl field.
21940
21941 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
21942
21943         PR ipa/65873
21944         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
21945         inlines across optimization boundary.
21946
21947 2015-05-12  Jason Merrill  <jason@redhat.com>
21948
21949         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
21950         string literal and macro name.
21951
21952 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
21953
21954         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
21955         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
21956         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
21957
21958 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
21959
21960         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
21961         (-Wmisleading-indentation): New option.
21962         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
21963
21964 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
21965
21966         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
21967         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
21968         (alpha_extract_integer): Ditto.
21969         (alpha_legitimate_constant_p): Ditto.
21970         (alpha_split_tmode_pair): Ditto.
21971         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
21972         (alpha_expand_mov): Ditto.
21973         (print_operand): Remove handling of 'H' modifier.
21974         <case 'm'>: Remove CONST_DOUBLE handling.
21975         (summarize_insn): Handle CONST_WIDE_INT.
21976         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
21977         (anddi3): Ditto.
21978         (movti): Handle CONST_WIDE_INT.
21979         * config/alpha/constraints.md ('H'): Remove constraint definition.
21980         ('G'): Do not match MODE_FLOAT class.
21981         * config/alpha/predicates.md (const0_operand): Also match
21982         const_wide_int.
21983         (non_add_const_operand): Ditto.
21984         (non_zero_const_operand): Ditto.
21985         (some_operand): Ditto.
21986         (input_operand): Ditto.  Handle CONST_WIDE_INT.
21987         (and_operand): Do not match const_double.
21988         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
21989
21990 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
21991
21992         PR target/65697
21993         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
21994         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
21995         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
21996         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
21997         is_mm_seq_cst, is_mm_sync): New accessor functions.
21998         * builtins.c (expand_builtin_sync_operation,
21999         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
22000         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
22001         (get_memmodel,  expand_builtin_atomic_compare_exchange,
22002         expand_builtin_atomic_load, expand_builtin_atomic_store,
22003         expand_builtin_atomic_clear): Use new accessor routines.
22004         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
22005         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
22006         (maybe_emit_sync_lock_test_and_set): Use new accessors and
22007         MEMMODEL_SYNC_ACQUIRE.
22008         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
22009         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
22010         expand_atomic_store): Use new accessors.
22011         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
22012         * tsan.c (instrument_builtin_call): Update check for memory model beyond
22013         final enum to use MEMMODEL_LAST.
22014         * c-family/c-common.c: Use new accessor for memmodel_base.
22015         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
22016         accessors.
22017         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
22018         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
22019         mem_thread_fence, *dmb): Likewise.
22020         * config/alpha/alpha.c (alpha_split_compare_and_swap,
22021         alpha_split_compare_and_swap_12): Likewise.
22022         * config/arm/arm.c (arm_expand_compare_and_swap,
22023         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
22024         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
22025         atomic_loaddi): Likewise.
22026         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
22027         Likewise.
22028         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
22029         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
22030         use new accessors.
22031         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
22032         atomic_store<mode>, atomic_compare_and_swap<mode>,
22033         atomic_exchange<mode>): Use new accessors.
22034         * config/mips/mips.c (mips_process_sync_loop): Likewise.
22035         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
22036         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
22037         rs6000_post_atomic_barrier): Add new cases.
22038         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
22039         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
22040         (atomic_load<mode>): Add new cases and use new accessors.
22041         (store_quadpti): Add new cases.
22042         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
22043         accessors.
22044         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
22045         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
22046         model, not 8.
22047
22048 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
22049
22050         * ipa-devirt.c (type_with_linkage_p): New function.
22051         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
22052         type has linkage.
22053         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
22054         (can_be_name_hashed_p): Simplify.
22055         (hash_odr_name): Check that type has linkage before checking if it is
22056         anonymous.
22057         (types_same_for_odr): Likewise.
22058         (odr_name_hasher::equal): Likewise.
22059         (odr_subtypes_equivalent_p): Likewise.
22060         (warn_types_mismatch): Likewise.
22061         (get_odr_type): Likewise.
22062         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
22063         * ipa-utils.h (odr_type_p): Move offline.
22064         * tree.c (need_assembler_name_p): Fix handling of types
22065         without linkages.
22066         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
22067
22068 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
22069
22070         * timevar.c (timevar_enable): Delete in favor of...
22071         (g_timer): New global.
22072         (struct timevar_def): Move to timevar.h inside class timer.
22073         (struct timevar_stack_def): Likewise.
22074         (timevars): Delete global in favor of field "m_timevars" within
22075         class timer in timevar.h
22076         (stack): Likewise, in favor of field "m_stack".
22077         (unused_stack_instances): Likewise, in favor of field
22078         "m_unused_stack_instances".
22079         (start_time): Likewise, in favor of field "m_start_time".
22080         (get_time): Eliminate check for timevar_enable.
22081         (timer::timer): New function, built from part of timevar_init.
22082         (timevar_init): Rewrite idempotency test from using
22083         "timevar_enable" bool to using dynamic allocation of "g_timer".
22084         Move rest of implementation into timer's constructor.
22085         (timevar_push_1): Rename to...
22086         (timer::push): ...this, adding "m_" prefixes to variables that
22087         are now fields of timer.
22088         (timevar_pop_1): Likewise, rename to...
22089         (timer::pop): ...this, and add "m_" prefixes.
22090         (timevar_start): Replace test for "timevar_enable" with one for
22091         "g_timer", and move bulk of implementation to...
22092         (timer::start): ...here, adding "m_" prefixes.
22093         (timevar_stop): Likewise, from here...
22094         (timer::stop): ...to here.
22095         (timevar_cond_start): Likewise, from here...
22096         (timer::cond_start): ...to here.
22097         (timevar_cond_stop): Likewise, from here...
22098         (timer::cond_stop): ...to here.
22099         (validate_phases): Rename to...
22100         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
22101         locals "total" and "tv" const.
22102         (timevar_print): Rename to...
22103         (timer::print): ...this, and add "m_" prefixes.  Make locals
22104         "total" and "tv" const.  Eliminate test for timevar_enable.
22105         * timevar.h (timevar_enable): Eliminate.
22106         (g_timer): New declaration.
22107         (timevar_push_1): Eliminate.
22108         (timevar_pop_1): Eliminate.
22109         (timevar_print): Eliminate.
22110         (class timer): New class.
22111         (timevar_push): Rewrite to use g_timer.
22112         (timevar_pop): Likewise.
22113         * toplev.c (toplev::~toplev): Likewise.
22114
22115 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
22116
22117         * arm-protos.h (arm_sched_autopref): Delete.
22118         (tune_params): Re-organize, use enums for flag values.
22119         (FUSE_OPS): New macro.
22120         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
22121         (ARM_PREFETCH_BENEFICIAL): Likewise.
22122         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
22123         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
22124         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
22125         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
22126         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
22127         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
22128         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
22129         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
22130         format.
22131         (arm_option_override, thumb2_reorg, arm_print_tune_info)
22132         (aarch_macro_fusion_pair_p): Update uses of current_tune.
22133         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
22134
22135 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
22136
22137         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
22138         "break".
22139
22140 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
22141             Sandra Loosemore <sandra@codesourcery.com>
22142
22143         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
22144         value.
22145         (REG_CLASS_NAMES): Add "IJMP_REGS".
22146         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
22147         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
22148         use new "c" register constraint.
22149         * config/nios2/constraint.md (c): New register constraint
22150         corresponding to IJMP_REGS.
22151
22152 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22153
22154         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
22155         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
22156         define_splits): Delete, revamp, transmogrify into ...
22157         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
22158         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
22159         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
22160         New.
22161
22162 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22163
22164         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
22165         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
22166
22167 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22168
22169         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
22170         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
22171         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
22172         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
22173         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
22174         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
22175         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
22176         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
22177         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
22178         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
22179         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
22180         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
22181         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
22182         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
22183         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
22184         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
22185         and 30 corresponding splitters): Delete.
22186
22187 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22188
22189         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
22190         zero_extract.
22191
22192 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22193
22194         * combine.c (recog_for_combine_1): New function, factored out
22195         from recog_for_combine.
22196         (change_zero_ext): New function.
22197         (recog_for_combine): If recog fails, try again with the pattern
22198         modified by change_zero_ext; if that still fails, restore the
22199         pattern.
22200
22201 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22202
22203         * combine.c (get_undo_marker): New function.
22204         (undo_to_marker): New function, largely factored out from ...
22205         (undo_all): ... this.  Adjust.
22206
22207 2015-05-12  Richard Biener  <rguenther@suse.de>
22208
22209         PR tree-optimization/66101
22210         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
22211         fixup if we turn a loop exit edge to a fallthru edge.
22212
22213 2015-05-12  Richard Biener  <rguenther@suse.de>
22214
22215         PR tree-optimization/37021
22216         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
22217         (SLP_TREE_TWO_OPERATORS): New define.
22218         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
22219         SLP_TREE_TWO_OPERATORS.
22220         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
22221         SLP node.
22222         (vect_build_slp_tree): Adjust.
22223         (vect_analyze_slp_cost_1): Likewise.
22224         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
22225         emitting two vector stmts and mixing the results.
22226
22227 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
22228
22229         * call.c (print_z_candidates): Remove dead code.
22230
22231 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22232
22233         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
22234         and zEC12_simple_fp.
22235         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
22236         to 1.
22237
22238 2015-05-12  Tom de Vries  <tom@codesourcery.com>
22239
22240         PR tree-optimization/66010
22241         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
22242         ifn_va_arg.
22243         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
22244         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
22245         va_lists are passed, and remove corresponding handling.
22246         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
22247         do_deref argument to ifn_va_arg.
22248         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
22249         ifn_va_arg.
22250
22251 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22252
22253         PR target/65955
22254         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
22255         REG before taking its REGNO.
22256
22257 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22258
22259         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
22260         rsp->sign_bit_copies and rsp->nonzero_bits into ...
22261         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
22262         present to get more accurate information about the number of sign bit
22263         copies and non zero bits.
22264
22265 2015-05-12  Richard Biener  <rguenther@suse.de>
22266
22267         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
22268         do not allow unrolling.
22269
22270 2015-05-11  Richard Henderson  <rth@redhat.com>
22271
22272         * config/i386/i386-modes.def (CCP): New.
22273         * config/i386/i386.c (put_condition_code): Handle it.
22274         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
22275
22276 2015-05-11  Richard Henderson  <rth@redhat.com>
22277
22278         * target.def (md_asm_clobbers): Replace with...
22279         (md_asm_adjust): this.
22280         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
22281         (TARGET_MD_ASM_ADJUST): New.
22282         * tm.texi: Rebuild.
22283         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
22284         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
22285         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
22286
22287         * cfgexpand.c (check_operand_nalternatives): Accept vector of
22288         constraints instead of lists of outputs and inputs.
22289         (expand_asm_stmt): Save and restore input_location around the
22290         body of the function.  Move asm data into vectors instead of
22291         building tree lists.  Generate cleanup sequences as needed,
22292         rather than waiting til the end.  Use new md_asm_adjust hook.
22293
22294         * config/vxworks.c: Include vec.h before target.h.
22295         * gimple.c: Likewise.
22296         * incpath.c: Likewise.
22297         * mode-switching.c: Likewise.
22298
22299         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
22300         (cris_md_asm_adjust): this.
22301         (TARGET_MD_ASM_CLOBBERS): Remove.
22302         (TARGET_MD_ASM_ADJUST): New.
22303         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
22304         (ix86_md_asm_adjust): this.
22305         (TARGET_MD_ASM_CLOBBERS): Remove.
22306         (TARGET_MD_ASM_ADJUST): New.
22307         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
22308         (mn10300_md_asm_adjust): this.
22309         (TARGET_MD_ASM_CLOBBERS): Remove.
22310         (TARGET_MD_ASM_ADJUST): New.
22311         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
22312         (rs6000_md_asm_adjust): this.
22313         (TARGET_MD_ASM_CLOBBERS): Remove.
22314         (TARGET_MD_ASM_ADJUST): New.
22315         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
22316         (visium_md_asm_adjust): this.
22317         (TARGET_MD_ASM_CLOBBERS): Remove.
22318         (TARGET_MD_ASM_ADJUST): New.
22319
22320 2015-05-11  Richard Henderson  <rth@redhat.com>
22321
22322         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
22323         if noutputs is zero.
22324         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
22325
22326         * cfgexpand.c (expand_asm_operands): Merge into...
22327         (expand_asm_stmt): ... here.
22328
22329         * cfgexpand.c (expand_asm_operands): Don't call
22330         resolve_asm_operand_names.
22331         * stmt.c (resolve_asm_operand_names): Clarify block comment.
22332
22333 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
22334
22335         * dwarf2out.c (gen_member_die): Sanity check that we access
22336         TYPE_MAIN_VARIANT for TYPE_METHODS.
22337         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
22338         checking TYPE_METHODS.
22339         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
22340         if non-null.
22341         (build_distinct_type_copy): Clear TYPE_METHODS.
22342         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
22343         (verify_type): Allow TYPE_METHODS to be error_mark_node.
22344         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
22345
22346 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
22347
22348         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
22349         (emit_pattern_before_setloc): Likewise.
22350
22351 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
22352
22353         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
22354         for define_peephole2s.
22355         (get_peephole2_pattern): New function.
22356         (main): Use it.  Call validate_pattern.
22357
22358 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
22359
22360         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
22361         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
22362         (Last callee saved reg is different for AVR_TINY architecture)
22363
22364 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
22365
22366         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
22367         when looking for memory references.
22368
22369 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
22370
22371         PR target/65753
22372         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
22373         via function pointers.
22374
22375 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
22376
22377         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
22378         indirect call by forcing address into a pseudo with -fno-plt.
22379         * common.opt (flag_plt): New option.
22380         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
22381         ([-fno-plt]): Document.
22382
22383 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
22384
22385         PR bootstrap/66105
22386         * config/rs6000/option-defaults.h: Add space between string literal
22387         and macro name.
22388
22389 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22390
22391         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
22392         accross ARM targets.
22393
22394 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22395
22396         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
22397         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
22398
22399 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
22400
22401         PR rtl-optimization/66076
22402         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
22403         Don't grow the heap array if it is already big enough from a
22404         previous iteration.
22405
22406 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22407
22408         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
22409         (is_called_in_ARM_mode): Remove.
22410         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
22411         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
22412         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
22413          arm_declare_function_name.
22414
22415 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22416
22417         * config/arm/arm.c (arm_option_override): Reoganized and split into :
22418         (arm_option_params_internal); New function.
22419         (arm_option_check_internal): New function.
22420         (arm_option_override_internal): New function.
22421         (thumb_code, thumb1_code): Remove.
22422         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
22423         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
22424         (thumb_code, thumb1_code): Remove.
22425         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
22426
22427 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
22428
22429         * config/alpha/alpha.c (alpha_emit_set_const_1)
22430         (alpha_emit_set_long_const, alpha_extract_integer)
22431         (alpha_legitimate_constant_p, alpha_split_const_mov)
22432         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
22433         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22434         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
22435         HOST_WIDE_INT_1U.
22436         * config/alpha/predicates.md (mode_mask_operand): Do not match
22437         const_double RTX.
22438         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22439         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
22440         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
22441         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22442         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
22443
22444 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
22445
22446         PR target/65780
22447         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
22448         default_binds_local_p_2.
22449         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
22450         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
22451
22452 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22453
22454         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
22455
22456 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22457
22458         Patch by Richard Biener
22459         * coverage.c (coverage_obj_init): Delay building of type variant
22460         until the type is finished.
22461
22462 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22463
22464         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
22465         mismatch between C and C++ type; compoare correctly ARG_TYPES
22466         for non-prototypes and output correctly parameter index for METHOD_TYPE.
22467         (odr_types_equivalent_p): Fix wording of warning about attributes;
22468         it is OK to match prototype and non-prototype.
22469
22470 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22471
22472         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
22473         TYPE_ARG_TYPES list.
22474         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
22475         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
22476
22477 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22478
22479         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
22480         * tree.h (is_lang_specific): Constify.
22481
22482 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
22483
22484         PR tree-optimization/64454
22485         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
22486         Rewrite.
22487
22488 2015-05-08  Jason Merrill  <jason@redhat.com>
22489
22490         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
22491         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
22492         config/darwin.h, config/darwin9.h, config/elfos.h,
22493         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
22494         config/microblaze/microblaze.h, config/mips/mips.h,
22495         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
22496         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
22497         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
22498         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
22499         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
22500         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
22501         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
22502         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
22503         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
22504         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
22505         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
22506         between string literal and macro name.
22507
22508 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22509
22510         * jump.c: Change argument types to rtx_insn *.
22511         * rtl.h: Adjust.
22512
22513 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22514
22515         * lra-constraints.c: Change argument type to rtx_insn *.
22516
22517 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22518
22519         * df-problems.c: Change argument type to rtx_insn *.
22520
22521 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22522
22523         * combine.c: Change argument type to rtx_insn *.
22524
22525 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22526
22527         * rtl.h: Adjust.
22528         * rtlanal.c: Change argument type to rtx_insn *.
22529
22530 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22531
22532         * sched-deps.c: Change argument types to rtx_insn *.
22533         * sched-int.h: Adjust.
22534
22535 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22536
22537         * dwarf2cfi.c: Change argument type to rtx_insn *.
22538
22539 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22540
22541         * ira.c (decrease_live_ranges_number): Changetype of local
22542         variable to rtx_insn *.
22543         * recog.c: Change argument types to rtx_insn *.
22544         * recog.h: Adjust.
22545
22546 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22547
22548         * reorg.c: Change argument types to rtx_insn *.
22549
22550 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22551
22552         * ira-color.c: Change argument types to rtx_insn *.
22553         * lra-eliminations.c: Likewise.
22554         * ira.h: Adjust.
22555
22556 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22557
22558         * gcse.c: Change argument types to rtx_insn *.
22559
22560 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22561
22562         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
22563
22564 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22565
22566         * emit-rtl.c (emit_debug_insn_before): Change argument type to
22567         rtx_insn *.
22568         * rtl.h: Adjust.
22569
22570 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22571
22572         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
22573         * rtl.h: Adjust.
22574
22575 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22576
22577         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
22578         * rtl.h: Adjust.
22579
22580 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22581
22582         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
22583         * rtl.h: Adjust.
22584
22585 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22586
22587         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
22588         * rtl.h: Adjust.
22589
22590 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22591
22592         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
22593         to rtx_insn *.
22594         * rtl.h: Adjust.
22595
22596 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22597
22598         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
22599         to rtx_insn *.
22600         * rtl.h: Likewise.
22601
22602 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22603
22604         * except.c (can_nonlocal_goto): Change type of argument to
22605         rtx_insn *.
22606         * rtl.h: Adjust.
22607
22608 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22609
22610         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
22611         * rtl.h: Adjust.
22612
22613 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22614
22615         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
22616         * cfgrtl.c (can_delete_label_p): Adjust.
22617         * rtl.h: likewise.
22618
22619 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22620
22621         * reorg.c (stop_search_p): Change argument to rtx_insn *.
22622
22623 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22624
22625         * except.c (make_reg_eh_region_note): Change argument to
22626         rtx_insn *.
22627         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
22628         * except.h: Adjust.
22629
22630 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22631
22632         * mode-switching.c (commit_mode_sets): Change type of local
22633         variable from rtx to rtx_insn *.
22634
22635 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
22636
22637         * doc/install.texi (--enable-languages): Add missing jit and lto info.
22638         Add ^ to grep command.
22639         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
22640         arg to last gimple_simplify declaration.  Add missing gimple_build
22641         declaration for built-in function case with four tree args.
22642
22643 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
22644             Szabolcs Nagy  <szabolcs.nagy@arm.com>
22645
22646         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
22647         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
22648         (GNU_USER_DYNAMIC_LINKERN32): Update.
22649
22650 2015-05-08  Richard Biener  <rguenther@suse.de>
22651
22652         PR tree-optimization/66036
22653         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
22654         Handle strided group loads.
22655         (vect_verify_datarefs_alignment): Likewise.
22656         (vect_enhance_data_refs_alignment): Likewise.
22657         (vect_analyze_group_access): Likewise.
22658         (vect_analyze_data_ref_access): Likewise.
22659         (vect_analyze_data_ref_accesses): Likewise.
22660         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
22661         (vectorizable_load): Likewise.
22662
22663 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
22664
22665         * config/rs6000/rs6000.md: Require operand inequality in one
22666         of the peepholes.
22667
22668 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
22669             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
22670
22671         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
22672         from (set ...).
22673         * config/rx/rx.md (movdi, movdf): Likewise.
22674         Likewise for define_peephole2s.
22675
22676 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
22677
22678         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
22679         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
22680         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
22681         vtst_u64): Rewrite using gcc vector extensions.
22682
22683 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
22684
22685         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
22686         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
22687
22688 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
22689
22690         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
22691
22692 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
22693
22694         * config/glibc-stdint.h (OPTION_MUSL): Define.
22695         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
22696         Change the definition based on OPTION_MUSL for 64 bit targets.
22697         * config/linux.h (OPTION_MUSL): Redefine.
22698         * config/alpha/linux.h (OPTION_MUSL): Redefine.
22699         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
22700         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
22701
22702 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
22703             Szabolcs Nagy  <szabolcs.nagy@arm.com>
22704
22705         * config.gcc (LIBC_MUSL): New tm_defines macro.
22706         * config/linux.h (OPTION_MUSL): Define.
22707         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
22708         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
22709         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
22710         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
22711         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
22712         * config/linux.opt (mmusl): New option.
22713         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
22714         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
22715         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
22716         * configure: Regenerate.
22717
22718 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
22719             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
22720
22721         PR target/48904
22722         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
22723         * config/i386/knetbsd-gnu64.h: New file.
22724
22725 2015-05-08  Marek Polacek  <polacek@redhat.com>
22726
22727         PR c/64918
22728         * doc/invoke.texi: Document -Woverride-init-side-effects.
22729
22730 2015-05-07  Marek Polacek  <polacek@redhat.com>
22731
22732         PR c/65179
22733         * doc/invoke.texi: Document -Wshift-negative-value.
22734
22735 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
22736
22737         * gcov-tool.c (do_merge): Refactore to remove int ret.
22738         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
22739         !type == FUNC to type != FUNC.
22740         * reload.h (struct target_reload): Changee to type of
22741         x_spill_indirect_levels from bool to unsigned char.
22742
22743 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
22744
22745         * rtl.h (always_void_p): New function.
22746         * gengenrtl.c (always_void_p): Likewise.
22747         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
22748         with code foo are always VOIDmode.
22749         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
22750         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
22751         compare-elim.c, config/aarch64/aarch64.c,
22752         config/aarch64/aarch64.md, config/alpha/alpha.c,
22753         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
22754         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
22755         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
22756         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
22757         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
22758         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
22759         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
22760         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
22761         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
22762         config/ia64/vect.md, config/iq2000/iq2000.c,
22763         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
22764         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
22765         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
22766         config/mep/mep.c, config/microblaze/microblaze.c,
22767         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
22768         config/mn10300/mn10300.c, config/msp430/msp430.c,
22769         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
22770         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
22771         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
22772         config/rs6000/altivec.md, config/rs6000/rs6000.c,
22773         config/rs6000/rs6000.md, config/rs6000/vector.md,
22774         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
22775         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
22776         config/sh/sh.md, config/sh/sh_treg_combine.cc,
22777         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
22778         config/spu/spu.md, config/stormy16/stormy16.c,
22779         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
22780         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
22781         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
22782         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
22783         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
22784         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
22785         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
22786         var-tracking.c: Update calls accordingly.
22787
22788 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
22789
22790         PR middle-end/192
22791         PR middle-end/54303
22792         * varasm.c (function_mergeable_rodata_prefix): New function.
22793         (mergeable_string_section): Use it.
22794         (mergeable_constant_section): Use it.
22795
22796 2015-05-07  Jeff Law  <law@redhat.com>
22797
22798         PR target/39726
22799         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
22800         simplifier to narrow arithmetic.
22801         * generic-match-head.c: (types_match, single_use): New functions.
22802         * gimple-match-head.c: (types_match, single_use): New functions.
22803
22804 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
22805
22806         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
22807         rtx type.
22808
22809 2015-05-07  Richard Biener  <rguenther@suse.de>
22810
22811         PR tree-optimization/66002
22812         * passes.def: Schedule another pass_merge_phi after ifcombine, right
22813         before phiopt.
22814
22815 2015-05-07  Marek Polacek  <polacek@redhat.com>
22816             Martin Uecker  <uecker@eecs.berkeley.edu>
22817
22818         * doc/invoke.texi: Document -fsanitize=bounds-strict.
22819         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
22820         into SANITIZE_NONDEFAULT.
22821         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
22822
22823 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
22824
22825         PR target/66015
22826         * config/alpha/alpha.c (alpha_override_options_after_change): New.
22827         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
22828         (alpha_override_options): Move align_loops, align_jumps and
22829         align_functions handling into alpha_override_options_after_change.
22830
22831 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
22832             Chris Jones  <chrisj@nvidia.com>
22833             Joshua Conner  <jconner@nvidia.com>
22834
22835         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
22836         linking of crtfastmath.o.
22837         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
22838
22839 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
22840
22841         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
22842         (cstore<mode>4_unsigned_imm): New expander.
22843         (cstore<mode>4): Remove empty constraint strings.  Use the new
22844         expanders.
22845
22846 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
22847
22848         PR target/64208
22849         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
22850         alternatives.
22851
22852 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
22853
22854         * config/aarch64/geniterators.sh: Use standard BRE in sed.
22855
22856 2015-05-06  Alan Modra  <amodra@gmail.com>
22857
22858         PR target/66033
22859         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
22860         (UNSPEC_NOP): Define.
22861         (reload_vsx_from_gpr<mode>): Add missing DONE.
22862         (reload_gpr_from_vsx<mode>): Likewise.
22863         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
22864         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
22865
22866 2015-05-06  Christian Bruel  <christian.bruel@st.com>
22867
22868         PR target/66015
22869         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
22870         align_jumps, align_functions into aarch64_override_options_after_change.
22871
22872 2015-05-06  Richard Biener  <rguenther@suse.de>
22873
22874         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
22875         vect_transform_slp_perm_load to check if we support a permutation
22876         for basic-block vectorization.
22877
22878 2015-05-06  Nick Clifton  <nickc@redhat.com>
22879
22880         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
22881         used, even if it is not being used as a frame pointer.
22882
22883 2015-05-05  Jason Merrill  <jason@redhat.com>
22884
22885         * dwarf2out.c (gen_member_die): Don't emit anything for an
22886         anonymous class constructor.
22887
22888 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
22889
22890         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
22891         that it reflects the block structure.
22892         (afdo_propagate_edge): Likewise.
22893         (afdo_calculate_branch_prob): Likewise.
22894         (afdo_annotate_cfg): Likewise.
22895         * cfgcleanup.c (equal_different_set_p): Likewise.
22896         (try_crossjump_to_edge): Likewise.
22897         * cgraph.c (cgraph_node::verify_node): Likewise.
22898         * cgraphunit.c (expand_all_functions): Likewise.
22899         * config/i386/i386.c (ix86_expand_copysign): Likewise.
22900         (exact_dependency_1): Likewise.
22901         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
22902         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
22903         * gensupport.c (process_define_subst): Likewise.
22904         * lto-wrapper.c (merge_and_complain): Likewise.
22905         * tree-if-conv.c (if_convertible_bb_p): Likewise.
22906         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
22907         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
22908         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
22909         * tree-vect-loop.c (vectorizable_reduction): Likewise.
22910         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
22911         * tree-vect-stmts.c (vectorizable_shift): Likewise.
22912         * tree-vrp.c (vrp_finalize): Likewise.
22913         * tree.c (variably_modified_type_p): Likewise.
22914
22915 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
22916
22917         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
22918         on darwin12 and later.
22919         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
22920         file to pass -rdynamic on darwin12 and later.
22921         * config/darwin.opt (rdynamic): Add.
22922
22923 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
22924
22925         * doc/extend.texi (C Extensions): Update menu for moved Variable
22926         Attributes and Type Attributes sections.
22927
22928 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
22929
22930         PR target/65990
22931         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
22932         if rep_8byte stringop strategy was specified for 32-bit target.
22933
22934 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
22935
22936         PR target/65915
22937         * config/i386/i386.md (vector convert to float spltiter): Check for
22938         xmm16+, when splitting scalar float conversion.
22939         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
22940
22941 2015-05-05  Nick Clifton  <nickc@redhat.com>
22942
22943         * config/msp430/msp430-opts.h (enum msp430_regions): New.
22944         * config/msp430/msp430.c (msp430_override_options): Complain if
22945         -mcode-region or -mdata-region is used on a non MSP430X.
22946         (msp430_section_attr): New function.  Checks lower, upper and
22947         either attributes.
22948         (msp430_attribute_table): Add lower, upper and either.
22949         (gen_prefix): New function.  Generates a prefix for a section
22950         name.
22951         (msp430_select_section): New function - handles the choice of
22952         section for an object.  Takes into account memory region
22953         attributes and options.
22954         (msp430_function_section): Use gen_prefix.
22955         (TARGET_SECTION_TYPE_FLAGS): Define.
22956         (msp430_section_type_flags): New function.
22957         (TARGET_ASM_UNIQUE_SECTION): Define.
22958         (msp430_unique_section): New function.
22959         (msp430_output_aligned_decl_common): New function.
22960         (msp430_do_not_relax_short_jumps): New function.
22961         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
22962         Define.
22963         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
22964         * config/msp430/msp430-protos.h
22965         (msp430_do_not_relax_short_jumps): New prototype.
22966         (msp430_output_aligned_decl_common): New prototype.
22967         * config/msp430/msp430.md (length): New attribute.
22968         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
22969         then use a long code sequence for short jumps.
22970         * config/msp430/msp430.opt (mcode-region): New.
22971         (mdata-region): New.
22972         * doc/invoke.texi: Document new options.
22973         * doc/extend.texi: Document new attributes.
22974
22975 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
22976
22977         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
22978         (tune_params): Add field branch_costs.
22979         (aarch64_branch_cost): Declare.
22980         * gcc/config/aarch64.c (generic_branch_cost): New.
22981         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
22982         (cortexa53_tunings): Likewise.
22983         (cortexa57_tunings): Likewise.
22984         (thunderx_tunings): Likewise.
22985         (xgene1_tunings): Likewise.
22986         (aarch64_branch_cost): Define.
22987         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
22988
22989 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
22990
22991         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
22992         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
22993         * config/i386/i386.md: Ditto.
22994         * config/i386/winnt.c: Ditto.
22995
22996 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
22997
22998         * doc/extend.texi (__atomic Builtins): Move implementation details
22999         to the end of the description, rewrite opening paragraphs, state
23000         difference with __sync builtins, state C11/C++11 assumptions,
23001         weaken itemized descriptions, add explanation of memory model
23002         behaviour, expand description of compare-exchange, simplify text.
23003
23004 2015-05-05  Renlin Li  <renlin.li@arm.com>
23005
23006         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
23007
23008 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
23009
23010         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
23011         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
23012         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
23013         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
23014         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
23015         * configure: Regenerate.
23016         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
23017         * doc/install.texi (aarch64*-*-*): Document new
23018         --enable-fix-cortex-a53-843419 option.
23019         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
23020         and -mno-fix-cortex-a53-843419 options.
23021
23022 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23023
23024         PR target/65871
23025         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
23026
23027 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
23028
23029         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
23030         fix overactive TYPE_MIN_VALUE check and add FIXME for type
23031         compatibility problems.
23032
23033 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
23034
23035         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
23036         constraints.
23037         (cbranchsi4_reg): New.
23038         * config/microblaze/microblaze.c
23039         (microblaze_expand_conditional_branch_reg): New.
23040         * config/microblaze/microblaze-protos.h
23041         (microblaze_expand_conditional_branch_reg): New prototype.
23042
23043 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
23044
23045         * config/microblaze/microblaze.md (peephole2): New.
23046
23047 2015-05-04  Jeff Law  <law@redhat.com>
23048
23049         Revert:
23050         2015-05-04  Jeff Law  <law@redhat.com>
23051
23052         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
23053         simplifier to narrow arithmetic.
23054         * generic-match-head.c: (types_match, single_use): New functions.
23055         * gimple-match-head.c: (types_match, single_use): New functions.
23056
23057 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
23058
23059         PR target/65987
23060         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
23061         (split_branches): Likewise.
23062
23063 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
23064
23065         * common.opt (fdelete-null-pointer-checks): Init to -1.
23066         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
23067         override flag_delete_null_pointer_checks default.
23068         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
23069         behavior re address zero.  Better document target-specific behavior.
23070         (-fisolate-errneous-paths-dereference): Mention relationship to
23071         -fdelete-null-pointer-checks.
23072
23073 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
23074
23075         PR tree-optimization/65984
23076         * ubsan.c: Include tree-cfg.h.
23077         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
23078         stmt_could_throw_p test, rename can_throw variable to ends_bb.
23079
23080 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
23081
23082         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
23083         to CONST_DOUBLE_P predicate.
23084         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
23085         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
23086         allow only operands that satisfy standard_sse_constant_p predicate.
23087         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
23088         to CONST_DOUBLE_P predicate.
23089
23090 2015-05-04  Jeff Law  <law@redhat.com>
23091
23092         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
23093         simplifier to narrow arithmetic.
23094         * generic-match-head.c: (types_match, single_use): New functions.
23095         * gimple-match-head.c: (types_match, single_use): New functions.
23096
23097 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
23098
23099         * config/arm/arm.c: Restore bootstrap.
23100
23101 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
23102
23103         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
23104         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
23105         as CONST_WIDE_INT, not CONST_DOUBLE.
23106         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
23107         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
23108         (ix86_find_base_term): Do not check for CONST_DOUBLE.
23109         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
23110         (ix86_build_signbit_mask): Rewrite using wide ints.
23111         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
23112         (ix86_rtx_costs): Handle CONST_WIDE_INT.
23113         (find_constant): Ditto.
23114         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
23115         using gen_int_mode.
23116         * config/i386/predicates.md (x86_64_immediate_operand)
23117         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
23118         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
23119         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
23120         (const0_operand): Also match const_wide_int.
23121         (constm1_operand): Ditto.
23122         (const1_operand): Ditto.
23123
23124 2015-05-04  Richard Biener  <rguenther@suse.de>
23125
23126         PR tree-optimization/65965
23127         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
23128         store groups at gaps.
23129
23130 2015-05-04  Richard Biener  <rguenther@suse.de>
23131
23132         PR tree-optimization/65935
23133         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
23134         then make sure to apply that swapping to the IL.
23135
23136 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
23137
23138         * Makefile.in (PATCHLEVEL_c): New variable.
23139         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
23140         expand the same way as if DEVPHASE_c was non-empty.
23141
23142 2015-05-04  Kai Tietz  <ktietz@redhat.com>
23143
23144         PR target/65559
23145         * lto-wrapper.c (run_gcc): Open filename
23146         in binary-mode.
23147
23148 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
23149
23150         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
23151         sections up in file, to immediately after the Function Attributes
23152         section.
23153
23154 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
23155
23156         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
23157
23158 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23159
23160         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
23161         (insert_partition_copy_on_edge): Adjust.
23162         (insert_rtx_to_part_on_edge): Likewise.
23163         (insert_part_to_rtx_on_edge): Likewise.
23164
23165 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23166
23167         * function.c (set_return_jump_label): Change type of argument to
23168         rtx_insn *.
23169         * function.h (set_return_jump_label): Adjust.
23170
23171 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23172
23173         * reload.h (struct reg_equivs_t): Change type of init to
23174         rtx_insn *.
23175         * ira.c (fix_reg_equiv_init): Adjust.
23176         * reload1.c (eliminate_regs_1): Likewise.
23177         (init_eliminable_invariants): Likewise.
23178
23179 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23180
23181         * cselib.c (fp_setter_insn): Take a rtx_insn *.
23182         * cselib.h (fp_setter_insn): Adjust.
23183
23184 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23185
23186         * recog.c (struct validate_replace_src_data): Change type of
23187         insn field to rtx_insn *.
23188         (validate_replace_src_group): Change type of argument to rtx_insn *.
23189         * recog.h (validate_replace_src_group): Adjust.
23190
23191 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23192
23193         * haifa-sched.c: Change the type of some variables to rtx_insn *.
23194         * sched-deps.c: Likewise.
23195         * sched-int.h: Likewise.
23196         * sched-rgn.c: Likewise.
23197         * sel-sched.c: Likewise.
23198
23199 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23200
23201         to rtx_insn *.
23202         * config/i386/i386.c: Change the type of some arguments to
23203         rtx_insn *.
23204         * config/arm/arm.c: Likewise.
23205
23206 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23207
23208         * lra-constraints.c: Change type of some arguments to rtx_insn *.
23209
23210 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23211
23212         * regcprop.c (kill_autoinc_value): Change type of argument to
23213         rtx_insn *.
23214
23215 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23216
23217         * genrecog.c (print_subroutine): Adjust.
23218         * recog.c (get_bool_attr_mask_uncached): Likewise.
23219         * recog.h (struct recog_data_d): Change the type of insn to
23220         rtx_insn *.
23221
23222 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23223
23224         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
23225
23226 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23227
23228         * df-problems.c (df_set_note): Change type of argument to
23229         rtx_insn *.
23230
23231 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23232
23233         * builtins.c (expand_builtin_trap): Change type of local
23234         variable to rtx_insn *.
23235         (add_sched_insns_for_speculation): Likewise.
23236         (ix86_emit_save_regs): Likewise.
23237         (get_scratch_register_on_entry): Likewise.
23238         (ix86_emit_restore_reg_using_pop): Likewise.
23239         (ix86_emit_leave): Likewise.
23240         (ix86_emit_restore_regs_using_mov): Likewise.
23241         (ix86_expand_epilogue): Likewise.
23242         Likewise.
23243         (rl78_alloc_physical_registers_umul): Likewise.
23244         * cselib.c (discard_useless_locs): Likewise.
23245         (cselib_invalidate_regno): Likewise.
23246         (cselib_invalidate_mem): Likewise.
23247         * function.c (expand_function_start): Likewise.
23248         (emit_use_return_register_into_block): Likewise.
23249         * gcse.c: Likewise.
23250         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
23251         * ifcvt.c (noce_get_alt_condition): Likewise.
23252         * loop-doloop.c (doloop_condition_get): Likewise.
23253         * lra-constraints.c (inherit_in_ebb): Likewise.
23254         * modulo-sched.c (sms_schedule_by_order): Likewise.
23255         * recog.c (next_insn_tests_no_inequality): Likewise.
23256         * reorg.c (emit_delay_sequence): Likewise.
23257         (update_reg_dead_notes): Likewise.
23258         (fix_reg_dead_note): Likewise.
23259         (fill_slots_from_thread): Likewise.
23260         (delete_computation): Likewise.
23261
23262 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
23263
23264         * doc/extend.texi (Variable Attributes): Add menu and proper
23265         @nodes to subsections.  Move Microsoft Windows attributes to
23266         their own subsection.
23267         (Type Attributes): Reorganize introduction to remove duplicate
23268         list of attributes.  Add menu and proper @nodes to subsections.
23269         Alphabetize the main table of common attributes.
23270
23271 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
23272
23273         * match.pd: New simplification patterns.
23274         (x + (x & 1))  -> ((x + 1) & ~1)
23275         (x & ~(x & y)) -> ((x & ~y))
23276         (x | ~(x | y)) -> ((x | ~y))
23277
23278 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23279
23280         * target.def (attribute_table): Mention that struct attribute_spec
23281         is defined in tree-core.h rather than tree.h
23282         * doc/tm.texi: Regenerate.
23283
23284 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
23285
23286         * genrecog.c (test): Rename to rtx_test.  Update rest of file
23287         accordingly.
23288
23289 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
23290
23291         PR translation/65959
23292         * params.h (DEFPARAM): Rename msgid to nocmsgid.
23293
23294 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23295
23296         * gcc/config/aarch64/aarch64-protos.h (tune_params):
23297         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
23298         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
23299         Return value depending on target.
23300         (generic_tunings): Initialize new target settings.
23301         (cortexa53_tunings): Likewise.
23302         (cortexa57_tunings): Likewise.
23303         (thunderx_tunings): Likewise.
23304         (xgene1_tunings): Likewise.
23305
23306 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23307
23308         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
23309         Make Cortex-A53 shift costs more accurate.
23310
23311 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23312
23313         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
23314         UNSIGNED_FLOAT.
23315
23316 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23317
23318         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
23319         Calculate cost of op0 and op1 in PLUS and MINUS cases.
23320
23321 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23322
23323         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
23324         Add cost of op0 in the compare-with-fpzero case.
23325
23326 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
23327
23328         * builtins.c (fold_builtin_1): Remove spurious second
23329         semicolon.
23330         * cgraph.h (symtab_node::get_availability): Likewise.
23331         * opts.c (common_handle_option): Remove spurious second semicolon.
23332         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
23333         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
23334
23335 2015-04-30  Caroline Tice  <cmtice@google.com>
23336
23337         PR gcov-profile/65929
23338         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
23339         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
23340         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
23341         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
23342         * doc/tm.texi: Regenerate.
23343         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
23344         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
23345         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
23346         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
23347
23348 2015-04-30  Marek Polacek  <polacek@redhat.com>
23349
23350         * varasm.c (handle_cache_entry): Fix logic.
23351
23352 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23353
23354         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
23355         (*extrsi5_insn_uxtw_alt): Likewise.
23356         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
23357         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
23358         operations.
23359
23360 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23361
23362         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
23363         fabd in ABS case.
23364
23365 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23366
23367         * config/aarch64/aarch64.md
23368         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
23369         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
23370         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
23371         appropriately.  Handle alternative EON form.
23372
23373 2015-04-30  Renlin Li  <renlin.li@arm.com>
23374
23375         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
23376         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
23377
23378 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
23379
23380         PR ipa/65873
23381         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
23382         -fstrict-aliasing boundaries.
23383
23384 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23385
23386         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
23387         and [SU]MNEGL patterns.
23388
23389 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23390
23391         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
23392         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
23393         combined arithmetic-shift ops.  Properly handle all shift and extend
23394         operations that can occur in combination with PLUS/MINUS.
23395         Rename maybe_fma to compound_p.
23396         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
23397         arithmetic and shift operations.
23398
23399 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23400
23401         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
23402         rather than arith_shift cost when costing ADD/MINUS of an
23403         extended value.
23404
23405 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
23406
23407         PR lto/65948
23408         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
23409         to itself.
23410
23411 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
23412
23413         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
23414         are for the same position.
23415
23416 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
23417
23418         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
23419         vectorize_loops.
23420         (vectorize_loops): Use it.
23421
23422 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23423
23424         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
23425         for aggregate types.
23426         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
23427         type to be non_ODR.
23428         * tree.c (need_assembler_name_p): Compute mangled name for
23429         non-fundamental types and integer types.
23430
23431 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
23432
23433         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
23434         manual swaps.
23435         * expr.c (expand_expr_real_2): Likewise.
23436
23437 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23438
23439         * tree.c (build_common_builtin_nodes): Do not build
23440         __builtin_alloca_with_align as equivalent of library alloca.
23441
23442 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23443
23444         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
23445         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
23446         bugus variants.
23447         * tree.c: Include print-tree.h and ipa-utils.h
23448         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
23449         (free_lang_data_in_cgraph): Call verify_type.
23450         (verify_type_variant): New function.
23451         (verify_type): New function.
23452         * tree.h (verify_type): Declare.
23453
23454 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
23455
23456         * config/mips/mips-cpus.def: (mips4): Change default processor
23457         from PROCESSOR_R8000 to PROCESSOR_R10000.
23458
23459 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
23460
23461         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
23462         la/jalr instead of jal.
23463
23464 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
23465
23466         PR target/65871
23467         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
23468         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
23469         (setcc+movzbl peephole2): Check also clobbered reg.
23470         (setcc+andl peephole2): Ditto.
23471
23472 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
23473
23474         PR libgomp/65099
23475         * config/nvptx/mkoffload.c (target_ilp32): New variable.
23476         (main): Set it depending on "-foffload-abi=[...]".
23477         (compile_native, main): Use it to pass "-m32" or "-m64" to the
23478         compiler.
23479
23480 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
23481
23482         PR target/65770
23483         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
23484         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
23485         Flip lane index back at assembly time for bigendian.
23486
23487 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
23488
23489         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
23490         * gimplify.c (gimplify_omp_workshare): Use it.
23491
23492 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23493
23494         * Makefile.in (build/genrecog.o): Depend on inchash.h.
23495         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
23496         build/inchash.o
23497         * genrecog.c: Rewrite most of the code except for the third page.
23498
23499 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23500
23501         * inchash.h, inchash.c: Include bconfig.h for build objects.
23502         * Makefile.in (build/inchash.o): New rule.
23503
23504 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
23505
23506         PR target/65924
23507         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
23508         number in type attribute expression.
23509
23510 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23511
23512         * loop-iv.c (canon_condition): Generalize to all types of integer
23513         constant.
23514
23515 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
23516
23517         * gimple-walk.c: Prune duplicate or unneeded includes.
23518         (walk_gimple_asm): Only call parse_input_constraint or
23519         parse_output_constraint if their findings are used.
23520         Honour parse_input_constraint and parse_output_constraint
23521         result.
23522
23523 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
23524
23525         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
23526
23527 2015-04-29  Tom de Vries  <tom@codesourcery.com>
23528
23529         PR tree-optimization/65893
23530         * passes.def (pass_all_optimizations): Move pass_stdarg to after
23531         pass_dce.
23532
23533 2015-04-29  Richard Biener  <rguenther@suse.de>
23534
23535         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
23536         compute GROUP_SIZE for basic-block SLP.
23537         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
23538         take into account gaps.
23539         (vect_get_mask_element): Properly reject references to previous
23540         vectors.
23541         (vect_transform_slp_perm_load): Likewise.
23542
23543 2015-04-29  Christian Bruel  <christian.bruel@st.com>
23544
23545         PR target/64835
23546         * config/i386/i386.c (ix86_default_align): New function.
23547         (ix86_override_options_after_change): Call ix86_default_align.
23548         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
23549         (ix86_override_options_after_change): New function.
23550
23551 2015-04-28  Jeff Law  <law@redhat.com>
23552
23553         * tree-ssa-dom.c (record_equality); Fix comment typos.
23554
23555 2015-04-28  Tom de Vries  <tom@codesourcery.com>
23556
23557         PR tree-optimization/65887
23558         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
23559
23560 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
23561
23562         * doc/extend.texi (Declaring Attributes of Functions): Split into
23563         subsections by target.  Alphabetize the table of common attributes.
23564         Rewrite some of the introductory text to reflect the new structure.
23565         Update some cross-references to point to the new subsections.
23566         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
23567         duplicate copies in the discussion of function, label, and type
23568         attributes.
23569
23570 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
23571
23572         PR bootstrap/65910
23573         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
23574
23575 2015-04-28  Jason Merrill  <jason@redhat.com>
23576
23577         PR c++/65734
23578         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
23579         (finalize_type_size): Respect TYPE_USER_ALIGN.
23580         (layout_type) [ARRAY_TYPE]: Likewise.
23581
23582 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
23583
23584         * config/arm/arm.md (*arm_movt): Fix type attribute.
23585         (*cmpsi_shiftsi): Likewise.
23586         (*cmpsi_shiftsi_swp): Likewise.
23587         (*movsicc_insn): Likewise.
23588         (*cond_move): Likewise.
23589         (*if_plus_move): Likewise.
23590         (*if_move_plus): Likewise.
23591         (*if_arith_move): Likewise.
23592         (*if_move_arith): Likewise.
23593         (*if_shift_move): Likewise.
23594         (*if_move_shift): Likewise.
23595         (*arm_movtas_ze): Likewise.
23596         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
23597         redundancy and type attribute.
23598         (*thumb2_movsi_insn): Fix type attribute.
23599         (*thumb2_addsi_short): Likewise.
23600         (thumb2_addsi3_compare0): Likewise.
23601         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
23602         attributes accordingly.
23603
23604 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
23605
23606         PR other/65911
23607         * function.c (pad_to_arg_alignment): Add parentheses.
23608
23609 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
23610
23611         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
23612         libgcc/config/frv/elf-lib.h.
23613
23614 2015-04-28  Tom de Vries  <tom@codesourcery.com>
23615
23616         * tree-call-cdce.c: Fix example in header comment.
23617
23618 2015-04-28  Richard Biener  <rguenther@suse.de>
23619
23620         PR tree-optimization/62283
23621         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
23622         fails fatally and we are vectorizing a basic-block simply
23623         cause the child to be constructed piecewise.
23624         (vect_analyze_slp_cost_1): Adjust.
23625         (vect_detect_hybrid_slp_stmts): Likewise.
23626         (vect_bb_slp_scalar_cost): Likewise.
23627         (vect_get_constant_vectors): For piecewise constructed
23628         constants place them after the last def.
23629         (vect_get_slp_defs): Adjust.
23630         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
23631         externals for basic-block vectorization.
23632
23633 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23634
23635         PR target/63503
23636         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
23637         aarch64-*-*.
23638         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
23639         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
23640         (AARCH64_TUNE_FMA_STEERING): Likewise.
23641         * config/aarch64/aarch64-cores.def: Set
23642         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
23643         FMUL/FMADD instructions.
23644         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
23645         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
23646         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
23647         * config/aarch64/cortex-a57-fma-steering.h: New file.
23648         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
23649
23650 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
23651
23652         * gensupport.c (std_preds): Add missing codes to address_operand entry.
23653
23654 2015-04-28  Richard Biener  <rguenther@suse.de>
23655
23656         PR tree-optimization/65851
23657         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
23658         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
23659         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
23660         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
23661         (ccp_visit_phi_node): Adjust.
23662         (evaluate_stmt): For simplifications to SSA names return its
23663         lattice value if that isn't VARYING.  Return immediately when
23664         simplified to a constant.
23665         (visit_assignment): Adjust.
23666         (ccp_visit_stmt): Likewise.
23667
23668 2015-04-28  Tom de Vries  <tom@codesourcery.com>
23669
23670         PR tree-optimization/65818
23671         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
23672         evaluated.
23673
23674 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23675
23676         * calls.c (save_fixed_argument_area): Don't check
23677         ARGS_GROW_DOWNWARD with the preprocessor.
23678         (restore_fixed_argument_area): Likewise.
23679         (mem_overlaps_already_clobbered_arg_p): Likewise.
23680         (check_sibcall_argument_overlap): Likewise.
23681         (expand_call): Likewise.
23682         (emit_library_call_value_1): Likewise.
23683         (store_one_arg): Likewise.
23684         * function.c (assign_parms): Likewise.
23685         (locate_and_pad_parm): Likewise.
23686         (pad_to_arg_alignment): Likewise.
23687         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
23688
23689 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23690
23691         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
23692         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
23693         * calls.c (save_fixed_argument_area): Don't chekc if
23694         ARGS_GROW_DOWNWARD is defined.
23695         (restore_fixed_argument_area): Likewise.
23696         (mem_overlaps_already_clobbered_arg_p): Likewise.
23697         (check_sibcall_argument_overlap): Likewise.
23698         (expand_call): Likewise.
23699         (emit_library_call_value_1): Likewise.
23700         (store_one_arg): Likewise.
23701         * function.c (assign_parms): Likewise.
23702         (locate_and_pad_parm): Likewise.
23703         (pad_to_arg_alignment): Likewise.
23704         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
23705
23706 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23707
23708         * defaults.h (gen_epilogue): New function.
23709         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
23710         defined.
23711         * cfgrtl.c (cfg_layout_finalize): Likewise.
23712         * df-scan.c: Likewise.
23713         * function.c (thread_prologue_and_epilogue_insns): Likewise.
23714         (reposition_prologue_and_epilogue_notes): Likewise.
23715         * reorg.c (find_end_label): Likewise.
23716         * toplev.c: Likewise.
23717
23718 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23719
23720         * bb-reorder.c (HAVE_return): Don't check if its undefined.
23721         * defaults.h (gen_simple_return): New function.
23722         (gen_simple_return): Likewise.
23723         (HAVE_return): Add default definition to false.
23724         (HAVE_simple_return): Likewise.
23725         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
23726         HAVE_return and HAVE_simple_return are defined.
23727         * function.c (gen_return_pattern): Likewise.
23728         (convert_jumps_to_returns): Likewise.
23729         (thread_prologue_and_epilogue_insns): Likewise.
23730         * reorg.c (find_end_label): Likewise.
23731         (dbr_schedule): Likewise.
23732         * shrink-wrap.c: Likewise.
23733         * shrink-wrap.h: Likewise.
23734
23735 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23736
23737         * defaults.h (EPILOGUE_USES): Add default definition of false.
23738         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
23739         * resource.c (init_resource_info): Likewise.
23740
23741 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23742
23743         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
23744         to false.
23745         * dwarf2out.c (field_byte_offset): REmove check if
23746         PCC_BITFIELD_TYPE_MATTERS is defined.
23747         * stor-layout.c (layout_decl): Likewise.
23748         (update_alignment_for_field): Likewise.
23749         (place_field): Likewise.
23750
23751 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23752
23753         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
23754         true.
23755         * regrename.c (check_new_reg_p): Remove check if
23756         HARD_REGNO_RENAME_OK is defined.
23757         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
23758
23759 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23760
23761         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
23762         * cse.c (fold_rtx): Likewise.
23763         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
23764         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
23765         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
23766         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
23767         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
23768         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
23769         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
23770         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
23771         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
23772         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
23773         * Likewise.
23774         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
23775         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
23776         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
23777         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
23778         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
23779         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
23780         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
23781         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
23782         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
23783         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
23784         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
23785         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
23786         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
23787         * doc/tm.texi: Regenerate.
23788         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
23789         either true or false.
23790
23791 2015-04-27  Jeff Law  <law@redhat.com>
23792
23793         PR tree-optimization/65217
23794         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
23795         of them has a single use, make sure it is the LHS of the implied
23796         copy.
23797
23798 2015-04-28  Alan Modra  <amodra@gmail.com>
23799
23800         PR target/65810
23801         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
23802         (offsettable_ok_by_alignment): Use minimum of decl and toc
23803         pointer alignment.  Replace dead code with assertion.
23804         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
23805         case if size exceeds toc pointer alignment.
23806         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
23807         (rs6000_emit_move): Likewise.
23808         * configure.ac: Add linker toc pointer alignment check.
23809         * configure: Regenerate.
23810         * config.in: Regenerate.
23811
23812 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
23813
23814         * config.gcc: Add h8300-*-linux.
23815         * config/h8300/linux.h: New.
23816         * config/h8300/t-linux: New.
23817         * config/h8300/h8300.c (h8300_option_override): Normal mode
23818         is not supported for h8300-*-linux.
23819         (h8300_file_start): Target priority change.
23820         (get_shift_alg): Likewise.
23821         (h8300_shift_need_scratch_p): Likewise.
23822         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
23823         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
23824
23825 2015-04-27  Caroline Tice  <cmtice@google.com>
23826
23827         * final.c (final_scan_insn):  Output cold_function_name as function
23828         type.
23829         * varasm.c (cold_function_name):  Make global.
23830         (assemble_start_function):  Re-set cold_function_name.
23831         (assemble_end_function): Output cold partition size.
23832         * varasm.h (cold_function_name):  Declare global.
23833
23834 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
23835
23836         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
23837         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
23838         constraint.
23839         (*movxi_internal_avx512f): Ditto.
23840         (define_split): Check for xmm16+, when splitting scalar float_extend.
23841         (*extendsfdf2_mixed): Use "v" constraint.
23842         (define_split): Check for xmm16+, when splitting scalar float_truncate.
23843         (*truncdfsf_fast_sse): Use "v" constraint.
23844         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
23845         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
23846         (define_peephole2): Check for xmm16+, when converting scalar
23847         float_truncate.
23848         (define_peephole2): Check for xmm16+, when converting scalar
23849         float_extend.
23850         (*fop_<mode>_comm_mixed): Use "v" constraint.
23851         (*fop_<mode>_comm_sse): Ditto.
23852         (*fop_<mode>_1_mixed): Ditto.
23853         (*sqrt<mode>2_sse): Ditto.
23854         (*ieee_s<ieee_maxmin><mode>3): Ditto.
23855
23856 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23857
23858         * combine.c (simplify_if_then_else): Use std::swap instead
23859         of manually swapping.
23860         (known_cond): Likewise.
23861         (simplify_comparison): Likewise.
23862
23863 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
23864
23865         PR target/64579
23866         * config/rs6000/htm.md: Remove all define_expands.
23867         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
23868         UNSPECV_HTM_TABORTWCI): Remove.
23869         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
23870         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
23871         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
23872         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
23873         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
23874         tabortwci_internal): Remove define_insns.
23875         (tabort<wd>c, tabort<wd>ci): New define_insns.
23876         (tabort): Use gpc_reg_operand.
23877         (tcheck): Remove operand.
23878         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
23879         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
23880         expected value.
23881         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
23882         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
23883         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
23884         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
23885         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
23886         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
23887         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
23888         (tcheck): Remove builtin argument.
23889         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
23890         not TARGET_64BIT.
23891         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
23892         tabortdc and tabortdci builtins when not in 64-bit mode.
23893         Modify code to handle the loss of the HTM define_expands.
23894         Emit code to copy the CR register to TARGET.
23895         (htm_init_builtins): Modify code to handle the loss of the HTM
23896         define_expands.
23897         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
23898         (RS6000_BTC_64BIT): Likewise.
23899         (RS6000_BTC_CR): New macro.
23900         * doc/extend.texi: Update documentation for htm builtins.
23901
23902 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23903
23904         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
23905         of manually swapping.
23906         (simplify_associative_operation): Likewise.
23907         (simplify_binary_operation): Likewise.
23908         (simplify_plus_minus): Likewise.
23909         (simplify_relational_operation): Likewise.
23910         (simplify_ternary_operation): Likewise.
23911
23912 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
23913
23914         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
23915         (xs_hi_nonmemory_operand): Remove error.
23916         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
23917         general_operand rather than xs_hi_general_operand.
23918
23919 2015-04-27  Richard Biener  <rguenther@suse.de>
23920
23921         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
23922         (record_equivalences_from_stmt): Valueize rhs.
23923         (record_equality): Canonicalize x and y order via
23924         tree_swap_operands_p.  Do not swap operands for same loop depth.
23925
23926 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
23927
23928         PR target/65296
23929         PR target/65895
23930         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
23931         Add hint how to use own spec file.
23932
23933 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
23934
23935         PR tree-optimization/65875
23936         * tree-vrp.c (update_value_range): If in is_new case setting
23937         old_vr to VR_VARYING, also set new_vr to it.  Remove
23938         old_vr->type == VR_VARYING test.
23939         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
23940         SSA_PROP_INTERESTING if update_value_range returned true,
23941         but new range is VR_VARYING.
23942
23943 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23944
23945         * combine.c (sign_extend_short_imm): New.
23946         (set_nonzero_bits_and_sign_copies): Use above new function for sign
23947         extension of src short immediate.
23948         (reg_nonzero_bits_for_combine): Likewise for tem.
23949
23950 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
23951
23952         * stor-layout.c (self_referential_component_ref_p): New predicate.
23953         (copy_self_referential_tree_r): Use it.
23954         (self_referential_size): Punt for simple operations directly involving
23955         self-referential component references.
23956         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
23957
23958 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
23959
23960         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
23961
23962 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
23963
23964         * vec.h (vec): Make splice arguments const.  Update definitions
23965         accordingly.
23966
23967 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
23968
23969         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
23970         alternatives.
23971
23972 2015-04-26  Tom de Vries  <tom@codesourcery.com>
23973
23974         PR tree-optimization/65826
23975         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
23976
23977 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
23978
23979         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
23980         (*madd3<mode>): Ditto.
23981         (*msub4<mode>): Ditto.
23982         (*msub3<mode>): Ditto.
23983         (*nmadd4<mode>): Ditto.
23984         (*nmadd3<mode>): Ditto.
23985         (*nmadd4<mode>_fastmath): Ditto.
23986         (*nmadd3<mode>_fastmath): Ditto.
23987         (*nmsub4<mode>): Ditto.
23988         (*nmsub3<mode>): Ditto.
23989         (*nmsub4<mode>_fastmath): Ditto.
23990         (*nmsub3<mode>_fastmath): Ditto.
23991
23992 2015-04-24  Jason Merrill  <jason@redhat.com>
23993
23994         PR c++/50800
23995         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
23996         down when building TYPE_CANONICAL.
23997         (build_pointer_type_for_mode): Likewise.
23998
23999 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
24000
24001         * genrecog.c (validate_pattern): Check matching constraint refers
24002         to a lower numbered operand.
24003
24004 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
24005
24006         PR target/65849
24007         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
24008         save to independent variables use the Save attribute.  This will
24009         allow these options to be modified with the #pragma/attribute
24010         target support.
24011         (-mallow-movmisalign): Likewise.
24012         (-mallow-df-permute): Likewise.
24013         (-msched-groups): Likewise.
24014         (-malways-hint): Likewise.
24015         (-malign-branch-targets): Likewise.
24016         (-mvectorize-builtins): Likewise.
24017         (-msave-toc-indirect): Likewise.
24018
24019         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
24020         can be set via the #pragma/attribute target support.
24021         (rs6000_opt_vars): Likewise.
24022         (rs6000_inner_target_options): If VSX was set, also set
24023         -mno-avoid-indexed-addresses.
24024
24025 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24026
24027         * config/arm/iterators.md (shiftable_ops): Rename to...
24028         (SHIFTABLE_OPS): ... This.  Update use in comments.
24029         (ior_xor): Rename to...
24030         (IOR_XOR): ... This.
24031         (vqh_ops): Rename to...
24032         (VQH_OPS): ... This.
24033         (vqhs_ops): Rename to...
24034         (VQHS_OPS): ... This.
24035         (rshifts): Rename to...
24036         (RSHIFTS): ... This.
24037         (returns): Rename to...
24038         (RETURNS): ... This.
24039         * config/arm/arm.md: Update uses of the above.
24040         * config/arm/neon.md: Likewise.
24041
24042 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24043
24044         * config.host (case ${host}): Add aarch64*-*-linux case.
24045         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
24046         fields to all the cores.
24047         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
24048         Add MCPU_MTUNE_NATIVE_SPECS.
24049         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
24050         field to all extensions.
24051         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
24052         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
24053         Adjust definition of AARCH64_OPT_EXTENSION.
24054         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
24055         (MCPU_MTUNE_NATIVE_SPECS): Define.
24056         * config/aarch64/driver-aarch64.c: New file.
24057         * config/aarch64/x-arch64: New file.
24058         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
24059         -mtune and -march.
24060
24061 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24062             Wei Mi  <wmi@google.com>
24063
24064         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
24065         * config/i386/i386.c (extract_base_offset_in_addr): New function.
24066         (ix86_operands_ok_for_move_multiple): Ditto.
24067         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
24068         (movlpd/movhpd to movupd peephole2): Ditto.
24069
24070 2015-04-24  Marek Polacek  <polacek@redhat.com>
24071
24072         PR c/61534
24073         * input.h (from_macro_expansion_at): Define.
24074
24075         PR c/63357
24076         * doc/invoke.texi: Update description of -Wlogical-op.
24077
24078 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24079
24080         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
24081         ternary operator in fprintf and harmonize spacing.
24082
24083 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24084
24085         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
24086         Mark operand1 commutative.
24087
24088 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24089
24090         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
24091         input operands in memory.
24092         (*vec_concatv2si_sse4_1): Ditto.
24093         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
24094         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
24095         register_operand.
24096         (vec_extract_hi_v32hi): Ditto.
24097         (vec_extract_hi_v64hi): Ditto.
24098         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
24099
24100 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24101             Steven Bosscher <steven@gcc.gnu.org>
24102
24103         PR rtl-optimization/34503
24104         * cprop.c (cprop_reg_p): New.
24105         (hash_scan_set): Use above function to check if register can be
24106         propagated.
24107         (find_avail_set): Return up to two sets, one whose source is a
24108         register and one whose source is a constant.  Sets are returned in an
24109         array passed as parameter rather than as a return value.
24110         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
24111         sets returned by find_avail_set, starting with the one whose source is
24112         a constant. Use cprop_reg_p to check if register can be propagated.
24113         (do_local_cprop): Use cprop_reg_p to check if register can be
24114         propagated.
24115         (implicit_set_cond_p): Likewise.
24116
24117 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24118
24119         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
24120         (sem_function::equals): IGNORED_NODES parameter is now unused;
24121         update call of equals_private.
24122         (sem_function::equals_private): Do not call equals_wpa; skip
24123         gimple body matching if there is no body.
24124         (sem_function::init): Add logic to hash tthunk info.
24125         (sem_function::parse): Also parse thunks.
24126         * ipa-icf.h (equals_private): Update declaration.
24127
24128 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24129
24130         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
24131         asterisk from name so this can be generated directly.
24132         (*altivec_stvx_<mode>_internal): Likewise.
24133         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
24134         that this is never called during or after reload/lra.
24135         (rs6000_frame_related): Remove split_reg
24136         argument and logic that references it.
24137         (emit_frame_save): Remove last parameter from call to
24138         rs6000_frame_related.
24139         (rs6000_emit_prologue): Remove last parameter from eight calls to
24140         rs6000_frame_related.  Force generation of stvx instruction for
24141         Altivec register saves.  Remove split_reg handling, which is no
24142         longer needed.
24143         (rs6000_emit_epilogue):  Force generation of lvx instruction for
24144         Altivec register restores.
24145
24146 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24147
24148         * config/rs6000/rs6000.opt (mcrypto): Change option description to
24149         match category changes in ISA 2.07B.
24150
24151 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24152
24153         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
24154         iterators.
24155         (cmp_op, cmp_type): New code attributes.
24156         (NEON_VCMP, NEON_VACMP): New int iterators.
24157         (cmp_op_unsp): New int attribute.
24158         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
24159         (neon_vceq<mode>): Delete.
24160         (neon_vc<cmp_op><mode>_insn): New pattern.
24161         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
24162         (neon_vcgeu<mode>): Delete.
24163         (neon_vcle<mode>): Likewise.
24164         (neon_vclt<mode>: Likewise.
24165         (neon_vcage<mode>): Likewise.
24166         (neon_vcagt<mode>): Likewise.
24167         (neon_vca<cmp_op><mode>): New define_expand.
24168         (neon_vca<cmp_op><mode>_insn): New pattern.
24169         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
24170
24171 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24172
24173         * tree.h (attribute_value_equal): Declare.
24174         * tree.c (attribute_value_equal): Export.
24175
24176 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24177
24178         * ipa-icf.c (sem_item::compare_attributes): New function.
24179         (sem_item::compare_referenced_symbol_properties): Compare variable
24180         attributes.
24181         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
24182         (sem_function::param_used_p): New function.
24183         (sem_function::equals_wpa): Fix attribute comparsion; match
24184         parameter type codes; do not compare paremter flags when
24185         they are not used; compare edge flags; compare indirect calls.
24186         (sem_item::update_hash_by_addr_refs): Hash reference type.
24187         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
24188         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
24189         reference use type.
24190         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
24191         * ipa-icf.h (compare_attributes, param_used_p): Declare.
24192
24193 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24194
24195         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
24196         cleanup.
24197         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
24198         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
24199         (sem_item::compare_referenced_symbol_properties): New.
24200         (sem_item::hash_referenced_symbol_properties): New.
24201         (sem_item::compare_cgraph_references): Rename to ...
24202         (sem_item::compare_symbol_references): ... this one; use
24203         compare_referenced_symbol_properties.
24204         (sem_function::equals_wpa): Do not compare
24205         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
24206         DECL_IS_OPERATOR_NEW; compare pointer sizes.
24207         (sem_item::update_hash_by_addr_refs): Call
24208         hash_referenced_symbol_properties.
24209         (sem_item::update_hash_by_local_refs): Cleanup.
24210         (sem_function::merge): Do not mix up symbol properties.
24211         (sem_variable::equals_wpa): Use compare_symbol_references.
24212         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
24213         (sem_item::hash_referenced_symbol_properties): New.
24214         (sem_item::compare_symbol_references): New.
24215         (sem_item::compare_cgraph_references): Remove.
24216
24217 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
24218
24219         PR target/26702
24220         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
24221         Emit size of local.
24222
24223 2015-04-23  Nick Clifton  <nickc@redhat.com>
24224
24225         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
24226         ATTRIBUTE_UNUSED to x parameter.
24227         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
24228
24229 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24230
24231         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
24232         TARGET_CRYPTO to TARGET_P8_VECTOR>
24233         (crypto_vpermxor_<mode>): Likewise.
24234         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
24235         (BU_CRYPTO_3A): Likewise.
24236         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
24237         (BU_CRYPTO_OVERLOAD_3A): New #define.
24238         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
24239         (VPMSUMH): Likewise.
24240         (VPMSUMW): Likewise.
24241         (VPMSUMD): Likewise.
24242         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
24243         (VPERMXOR_V4SI): Likewise.
24244         (VPERMXOR_V8HI): Likewise.
24245         (VPERMXOR_V16QI): Likewise.
24246         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
24247         BU_CRYPTO_OVERLOAD_2A.
24248         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
24249         BU_CRYPTO_OVERLOAD_3A.
24250         * config/rs6000/rs6000.opt (mcrypto): Change description of
24251         option.
24252
24253 2015-04-23  Richard Biener  <rguenther@suse.de>
24254
24255         * passes.def: Remove copy propagation passes run directly after CCP.
24256         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
24257         SSA names.
24258         (ccp_visit_phi_node): Rework to handle first executable edge
24259         specially.
24260
24261 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
24262
24263         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
24264         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
24265         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
24266         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
24267         (thumb_legimitimize_reload_address): Remove.
24268         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
24269         Remove.
24270         (thumb_legimitimize_reload_address): Remove.
24271
24272 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24273
24274         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
24275
24276 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24277
24278         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
24279         MAX_LDM_STM_OPS.
24280         (store_multiple): Likewise.
24281
24282 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24283
24284         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
24285         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
24286         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
24287         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
24288         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
24289         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
24290         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
24291         Specify issue_rate value.
24292         (arm_issue_rate): Look up issue rate from tuning structs. Remove
24293         large switch statement.
24294         (arm_marvell_pj4_tune): New struct.
24295         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
24296         struct.
24297
24298 2015-04-23  Richard Biener  <rguenther@suse.de>
24299
24300         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
24301         (vect_find_last_store_in_slp_instance): Rename to ...
24302         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
24303         (vect_analyze_slp_cost_1): Use vector_load for constant defs
24304         and vec_construct for external defs when estimating prologue cost.
24305         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
24306         Compute costs here only when vectorizing loops.
24307         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
24308         have been determined.
24309         (vect_schedule_slp_instance): Simplify vectorized code placement
24310         and prepare for in-BB external defs.
24311         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
24312         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
24313         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
24314         guard.
24315         (vect_model_load_cost): Likewise.
24316         (vectorizable_store): Instead add it here.
24317         (vectorizable_load): Likewise.
24318         (vect_is_simple_use): Dump def type textually.
24319
24320 2015-04-23  Richard Biener  <rguenther@suse.de>
24321
24322         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
24323         * cfgloop.c (verify_loop_structure): Verify the root loop node.
24324         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
24325         instead of get_eh_region_from_lp_number.
24326         * loop-init.c (fix_loop_structure): If we removed a loop, reset
24327         the SCEV cache.
24328
24329 2015-04-23  Anton Blanchard  <anton@samba.org>
24330
24331         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
24332         need for -mprofile-kernel to save LR to stack.
24333
24334 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24335
24336         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
24337         adjustments.
24338         (insn_is_swappable_p): Return 1 for a convert from double to
24339         single precision when all of its uses are splats of BE element
24340         zero.
24341
24342 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
24343
24344         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
24345
24346 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24347
24348         PR target/65456
24349         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
24350         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
24351         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
24352         option.
24353         (rs6000_builtin_mask_for_load): Return 0 for targets with
24354         efficient unaligned VSX accesses so that the vectorizer will use
24355         direct unaligned loads.
24356         (rs6000_builtin_support_vector_misalignment): Always return true
24357         for targets with efficient unaligned VSX accesses.
24358         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
24359         stores on targets with efficient unaligned VSX accesses is almost
24360         always the same as the cost of an aligned load or store, so model
24361         it that way.
24362         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
24363         unaligned vectors if we have efficient unaligned VSX accesses.
24364         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
24365         undocumented option.
24366
24367 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24368
24369         Revert:
24370         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
24371
24372         * config.gcc (LIBC_MUSL): New tm_defines macro.
24373         * config/linux.h (OPTION_MUSL): Define.
24374         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
24375         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
24376         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
24377
24378         * config/linux.opt (mmusl): New option.
24379         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
24380         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
24381
24382         * configure: Regenerate.
24383
24384 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
24385
24386         * config.gcc (LIBC_MUSL): New tm_defines macro.
24387         * config/linux.h (OPTION_MUSL): Define.
24388         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
24389         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
24390         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
24391
24392         * config/linux.opt (mmusl): New option.
24393         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
24394         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
24395
24396         * configure: Regenerate.
24397
24398 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
24399
24400         * doc/invoke.texi (-fsanitize-sections): Update description.
24401         * asan.c (set_sanitized_sections): Parse incoming arg.
24402         (section_sanitized_p): Support wildcards.
24403
24404 2015-04-22  Tom de Vries  <tom@codesourcery.com>
24405
24406         PR tree-optimization/65823
24407         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
24408         equality between ap_copy and ap.
24409
24410 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24411
24412         PR target/47098
24413         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
24414
24415 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24416
24417         PR target/47122
24418         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
24419
24420 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24421
24422         PR target/55144
24423         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
24424         remove already contained t-files.
24425
24426 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24427
24428         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
24429         Remove unneeded forward declarations.
24430         (suitable_for_tail_call_opt_p): Commentary typo fix.
24431
24432 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24433
24434         * varasm.c (emit_bss): Remove redundant guard.
24435
24436 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24437
24438         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
24439
24440 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24441
24442         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
24443
24444 2015-04-22  Hale Wang  <hale.wang@arm.com>
24445             Terry Guo  <terry.guo@arm.com>
24446
24447         PR rtl-optimization/64818
24448         * combine.c (can_combine_p): Don't combine user-specified
24449         register if it is in an asm input.
24450
24451 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
24452
24453         PR ipa/65076
24454         * passes.def (early_optimizations): Add pass_dse.
24455
24456 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24457
24458         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
24459         * reorg.c (redundant_insn): Remove ifdef
24460         INSN_REFERENCES_ARE_DELAYED.
24461         * resource.c (mark_referenced_resources): Likewise.
24462
24463 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24464
24465         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
24466         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
24467         * resource.c (mark_set_resources): Likewise.
24468
24469 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24470
24471         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
24472         * cfgcleanup.c (flow_find_cross_jump): Likewise.
24473         (flow_find_head_matching_sequence): Likewise.
24474         (try_head_merge_bb): Likewise.
24475         * combine.c (can_combine_p): Likewise.
24476         (try_combine): Likewise.
24477         (distribute_notes): Likewise.
24478         * df-problems.c (can_move_insns_across): Likewise.
24479         * final.c (final): Likewise.
24480         * gcse.c (insert_insn_end_basic_block): Likewise.
24481         * ira.c (find_moveable_pseudos): Likewise.
24482         * reorg.c (try_merge_delay_insns): Likewise.
24483         (fill_simple_delay_slots): Likewise.
24484         (fill_slots_from_thread): Likewise.
24485         * sched-deps.c (sched_analyze_2): Likewise.
24486
24487 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24488
24489         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
24490         PIC_OFFSET_TABLE_REGNUM.
24491
24492 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24493
24494         * alias.c (init_alias_target): Remove ifdef
24495         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
24496         * df-scan.c (df_insn_refs_collect): Likewise.
24497         (df_get_regular_block_artificial_uses): Likewise.
24498         (df_get_eh_block_artificial_uses): Likewise.
24499         (df_get_entry_block_def_set): Likewise.
24500         (df_get_exit_block_use_set): Likewise.
24501         * emit-rtl.c (gen_rtx_REG): Likewise.
24502         * ira.c (ira_setup_eliminable_regset): Likewise.
24503         * reginfo.c (init_reg_sets_1): Likewise.
24504         * regrename.c (rename_chains): Likewise.
24505         * reload1.c (reload): Likewise.
24506         (eliminate_regs_in_insn): Likewise.
24507         * resource.c (mark_referenced_resources): Likewise.
24508         (init_resource_info): Likewise.
24509
24510 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24511
24512         * defaults.h (MASK_RETURN_ADDR): New definition.
24513         * except.c (expand_builtin_extract_return_addr): Remove ifdef
24514         MASK_RETURN_ADDR.
24515
24516 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24517
24518         * defaults.h (RETURN_ADDR_OFFSET): New definition.
24519         * except.c (expand_builtin_extract_return_addr): Remove ifdef
24520         RETURN_ADDR_OFFSET.
24521         (expand_builtin_frob_return_addr): Likewise.
24522
24523 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24524
24525         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
24526         (try_redirect_by_replacing_jump): Likewise.
24527         (rtl_tidy_fallthru_edge): Likewise.
24528         * combine.c (insn_a_feeds_b): Likewise.
24529         (find_split_point): Likewise.
24530         (simplify_set): Likewise.
24531         * cprop.c (cprop_jump): Likewise.
24532         * cse.c (cse_extended_basic_block): Likewise.
24533         * df-problems.c (can_move_insns_across): Likewise.
24534         * function.c (emit_use_return_register_into_block): Likewise.
24535         * haifa-sched.c (sched_init): Likewise.
24536         * ira.c (find_moveable_pseudos): Likewise.
24537         * loop-invariant.c (find_invariant_insn): Likewise.
24538         * lra-constraints.c (curr_insn_transform): Likewise.
24539         * postreload.c (reload_combine_recognize_const_pattern):
24540         * Likewise.
24541         * reload.c (find_reloads): Likewise.
24542         * reorg.c (delete_scheduled_jump): Likewise.
24543         (steal_delay_list_from_target): Likewise.
24544         (steal_delay_list_from_fallthrough): Likewise.
24545         (redundant_insn): Likewise.
24546         (fill_simple_delay_slots): Likewise.
24547         (fill_slots_from_thread): Likewise.
24548         (delete_computation): Likewise.
24549         * sched-rgn.c (add_branch_dependences): Likewise.
24550
24551 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24552
24553         * genconfig.c (main): Always define HAVE_cc0.
24554         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
24555         HAVE_cc0.
24556         * cfgcleanup.c (flow_find_cross_jump): Likewise.
24557         (flow_find_head_matching_sequence): Likewise.
24558         (try_head_merge_bb): Likewise.
24559         * cfgrtl.c (rtl_merge_blocks): Likewise.
24560         (try_redirect_by_replacing_jump): Likewise.
24561         (rtl_tidy_fallthru_edge): Likewise.
24562         * combine.c (do_SUBST_MODE): Likewise.
24563         (insn_a_feeds_b): Likewise.
24564         (combine_instructions): Likewise.
24565         (can_combine_p): Likewise.
24566         (try_combine): Likewise.
24567         (find_split_point): Likewise.
24568         (subst): Likewise.
24569         (simplify_set): Likewise.
24570         (distribute_notes): Likewise.
24571         * cprop.c (cprop_jump): Likewise.
24572         * cse.c (cse_extended_basic_block): Likewise.
24573         * df-problems.c (can_move_insns_across): Likewise.
24574         * final.c (final): Likewise.
24575         (final_scan_insn): Likewise.
24576         * function.c (emit_use_return_register_into_block): Likewise.
24577         * gcse.c (insert_insn_end_basic_block): Likewise.
24578         * haifa-sched.c (sched_init): Likewise.
24579         * ira.c (find_moveable_pseudos): Likewise.
24580         * loop-invariant.c (find_invariant_insn): Likewise.
24581         * lra-constraints.c (curr_insn_transform): Likewise.
24582         * optabs.c (prepare_cmp_insn): Likewise.
24583         * postreload.c (reload_combine_recognize_const_pattern):
24584         * Likewise.
24585         * reload.c (find_reloads): Likewise.
24586         (find_reloads_address_1): Likewise.
24587         * reorg.c (delete_scheduled_jump): Likewise.
24588         (steal_delay_list_from_target): Likewise.
24589         (steal_delay_list_from_fallthrough): Likewise.
24590         (try_merge_delay_insns): Likewise.
24591         (redundant_insn): Likewise.
24592         (fill_simple_delay_slots): Likewise.
24593         (fill_slots_from_thread): Likewise.
24594         (delete_computation): Likewise.
24595         (relax_delay_slots): Likewise.
24596         * sched-deps.c (sched_analyze_2): Likewise.
24597         * sched-rgn.c (add_branch_dependences): Likewise.
24598
24599 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24600
24601         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
24602         that is trivially ded on non cc0 targets.
24603         (simplify_set): Likewise.
24604         (mark_used_regs_combine): Likewise.
24605         * cse.c (new_basic_block): Likewise.
24606         (fold_rtx): Likewise.
24607         (cse_insn): Likewise.
24608         (cse_extended_basic_block): Likewise.
24609         (set_live_p): Likewise.
24610         * rtlanal.c (canonicalize_condition): Likewise.
24611         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
24612
24613 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24614
24615         * conditions.h: Define macros even if HAVE_cc0 is undefined.
24616         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
24617         * final.c: Likewise.
24618         * jump.c: Likewise.
24619         * recog.c: Likewise.
24620         * recog.h: Declare functions even when HAVE_cc0 is undefined.
24621         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
24622
24623 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24624
24625         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
24626         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
24627         * builtins.c (expand_builtin): Remove check if
24628         EH_RETURN_DATA_REGNO is defined.
24629         * df-scan.c (df_bb_refs_collect): Likewise.
24630         (df_get_exit_block_use_set): Likewise.
24631         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
24632         * ira-lives.c (process_bb_node_lives): Likewise.
24633         * lra-lives.c (process_bb_lives): Likewise.
24634
24635 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
24636
24637         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
24638         FIRST_PSEUDO_REG): New.
24639         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
24640         (ARG_POINTER_REGNUM): Define to ARGP_REG.
24641         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
24642         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
24643         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
24644         (FIRST_INT_REG): New.
24645         (LAST_INT_REG): New.
24646         (FIRST_*_REG): Define using *_REG.
24647         (LAST_*_REG): Ditto.
24648         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
24649         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
24650         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
24651
24652 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24653
24654         * expmed.c: (synth_mult): Only assume overlapping
24655         shift with previous steps in alg_sub_t_m2 case.
24656
24657 2015-04-21  Richard Biener  <rguenther@suse.de>
24658
24659         PR tree-optimization/65650
24660         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
24661         transitions involving copies.
24662         (set_lattice_value): Adjust for copy lattice state.
24663         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
24664         if that doesn't dominate the merge point.
24665         (bit_value_unop): Adjust what we treat as varying mask.
24666         (bit_value_binop): Likewise.
24667         (bit_value_assume_aligned): Likewise.
24668         (evaluate_stmt): When we simplified to a SSA name record a copy
24669         instead of dropping to varying.
24670         (visit_assignment): Simplify.
24671
24672         * gimple-match.h (gimple_simplify): Add another callback.
24673         * gimple-fold.c (fold_stmt_1): Adjust caller.
24674         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
24675         for the 2nd callback.
24676         * gimple-match-head.c (gimple_simplify): Add a callback that is
24677         used to valueize the stmt operands and use it that way.
24678
24679 2015-04-21  Richard Biener  <rguenther@suse.de>
24680
24681         PR tree-optimization/65788
24682         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
24683
24684 2015-04-21  Richard Biener  <rguenther@suse.de>
24685
24686         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
24687         vec_construct cost by vec_stmt_cost.
24688
24689 2015-04-21  Richard Biener  <rguenther@suse.de>
24690
24691         * cfghooks.h (create_basic_block): Replace with two overloads
24692         for RTL and GIMPLE.
24693         (split_block): Likewise.
24694         * cfghooks.c (split_block): Rename to ...
24695         (split_block_1): ... this.
24696         (split_block): Add two type-safe overloads for RTL and GIMPLE.
24697         (split_block_after_labels): Call split_block_1.
24698         (create_basic_block): Rename to ...
24699         (create_basic_block_1): ... this.
24700         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
24701         (create_empty_bb): Call create_basic_block_1.
24702         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
24703         split_block_after_labels.
24704         * omp-low.c (expand_parallel_call): Likewise.
24705         (expand_omp_target): Likewise.
24706         (simd_clone_adjust): Likewise.
24707         * tree-chkp.c (chkp_get_entry_block): Likewise.
24708         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
24709         create_basic_block overload.
24710         (cgraph_node::expand_thunk): Likewise.
24711         * tree-cfg.c (make_blocks): Likewise.
24712         (handle_abnormal_edges): Likewise.
24713         * tree-inline.c (copy_bb): Likewise.
24714
24715 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24716
24717         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
24718         New pattern.
24719         (*xor_one_cmplsidi3_ze): Likewise.
24720
24721 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24722
24723         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
24724         use df_remove_problem rather than manually removing problems, leaving
24725         holes in df->problems_in_order[].
24726
24727 2015-04-21  Tom de Vries  <tom@codesourcery.com>
24728
24729         PR tree-optimization/65802
24730         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
24731
24732 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24733
24734         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
24735         Increase to 128.
24736         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
24737         at '.'.  Assert that there's enough space for everything.
24738
24739 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
24740
24741         PR tree-optimization/64950
24742         Revert:
24743         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
24744
24745         PR target/41089
24746         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
24747         as volatile.
24748
24749 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
24750
24751         PR rtl-optimization/64916
24752         * cfgcleanup.c (values_equal_p): New function.
24753         (can_replace_by): Use it.
24754
24755 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
24756
24757         PR c++/65801
24758         * doc/invoke.texi ([-Wnarrowing]): Update.
24759
24760 2015-04-20  Jeff Law  <law@redhat.com>
24761
24762         PR tree-optimization/65658
24763         * tree-ssa-threadupdate.c (redirection_block_p): Remove
24764         redundant test for GIMPLE_ASSIGN in last change.
24765
24766 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
24767
24768         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
24769         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
24770         (legitimize_tls_address): Ditto.
24771         (ix86_expand_move): Ditto.
24772         (ix86_expand_binary_operator): Remove reload_in_progress checks.
24773         (ix86_expand_unary_operator): Ditto.
24774         * config/i386/predicates.md (index_register_operand): Ditto.
24775
24776 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
24777
24778         * reorg.c (try_merge_delay_insns): Improve correctness checking
24779         for targets with multiple delay slots.
24780
24781 2015-04-20  Jeff Law  <law@redhat.com>
24782
24783         PR tree-optimization/65658
24784         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
24785         statements too.
24786
24787 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
24788
24789         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
24790         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
24791         Delete.
24792
24793 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
24794
24795         PR debug/65807
24796         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
24797
24798 2015-04-20  Richard Biener  <rguenther@suse.de>
24799
24800         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
24801         * gimple-fold.c (gimple_build_valueize): New function.
24802         (gimple_build): Always use gimple_build_valueize as valueize hook.
24803
24804 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
24805
24806         PR target/64134
24807         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
24808         and overwrite variable parts if <= 1/2 the elements are variable.
24809
24810 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
24811
24812         PR rtl-optimization/65805
24813         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
24814         Don't use difference of offset and previous offset if
24815         update_sp_offset is non-zero.
24816         (eliminate_regs_in_insn): Ditto.
24817         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
24818         lra_eliminate_regs_1 call.
24819         * lra-constraints.c (get_equiv_with_elimination): Ditto.
24820
24821 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
24822
24823         * hash-table.h: Remove version of hash_table that stored value_type *.
24824         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
24825         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
24826         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
24827         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
24828         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
24829         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
24830         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
24831         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
24832         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
24833         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
24834         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
24835         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
24836         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
24837         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
24838         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
24839         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
24840
24841 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24842             Jakub Jelinek  <jakub@redhat.com>
24843
24844         PR target/65787
24845         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
24846         subsequent SH_NONE operand does not overwrite an existing *special
24847         value.
24848         (adjust_extract): Handle case where a vec_extract operation is
24849         wrapped in a PARALLEL.
24850
24851 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
24852
24853         PR target/65780
24854         * config/i386/i386.c (ix86_binds_local_p): Define only if
24855         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
24856
24857 2015-04-17  Jeff Law  <law@redhat.com>
24858
24859         PR tree-optimization/47679
24860         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
24861         * tree-ssa-scopedtables.c: New file.
24862         * tree-ssa-scopedtables.h: New file.
24863         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
24864         (const_and_copies): Change name/type.
24865         (record_const_or_copy): Move into tree-ssa-scopedtables.c
24866         (record_const_or_copy_1): Similarly.
24867         (restore_vars_to_original_value): Similarly.
24868         (pass_dominator::execute): Create and destroy const_and_copies table.
24869         (thread_across_edge): Update passing of const_and_copies.
24870         (record_temporary_equivalence): Use method calls rather than
24871         manipulating const_and_copies directly.
24872         (record_equality, cprop_into_successor_phis): Similarly.
24873         (dom_opt_dom_walker::before_dom_children): Similarly.
24874         (dom_opt_dom_walker::after_dom_children): Similarly.
24875         (eliminate_redundant_computations): Similarly.
24876         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
24877         (record_temporary_equivalence): Likewise.
24878         (invalidate_equivalences): Likewise.
24879         (record_temporary_equivalences_from_phis): Update due to type
24880         change of const_and_copies.  Use method calls rather than
24881         manipulating the stack directly.
24882         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
24883         (thread_through_normal_block, thread_across_edge): Likewise.
24884         (thread_across_edge): Likewise.
24885         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
24886         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
24887         of equiv_stack.
24888         (identify_jump_threads): Update due to type change of equiv_stack.
24889         (finalize_jump_threads): Delete the equiv_stack when complete.
24890
24891 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
24892
24893         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
24894         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
24895         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
24896
24897 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
24898
24899         PR target/65535
24900         * config.gcc: Exit with a comment when we do not have a major version
24901         number for the FreeBSD target.
24902
24903 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
24904
24905         PR target/65689
24906         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
24907         maybe_allows_mem bitfields.
24908         (maybe_allows_none_start, maybe_allows_none_end,
24909         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
24910         maybe_allows_mem_end): New variables.
24911         (compute_maybe_allows): New function.
24912         (add_constraint): Use it to initialize maybe_allows_reg and
24913         maybe_allows_mem fields.
24914         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
24915         is_address constraints such that those that allow neither mem nor
24916         reg come first, then those that only allow reg but not mem, then
24917         those that only allow mem but not reg, then the rest.
24918         (write_allows_reg_mem_function): New function.
24919         (write_tm_preds_h): Call it.
24920         * stmt.c (parse_output_constraint, parse_input_constraint): Use
24921         the generated insn_extra_constraint_allows_reg_mem function
24922         instead of always setting *allows_reg = true; *allows_mem = true;
24923         for unknown extra constraints.
24924
24925 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
24926
24927         PR target/65780
24928         * output.h (default_binds_local_p_3): New.
24929         * varasm.c (default_binds_local_p_3): Make it public.  Take an
24930         argument to indicate if common symbol may be local.  If common
24931         symbol may be local, treat non-external variable as defined
24932         locally.
24933         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
24934         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
24935         * config/i386/i386.c (ix86_binds_local_p): New.
24936         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
24937         ix86_binds_local_p.
24938
24939 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
24940
24941         PR debug/65771
24942         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
24943         trying mem_loc_descriptor on XEXP (rtl, 0).
24944
24945 2015-04-17  Martin Liska  <mliska@suse.cz>
24946
24947         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
24948         Release symbol_compare_collection.
24949         * ipa-reference.c: Add TODO that a vector should be released.
24950
24951 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
24952
24953         PR target/65296
24954         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
24955         to new AVR-LibC file layout (bug #44574).
24956         (*avrlibc_devicelib): Same.
24957         * config/avr/avr-mcus.def: Adjust comments.
24958         * config/avr/avr.opt (nodevicelib): Adjust help.
24959
24960 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
24961
24962         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
24963
24964 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
24965
24966         PR c++/64527
24967         * gimplify.c (gimplify_init_constructor): Always emit a
24968         side-effecting constructor.
24969
24970 2015-04-17  Tom de Vries  <tom@codesourcery.com>
24971
24972         PR tree-optimization/64950
24973         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
24974         in cfun->curr_properties.
24975         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
24976         if we generate an IFN_VA_ARG.
24977         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
24978         function if PROP_gimple_lva is not set in src function.
24979
24980 2015-04-17  Tom de Vries  <tom@codesourcery.com>
24981             Michael Matz  <matz@suse.de>
24982
24983         PR tree-optimization/64950
24984         * gimple-iterator.c (update_modified_stmts): Remove static.
24985         * gimple-iterator.h (update_modified_stmts): Declare.
24986         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
24987         (gimplify_va_arg_internal): New function.
24988         (gimplify_va_arg_expr): Use IFN_VA_ARG.
24989         * gimplify.h (gimplify_va_arg_internal): Declare.
24990         * internal-fn.c (expand_VA_ARG): New unreachable function.
24991         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
24992         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
24993         (expand_ifn_va_arg): New function.
24994         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
24995         (pass_stdarg::execute): Call expand_ifn_va_arg.
24996         (pass_data_lower_vaarg): New pass_data.
24997         (pass_lower_vaarg): New gimple_opt_pass.
24998         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
24999         (make_pass_lower_vaarg): New function.
25000         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
25001         properties_required field.
25002         * passes.def (all_passes): Add pass_lower_vaarg.
25003         * tree-pass.h (PROP_gimple_lva): Add define.
25004         (make_pass_lower_vaarg): Declare.
25005
25006 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25007
25008         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
25009         * calls.c (call_expr_flags): Same.
25010
25011 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25012
25013         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
25014         (pass_stdarg::execute): ... here.
25015
25016 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25017             Michael Matz  <matz@suse.de>
25018
25019         * tree-cfg.c (make_blocks_1): Factor out of ...
25020         (make_blocks): ... here.
25021         (make_edges_bb): Factor out of ...
25022         (make_edges): ... here.
25023         (gimple_find_sub_bbs): New function.
25024         * tree-cfg.h (gimple_find_sub_bbs): Declare.
25025
25026 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25027
25028         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
25029
25030 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
25031
25032         * asan.c (set_sanitized_sections): New function.
25033         (section_sanitized_p): Ditto.
25034         (asan_protect_global): Optionally sanitize user-defined
25035         sections.
25036         * asan.h (set_sanitized_sections): Declare new function.
25037         * common.opt (fsanitize-sections): New option.
25038         * doc/invoke.texi (-fsanitize-sections): Document new option.
25039         * opts-global.c (handle_common_deferred_options): Handle new
25040         option.
25041
25042 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
25043
25044         PR debug/65771
25045         * dwarf2out.c (loc_list_from_tree): Return NULL
25046         for DEBUG_EXPR_DECL.
25047
25048 2015-04-17  Christian Bruel  <christian.bruel@st.com>
25049
25050         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
25051         same attributes.
25052
25053 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
25054
25055         * ira-color.c (setup_left_conflict_sizes_p): Do not process
25056         node itself when computing left conflict subnode size.
25057
25058 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
25059
25060         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
25061         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
25062         *fop_<mode>_1_sse using enabled attribute.  Use
25063         register_mixssei387nonimm_operand operand 1 predicate. Change
25064         alternative 3 constraints from "x" to "v".
25065
25066 2015-04-16  Richard Biener  <rguenther@suse.de>
25067
25068         PR tree-optimization/65774
25069         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
25070         bit-value tracking on.
25071
25072 2015-04-16  Richard Biener  <rguenther@suse.de>
25073
25074         PR tree-optimization/64277
25075         * tree-vrp.c (check_array_ref): Fix anti-range handling,
25076         simplify upper bound handling.
25077         (search_for_addr_array): Simplify.
25078         (check_array_bounds): Handle ADDR_EXPRs here.
25079         (check_all_array_refs): Simplify.
25080
25081 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
25082
25083         * config/i386/i386.c (print_reg): Rewrite function.
25084
25085 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25086
25087         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
25088         Invert the condition.
25089
25090 2015-04-16  Renlin Li  <renlin.li@arm.com>
25091
25092         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
25093         simplifications for UNSIGNED_FLOAT.
25094
25095 2015-04-16  Nick Clifton  <nickc@redhat.com>
25096
25097         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
25098         MUL_UNINIT.
25099         (enum rl78_cpu_type): New.
25100         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
25101         (umulhi3_shift_virt): Remove m constraint from operand 1.
25102         (umulqihi3_virt): Likewise.
25103         * config/rl78/rl78.c (rl78_option_override): Add code to process
25104         -mcpu and -mmul options.
25105         (rl78_alloc_physical_registers): Add code to handle divhi and
25106         divsi valloc attributes.
25107         (set_origin): Likewise.
25108         * config/rl78/rl78.h (RL78_MUL_G14): Define.
25109         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
25110         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
25111         __RL78_Gxx__.
25112         (ASM_SPEC): Pass -mcpu on to assembler.
25113         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
25114         (mulqi3_rl78): Likewise.
25115         (mulhi3_g13): Likewise.
25116         (mulhi3): Generate the G13 or G14 versions of the insn directly.
25117         (mulsi3): Likewise.
25118         (mulhi3_g14): Add clobbers of AX and BC.
25119         (mulsi3_g14): Likewise.
25120         (mulsi3_g13): Likewise.
25121         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
25122         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
25123         * config/rl78/rl78.opt (mmul): Initialise value to
25124         RL78_MUL_UNINIT.
25125         (mcpu): New option.
25126         (m13, m14, mrl78): New option aliases.
25127         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
25128         (MULTILIB_DIRNAMES): Add g13 and g14.
25129         * doc/invoke.texi: Document -mcpu and -mmul options.
25130
25131 2015-04-16  Richard Biener  <rguenther@suse.de>
25132
25133         * tree-ssa-ccp.c (likely_value): See if we have operands that
25134         are marked as never simulate again and return CONSTANT in this
25135         case.
25136         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
25137         not have any operands that will be simulated again as
25138         not being simulated again.
25139
25140 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
25141
25142         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
25143         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
25144         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
25145         attribute.
25146         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
25147         enabled attribute.
25148         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
25149         *float<SWI48:mode><MODEF:mode>2_sse.
25150         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
25151         enabled attribute.
25152         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
25153         enabled attribute.
25154
25155 2015-04-15  Tom de Vries  <tom@codesourcery.com>
25156
25157         PR other/65487
25158         * function.c (push_dummy_function): New function.
25159         (init_dummy_function_start): Use push_dummy_function.
25160         (pop_dummy_function): New function.  Factored out of ...
25161         (expand_dummy_function_end): ... here.
25162         * function.h (push_dummy_function, pop_dummy_function): Declare.
25163         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
25164         pop_dummy_function.
25165         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
25166
25167 2015-04-15  Jeff Law  <law@redhat.com>
25168
25169         PR tree-optimization/47679
25170         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
25171         need for forward declaration in upcoming changes.
25172         (record_conditions, record_edge_info): Likewise.
25173
25174         PR rtl-optimization/42522
25175         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
25176         SIGN_EXTRACT as a whole object rather than simplifying
25177         its operand.
25178
25179 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
25180
25181         PR ipa/65765
25182         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
25183         and GIMPLE_PREDICT use break instead of return true. For
25184         GIMPLE_EH_DISPATCH, compare dispatch region.
25185
25186 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
25187
25188         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
25189         details about the implementation.  Make clear preference for
25190         __atomic builtins.  Reduce possibility of future change.
25191
25192 2015-04-15  Nick Clifton  <nickc@redhat.com>
25193
25194         * config/rx/rx.opt (mallow-string-insns): New option.
25195         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
25196         builtin if string instructions are denied.
25197         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
25198         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
25199         appropriate.
25200         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
25201         * config/rx/rx.md (movstr): Enable pattern only if string
25202         instructions are allowed.
25203         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
25204         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
25205         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
25206         (MULTILIB_DIRNAMES): Add no-strings.
25207         * doc/invoke.texi: Document -mno-allow-string-insns.
25208
25209 2015-04-15  Alan Modra  <amodra@gmail.com>
25210
25211         PR target/65408
25212         PR target/58744
25213         PR middle-end/36043
25214         * calls.c (load_register_parameters): Don't load past end of
25215         mem unless suitably aligned.
25216
25217 2015-04-15  Nick Clifton  <nickc@redhat.com>
25218
25219         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
25220         decrement instruction as being frame related.
25221         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
25222         based addresses.
25223         If zero extending a function address enclose the operation in
25224         %code(...).
25225         (rl78_preferred_reload_class): New function.
25226         (TARGET_PREFERRED_RELOAD_CLASS): Define.
25227         * config/rl78/rl78.md: Remove useless constraints in expanders.
25228         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
25229         (mulhi3_rl78): Likewise.
25230         (mulhi3_g13): Likewise.
25231         (mulsi3_rl78): Likewise.
25232         (es_addr): Move to before the multiply patterns.
25233
25234 2015-04-15  Alan Modra  <amodra@gmail.com>
25235
25236         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
25237         and sequence_stack.  Add seq.
25238         (seq_stack): Delete.
25239         * function.c (prepare_function_start): Don't access x_last_insn.
25240         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
25241         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
25242         * emit_rtl.c (start_sequence, push_topmost_sequence,
25243         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
25244         sequence accessors.
25245         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
25246         remove_insn): Likewise.  Simplify.
25247         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
25248         and pop_topmost_sequence.
25249         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
25250         debug insns.
25251         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
25252
25253 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
25254
25255         PR target/65729
25256         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
25257         the assertiion.
25258
25259 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
25260
25261         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
25262         (LEGACY_INT_REGNO_P): Ditto.
25263         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
25264         (ANY_MASK_REG_P): Remove.
25265         (BND_REG_P): Rename from ANY_BND_REG_P.
25266         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
25267         legacy integer registers.  Do not handle MMX_REG_P in a special way.
25268         Merge 64byte and 32byte SSE handling.
25269
25270 2015-04-14  Nick Clifton  <nickc@redhat.com>
25271
25272         * expr.c (expand_assignment): Force an address offset computation
25273         into a register before changing its mode.
25274         (expand_expr_real_1): Likewise.
25275
25276 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
25277
25278         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
25279         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
25280         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
25281         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
25282         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
25283         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
25284         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
25285         and __aarch64_vget_lane_any.
25286
25287 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
25288
25289         PR rtl-optimization/65761
25290         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
25291         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
25292
25293 2015-04-14  Richard Biener  <rguenther@suse.de>
25294
25295         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
25296         (graphite_can_represent_scev): Use POINTER_TYPE_P.
25297
25298 2015-04-14  Richard Biener  <rguenther@suse.de>
25299
25300         PR tree-optimization/65758
25301         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
25302         against -1.
25303         (ccp_lattice_meet): Likewise.
25304         (bit_value_unop): Likewise.
25305         (bit_value_binop): Likewise.
25306         (bit_value_assume_aligned): Likewise.
25307
25308 2015-04-14  Christian Bruel  <christian.bruel@st.com>
25309
25310         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
25311         function.
25312
25313 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
25314
25315         PR tree-optimization/63387
25316         * match.pd ((x unord x) | (y unord y) -> (x unord y),
25317         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
25318
25319 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
25320
25321         * config/i386/predicates.md (any_QIreg_operand): Rename from
25322         q_regs_operand.  Do not process subregs.
25323         (QIreg_operand): Use QI_REGNO_P predicate.
25324         (ext_QIreg_operand): Ditto.
25325         (ext_register_operand): Ditto.
25326         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
25327         (AND splitters): Ditto.
25328         (AND with -65536 splitter): Add SWI48 mode for operand 0.
25329         (AND with -256 splitter): Use any_QIreg_operand predicate and
25330         SWI248 mode for operand 0.
25331         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
25332         mode for operand 0.
25333         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
25334
25335 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
25336
25337         * doc/plugins.texi: Rewrite first introductory paragraph.
25338
25339 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25340
25341         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
25342         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
25343
25344 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25345
25346         * ipa-profie.c (ipa_profile): Check number of parameters
25347         and possible polymorphic call targets before
25348         devirtualizing.
25349
25350 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
25351
25352         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
25353         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
25354
25355 2015-04-13  Richard Biener  <rguenther@suse.de>
25356
25357         PR tree-optimization/65204
25358         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
25359         takens for bit-CCP.
25360
25361 2015-04-13  Richard Biener  <rguenther@suse.de>
25362
25363         PR target/65660
25364         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
25365         and cond_not_taken_branch_cost to 4 and 2.
25366         (bdver2_cost): Likewise.
25367         (bdver3_cost): Likewise.
25368         (bdver4_cost): Likewise.
25369
25370 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25371
25372         * hash-table.h (hash_table constructor): Add mem stats.
25373         (alloc_entries): Likewise.
25374
25375 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25376
25377         * ipa-cp.c (ipcp_driver): Relase prev_edge.
25378         * passes.c (execute_one_pass): Only add transform if pass has one.
25379
25380 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
25381
25382         * config/i386/i386.c (ix86_option_override_internal): Don't set
25383         -fprefetch-loop-arrays if optimizing for size.
25384
25385 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25386             Gerald Pfeifer  <gerald@pfeifer.com>
25387
25388         * doc/contrib.texi (Contributors): Add Martin Jambor and
25389         Michael Matz.
25390
25391 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
25392
25393         * BASE-VER: Set to 6.0.0.
25394
25395         PR tree-optimization/65747
25396         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
25397         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
25398
25399 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
25400
25401         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
25402         sentence.  Improve grammar.
25403
25404 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
25405
25406         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
25407
25408 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
25409
25410         PR ipa/65743
25411         * ipa-inline-transform.c (speculation_removed): Remove static var.
25412         (check_speculations): New function.
25413         (clone_inlined_nodes): Do not check spculations.
25414         (inline_call): Call check_speculations.
25415         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
25416         consider non-invariants.
25417
25418 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
25419             Martin Liska  <mliska@suse.cz>
25420
25421         PR ipa/65722
25422         * ipa-icf.c (sem_item::compare_cgraph_references): function and
25423         variable can not match.
25424         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
25425         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
25426
25427 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
25428
25429         PR tree-optimization/65735
25430         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
25431         Remove visited_phis argument, add visited_bbs, avoid recursing into the
25432         same bb rather than just into the same phi node.
25433         (thread_through_normal_block): Adjust caller.
25434
25435 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
25436
25437         * doc/contrib.texi (Contributors): Add Ira Rosen.
25438
25439 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
25440
25441         * gcov.c (find_source): Fix miswording in error message.
25442         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
25443         (ix86_expand_sse_comi_round): Fix typo in error message.
25444
25445 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
25446
25447         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
25448
25449 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
25450
25451         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
25452
25453 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
25454
25455         PR target/65710
25456         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
25457         Print bad_spills_num and insn_pseudos_num.
25458
25459 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25460
25461         PR target/65694
25462         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
25463         when creating +1 values for SImode.
25464
25465 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
25466
25467         PR target/65729
25468         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
25469         assert.
25470
25471 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
25472             Iain Sandoe  <iain@codesourcery.com>
25473
25474         PR target/65351
25475         * configure: Regenerate.
25476
25477 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
25478
25479         PR target/65671
25480         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
25481
25482 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
25483
25484         * doc/contrib.texi (Contributors): Add John Marino.
25485
25486 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
25487
25488         PR tree-optimization/65709
25489         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
25490         TREE_TYPE (TREE_TYPE (t)).
25491
25492 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
25493
25494         PR target/65710
25495         * lra-int.h (lra_bad_spill_regno_start): New.
25496         * lra.c (lra_bad_spill_regno_start): New.
25497         (lra): Set up lra_bad_spill_regno_start.  Set up
25498         lra_constraint_new_regno_start unconditionally.
25499         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
25500         spill preferences.
25501
25502 2015-04-09  Marek Polacek  <polacek@redhat.com>
25503             Jakub Jelinek  <jakub@redhat.com>
25504
25505         PR middle-end/65554
25506         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
25507         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
25508         of STRIP_NOPS.
25509
25510 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
25511
25512         PR rtl-optimization/65693
25513         * combine.c (is_parallel_of_n_reg_sets): Move outside of
25514         #ifndef HAVE_cc0.
25515
25516 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
25517
25518         PR target/65296
25519         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
25520         device specs file if "device-specs%s" didn't resolve to a path.
25521
25522 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
25523
25524         PR target/65676
25525         * config/i386/i386.c (fixup_modeless_constant): New.
25526         (ix86_expand_args_builtin): Fixup modeless constant operand.
25527         (ix86_expand_round_builtin): Ditto.
25528         (ix86_expand_special_args_builtin): Ditto.
25529         (ix86_expand_builtin): Ditto.
25530
25531 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
25532
25533         PR target/65693
25534         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
25535         any pow2 integer in between 2 and 0x80000000U inclusive.
25536
25537 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
25538
25539         PR rtl-optimization/65693
25540         * combine.c (is_parallel_of_n_reg_sets): Change first argument
25541         from an rtx_insn * to an rtx.
25542         (try_combine): Adjust both callers.  Use it once more.
25543
25544 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
25545
25546         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
25547         (chkp_make_static_const_bounds): Search existing
25548         symbol by assembler name.  Use make_decl_one_only.
25549         (chkp_get_zero_bounds_var): Remove node search which
25550         is now performed in chkp_make_static_const_bounds.
25551         (chkp_get_none_bounds_var): Likewise.
25552
25553 2015-04-08  Michael Witten  <mfwitten@gmail.com>
25554
25555         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
25556         to an example.
25557
25558 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
25559
25560         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
25561
25562 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
25563
25564         * doc/extend.texi (__sync Builtins): Fix grammar.
25565
25566 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
25567
25568         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
25569
25570 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
25571
25572         * varasm.c (emit_local): Move definition of align.
25573
25574 2015-04-08  Julian Brown  <julian@codesourcery.com>
25575
25576         * config/nvptx/mkoffload.c (process): Support variable mapping.
25577
25578 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
25579
25580         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
25581         alpha_links **.
25582         (alpha_write_one_linkage): Correct typo.
25583
25584 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
25585
25586         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
25587
25588 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
25589
25590         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
25591
25592 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
25593
25594         * tree-chkp.h (chkp_insert_retbnd_call): New.
25595         * tree-chkp.c (chkp_insert_retbnd_call): New.
25596         * ipa-split.c (insert_bndret_call_after): Remove.
25597         (split_function): Use chkp_insert_retbnd_call.
25598         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
25599         bounds for instrumented functions.
25600
25601 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
25602
25603         PR ipa/65540
25604         * calls.c (initialize_argument_information): When producing tail
25605         call also turn SSA_NAMES passed by references to original PARM_DECLs
25606
25607 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
25608
25609         PR target/65648
25610         * lra-remat.c (do_remat): Process input and non-input insn
25611         registers separately.
25612
25613 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
25614
25615         PR debug/65678
25616         * valtrack.c (debug_lowpart_subreg): New function.
25617         (dead_debug_insert_temp): Use it.
25618
25619         PR middle-end/65680
25620         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
25621         into signed HOST_WIDE_INT the same as negative bit_offset.
25622
25623 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
25624
25625         * ipa-comdats.c (ipa_comdats): Visit all thunks
25626         to set proper comdat group.
25627
25628 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25629
25630         PR target/65489
25631         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
25632         on constants for NEON VSTRUCT modes.
25633
25634 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
25635             Iain Sandoe  <iain@codesourcery.com>
25636
25637         PR target/65351
25638         * configure: Regenerate.
25639
25640 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
25641
25642         PR target/65614
25643         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
25644         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
25645         that LFD is used to load double constants instead of LFS.  Add
25646         defaults for all costs structures.  Add comments for missing
25647         initialization fields.
25648         (size32_cost): Likewise.
25649         (size64_cost): Likewise.
25650         (rs64a_cost): Likewise.
25651         (mpccore_cost): Likewise.
25652         (ppc403_cost): Likewise.
25653         (ppc405_cost): Likewise.
25654         (ppc440_cost): Likewise.
25655         (ppc476_cost): Likewise.
25656         (ppc601_cost): Likewise.
25657         (ppc603_cost): Likewise.
25658         (ppc604_cost): Likewise.
25659         (ppc604e_cost): Likewise.
25660         (ppc620_cost): Likewise.
25661         (ppc630_cost): Likewise.
25662         (ppccell_cost): Likewise.
25663         (ppc750_cost): Likewise.
25664         (ppc7450_cost): Likewise.
25665         (ppc8540_cost): Likewise.
25666         (ppce300c2c3_cost): Likewise.
25667         (ppce500mc_cost): Likewise.
25668         (ppce500mc64_cost): Likewise.
25669         (ppce5500_cost): Likewise.
25670         (ppce6500_cost): Likewise.
25671         (titan_cost): Likewise.
25672         (power4_cost): Likewise.
25673         (power6_cost): Likewise.
25674         (power7_cost): Likewise.
25675         (power8_cost): Likewise.
25676         (ppca2_cost): Likewise.
25677         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
25678
25679         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
25680         instead of XXLOR to copy SFmode to clear out dirty bits created
25681         when SFmode denormals are generated.
25682         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
25683         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
25684
25685 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
25686
25687         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
25688         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
25689         * config/aarch64/aarch64-tune.md: Regenerate.
25690
25691 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
25692
25693         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
25694         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
25695         * config/arm/arm-cores.def (exynos-m1): New core.
25696         * config/arm/arm-tune.md: Regenerate.
25697         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
25698         * config/arm/bpabi.h: Likewise.
25699
25700 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
25701
25702         * ipa-cp (set_single_call_flag): Remove too
25703         restrictive assert.
25704
25705 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
25706
25707         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
25708         GOMP_offload_unregister from the destructor.
25709
25710 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
25711
25712         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
25713         flags for instrumentation thunk.
25714         (chkp_produce_thunks): Likewise.
25715
25716 2015-04-05  Martin Liska  <mliska@suse.cz>
25717
25718         PR ipa/65665
25719         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
25720         has computed data structure.
25721         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
25722
25723 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
25724
25725         * invoke.texi (inline-unit-growth): Increase growth to 20%
25726         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
25727
25728 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
25729
25730         PR target/65647
25731         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
25732         value checking.
25733         (lra_rematerialization_iter): New.
25734         * lra.c (lra): Initialize lra_rematerialization_iter.
25735         Stop updating lra_constraint_new_regno_start after switching of
25736         inheritance and rematerialization.
25737         * lra-remat.c (lra_rematerialization_iter): New.
25738         (lra_remat): Add printing pass iteration.  Do rematerialization
25739         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
25740
25741 2015-04-04  Richard Biener  <rguenther@suse.de>
25742
25743         PR tree-optimization/64909
25744         PR tree-optimization/65660
25745         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
25746         to take a cost vector for scalar iteration cost.
25747         (vect_get_single_scalar_iteration_cost): Likewise.
25748         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
25749         Compute the scalar iteration cost into a cost vector.
25750         (vect_get_known_peeling_cost): Use the scalar cost vector to
25751         account for the cost of the peeled iterations.
25752         (vect_estimate_min_profitable_iters): Likewise.
25753         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
25754         Likewise.
25755
25756 2015-04-04  Alan Modra  <amodra@gmail.com>
25757
25758         PR target/65576
25759         PR target/65240
25760         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
25761         0.0 constant unless TARGET_VSX.
25762         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
25763         alternative.
25764
25765 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
25766
25767         PR ipa/65654
25768         * ipa-inline-transform.c (inline_call): Skip sanity check to work
25769         around the ICE
25770
25771 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
25772
25773         PR ipa/65655
25774         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
25775         speculative indirect edges to avoid ordering issue.
25776
25777 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
25778
25779         PR ipa/65076
25780         * ipa-inline.c (edge_badness): Add combined size to the denominator.
25781
25782 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
25783
25784         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
25785         TYPE_ARTIFICIAL on the .omp_data* types.
25786
25787 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
25788
25789         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
25790         instrumentation thunks.
25791
25792 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
25793
25794         * config/i386/i386.c (ix86_expand_call): Avoid nested
25795         PARALLEL in returned call value.
25796
25797 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
25798
25799         * lto-cgraph.c (input_cgraph_1): Always link instrumented
25800         assembler name with original one.
25801
25802 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
25803
25804         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
25805
25806 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
25807
25808         Revert parts of r216820.
25809         * config/i386/i386.md (movqi_internal): Correct type calculation
25810         for alternatives 3 and 5.
25811
25812 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
25813
25814         PR preprocessor/61977
25815         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
25816         predefine __vector/__bool/__pixel macros nor context sensitive
25817         macros for CLK_ASM.
25818         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
25819
25820 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
25821
25822         * config/pa/pa.c (pa_output_move_double): Directly handle register
25823         indexed memory operand.  Simplify handling of scaled register indexed
25824         memory operands.
25825
25826 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
25827
25828         PR driver/65444
25829         * config/i386/linux-common.h (MPX_SPEC): New.
25830         (CHKP_SPEC): Add MPX_SPEC.
25831         * doc/invoke.texi (-fcheck-pointer-boudns): Document
25832         possible issues with '-z bndplt' support in linker.
25833
25834 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
25835
25836         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
25837         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
25838         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
25839         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
25840         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
25841
25842 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
25843
25844         * config/i386/sync.md (UNSPEC_MOVA): Remove.
25845         (atomic_load<mode>): Change operand 0 predicate to
25846         nonimmediate_operand and fix up the destination when needed.
25847         Use UNSPEC_LDA.
25848         (atomic_loaddi_fpu): Use UNSPEC_LDA.
25849         (atomic_store<mode>): Change operand 1 predicate to
25850         nonimmendate_operand and move the source to register when needed.
25851         Use UNSPEC_STA.
25852         (atomic_store<mode>_1): Use UNSPEC_STA.
25853         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
25854         Fix moves from memory operand.  Use UNSPEC_STA.
25855
25856 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
25857
25858         * expmed.c (strict_volatile_bitfield_p): Check that the access will
25859         not cross a MODESIZE boundary.
25860         (store_bit_field, extract_bit_field): Added assertions in the
25861         strict volatile bitfields code path.
25862
25863 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
25864
25865         PR target/65624
25866         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
25867         Increase args array size by one to avoid buffer overflow.
25868
25869 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
25870
25871         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
25872         split_part.
25873         * ipa-inline.c (edge_badness): Add wrapper penalty.
25874         (sum_callers): Move up.
25875         (inline_small_functions): Set single_caller.
25876         * ipa-inline.h (inline_summary): Add single_caller.
25877         * ipa-split.c (split_function): Set split_part.
25878         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
25879         * cgraph.h (cgraph_node): Add split_part.
25880
25881 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
25882
25883         PR target/58945
25884         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
25885         Do not split operands 0 and operands 2 to halfmode.
25886         (atomic_compare_and_swap<mode>): Update for
25887         atomic_compare_and_swap<dwi>_doubleword changes.
25888
25889 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
25890
25891         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
25892         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
25893         no caching is done.
25894
25895 2015-03-31  Martin Liska  <mliska@suse.cz>
25896
25897         PR ipa/65557
25898         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
25899         has already filled up function summary.
25900         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
25901
25902 2015-03-31  Richard Biener  <rguenther@suse.de>
25903
25904         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
25905         of types.
25906
25907 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
25908
25909         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
25910         nested functions.
25911         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
25912         (s390_asm_output_function_label): Adapt to new signature of
25913         s390_function_num_hotpatch_hw
25914         Optimise the code generating assembler output.
25915         Add comments to assembler file.
25916
25917 2015-03-31  Richard Biener  <rguenther@suse.de>
25918
25919         PR middle-end/65626
25920         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
25921         of the noreturn call so it is last and cleanup_control_flow_bb
25922         can do the CFG part.
25923
25924 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
25925
25926         PR target/65531
25927         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
25928         same_comdat_group for external symbols.
25929         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
25930         infinite same_comdat_group traversal loop.
25931
25932 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
25933
25934         PR plugins/61176
25935         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
25936         automatically to $headers.
25937
25938 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
25939
25940         PR ipa/65610
25941         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
25942         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
25943         function.
25944         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
25945         Use it.
25946         * ipa-prop.c (param_type_may_change_p): Likewise.
25947         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
25948         (remove_unused_scope_block_p): Add in_ctor_dtor_block
25949         argument.  Before inlining, preserve
25950         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
25951         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
25952         recursive calls.
25953         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
25954
25955 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
25956
25957         PR ipa/65076
25958         * ipa-inline.c (edge_badness): Base denominator on callee's
25959         grwoth squared.
25960
25961 2015-03-27  Martin Jambor  <mjambor@suse.cz>
25962
25963         PR ipa/65478
25964         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
25965         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
25966         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
25967         node_calling_single_call.
25968         * ipa-cp.c (count_callers): New function.
25969         (set_single_call_flag): Likewise.
25970         (initialize_node_lattices): Count callers and set single_flag_call if
25971         necessary.
25972         (incorporate_penalties): New function.
25973         (good_cloning_opportunity_p): Use it, dump new flags.
25974         (propagate_constants_topo): Set node_within_scc flag if appropriate.
25975         * doc/invoke.texi (ipa-cp-recursion-penalty,
25976         ipa-cp-single-call-pentalty): Document.
25977
25978 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
25979
25980         PR ipa/65588
25981         * symtab.c (symtab_node::get_partitioning_class): Register vars
25982         are duplicated.
25983         * varpool.c (symbol_table::output_variables) Do not assemble unefined
25984         decls for non-symbols.
25985
25986 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
25987
25988         PR target/65248
25989         * output.h (default_binds_local_p_2): New.
25990         * varasm.c (default_binds_local_p_2): Renamed to ...
25991         (default_binds_local_p_3): This.  Don't return true on protected
25992         data symbol if protected data may be external.
25993         (default_binds_local_p): Use default_binds_local_p_3.
25994         (default_binds_local_p_1): Likewise.
25995         (default_binds_local_p_2): New.
25996         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
25997         default_binds_local_p_2 if TARGET_MACHO is undefined.
25998
25999 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
26000
26001         PR target/65593
26002         * config/i386/i386.c (legitimize_pic_address): If base
26003         is SYMBOL_REF or LABEL_REF using %rip addressing, force
26004         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
26005
26006 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26007
26008         PR target/65531
26009         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
26010         comdat groups.
26011
26012 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26013
26014         PR ipa/65600
26015         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
26016         of optimized out indirect call.
26017         (redirect_to_unreachable): Always build symbol table node for
26018         BUILT_IN_UNREACHABLE
26019
26020 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
26021
26022         PR target/65407
26023         * ira-costs.c (record_reg_classes): Process all constraint string
26024         containing 0-9.
26025
26026 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
26027
26028         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
26029         memory_operand.
26030
26031         PR target/65052
26032         * config/c6x/constraints.md (S3): New constraint.
26033         * config/c6x/c6x.md (real_jump): Use it.
26034
26035 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26036
26037         PR middle-end/65595
26038         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
26039         do redirection if the call is not optimized out.
26040
26041 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
26042
26043         PR target/65495
26044         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
26045         (fchkp-check-incomplete-type): Add LTO.
26046         (fchkp-zero-input-bounds-for-main): Likewise.
26047         (fchkp-first-field-has-own-bounds): Likewise.
26048         (fchkp-narrow-bounds): Likewise.
26049         (fchkp-narrow-to-innermost-array): Likewise.
26050         (fchkp-use-static-bounds): Likewise.
26051         (fchkp-use-static-const-bounds): Likewise.
26052         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
26053
26054 2015-03-27  Marek Polacek  <polacek@redhat.com>
26055
26056         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
26057
26058 2015-03-27  Marek Polacek  <polacek@redhat.com>
26059
26060         PR sanitizer/65583
26061         * ubsan.c (ubsan_create_edge): New function.
26062         (instrument_bool_enum_load): Call it.
26063         (instrument_nonnull_arg): Likewise.
26064         (instrument_nonnull_return): Likewise.
26065         (instrument_object_size): Likewise.
26066
26067 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26068
26069         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
26070         auto_vec.
26071
26072 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26073
26074         PR lto/65536
26075         * lto-streamer.h (class lto_location_cache): New.
26076         (struct data_in): Add location_cache.
26077         (lto_input_location): Update prototype.
26078         (stream_input_location_now): New.
26079         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
26080         pointer to location.
26081         (stream_input_location): Update.
26082         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
26083         (warn_odr): Apply location cache before warning.
26084         (lto_input_location): Update prototype.
26085         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
26086         Use stream_input_location_now.
26087         * lto-streamer-in.c (lto_location_cache::current_cache): New static
26088         variable.
26089         (lto_location_cache::cmp_loc): New function.
26090         (lto_location_cache::apply_location_cache): New function.
26091         (lto_location_cache::accept_location_cache): New function.
26092         (lto_location_cache::revert_location_cache): New function.
26093         (lto_location_cache::input_location): New function.
26094         (lto_input_location): Do location caching.
26095         (stream_input_location_now): New function.
26096         (input_eh_region, input_struct_function_base): Use
26097         stream_input_location_now.
26098         (lto_data_in_create): use new.
26099         (lto_data_in_delete): Use delete.
26100         * tree-streamer-in.c (unpack_ts_block_value_fields,
26101         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
26102         lto_input_ts_exp_tree_pointers): Update for cached location api.
26103
26104 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26105
26106         PR ipa/65076
26107         * passes.def: Add pass_nothrow.
26108         * ipa-pure-const.c: (pass_data_nothrow): New.
26109         (pass_nothrow): New.
26110         (pass_nothrow::execute): New.
26111         (make_pass_nothrow): New.
26112         * tree-pass.h (make_pass_nothrow): Declare.
26113
26114 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26115
26116         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
26117         edge to change by speculation resolution or redirection.
26118         (edge_set_predicate): Likewise.
26119         (inline_summary_t::duplicate): Likewise.
26120         (remap_edge_summaries): Likewise.
26121
26122 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26123
26124         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
26125         New macros.
26126         (can_inline_edge_p): Relax option matching for always inline functions.
26127
26128 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
26129
26130         PR target/65561
26131         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
26132         Check operand 4 and operand 0 for equality.
26133         (avx512f_vextract<shuffletype>32x4_1_maskm):
26134         Check operand 6 and operand 0 for equality.
26135         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
26136         for equality.
26137         (vec_extract_hi_<mode>_maskm): Ditto.
26138
26139 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26140
26141         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
26142         dead calls back to live.
26143         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
26144         cross check to ...
26145         (cgraph_node::verify_node): ... here; verify only callee edges,
26146         not caller.
26147         * cif-code.def (CILK_SPAWN): New code.
26148
26149 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26150
26151         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
26152         (edge_set_predicate): Use it to mark unreachable edges.
26153         (inline_summary_t::duplicate): Remove unnecesary code.
26154         (remap_edge_summaries): Likewise.
26155         (dump_inline_summary): Report contains_cilk_spawn.
26156         (compute_inline_parameters): Compute contains_cilk_spawn.
26157         (inline_read_section, inline_write_summary): Stream
26158         contains_cilk_spawn.
26159         * ipa-inline.c (can_inline_edge_p): Do not touch
26160         DECL_STRUCT_FUNCTION that may not be available;
26161         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
26162         remove check for callee_fun->can_throw_non_call_exceptions and
26163         replace it by optimization attribute check; check for flag_exceptions.
26164         * ipa-inline-transform.c (inline_call): Maintain
26165         DECL_FUNCTION_PERSONALITY
26166         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
26167
26168 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
26169
26170         PR tree-optimization/65551
26171         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
26172         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
26173
26174 2015-03-26  Richard Biener  <rguenther@suse.de>
26175
26176         PR middle-end/65555
26177         * tree-cfg.c (verify_gimple_call): Do not require a call to
26178         have no LHS if it wasn't recognized as control altering yet.
26179
26180 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
26181
26182         PR tree-optimization/64715
26183         * passes.def: Add another instance of pass_object_sizes before ccp1.
26184         * tree-object-size.c (pass_object_sizes::execute): In
26185         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
26186         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
26187         __bos result and the computed constant.  Remove redundant
26188         checks, obsoleted by gimple_call_builtin_p test.
26189
26190         * var-tracking.c (variable_tracking_main_1): Don't track
26191         variables for targetm.no_register_allocation targets.
26192
26193 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
26194
26195         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
26196         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
26197
26198 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
26199
26200         PR target/65569
26201         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
26202         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
26203         0.0 is correctly setup.
26204         (extenddftf2_internal): Likewise.
26205
26206 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
26207
26208         PR tree-optimization/65177
26209         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
26210         (bb_in_bbs): New.
26211         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
26212         edges not adjacent on the path to the original code.
26213
26214 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
26215
26216         PR bootstrap/65537
26217         * doc/install.texi (Building a native compiler): Document new
26218         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
26219         configuration assumes that the host supports the linker plugin.
26220
26221 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
26222
26223         PR target/65508
26224         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
26225         chain for generated call.
26226
26227 2015-03-25  Richard Biener  <rguenther@suse.de>
26228
26229         * passes.c (pass_manager::execute_early_local_passes): Guard
26230         execution of pass_chkp_instrumentation_passes with
26231         flag_check_pointer_bounds.
26232         (pass_chkp_instrumentation_passes::gate): Likewise.
26233
26234 2015-03-25  Martin Liska  <mliska@suse.cz>
26235
26236         PR tree-optimization/65538
26237         * symbol-summary.h (function_summary::~function_summary):
26238         Relese memory for allocated summaries.
26239         (function_summary::release): New function.
26240
26241 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
26242
26243         PR lto/65515
26244         * lto-streamer-out.c (DFS::worklist): New struct.
26245         (DFS::worklist_vec): New data member.
26246         (DFS::next_dfs_num): Remove.
26247         (DFS::DFS): Rewritten using worklist instead of recursion,
26248         using most of code from DFS::DFS_write_tree.
26249         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
26250         pass it to DFS_write_tree calls.
26251         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
26252         quick initial checks push it into worklist_vec and return.
26253
26254 2015-03-25  Richard Biener  <rguenther@suse.de>
26255
26256         PR middle-end/65519
26257         * genmatch.c (expr::gen_transform): Re-write to avoid
26258         using gimple_build.
26259
26260 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
26261
26262         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
26263
26264 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
26265
26266         * config/arm/arm.opt (print_tune_info): New option.
26267         * config/arm/arm.c (arm_print_tune_info): New function.
26268         (arm_file_start): Call arm_print_tune_info.
26269         * config/arm/arm-protos.h (struct tune_params): Add comment.
26270         * doc/invoke.texi (@item -mprint-tune-info): New item.
26271         (-mtune): mention it in ARM Option Summary.
26272
26273 2015-03-25  DJ Delorie  <dj@redhat.com>
26274
26275         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
26276         correct clause.
26277
26278 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
26279             Martin Liska  <mliska@suse.cz>
26280
26281         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
26282         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
26283         (sem_item::add_type): New function.
26284         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
26285         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
26286         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
26287         (sem_function::equals_wpa): Fix typo.
26288         * ipa-icf.h (sem_item::add_type): New function.
26289         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
26290         order.
26291
26292 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
26293
26294         PR tree-optimization/65533
26295         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
26296         with swapped operands, call vect_free_slp_tree on
26297         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
26298         vector.
26299
26300 2015-03-24  Richard Biener  <rguenther@suse.de>
26301
26302         PR middle-end/65517
26303         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
26304         for fixup if necessary.
26305
26306 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
26307
26308         * doc/extend.texi (Function Attributes): Add @cindex entries
26309         for all attributes and regularize their format.  Delete text
26310         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
26311         information about "eightbit_data", "tiny_data", and "model"
26312         variable attributes to the Variable Attributes section.  Fix
26313         some obvious typos and copy-editing issues.
26314         (Variable Attributes, Type Attributes): Likewise add/fix
26315         @cindex entries for all attributes.
26316
26317 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
26318
26319         PR target/65523
26320         * tree-chkp.c (chkp_build_returned_bound): Ignore
26321         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
26322
26323 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
26324
26325         PR target/65505
26326         * config/sh/predicates.md (simple_mem_operand,
26327         displacement_mem_operand): Add test for reg.
26328         (short_displacement_mem_operand): Test for displacement_mem_operand
26329         before invoking sh_disp_addr_displacement.
26330         * config/sh/constraints.md (Sdd, Sra): Simplify.
26331         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
26332         Remove redundant displacement_mem_operand tests.
26333
26334 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
26335
26336         PR target/65296
26337         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
26338         the same -mmcu=MCU more than once.
26339
26340 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
26341
26342         PR bootstrap/65522
26343         * ipa-devirt.c: Remove duplicate demangle.h include.
26344
26345         PR target/65504
26346         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
26347         on the pseudo.
26348         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
26349         REG_POINTER on *destptr after adjusting it for prologue size.
26350
26351         PR ipa/65521
26352         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
26353         ultimate_alias_target ()->order ints instead of
26354         ultimate_alias_target () pointers.
26355
26356 2015-03-23  Richard Biener  <rguenther@suse.de>
26357
26358         PR tree-optimization/65518
26359         * tree-vect-stmts.c (vectorizable_load): Reject single-element
26360         interleaving cases we generate absymal code for.
26361
26362 2015-03-23  Richard Biener  <rguenther@suse.de>
26363
26364         PR tree-optimization/65494
26365         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
26366         matches here.
26367         (vect_analyze_slp_instance): But do that here, always and once.
26368
26369 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26370
26371         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
26372         adding T or multiplying by T+1 and subracting T.
26373
26374 2015-03-22  Jeff Law  <law@redhat.com>
26375
26376         PR rtl-optimization/64317
26377         * Makefile.in (OBJS): Add gcse-common.c
26378         * gcse.c: Include gcse-common.h
26379         (struct modify_pair_s): Move structure definition to gcse-common.h
26380         (compute_transp): Move function to gcse-common.c.
26381         (canon_list_insert): Similarly.
26382         (record_last_mem_set_info): Break out some code and put it into
26383         gcse-common.c.  Call into the new common code.
26384         (compute_local_properties): Pass additional arguments to compute_transp.
26385         * postreload-gcse.c: Include gcse-common.h and df.h
26386         (modify_mem_list_set, blocks_with_calls): New variables.
26387         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
26388         (get_bb_avail_insn): Pass in the expression index too.
26389         (alloc_mem): Allocate memory for the new bitmaps and lists.
26390         (free_mem): Free memory for the new bitmaps and lists.
26391         (insert_expr_in_table): Record a bitmap index for each entry we
26392         add to the table.
26393         (record_last_mem_set_info): Call into common code in gcse-common.c.
26394         (get_bb_avail_insn): If no available insn was found in the requested
26395         BB.  If BB has a single predecessor, see if the expression is
26396         transparent in BB and available in that single predecessor.
26397         (compute_expr_transp): New wrapper for compute_transp.
26398         (eliminate_partially_redundant_load): Pass expression's bitmap_index
26399         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
26400         (gcse_after_reload_main): If there are elements in the hash table,
26401         then compute transparency for all the elements in the hash table.
26402         * gcse-common.h: New file.
26403         * gcse-common.c: New file.
26404
26405 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
26406
26407         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
26408         as an adjective.
26409         (System Headers): Likewise.
26410         (Ifdef): Likewise.
26411         (Traditional macros): Likewise.
26412         (Invocation): Likewise.
26413         (Option Index): Likewise.
26414         * doc/cppopts.texi (-M): Likewise.
26415         (-finput-charset): Likewise.
26416         (--help): Likewise.
26417         * doc.invoke.texi (AVR Options): Likewise.
26418         (V850 Options): Likewise.
26419
26420 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
26421
26422         PR ipa/65475
26423         * ipa-devirt.c: Include demangle.h
26424         (odr_type_d): Add field rtti_broken.
26425         (odr_subtypes_equivalent_p): Do not require name to match.
26426         (compare_virtual_tables): Fix typo; if type already has ODR violation,
26427         bypass the tests; be ready for function referneces in vtables that are
26428         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
26429         (warn_odr): Give up for nameless types.
26430         (warn_types_mismatch): Report mismatch in mangled names;
26431         report mismatch in anonymous namespaces; look into component types to
26432         give useful error; report when mismatch is dragged in from other ODR
26433         type.
26434         (odr_types_equivalent_p): Match types for being polymorphic; avoid
26435         duplicated diagnostics.
26436         (add_type_duplicate): Reorder checks so more informative ones come
26437         first; fix typo; do not output "the extra base is defined here" when
26438         we did not warn.
26439         (BINFO_N_BASE_BINFOS): Relax sanity check.
26440
26441 2015-03-22  Martin Liska  <mliska@suse.cz>
26442             Jakub Jelinek  <jakub@redhat.com>
26443
26444         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
26445         masks that can potentially include a builtin.
26446         (ix86_add_new_builtins): Introduce fast filter for isa values
26447         that cannot trigger builtin inclusion.
26448
26449 2015-03-22  Martin Liska  <mliska@suse.cz>
26450
26451         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
26452         (sem_item::update_hash_by_local_refs): Likewise.
26453         (sem_variable::get_hash): Empty line is fixed.
26454         (sem_item_optimizer::execute): Include adding of hash references.
26455         (sem_item_optimizer::update_hash_by_addr_refs): New function.
26456         (sem_item_optimizer::build_hash_based_classes): Use local hash.
26457         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
26458         (sem_item::update_hash_by_local_refs): Likewise.
26459
26460 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26461
26462         PR ipa/65502
26463         * ipa-comdats.c (enqueue_references): Walk through thunks.
26464         (ipa_comdats): Likewise.
26465         (set_comdat_group_1): New function.
26466
26467 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26468
26469         PR ipa/65475
26470         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
26471         non-polymorphic
26472
26473 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
26474             Gerald Pfeifer  <gerald@pfeifer.com>
26475
26476         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
26477
26478 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
26479             Sandra Loosemore  <sandra@codesourcery.com>
26480
26481         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
26482         function parameter declaration.
26483         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
26484         Update arguments to nios2_adjust_call_address().
26485         (sibcall_internal): Rename from *sibcall.
26486         (sibcall_value_internal): Rename from *sibcall_value.
26487         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
26488         (nios2_large_got_address): Add target temp reg parameter.
26489         (nios2_got_address): Adjust call to nios2_large_got_address, add
26490         force_reg around it.
26491         (nios2_load_pic_address): Add target temp reg parameter, replace call
26492         to nios2_got_address with corresponding code.
26493         (nios2_legitimize_constant_address): Update call to
26494         nios2_load_pic_address.
26495         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
26496         to use temp reg for PIC loading purposes.
26497         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
26498         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
26499         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
26500
26501 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
26502
26503         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
26504         usage of "the @option{...}".
26505         (-Wopenmp-simd): Likewise.
26506         (-fsanitize-recover): Likewise.
26507         (-fsanitize-undefined-trap-on-error): Likewise.
26508         (-flto): Likewise.
26509         (tracer-dynamic-coverage-feedback): Likewise.
26510         (reorder-block-duplicate-feedback): Likewise.
26511         (loop-unroll-jam-size): Likewise.
26512         (-B): Likewise.
26513         (-I-): Likewise.
26514         (-mabs=legacy): Likewise.
26515         (-mupper-regs-df): Likewise.
26516         (-mupper-regs-sf): Likewise.
26517         (-mpointers-to-nested-functions): Likewise.
26518
26519 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
26520
26521         * doc/extend.texi (Cilk Plus Builtins): Add markup.
26522
26523 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
26524
26525         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
26526         additional index entries and cross-references.
26527         (-fchkp-check-incomplete-type): Likewise.
26528         (-fchkp-first-field-has-own-bounds): Likewise.
26529         (-fchkp-narrow-to-innermost-array): Likewise.
26530         (-fchkp-use-fast-string-functions): Likewise.
26531         (-fchkp-use-nochk-string-functions): Likewise.
26532         (-fchkp-use-static-const-bounds): Likewise.
26533         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
26534         (-fchkp-instrument-marked-only): Likewise.
26535         (-fchkp-use-wrappers): Likewise.
26536         (-static-libmpx): Likewise.
26537         (-static-libmpxwrappers): Likewise.
26538         * doc/extend.texi (bnd_legacy): Likewise.
26539         (bnd_instrument): Likewise.
26540         (bnd_variable_size): Likewise.
26541         (Pointer Bounds Checker builtins): Likewise.
26542
26543 2015-03-21  Tom de Vries  <tom@codesourcery.com>
26544
26545         PR tree-optimization/65458
26546         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
26547         * cgraph.h (cgraph_node): Add parallelized_function field.
26548         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
26549         (input_overwrite_node): Read parallelized_function field.
26550         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
26551         parallelized_function on cgraph_node for child_fn.
26552         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
26553         Remove include of gt-tree-parloops.h.
26554         (parallelized_functions): Remove static variable.
26555         (parallelized_function_p): Rewrite using parallelized_function field of
26556         cgraph_node.
26557         (create_loop_fn): Remove adding to parallelized_functions.
26558         * Makefile.in (GTFILES): Remove tree-parloops.c
26559
26560 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
26561
26562         PR rtl-optimization/64366
26563         * lra.c (lra_update_insn_regno_info): Consider regs in
26564         CALL_INSN_FUNCTION_USAGE memory.
26565
26566 2015-03-20  Richard Biener  <rguenther@suse.de>
26567
26568         PR middle-end/64715
26569         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
26570         for type comparison and gcc_checking_assert.
26571         (chrec_fold_plus_poly_poly): Likewise.
26572         (chrec_fold_multiply_poly_poly): Likewise.
26573         (chrec_convert_1): Likewise.
26574         * gimplify.c (gimplify_expr): Remove premature folding of
26575         &X + CST to &MEM[&X, CST].
26576
26577 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26578
26579         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
26580         already is final.
26581         (ipa_inline): Recompute inline_failed codes.
26582         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
26583         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
26584         CIF_FINAL_ERROR.
26585
26586 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
26587
26588         PR rtl-optimization/60851
26589         * recog.c (constrain_operands): Accept a pseudo register before reload
26590         for LRA enabled targets.
26591
26592 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
26593
26594         PR target/65240
26595         * config/rs6000/predicates.md (easy_fp_constant): Remove special
26596         -ffast-math handling that kept non-0 constants live in the RTL
26597         until reload.  Remove logic testing the number of instructions it
26598         took to create a constant in a GPR that was never used, due to a
26599         test for soft-float earlier.
26600         (memory_fp_constant): Delete, no longer used.
26601
26602         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
26603         alternatives for loading non-0 constants into GPRs for hard
26604         floating point that is no longer needed due to changes in
26605         easy_fp_constant.  Add support for loading 0.0 into GPRs.
26606         (mov<mode>_hardfloat32): Likewise.
26607         (mov<mode>_hardfloat64): Likewise.
26608         (mov<mode>_64bit_dm): Likewise.
26609         (movtd_64bit_nodm): Likewise.
26610         (pre-reload move FP constant define_split): Delete define_split,
26611         since it is no longer used.
26612         (extenddftf2_internal): Remove GHF constraints that are not valid
26613         for extenddftf2.
26614
26615 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
26616
26617         PR rtl-optimization/63491
26618         * lra-constraints.c (check_and_process_move): Use src instead of
26619         sreg.  Remove some dead code.
26620
26621 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
26622
26623         PR ipa/65380
26624         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
26625         (sem_variable::merge): Likewise.
26626
26627 2015-03-19  Martin Liska  <mliska@suse.cz>
26628
26629         PR ipa/65465
26630         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
26631         all fields of cgraph_thunk_info.
26632
26633 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
26634
26635         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
26636         clone instrumented thunks.
26637
26638 2015-03-19  Richard Biener  <rguenther@suse.de>
26639
26640         Revert
26641         2015-03-10  Richard Biener  <rguenther@suse.de>
26642
26643         PR middle-end/63155
26644         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
26645         * tree-ssa-coalesce.c: Include timevar.h.
26646         (attempt_coalesce): Handle graph being NULL.
26647         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
26648         Split out abnormal coalescing to ...
26649         (perform_abnormal_coalescing): ... this function.
26650         (coalesce_ssa_name): Perform abnormal coalescing without computing
26651         live/conflict.
26652         (verify_ssa_coalescing_worker): New function.
26653         (verify_ssa_coalescing): Likewise.
26654
26655 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26656             Jakub Jelinek  <jakub@redhat.com>
26657
26658         PR sanitizer/65400
26659         * tsan.c (instrument_gimple): Clear tail call flag on
26660         calls.
26661
26662 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
26663
26664         PR sanitizer/65400
26665         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
26666         call in the return bb.
26667         (find_split_points): Add RETURN_BB argument, don't call
26668         find_return_bb.
26669         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
26670         if true append TSAN_FUNC_EXIT internal call after the call to
26671         the split off function.
26672         (execute_split_functions): Call find_return_bb here.
26673         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
26674         Adjust find_split_points and split_function calls.
26675
26676 2015-03-18  DJ Delorie  <dj@redhat.com>
26677
26678         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
26679         (iorqi3_virt): Likewise.
26680
26681 2015-03-18  Tom de Vries  <tom@codesourcery.com>
26682
26683         * tree-parloops.c (parallelize_loops): Make static.
26684         * tree-parloops.h (parallelize_loops): Remove extern declaration.
26685
26686 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
26687
26688         PR middle-end/64491
26689         Revert:
26690         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
26691
26692         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
26693         condition would be removed due to undefined behaviour.
26694
26695 2015-03-18  Martin Liska  <mliska@suse.cz>
26696
26697         PR ipa/65432
26698         * cgraph.c (cgraph_node::get_create): Remove unnecessary
26699         xstrdup_for_dump wrapper.
26700         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
26701         sem_item::name.
26702         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
26703         with xstrdup_for_dump.
26704         (sem_variable::equals): Likewise.
26705         (sem_item_optimizer::read_section): Use symtab_node::name instead of
26706         sem_item::name.
26707         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
26708         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
26709         symtab_node::asm_name with xstrdup_for_dump.
26710         (congruence_class::dump): Use symtab_node::name instead of
26711         sem_item::name.
26712         * ipa-icf.h (symtab_node::name): Remove.
26713         (symtab_node::asm_name): Likewise.
26714
26715 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
26716
26717         PR tree-optimization/65450
26718         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
26719         function.
26720         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
26721         it instead of duplicate_ssa_name_ptr_info.
26722
26723         PR target/65222
26724         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
26725
26726 2015-03-18  Richard Biener  <rguenther@suse.de>
26727
26728         * tree-data-ref.h (struct access_matrix): Remove.
26729         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
26730         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
26731         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
26732         (am_vector_index_for_loop): Likewise.
26733         (struct data_reference): Remove access_matrix member.
26734         (DR_ACCESS_MATRIX): Remove.
26735         (lambda_vector_new): Add comment.
26736         (lambda_matrix_new): Use XOBNEWVEC.
26737
26738 2015-03-18  Richard Biener  <rguenther@suse.de>
26739
26740         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
26741         (pass_ch::execute): Cleanup the CFG only if we did sth.
26742         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
26743
26744 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26745
26746         * expmed.c (synth_mult): Use std::swap instead of manually
26747         swapping algorithms.
26748
26749 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
26750
26751         PR target/65078
26752         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
26753
26754 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
26755
26756         PR target/65296
26757         * config/avr/avr.opt (-nodevicelib): New option.
26758         * doc/invoke.texi (AVR Options): Document it.
26759         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
26760         libgcc.a, libc.a, libm.a.
26761         * config/avr/specs.h: Same.
26762         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
26763         which don't (directly) depend on the device.  Print more help.
26764         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
26765         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
26766         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
26767         case of an error.
26768         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
26769         for specs file name.
26770         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
26771         * config/avr/avr-mcus.def: Adjust initializers and comments.
26772
26773 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
26774
26775         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
26776         DECL_ONE_ONLY to check if decl is one only.
26777         * ipa-split.c (consider_split): Limit splitt of one only functions.
26778
26779 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
26780
26781         PR tree-optimization/65427
26782         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
26783         functions.
26784         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
26785
26786 2015-03-16  Marek Polacek  <polacek@redhat.com>
26787
26788         * cgraph.h (add_new_static_var): Remove declaration.
26789         * varpool.c (add_new_static_var): Remove function.
26790
26791 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
26792
26793         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
26794         instead of vec<tree> * with vec_alloc and release for args.
26795         Adjust all users.
26796
26797         PR middle-end/65431
26798         * omp-low.c (delete_omp_context): Only splay_tree_delete
26799         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
26800         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
26801
26802 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
26803
26804         PR sanitizer/64820
26805         * cfgexpand.c (align_base): New function.
26806         (alloc_stack_frame_space): Call it.
26807         (expand_stack_vars): Align prev_frame to be sure
26808         data->asan_vec elements aligned properly.
26809
26810 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
26811
26812         PR middle-end/65409
26813         * expr.c (store_field): Do not do a direct block copy if the source is
26814         a PARALLEL with BLKmode.
26815
26816 2015-03-16  Tom de Vries  <tom@codesourcery.com>
26817
26818         PR middle-end/65414
26819         Revert:
26820         2015-03-12  Tom de Vries  <tom@codesourcery.com>
26821
26822         PR rtl-optimization/64895
26823         * lra-lives.c (check_pseudos_live_through_calls): Use
26824         actual_call_used_reg_set instead of call_used_reg_set, if available.
26825
26826 2015-03-16  Alan Modra  <amodra@gmail.com>
26827
26828         PR target/63150
26829         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
26830         Modify Z->r bswapdi splitter to use dest in place of scratch.
26831         In r->Z and Z->r bswapdi splitter rename word_high, word_low
26832         to word1, word2 and rearrange logic to suit.
26833         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
26834         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
26835         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
26836         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
26837         early clobber.
26838
26839 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
26840
26841         PR tree-optimization/65369
26842         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
26843         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
26844         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
26845
26846         PR tree-optimization/65418
26847         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
26848         are casts in the first PLUS_EXPR operand, ensure tbias and
26849         *totallowp are in the inner type.
26850
26851         PR rtl-optimization/65401
26852         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
26853         argument.  If true, adjust_address_nv of x with big-endian
26854         correction for the mode widening to GET_MODE (y).
26855         (make_field_assignment): Don't do MEM mode widening here.
26856         Use MEM_P instead of GET_CODE == MEM.
26857
26858 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
26859
26860         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
26861         the external decls.
26862
26863 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26864
26865         PR target/64600
26866         * config/arm/arm.c (arm_gen_constant, AND case): Use
26867         ARM_SIGN_EXTEND when constructing AND mask.
26868
26869 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26870
26871         * graph.c (print_graph_cfg): Make function names visible and append
26872         parenthesis to it.  Also make groups of basic blocks belonging to the
26873         same function visible.
26874
26875 2015-03-12  Richard Biener  <rguenther@suse.de>
26876
26877         PR middle-end/44563
26878         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
26879         to avoid quadratic behavior with inline expansion splitting blocks.
26880         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
26881         with the successor if the predecessor will be merged with it.
26882         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
26883         entry block with its successor.
26884
26885 2015-03-13  Richard Biener  <rguenther@suse.de>
26886
26887         PR middle-end/44563
26888         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
26889         (cleanup_tree_cfg_1): Do not call it.
26890         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
26891         (fixup_noreturn_call): Mark the stmt as control altering.
26892         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
26893         here.
26894         (pass_data_fixup_cfg): Produce a dump file.
26895         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
26896         (need_noreturn_fixup): New global.
26897         (pass_dominator::execute): Fixup queued noreturn calls.
26898         (optimize_stmt): Queue calls that became noreturn for fixup.
26899         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
26900         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
26901         (el_to_fixup): New global.
26902         (eliminate_dom_walker::before_dom_childre): Queue calls that
26903         became noreturn for fixup.
26904         (eliminate): Fixup queued noreturn calls.
26905         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
26906         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
26907         (substitute_and_fold_dom_walker::before_dom_children): Queue
26908         alls that became noreturn for fixup.
26909         (substitute_and_fold): Fixup queued noreturn calls.
26910
26911 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
26912
26913         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
26914         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
26915         are building; for methods check ODR type of class they belong to if
26916         they may lead to a polymorphic call.
26917         (sem_function::compare_polymorphic_p): Be bit smarter about testing
26918         when function may lead to a polymorphic call.
26919         (sem_function::compare_type_list): Remove.
26920         (sem_variable::equals): Update use of compatible_types_p.
26921         (sem_variable::parse_tree_refs): Remove.
26922         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
26923         cdtor.
26924         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
26925         matching here.
26926         (func_checker::compatible_polymorphic_types_p): Break out from ...
26927         (unc_checker::compatible_types_p): ... here.
26928         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
26929         Declare.
26930         (unc_checker::compatible_types_p): Update.
26931         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
26932         Remove.
26933
26934 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26935
26936         PR rtl-optimization/65235
26937         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
26938         When first element of vec_concat is const_int, calculate its size
26939         using second element.
26940
26941 2015-03-12  Richard Biener  <rguenther@suse.de>
26942
26943         PR middle-end/65270
26944         * fold-const.c (operand_equal_p): Fix ordering of resetting
26945         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
26946
26947 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26948
26949         * config/s390/s390.c (s390_reorg): Move code to output nops after label
26950         to s390_reorg ().
26951         (s390_asm_output_function_label): Likewise.
26952         * config/s390/s390.c (s390_asm_output_function_label):
26953         Fix function label alignment with -mhtopatch.
26954         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
26955         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
26956         ("nop_2_byte"): New define_insn.
26957         ("nop_4_byte"): Likewise.
26958         ("nop_6_byte"): Likewise.
26959         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
26960         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
26961
26962 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
26963
26964         PR target/65103
26965         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
26966         register.
26967
26968 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
26969
26970         PR target/65044
26971         * toplev.c (process_options): Restrict Pointer Bounds Checker
26972         usage with Address Sanitizer.
26973
26974 2015-03-12  Richard Biener  <rguenther@suse.de>
26975
26976         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
26977         to split on.
26978         * omp-low.c (expand_omp_taskreg): Split block before removing
26979         the stmt.
26980         (expand_omp_target): Likewise.
26981         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
26982         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
26983         stmt to split_block.
26984
26985 2015-03-12  Tom de Vries  <tom@codesourcery.com>
26986
26987         PR rtl-optimization/64895
26988         * lra-lives.c (check_pseudos_live_through_calls): Use
26989         actual_call_used_reg_set instead of call_used_reg_set, if available.
26990
26991 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
26992
26993         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
26994         (cgraph_node::remove): Likewise.
26995         (cgraph_node::get_untransformed_body): Likewise.
26996         * varpool.c (varpool_node::remove): Likewise.
26997         (varpool_node::get_constructor): Add sanity check.
26998
26999 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
27000
27001         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
27002         old GCC versions.
27003         (-fabi-compat-version): Likewise.
27004         (-ffriend-injection): Likewise.
27005         (-Wdeclaration-after-statement): Likewise.
27006         (-fomit-frame-pointer): Likewise.
27007         (-ftree-coalesce-inlined-vars): Likewise.
27008         (-fvisibility=): Likewise.
27009         * doc/extend.texi (Typeof): Likewise.
27010         (Zero Length): Likewise.
27011         (Escaped Newlines): Likewise.
27012         (Compound Literals): Likewise.
27013         (Function Attributes): Likewise.
27014         (Label Attributes): Likewise.
27015         (Type Attributes): Likewise.
27016         (Function Names): Likewise.
27017         (Other Builtins): Likewise.
27018         (Function Specific Option Pragmas): Likewise.
27019         (C++ Interface): Likewise.
27020
27021 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
27022
27023         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
27024
27025 2015-03-11  Marek Polacek  <polacek@redhat.com>
27026
27027         PR tree-optimization/65388
27028         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
27029
27030 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
27031
27032         PR target/65296
27033         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
27034         * configure: Regenerate.
27035         * config.in: Regenerate.
27036         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
27037         [-mn-flash]: Document it.
27038         [__AVR_ARCH__]: Document avrtiny.
27039
27040         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
27041         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
27042         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
27043
27044 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27045
27046         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
27047
27048 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
27049
27050         PR target/65242
27051         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
27052         allow reloads of PLUS in floating point/VSX registers.
27053
27054 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
27055
27056         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
27057         crypto_sha256_fast.
27058         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
27059
27060 2015-03-11  Richard Biener  <rguenther@suse.de>
27061
27062         PR tree-optimization/65310
27063         * tree-sra.c (build_ref_for_offset): Also preserve larger
27064         alignment.
27065
27066 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
27067
27068         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
27069
27070 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27071
27072         PR target/65368
27073         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
27074         new define_expand.
27075         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
27076
27077 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27078
27079         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
27080         (sem_function::equals_wpa): ... here.
27081
27082 2015-03-10  Marek Polacek  <polacek@redhat.com>
27083             Jakub Jelinek  <jakub@redhat.com>
27084
27085         PR sanitizer/65367
27086         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
27087         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
27088         separately.
27089
27090 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27091
27092         PR target/65286
27093         * config/rs6000/t-linux: For powerpc64* target set
27094         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
27095
27096 2015-03-10  Richard Biener  <rguenther@suse.de>
27097
27098         PR middle-end/44563
27099         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
27100         for redirect_all_calls.
27101
27102 2015-03-10  Marek Polacek  <polacek@redhat.com>
27103
27104         * gdbinit.in (pcfun): Define and document.
27105
27106 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
27107
27108         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
27109         of libgomp-plugin.h.
27110         (find_target_compiler): Support a case when the path to gcc is
27111         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
27112         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
27113         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
27114         libgomp-plugin.h.
27115         (main): Use GCC_INSTALL_NAME as target_driver_name.
27116         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
27117         define.
27118         (mkoffload.o): Remove obsolete include path and defines.
27119         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
27120
27121 2015-03-10  Richard Biener  <rguenther@suse.de>
27122
27123         PR middle-end/63155
27124         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
27125         * tree-ssa-coalesce.c: Include timevar.h.
27126         (attempt_coalesce): Handle graph being NULL.
27127         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
27128         Split out abnormal coalescing to ...
27129         (perform_abnormal_coalescing): ... this function.
27130         (coalesce_ssa_name): Perform abnormal coalescing without computing
27131         live/conflict.
27132         (verify_ssa_coalescing_worker): New function.
27133         (verify_ssa_coalescing): Likewise.
27134
27135 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
27136
27137         PR target/65296
27138         * config.gcc (extra_options) [avr]: Remove.
27139         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
27140         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
27141         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
27142
27143         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
27144         (-mmcu=): Add Var and MissingArgError properties.
27145         (-march=): Remove.
27146         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
27147         * config/avr/t-multilib: Regenerate.
27148         * config/avr/specs.h: New file.
27149         * config/avr/driver-avr.c: New file.
27150         * config/avr/genopt.sh: Remove file.
27151         * config/avr/avr-tables.opt: Remove file.
27152         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
27153         * config/avr/avr-c.c: Same.
27154         * avr-arch.h: Same.
27155         (avr_current_device): Remove proto.
27156         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
27157         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
27158         (EXTRA_SPEC_FUNCTIONS): Define.
27159         (avr_devicespecs_file): New specs function proto.
27160         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
27161         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
27162         (avr_current_device): Remove definition and usage.
27163         (avr_set_core_architecture): New static function.
27164         (avr_option_override): Use it.
27165         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
27166         (mcu_name): New static array.
27167         (comparator, avr_archs_str, avr_mcus_str): New static functions.
27168         (avr_inform_devices, avr_inform_core_architectures): New functions.
27169         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
27170         (avrlibc.h) [WITH_AVRLIBC]: Include.
27171         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
27172         (print_mcu): Rewrite from scratch.
27173         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
27174         Forward to avr-specific specs defined in device-specs file.
27175         * config/avr/t-avr (driver-avr.o): New rule.
27176         (avr-devices.o): Depend on avr-arch.h.
27177         (avr-mcus): No more depend on avr-tables.opt.
27178         (avr-tables.opt): Remove rule.
27179         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
27180
27181 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27182
27183         * c-family/c.opt (fchkp-use-wrappers): New.
27184         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
27185         (chkp_wrap_function): New.
27186         (chkp_build_instrumented_fndecl): Support wrapped
27187         functions.
27188         * doc/invoke.texi (-fcheck-pointer-bounds): New.
27189         (-fchkp-check-incomplete-type): New.
27190         (-fchkp-first-field-has-own-bounds): New.
27191         (-fchkp-narrow-bounds): New.
27192         (-fchkp-narrow-to-innermost-array): New.
27193         (-fchkp-optimize): New.
27194         (-fchkp-use-fast-string-functions): New.
27195         (-fchkp-use-nochk-string-functions): New.
27196         (-fchkp-use-static-bounds): New.
27197         (-fchkp-use-static-const-bounds): New.
27198         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
27199         (-fchkp-check-read): New.
27200         (-fchkp-check-write): New.
27201         (-fchkp-store-bounds): New.
27202         (-fchkp-instrument-calls): New.
27203         (-fchkp-instrument-marked-only): New.
27204         (-fchkp-use-wrappers): New.
27205         (-static-libmpx): New.
27206         (-static-libmpxwrappers): New.
27207
27208 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27209
27210         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
27211         (CHKP_SPEC): Add wrappers library.
27212         * c-family/c.opt (static-libmpxwrappers): New.
27213
27214 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27215
27216         * config/i386/linux-common.h (LIBMPX_LIBS): New.
27217         (LIBMPX_SPEC): New.
27218         (CHKP_SPEC): New.
27219         * gcc.c (CHKP_SPEC): New.
27220         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
27221         * c-family/c.opt (static-libmpx): New.
27222
27223 2015-03-10  Richard Biener  <rguenther@suse.de>
27224
27225         PR middle-end/44563
27226         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
27227         for compare_type.
27228         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
27229         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
27230         (cgraph_add_edge_to_call_site_hash): Likewise.
27231         (cgraph_node::get_edge): Likewise.
27232         (cgraph_edge::set_call_stmt): Likewise.
27233         (cgraph_edge::remove_caller): Likewise.
27234
27235 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
27236
27237         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
27238         (callee_saved_gpr_regs_size): ... this.
27239         (callee_saved_regs_first_regno): Rename to ...
27240         (callee_saved_first_gpr_regno): ... this.
27241         (callee_saved_regs_last_regno) Rename to ...
27242         (callee_saved_last_gpr_regno): ... this.
27243         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
27244         variables.
27245         (nds32_initial_elimination_offset): Likewise.
27246         (nds32_expand_prologue): Likewise.
27247         (nds32_expand_epilogue): Likewise.
27248         (nds32_expand_prologue_v3push): Likewise.
27249         (nds32_expand_epilogue_v3pop): Likewise.
27250         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
27251         Adjust renamed variables.
27252         (nds32_output_stack_pop): Likewise.
27253
27254 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27255
27256         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
27257         code in comment.
27258
27259 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27260
27261         PR rtl-optimization/65321
27262         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
27263         than shift mode.
27264         * var-tracking.c (use_narrower_mode): Likewise.
27265
27266 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27267
27268         PR tree-optimization/65355
27269         * varasm.c (notice_global_symbol): Do not produce RTL.
27270         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
27271         anchor.
27272         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
27273         check for section anchors.
27274
27275 2015-03-10  Alan Modra  <amodra@gmail.com>
27276
27277         PR target/65286
27278         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
27279         to be single-arch by default.  Set cpu_is_64bit for powerpc64
27280         given --with-cpu=native.
27281         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
27282         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
27283         and powerpc64le.
27284         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
27285         rs6000_isa_flags rather than TARGET_64BIT.
27286
27287 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
27288             Kaz Kojima  <kkojima@gcc.gnu.org>
27289
27290         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
27291
27292 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
27293
27294         PR lto/65361
27295         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
27296         on a TREE_BINFO, instead use BINFO_TYPE.
27297
27298 2015-03-09  Richard Biener  <rguenther@suse.de>
27299
27300         PR middle-end/65270
27301         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
27302         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
27303         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
27304         of that.  When comparing dereferences compare alignment.
27305         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
27306
27307 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
27308
27309         * ipa-inline-analysis.c (check_callers): Check
27310         node->can_remove_if_no_direct_calls_and_refs_p.
27311         (growth_likely_positive): Reorganize to call
27312         can_remove_if_no_direct_calls_p later.
27313         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
27314         will_be_removed_from_program_if_no_direct_calls_p): Add
27315         will_inline parameter.
27316         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
27317         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
27318         Handle inliner case correctly.
27319
27320 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27321
27322         PR tree-optimization/63743
27323         * cfgexpand.c (reorder_operands): Also reorder if only second operand
27324         had its definition forwarded by TER.
27325
27326 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
27327
27328         PR lto/65316
27329         * ipa-utils.h (types_odr_comparable): Add strict argument.
27330         * ipa-devirt.c: Fix whitespace;
27331         (odr_hasher): Remove.
27332         (odr_name_hasher, odr_vtable_hasher): New hashers.
27333         (can_be_name_hashed_p): New predicate.
27334         (hash_type_name): remove.
27335         (hash_odr_name): New.
27336         (odr_name_hasher::hash): new.
27337         (can_be_vtable_hashed_p): New.
27338         (hash_odr_vtable): New.
27339         (odr_vtable_hasher::hash): New.
27340         (types_same_for_odr): Add strict parameter.
27341         (types_odr_comparable): Likewise.
27342         (odr_name_hasher::equal): New.
27343         (odr_vtable_hasher::equal): New.
27344         (odr_name_hasher::remove): New.
27345         (odr_hash_type): Change to hash_table<odr_name_hasher>.
27346         (odr_vtable_hash_type): New.
27347         (odr_vtable_hash): New.
27348         (odr_subtypes_equivalent_p): Do strict comparsion.
27349         (add_type_duplicate): Merge type names; cleanup; avoid type
27350         duplicates.
27351         (register_odr_type): Initialize vtable hash.
27352         (build_type_inheritance_graph): Likewise
27353         (get_odr_type): Reorg to use two hashes.
27354         (dump_possible_polymorphic_call_targets): Move sanity check after debug
27355         output.
27356         (ipa_devirt): Dump type_inheritance_graph.
27357         (types_same_for_odr): Add strict mode.
27358
27359 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27360
27361         PR ipa/65334
27362         * cgraph.h (symtab_node): Add definition_alignment,
27363         can_increase_alignment_p and increase_alignment.
27364         * symtab.c (symtab_node::can_increase_alignment_p,
27365         increase_alignment_1, symtab_node::increase_alignment,
27366         symtab_node::definition_alignment): New.
27367         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
27368         can_increase_alignment_p.
27369         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
27370         * tree-vect-stmts.c (ensure_base_align): Likewise.
27371         * varasm.c (function_section_1): Use definition_alignment.
27372         (assemble_start_function): Likewise.
27373         (emit_local): likewise.
27374         (build_constant_desc): Likewsie.
27375         (output_constant_def_contents): Likewise.
27376         (place_block_symbol): Likewise.
27377         (output_object_block): Likewise.
27378
27379 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27380
27381         PR ipa/65316
27382         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
27383         when outputting debug.
27384
27385 2015-03-07  Marek Polacek  <polacek@redhat.com>
27386             Martin Uecker  <uecker@eecs.berkeley.edu>
27387
27388         PR sanitizer/65280
27389         * doc/invoke.texi: Update description of -fsanitize=bounds.
27390
27391 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
27392
27393         * tree-ssa-phiopt.c (neg_replacement): Remove.
27394         (tree_ssa_phiopt_worker): Remove negate optimization.
27395
27396 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27397
27398         PR ipa/65302
27399         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
27400
27401 2015-03-06  Richard Biener  <rguenther@suse.de>
27402
27403         PR middle-end/64928
27404         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
27405         and liveout_obstack members.
27406         (calculate_live_on_exit): Remove.
27407         (calculate_live_ranges): Change declaration.
27408         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
27409         (new_tree_live_info): Adjust.
27410         (calculate_live_ranges): Delete livein when not wanted.
27411         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
27412         Deal with partly deleted live info.
27413         (loe_visit_block): Remove temporary bitmap by using
27414         bitmap_ior_and_compl_into.
27415         (live_worklist): Adjust accordingly.
27416         (calculate_live_on_exit): Make static.
27417         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
27418         we do not need livein.
27419
27420 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
27421
27422         * real.c (real_from_string): Fix typo in assertion.
27423
27424 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
27425
27426         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
27427         the patch.
27428
27429 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27430
27431         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
27432
27433 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
27434
27435         PR target/64342
27436         * lra-assigns.c (find_hard_regno_for): Rename to
27437         find_hard_regno_for_1.  Add a new parameter.
27438         (find_hard_regno_for): New function using find_hard_regno_for_1.
27439
27440 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27441
27442         PR rtl-optimization/65067
27443         * expmed.c (store_bit_field, extract_bit_field): Reworked the
27444         strict volatile bitfield handling.
27445
27446 2015-03-05  Martin Liska  <mliska@suse.cz>
27447
27448         PR ipa/65318
27449         * ipa-icf.c (sem_variable::equals): Compare variables types.
27450
27451 2015-03-05  Richard Henderson  <rth@redhat.com>
27452
27453         PR target/65121
27454         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
27455         correctly check weak symbol binding.
27456
27457 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
27458
27459         PR middle-end/65315
27460         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
27461         needed alignment.
27462
27463 2015-03-05  Martin Liska  <mliska@suse.cz>
27464
27465         * ipa-inline.c (inline_small_functions): Set default value to
27466         prevent warning during bootstrap.
27467         * tree.h: Add pragma guard that ignores false positives during
27468         bootstrap.
27469
27470 2015-03-05  Richard Biener  <rguenther@suse.de>
27471
27472         PR tree-optimization/65310
27473         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
27474         Properly preserve alignment of the base of the access.
27475
27476 2015-03-05  Richard Biener  <rguenther@suse.de>
27477
27478         PR ipa/65270
27479         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
27480         Compare dependence info.
27481
27482 2015-03-05  Richard Biener  <rguenther@suse.de>
27483
27484         PR middle-end/65233
27485         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
27486         tree-into-ssa.h.
27487         (walk_ssa_copies): Revert last chage.  Instead do not walk
27488         SSA names registered for SSA update.
27489
27490 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
27491
27492         PR ipa/65270
27493         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
27494         vtable references for their containing type.
27495         (sem_function::equals_wpa): Compare TYPE_RESTRICT
27496         and type attributes.
27497
27498 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
27499
27500         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
27501         before negating it.
27502         * stor-layout.c (finalize_record_size): Revert latest change.
27503
27504 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
27505
27506         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
27507
27508 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
27509
27510         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
27511         for correct comdat handling.
27512         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
27513         Likewise.
27514         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
27515         (used_from_object_file_p_worker): Remove.
27516         (cgraph_node::only_called_directly_or_alised): Add
27517         used_from_object_file_p.
27518         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
27519         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
27520         can_remove_if_no_direct_calls_and_refs_p.
27521
27522 2015-03-04  Nick Clifton  <nickc@redhat.com>
27523
27524         * config/rl78/rl78.h (enum reg_class): Remove real registers from
27525         General register class.
27526         * config/rl78/rl78-real.md: Replace general register constraints
27527         with real+virtual register constraints.
27528
27529 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27530
27531         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
27532         from checking for -mhtm option.
27533
27534 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
27535
27536         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
27537         (struct ipa_sra_check_caller_data): Add has_thunk field.
27538         (ipa_sra_check_caller): Check for thunk.
27539         (ipa_sra_preliminary_function_checks): Give up on function with
27540         thunks.
27541         (ipa_early_sra): Use call_for_symbol_and_aliases.
27542
27543 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
27544
27545         PR target/65249
27546         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
27547         called for __stack_chk_guard symbol.
27548
27549 2015-03-03  DJ Delorie  <dj@redhat.com>
27550
27551         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
27552         inc/dec.
27553         (*addhi3_real): Likewise.
27554         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
27555         pattern to match incrementing memory.
27556         * config/rl78/predicates.md (rl78_1_2_operand): New.
27557         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
27558         it's the same and only mem.
27559         (rl78_alloc_physical_registers_op2): If there's effectively only
27560         one MEM, transcode it into HL.
27561         (rl78_far_p): Reject addresses that aren't legitimate.
27562
27563 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
27564
27565         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
27566         negating it.
27567
27568         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
27569
27570 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
27571
27572         Implement call0 ABI for xtensa
27573         * config/xtensa/constraints.md ("a" constraint): Include stack
27574         pointer in case of call0 ABI.
27575         ("q" constraint): Make empty in case of call0 ABI.
27576         ("D" constraint): Include stack pointer in case of call0 ABI.
27577         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
27578         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
27579         prototypes.
27580         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
27581         variable.
27582         (xtensa_regno_to_class): Make it a local variable in the
27583         function xtensa_regno_to_class.
27584         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
27585         macro, function prototype and implementation.
27586         (reg_nonleaf_alloc_order): Make it a local variable in the
27587         function order_regs_for_local_alloc.
27588         (xtensa_conditional_register_usage): New function.
27589         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
27590         (xtensa_valid_move): Allow direct moves to stack pointer
27591         register in call0 ABI.
27592         (xtensa_setup_frame_addresses): Only spill register windows in
27593         windowed ABI.
27594         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
27595         call0 ABI respectively.
27596         (xtensa_function_arg_1): Only mark a7 register for copying in
27597         windowed ABI.
27598         (xtensa_call_save_reg): New function.
27599         (compute_frame_size): Add space for callee saved register
27600         storage to the frame size in call0 ABI.
27601         (xtensa_expand_prologue): Generate code to set up stack frame
27602         and save callee-saved registers in call0 ABI.
27603         (xtensa_expand_epilogue): New function.
27604         (xtensa_set_return_address): New function.
27605         (xtensa_return_addr): Calculate return address in call0 ABI.
27606         (xtensa_builtin_saveregs): Only mark a7 register for copying and
27607         emit copying code in windowed ABI.
27608         (order_regs_for_local_alloc): Add preferred register allocation
27609         order for non-leaf function in call0 ABI.
27610         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
27611         (xtensa_asm_trampoline_template): Add trampoline generation for
27612         call0 ABI.
27613         (xtensa_trampoline_init): Add trampoline initialization for
27614         call0 ABI.
27615         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
27616         functions.
27617         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
27618         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
27619         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
27620         ABI call-used registers.
27621         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
27622         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
27623         call0 ABI.
27624         (REG_CLASS_CONTENTS): Include all registers into the preferred
27625         reload registers set, adjust the set in the
27626         xtensa_conditional_register_usage.
27627         (xtensa_regno_to_class): Drop variable declaration.
27628         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
27629         function.
27630         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
27631         respectively.
27632         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
27633         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
27634         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
27635         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
27636         location in call0 ABI.
27637         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
27638         stack adjustment size when handling exception.
27639         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
27640         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
27641         definitions.
27642         ("return" pattern): Generate ret.n/ret in call0 ABI.
27643         ("epilogue" pattern): Expand epilogue.
27644         ("nonlocal_goto" pattern): Use default in call0 ABI.
27645         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
27646         emit eh_set_a0_* depending on ABI.
27647         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
27648         ("eh_set_a0_call0", "blockage"): New patterns.
27649
27650 2015-03-03  Martin Liska  <mliska@suse.cz>
27651
27652         PR ipa/65287
27653         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
27654
27655 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
27656
27657         PR 65138/target
27658         * config/rs6000/rs6000-tables.opt: Regenerate table.
27659
27660 2015-03-03  Renlin Li  <renlin.li@arm.com>
27661
27662         * doc/md.texi (@item ^): Change ? into ^.
27663
27664 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
27665
27666         * doc/tm.texi: Regenerated.
27667
27668 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
27669
27670         * builtins.c (expand_builtin_return_addr): Add
27671         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
27672         surrounding #ifdef.
27673         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
27674         definition to 1.
27675         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
27676         Likewise.
27677         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
27678         undefined.
27679         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
27680         paragraph.
27681
27682 2015-03-03  Martin Jambor  <mjambor@suse.cz>
27683             Eric Botcazou  <ebotcazou@adacore.com>
27684
27685         * tree-sra.c (ipa_sra_check_caller_data): New type.
27686         (has_caller_p): Removed.
27687         (ipa_sra_check_caller): New function.
27688         (ipa_sra_preliminary_function_checks): Use it.
27689
27690 2015-03-03  Martin Liska  <mliska@suse.cz>
27691
27692         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
27693         instead of if branch.
27694
27695 2015-03-03  Martin Liska  <mliska@suse.cz>
27696
27697         PR ipa/65282
27698         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
27699
27700 2015-03-23  Jeff Law  <law@redhat.com>
27701
27702         PR tree-optimization/65241
27703         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
27704         hash table if INSERT is true.
27705
27706 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
27707
27708         PR target/65296
27709         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
27710
27711 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
27712
27713         PR target/64331
27714         * config/avr/avr.c (context.h, tree-pass.h): Include them.
27715         (avr_pass_data_recompute_notes): New static variable.
27716         (avr_pass_recompute_notes): New class.
27717         (avr_register_passes): New static function.
27718         (avr_option_override): Call it.
27719
27720 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
27721
27722         Fix various problems with specs file generation.
27723
27724         PR target/65296
27725         * config.gcc (extra_gcc_objs) [avr]: Remove.
27726         * config/avr/driver-avr.c: Remove file.
27727         * config/avr/t-avr (driver-avr.o): Remove rule.
27728         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
27729         INCLUDES to build.  Depend on TM_H.
27730         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
27731         build warnings.  Fix non-matching types and non-existing %-codes.
27732         (tm.h): Include.
27733         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
27734         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
27735         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
27736         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
27737         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
27738         (LIBGCC_SPEC): Remove definitions.
27739
27740 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
27741
27742         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
27743         to create a register in testing mode.
27744
27745 2015-03-03  Martin Liska  <mliska@suse.cz>
27746             Jan Hubicka  <hubicka@ucw.cz>
27747
27748         PR ipa/65263
27749         * cgraph.c (cgraph_node::has_thunk_p): New function.
27750         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
27751         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
27752         (sem_function::merge): Assert is changed.
27753
27754 2015-03-03  Martin Liska  <mliska@suse.cz>
27755             Martin Jambor  <mjambor@suse.cz>
27756
27757         PR ipa/65087
27758         * ipa-icf.c (sem_item_optimizer::execute): Change function
27759         return value to boolean.
27760         (sem_item_optimizer::merge_classes): Likewise.
27761         (ipa_icf_driver): Return TODO_remove_functions in case there's
27762         a merge operation processed.
27763         * ipa-icf.h: Change function return value to boolean.
27764
27765 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
27766
27767         PR 65138/target
27768         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
27769         processor type for 64-bit little endian PowerPC.
27770
27771         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
27772         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
27773         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
27774         printing built-in mask so it does not pass NULL pointers.
27775
27776         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
27777         -mcpu=powerpc64le.
27778
27779 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
27780
27781         PR target/58158
27782         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
27783         !ISA_HAS_FP_CONDMOVE.
27784
27785 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
27786
27787         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
27788         reload_completed.
27789
27790 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
27791
27792         * doc/invoke.texi (Options for Code Generation Conventions):
27793         Fix URL of DSO paper.
27794
27795 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
27796
27797         PR ipa/65130
27798         * ipa-inline.c (check_callers): Looks for recursion.
27799         (inline_to_all_callers): Give up on uninlinable or recursive edges.
27800         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
27801         summary of inline clones.
27802         (do_estimate_growth_1): Fix recursion check.
27803
27804 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
27805
27806         PR ipa/64988
27807         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
27808         comdat groups.
27809
27810 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
27811             Aldy Hernandez  <aldyh@redhat.com>
27812
27813         PR lto/65276
27814         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
27815         when checking TYPE_BINFO.
27816
27817 2015-03-02  Richard Biener  <rguenther@suse.de>
27818
27819         PR ipa/65270
27820         * ipa-icf-gimple.c: Include builtins.h.
27821         (func_checker::compare_memory_operand): Compare base alignment.
27822
27823 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
27824
27825         PR target/65184
27826         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
27827         are never passed by reference.
27828
27829 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
27830
27831         PR target/65183
27832         * tree-chkp.c (chkp_check_lower): Don't check against
27833         zero bounds for already instrumented functions.
27834         (chkp_check_upper): Likewise.
27835         (chkp_fini): Clean pass local data to avoid wrong reusage.
27836
27837 2015-02-28  Martin Liska  <mliska@suse.cz>
27838             Jan Hubicka  <hubicka@ucw.cz>
27839
27840         * ipa-icf.c (sem_variable::equals): Improve debug output;
27841         get variable constructor.
27842         (sem_variable::parse): Do not filter out too early; give up on
27843         volatile and register vars.
27844         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
27845         variables.
27846         * ipa-icf.h (sem_variable::init): Do not set ctor.
27847         (sem_variable::ctor): Remove.
27848
27849 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
27850
27851         PR middle-end/65233
27852         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
27853
27854 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27855
27856         * ipa-icf.c: Include stor-layout.h
27857         (sem_function::compare_cgraph_references): Rename to ...
27858         (sem_item::compare_cgraph_references): ... this one.
27859         (sem_variable::equals_wpa): New function
27860         (sem_variable::equals): Do not check stuff already verified by
27861         equals_wpa.
27862         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
27863         * ipa-icf.h (sem_item): Add compare_cgraph_references.
27864         (sem_function): Remove compare_cgraph_references.
27865         (sem_variable): Turns equals_wpa into non-inline.
27866
27867 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27868
27869         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
27870         (sem_item::add_expr): New function.
27871         (sem_function::hash_stmt): Handle operands of most statements.
27872         (sem_variable::get_hash): Hash the actual constructor.
27873         * ipa-icf.h (sem_item): Add add_expr.
27874         (sem_function): Update prototype of hash_stmt
27875
27876 2015-02-28  Martin Liska  <mliska@suse.cz>
27877             Jan Hubicka  <hubicka@ucw.cz>
27878
27879         PR ipa/65245
27880         * ipa-icf-gimple.c (func_checker::compare_function_decl):
27881         Remove.
27882         (func_checker::compare_variable_decl): Skip symtab vars.
27883         (func_checker::compare_cst_or_decl): Update.
27884         * ipa-icf.c (sem_function::parse): Do not consider aliases.
27885         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
27886         use correct symtab predicates.
27887         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
27888         (sem_variable::parse):  Update comment.
27889         (sem_item_optimizer::build_graph): Consider ultimate aliases
27890         for references.
27891
27892 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27893
27894         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
27895         of OBJ_TYPE_REF.
27896
27897 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27898
27899         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
27900         (sem_variable::merge) Likewise.
27901
27902 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27903
27904         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
27905         target; also match flag_ipa_devirt.
27906
27907 2015-03-01  Martin Liska  <mliska@suse.cz>
27908             Jan Hubicka  <hubicka@ucw.cz>
27909
27910         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
27911         Validate variable alignment.
27912         * ipa-icf.c (sem_function::equals_private): Be more precise
27913         about non-common function attributes.
27914         (sem_variable::equals): Likewise.
27915
27916 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27917
27918         PR ipa/65237
27919         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
27920         across COMDAT group boundary.
27921
27922 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27923
27924         PR ipa/65232
27925         * ipa-icf.c (clear_decl_rtl): New function.
27926         (sem_function::merge): Clear RTL before forming alias.
27927         (sem_variable::merge): Clear RTL before forming alias.
27928
27929 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27930
27931         PR ipa/65236
27932         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
27933
27934 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
27935
27936         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
27937         to neon_to_gp<q>.
27938
27939 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
27940
27941         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
27942         a typo in the description.
27943
27944 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
27945
27946         PR target/64317
27947         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
27948         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
27949         * lra-constraints.c: Include "params.h".
27950         (EBB_PROBABILITY_CUTOFF): Use
27951         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
27952         (lra_inheritance): Use '<' instead of '<=' for
27953         EBB_PROBABILITY_CUTOFF.
27954         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
27955         Document change.
27956
27957 2015-02-27  Martin Liska  <mliska@suse.cz>
27958
27959         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
27960         vector length condition.
27961
27962 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
27963
27964         * doc/extend.texi (x86 transactional memory intrinsics):
27965         Reorganize discussion of _xbegin.  Clarify that the return
27966         value is a bit mask.  Expand example and move to end of section.
27967
27968 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
27969             Aldy Hernandez  <aldyh@redhat.com>
27970
27971         PR rtl-optimization/65220
27972         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
27973
27974 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
27975
27976         PR target/65032
27977         * lra-remat.c (update_scratch_ops): New.
27978         (do_remat): Call it.
27979         * lra.c (lra_register_new_scratch_op): New. Take code from ...
27980         (remove_scratches): ... here.
27981         * lra-int.h (lra_register_new_scratch_op): New prototype.
27982
27983 2015-02-27  Marek Polacek  <polacek@redhat.com>
27984
27985         PR c/65040
27986         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
27987         -Wformat-signedness anymore.
27988
27989 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27990
27991         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
27992         function.
27993         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
27994
27995 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27996
27997         * config/s390/s390.c (enum s390_builtin):
27998         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
27999         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
28000         (s390_init_builtins): Generate new builtin functions.
28001         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
28002         (s390_sfpc, s390_efpc): New pattern definitions.
28003
28004 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28005
28006         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
28007         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
28008         (s390_builtin_decls): New array.
28009         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
28010         (s390_builtin_decl): New function.
28011         (TARGET_BUILTIN_DECL): Define macro.
28012
28013 2015-02-27  Richard Biener  <rguenther@suse.de>
28014
28015         PR middle-end/63175
28016         * builtins.c (get_object_alignment_2): Make sure to re-apply
28017         the ANDed mask after recursing to its operand gets us a new
28018         misalignment bit position.
28019
28020 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
28021             Martin Liska  <mliska@suse.cz>
28022
28023         PR bootstrap/65150
28024         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
28025         Use address_matters_p.
28026         (redirect_all_callers, set_addressable): New functions.
28027         (sem_function::merge): Reorganize and fix merging issues.
28028         (sem_variable::merge): Likewise.
28029         (sem_variable::compare_sections): Remove.
28030         * common.opt (fmerge-all-constants, fmerge-constants): Remove
28031         Optimization flag.
28032         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
28033         redirect them.
28034         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
28035         decl is used.
28036         (address_matters_1): New function.
28037         (symtab_node::address_matters_p): New function.
28038         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
28039         check for merged flag.
28040         * cgraph.h (address_matters_p): Declare.
28041         (symtab_node::address_taken_from_non_vtable_p): Remove.
28042         (symtab_node::address_can_be_compared_p): New method.
28043         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
28044         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
28045         Remove.
28046         (comdat_can_be_unshared_p_1) Use address_matters_p.
28047         (update_vtable_references): Fix formating.
28048         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
28049         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
28050         * cgraphclones.c: Preserve merged and icf_merged flags.
28051
28052 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
28053
28054         * doc/extend.texi (Function Attributes): Fix spelling and typos.
28055         (Label Attributes): Likewise.
28056         (Cilk Plus Builtins): Likewise.
28057         (ARC SIMD Built-in Functions): Likewise.
28058         (ARM C Language Extensions (ACLE)): Likewise.
28059         (PowerPC Built-in Functions): Likewise.
28060         (PowerPC Hardware Transactional Memory Built-in Functions):
28061         Likewise.
28062
28063 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28064
28065         PR tree-optimization/65216
28066         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
28067         new stmt and new SSA_NAME for lhs whenever the arguments have
28068         changed and weren't just swapped.  Fix comment typo.
28069
28070         PR tree-optimization/65215
28071         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
28072         for PDP endian targets.
28073         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
28074         Fix up formatting issues.
28075         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
28076         size is smaller than the original, adjust MEM_REF offset by the
28077         difference of sizes.  Use is_gimple_mem_ref_addr instead of
28078         is_gimple_min_invariant test to avoid adding address temporaries.
28079
28080 2015-02-26  Martin Liska  <mliska@suse.cz>
28081             Jan Hubicka  <hubicka@ucw.cz>
28082
28083         PR ipa/64693
28084         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
28085         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
28086         (sem_item_optimizer::process_cong_reduction): Include division by
28087         sensitive references.
28088         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
28089         * ipa-ref.c (ipa_ref::address_matters_p): New function.
28090         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
28091
28092 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
28093
28094         PR target/65192
28095         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
28096         Remove.
28097         * config/avr/avr.c: Same.
28098         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
28099         Refuse any constant address not in 0..0xbf.
28100         * config/avr/avr.md (*mov<mode>, *movsf): Remove
28101         tiny_valid_direct_memory_access_range from insn conditions.
28102         (mov<mode>): Don't special-case expansion of avrtiny addresses.
28103
28104 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
28105
28106         PR target/61142
28107         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
28108         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
28109         * config/sh/predicates.md (const_logical_operand): New predicate.
28110         * config/sh/sh.md: Add new peephole2 patterns.
28111
28112 2015-02-26  Marek Polacek  <polacek@redhat.com>
28113
28114         PR ipa/65008
28115         * ipa-inline.c (early_inliner): Recompute inline parameters.
28116
28117 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28118
28119         PR target/65171
28120         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
28121         instructions with TImode operands are included in the analysis.
28122
28123 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
28124
28125         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
28126         of an EDGE_FSM_THREAD.
28127
28128 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
28129
28130         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
28131
28132 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
28133
28134         PR debug/46102
28135         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
28136
28137 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
28138
28139         PR tree-optimization/65048
28140         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
28141         (thread_through_all_blocks): Call valid_jump_thread_path.
28142         Remove invalid FSM jump-thread paths.
28143
28144 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28145
28146         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
28147         (ipa_write_optimization_summaries): Likewise.
28148         * tree-streamer.h: Include data-streamer.h.
28149         (streamer_mode_table): Declare extern variable.
28150         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
28151         * lto-streamer-out.c (lto_output_init_mode_table,
28152         lto_write_mode_table): New functions.
28153         (produce_asm_for_decls): Call lto_write_mode_table when streaming
28154         offloading LTO.
28155         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
28156         (lto_create_simple_input_block): Add mode_table argument to the
28157         lto_input_block constructors.
28158         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
28159         Likewise.
28160         * data-streamer-in.c (string_for_index): Likewise.
28161         * ipa-inline-analysis.c (inline_read_section): Likewise.
28162         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
28163         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
28164         * lto-streamer-in.c (lto_read_body_or_constructor,
28165         lto_input_toplevel_asms): Likewise.
28166         (lto_input_mode_table): New function.
28167         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
28168         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
28169         Use bp_pack_machine_mode.
28170         * real.h (struct real_format): Add name field.
28171         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
28172         (class lto_input_block): Add mode_table member.
28173         (lto_input_block::lto_input_block): Add mode_table_ argument,
28174         initialize mode_table.
28175         (struct lto_file_decl_data): Add mode_table field.
28176         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
28177         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
28178         unpack_ts_decl_common_value_fields,
28179         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
28180         * tree-streamer.c (streamer_mode_table): New variable.
28181         * real.c (ieee_single_format, mips_single_format,
28182         motorola_single_format, spu_single_format, ieee_double_format,
28183         mips_double_format, motorola_double_format,
28184         ieee_extended_motorola_format, ieee_extended_intel_96_format,
28185         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
28186         ibm_extended_format, mips_extended_format, ieee_quad_format,
28187         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
28188         decimal_single_format, decimal_double_format, decimal_quad_format,
28189         ieee_half_format, arm_half_format, real_internal_format): Add name
28190         field.
28191         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
28192
28193 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
28194
28195         PR target/65161
28196         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
28197         reordering for selective scheduling.
28198
28199 2015-02-26  Terry Guo  <terry.guo@arm.com>
28200
28201         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
28202         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
28203         (arm_arch_no_volatile_ce): Declare new global variable.
28204         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
28205         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
28206         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
28207         (TARGET_NO_VOLATILE_CE): New macro.
28208         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
28209         volatile memory access in IT block
28210
28211 2015-02-25  Kai Tietz  <ktietz@redhat.com>
28212
28213         PR tree-optimization/61917
28214         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
28215         that reduc_def_stmt is null.
28216
28217 2015-02-25  Martin Liska  <mliska@suse.cz>
28218
28219         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
28220         hard register variables.
28221
28222 2015-02-25  Kai Tietz  <ktietz@redhat.com>
28223
28224         PR target/64212
28225         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
28226         (symtab::noninterposable_alias): Likewise.
28227
28228 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
28229
28230         PR target/65167
28231         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
28232         bounds registers.
28233         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
28234
28235 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
28236
28237         PR target/64997
28238         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
28239         as split condition; force split via '#' in output pattern.
28240
28241 2015-02-25  Richard Biener  <rguenther@suse.de>
28242             Kai Tietz  <ktietz@redhat.com>
28243
28244         PR tree-optimization/61917
28245         * tree-vect-loop.c (vectorizable_reduction): Allow
28246         vect_internal_def without reduction to exit graceful.
28247
28248 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
28249
28250         PR target/65196
28251         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
28252         only with NONDEBUG_INSN_P.
28253
28254 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
28255
28256         Use variadic macros with avr-log.c.
28257
28258         * config/avr/avr-protos.h (avr_vdump): New prototype.
28259         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
28260         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
28261         * config/avr/avr-log.c: Adjust comments.
28262         (avr_vdump): New function.
28263         (avr_vadump): Pass caller as 2nd argument instead of format string.
28264         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
28265         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
28266
28267 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
28268
28269         PR lto/64374
28270         * target.def (target_option_stream_in): New target hook.
28271         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
28272         targetm.target_option.post_stream_in if non-NULL.
28273         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
28274         * doc/tm.texi: Updated.
28275         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
28276         function.
28277         (TARGET_OPTION_POST_STREAM_IN): Redefine.
28278
28279 2015-02-24  Jeff Law  <law@redhat.com>
28280
28281         PR target/65117
28282         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
28283         of operand 0 and operand 2.
28284         (zero_cost_loop_end, loop_end): Similarly.
28285
28286 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
28287
28288         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
28289         CXX_MEM_STAT_INFO.
28290
28291 2015-02-24  DJ Delorie  <dj@redhat.com>
28292
28293         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
28294         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
28295         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
28296         instead of hardcoding SImode.
28297
28298 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
28299
28300         * omp-low.c (create_omp_child_function): Tag entrypoint
28301         functions with a special attribute.
28302
28303 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
28304
28305         PR target/65058
28306         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
28307
28308 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
28309
28310         PR rtl-optimization/65123
28311         * lra-remat.c (operand_to_remat): Check hard regs in insn
28312         definition too.
28313
28314 2015-02-24  Nick Clifton  <nickc@redhat.com>
28315
28316         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
28317         to the assembler.
28318
28319 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
28320
28321         PR libgomp/64625
28322         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
28323         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
28324         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
28325         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
28326         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
28327         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
28328         (BUILT_IN_GOACC_PARALLEL): Specify as
28329         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
28330         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
28331         * builtin-types.def
28332         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
28333         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
28334         Remove function types.
28335         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
28336         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
28337         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
28338         New function types.
28339
28340 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
28341
28342         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
28343
28344 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
28345
28346         PR tree-optimization/65170
28347         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
28348         if val[1] < 0, clear also val[2] and return 3.
28349
28350 2015-02-24  Alan Modra  <amodra@gmail.com>
28351
28352         PR target/65172
28353         * config/rs6000/rs6000.c (get_memref_parts): Only return true
28354         when *base is a reg.  Handle nested plus addresses.  Simplify
28355         pre_modify test.
28356
28357 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
28358
28359         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
28360         use natural alignment when optimizing for size.
28361
28362 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
28363
28364         PR target/65153
28365         * config/sh/sh.md (movsicc_true+3): Remove peephole.
28366         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
28367         * config/sh/sh.c (replace_n_hard_rtx): Remove.
28368
28369 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
28370
28371         PR fortran/63427
28372         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
28373         too big for a wide_int.  Implement missing wrapping operation.
28374
28375 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
28376
28377         PR target/65163
28378         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
28379         instead of const_int 4294901760.
28380
28381 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
28382
28383         * config/avr/t-avr: Fix typo in comment.
28384
28385 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
28386
28387         * doc/rtl.texi (fma): Clarify documentation.
28388
28389 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
28390
28391         PR debug/58123
28392         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
28393         over input_location.
28394
28395 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28396
28397         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
28398         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
28399         restrict alignments to absolute_biggest_alignment.
28400         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
28401         Define.
28402         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
28403         * doc/tm.texi: Regenerate.
28404         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
28405
28406 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
28407
28408         PR target/64172
28409         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
28410
28411 2015-02-20  Richard Biener  <rguenther@suse.de>
28412
28413         PR tree-optimization/65136
28414         * tree-ssa-propagate.c: Include cfgloop.h.
28415         (replace_phi_args_in): Avoid replacing loop latch edge PHI
28416         arguments with constants.
28417
28418 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
28419             Martin Liska  <mliska@suse.cz>
28420
28421         PR target/63892
28422         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
28423         don't try to create_thunk if stdarg_p.  If
28424         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
28425         redirect_callers if possible.
28426         (sem_item_optimizer::execute): Call unregister_hooks here...
28427         (ipa_icf_driver): ... instead of here.
28428
28429 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28430
28431         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
28432         Mark operand 0 as earlyclobber in 2nd alternative.
28433         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
28434         Write negated shift amount into QI lowpart operand 0 and use it
28435         in the shift step.
28436         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
28437
28438 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28439
28440         * cgraph.h (clone_function_name_1): Declare.
28441         * cgraphclones.c (clone_function_name_1): New function.
28442         (clone_function_name): Use it.
28443         * lto-partition.c: Include "stringpool.h".
28444         (must_not_rename, maybe_rewrite_identifier)
28445         (validize_symbol_for_target): New static functions.
28446         (privatize_symbol_name): Use must_not_rename.
28447         (promote_symbol): Call validize_symbol_for_target.
28448         (lto_promote_cross_file_statics): Likewise.
28449         (lto_promote_statics_nonwpa): Likewise.
28450
28451 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
28452
28453         PR target/64452
28454         * config/avr/avr.md (pushhi_insn): New insn.
28455         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
28456
28457 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28458             Jakub Jelinek  <jakub@redhat.com>
28459
28460         * tree-streamer.c (preload_common_nodes): Don't preload
28461         TI_VA_LIST* for offloading.
28462         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
28463         in_lto_p.
28464
28465 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
28466
28467         * config/pa/pa.c (pa_emit_move_sequence): Always force
28468         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
28469         note on insn.
28470
28471         * config/pa/pa.c (pa_reloc_rw_mask): New function.
28472         (TARGET_ASM_RELOC_RW_MASK): Define.
28473         (pa_cannot_force_const_mem): Revert previous change.
28474
28475 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
28476             Jan Hubicka  <hubicka@ucw.cz>
28477
28478         PR ipa/65028
28479         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
28480         across jump functions.
28481
28482 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
28483
28484         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
28485
28486 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
28487
28488         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
28489
28490 2015-02-19  Richard Henderson  <rth@redhat.com>
28491
28492         PR middle-end/65074
28493         * varasm.c (default_binds_local_p_2): Don't test node->definition;
28494         test DECL_EXTERNAL independent of symtab_node.
28495
28496 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
28497
28498         PR lto/65012
28499         * varpool.c (varpool_node::get_constructor): Return early
28500         if this->lto_file_data is NULL.
28501
28502 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28503
28504         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
28505         (rank_for_schedule_debug): Update.
28506         (ready_sort): Make static.  Move sorting logic to ...
28507         (ready_sort_debug, ready_sort_real): New static functions.
28508         (schedule_block): Sort both debug insns and real insns in preparation
28509         for ready list trimming.  Improve debug output.
28510         * sched-int.h (ready_sort): Remove global declaration.
28511
28512 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
28513
28514         * ipa-icf.c (sem_function::equals_private): Adjust.
28515         (sem_function::bb_dict_test): Take a vec<int> * instead of
28516         auto_vec<int>.
28517         * ipa-icf.h (bb_dict_test): Likewise.
28518
28519 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
28520
28521         PR gcov-profile/64634
28522         * tree-eh.c (frob_into_branch_around): Fix up typos
28523         in function comment.
28524         (lower_catch): Put eh_seq resulting from EH lowering of
28525         the cleanup sequence after the cleanup rather than before it.
28526
28527 2015-02-18  Tom de Vries  <tom@codesourcery.com>
28528
28529         * common.opt (fstdarg-opt): New option.
28530         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
28531         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
28532         (@item -fstdarg-opt): New item.
28533
28534 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
28535
28536         PR target/65064
28537         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
28538         for common symbols.
28539
28540 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
28541
28542         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
28543         insn-modes.h.
28544         (ALL_HOST_OBJS): Add mkoffload.o.
28545         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
28546
28547 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
28548
28549         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
28550         (compare_virtual_tables): Be smarter about skipping typeinfos;
28551         do sane output on virtual table table mismatch.
28552         (warn_odr): Be ready for forward declarations of enums;
28553         output sane info on base mismatch and virtual table mismatch.
28554         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
28555         when only one type is polymorphic.
28556         (get_odr_type): Fix hashtable corruption.
28557         (dump_odr_type): Dump mangled names.
28558
28559 2015-02-18  Richard Biener  <rguenther@suse.de>
28560
28561         PR tree-optimization/65063
28562         * tree-predcom.c (determine_unroll_factor): Return 1 if we
28563         have replaced looparound PHIs.
28564
28565 2015-02-18  Martin Liska  <mliska@suse.cz>
28566
28567         * lto-streamer.c (lto_streamer_init): Encapsulate
28568         streamer_check_handled_ts_structures with checking macro.
28569
28570 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
28571
28572         PR ipa/65087
28573         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
28574         section if !implicit_section.
28575         (cgraph_node::create_version_clone_with_body): Likewise.
28576         * trans-mem.c (ipa_tm_create_version): Likewise.
28577
28578 2015-02-18  Richard Biener  <rguenther@suse.de>
28579
28580         PR tree-optimization/62217
28581         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
28582         into BIVs.
28583
28584 2015-02-18  Marek Polacek  <polacek@redhat.com>
28585
28586         PR sanitizer/65081
28587         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
28588         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
28589         is in range [-16K, -1].  Don't issue run-time error if
28590         (ptr > ptr + offset).
28591
28592 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
28593
28594         * doc/install.texi (nvptx-*-none): New section.
28595         * doc/invoke.texi (Nvidia PTX Options): Likewise.
28596         * config/nvptx/nvptx.opt: Update.
28597
28598         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
28599         (access_check): New functions, copied from
28600         config/i386/intelmic-mkoffload.c.
28601         (main): For non-installed testing, look in all COMPILER_PATHs for
28602         GCC_INSTALL_NAME.
28603
28604         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
28605
28606 2015-02-18  Andrew Pinski  <apinski@cavium.com>
28607             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
28608
28609         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
28610         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
28611
28612 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
28613
28614         * ipa-visibility.c (function_and_variable_visibility): Only
28615         check locality if node is not already local.
28616         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
28617         call_for_symbol_and_aliases instead of
28618         call_for_symbol_thunks_and_aliases.
28619         (ipa_inline): Likewise.
28620         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
28621         first walk aliases.
28622         * ipa.c (symbol_table::remove_unreachable_nodes): Use
28623         call_for_symbol_and_aliases.
28624         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
28625         (ipa_propagate_frequency_1): Use it; use opt_for_fn
28626         (ipa_propagate_frequency): Update.
28627         (ipa_profile): Add opt_for_fn gueards.
28628
28629 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
28630
28631         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
28632         * doc/invoke.texi (SH options): Document it.
28633         * config/sh/sh.c (sh_insn_length_adjustment): Check
28634         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
28635
28636 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
28637
28638         * common.opt (fipa-cp-alignment): New.
28639         * ipa-cp.c (ipcp_store_alignment_results): Check
28640         flag_ipa_cp_alignment.
28641         * opts.c (default_options_table): Enable -fipa-cp-alignment for
28642         -O2.
28643         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
28644         * doc/invoke.texi: Document -fipa-cp-alignment.
28645
28646 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
28647
28648         PR target/64793
28649         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
28650         to nil.  Adjust comments.
28651
28652 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
28653
28654         * ipa-visibility.c (function_and_variable_visibility): Only
28655         check locality if node is not already local.
28656         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
28657         call_for_symbol_and_aliases instead of
28658         call_for_symbol_thunks_and_aliases.
28659         (ipa_inline): Likewise.
28660         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
28661         first walk aliases.
28662         * ipa.c (symbol_table::remove_unreachable_nodes): Use
28663         call_for_symbol_and_aliases.
28664         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
28665         (ipa_propagate_frequency_1): Use it; use opt_for_fn
28666         (ipa_propagate_frequency): Update.
28667         (ipa_profile): Add opt_for_fn guards.
28668
28669 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
28670
28671         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
28672         skipping of "strange" tokens.
28673
28674 2015-02-17  Jeff Law  <law@redhat.com>
28675
28676         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
28677         obsolete comment.
28678
28679 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
28680
28681         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
28682         as forcing a HARD_DEP between instructions, thereby
28683         disallowing rewriting to break dependencies.
28684
28685 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
28686
28687         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
28688         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
28689         variables in boundary that have no inlitalizer encoded and are
28690         not aliases.
28691         * varasm.c (default_binds_local_p_2): External definitions do not
28692         count as definitions here.
28693
28694 2015-02-16  Jeff Law  <law@redhat.com>
28695
28696         PR tree-optimization/64823
28697         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
28698         statements.
28699         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
28700         threading through blocks with PHIs, but no statements.
28701         (thread_through_normal_block): Distinguish between blocks where
28702         we did not process all the statements and blocks with no statements.
28703
28704 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
28705             James Greenhalgh  <james.greenhalgh@arm.com>
28706
28707         PR ipa/64963
28708         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
28709         section if not linkonce.  Fix up formatting.
28710         (cgraph_node::create_version_clone_with_body): Copy section.
28711         * trans-mem.c (ipa_tm_create_version): Likewise.
28712
28713 2015-02-16  Richard Biener  <rguenther@suse.de>
28714
28715         PR tree-optimization/65077
28716         * tree-ssa-structalias.c (get_constraint_for_1): Handle
28717         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
28718         (find_func_aliases): Allow float values to carry pointers again.
28719
28720 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
28721
28722         * doc/install.texi (Specific): Reorder targets list to put
28723         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
28724         from the top menu.
28725
28726 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
28727             David Edelsohn  <dje.gcc@gmail.com>
28728
28729         PR target/65058
28730         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
28731         mapping class to external variable or function reference.
28732         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
28733         mapping class.
28734
28735 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
28736
28737         PR target/53348
28738         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
28739         ASM_WEAKEN_DECL if defined.
28740
28741 2015-02-16  Richard Biener  <rguenther@suse.de>
28742
28743         PR lto/65015
28744         * varasm.c (default_file_start): For LTO produced units
28745         emit <artificial> as file directive.
28746
28747 2015-02-16  Richard Biener  <rguenther@suse.de>
28748
28749         PR tree-optimization/63593
28750         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
28751         stmts and releasing SSA names until...
28752         (execute_pred_commoning): ... after processing all chains.
28753
28754 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
28755
28756         PR ipa/65059
28757         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
28758         external functions.
28759
28760 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
28761
28762         * doc/bugreport.texi: Adjust section titles throughout the file
28763         to use "Title Case".
28764         * doc/extend.texi: Likewise.
28765         * doc/gcov.texi: Likewise.
28766         * doc/implement-c.texi: Likewise.
28767         * doc/implement-cxx.texi: Likewise.
28768         * doc/invoke.texi: Likewise.
28769         * doc/objc.texi: Likewise.
28770         * doc/standards.texi: Likewise.
28771         * doc/trouble.texi: Likewise.
28772
28773 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
28774
28775         * cgraph.h (symtab_node::has_aliases_p): Simplify.
28776         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
28777         * tree.c (lookup_binfo_at_offset): Make static.
28778         (get_binfo_at_offset): Do not shadow offset; add explanatory
28779         comment.
28780
28781 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
28782
28783         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
28784         for all floading point loads and stores except those using a register
28785         index address.
28786         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
28787         to a register.
28788
28789 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
28790
28791         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
28792         (do_estimate_growth_1): Record if any uninlinable edge was seen.
28793         (estimate_growth): Handle uninlinable edges correctly.
28794         (check_callers): New.
28795         (growth_likely_positive): Handle aliases correctly.
28796
28797 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
28798
28799         * ipa-chkp.c: Use iterate_direct_aliases.
28800         * symtab.c (resolution_used_from_other_file_p): Move inline.
28801         (symtab_node::create_reference): Fix formating.
28802         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
28803         (symtab_node::iterate_reference): Move inline.
28804         (symtab_node::iterate_referring): Move inline.
28805         (symtab_node::iterate_direct_aliases): Move inline.
28806         (symtab_node::used_from_object_file_p_worker): Inline into ...
28807         (symtab_node::used_from_object_file_p): ... this one; move inline.
28808         (symtab_node::call_for_symbol_and_aliases): Move inline;
28809         use iterate_direct_aliases.
28810         (symtab_node::call_for_symbol_and_aliases_1): New method.
28811         (cgraph_node::call_for_symbol_and_aliases): Move inline;
28812         use iterate_direct_aliases.
28813         (cgraph_node::call_for_symbol_and_aliases_1): New method.
28814         (varpool_node::call_for_node_and_aliases): Rename to ...
28815         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
28816         use iterate_direct_aliases.
28817         (varpool_node::call_for_symbol_and_aliases_1): New method.
28818         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
28819         (ipa_discover_readonly_nonaddressable_var): Update.
28820         * ipa-devirt.c: Fix formating.
28821         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
28822         Move inline.
28823         (cgraph_node::call_for_symbol_and_aliases): Move inline.
28824         (cgraph_node::call_for_symbol_and_aliases_1): New function..
28825         * cgraph.h (used_from_object_file_p_worker): Remove.
28826         (resolution_used_from_other_file_p): Move inline.
28827         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
28828         (symtab_node::iterate_reference): Move inline.
28829         (symtab_node::iterate_referring): Move inline.
28830         (symtab_node::iterate_direct_aliases): Move inline.
28831         (symtab_node::used_from_object_file_p_worker): Inline into ...
28832         (symtab_node::used_from_object_file_p): Move inline.
28833         * tree-emutls.c (ipa_lower_emutls): Update.
28834         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
28835         (varpool_node::call_for_node_and_aliases): Remove.
28836
28837 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
28838
28839         PR tree-optimization/62209
28840         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
28841         op == range->exp, insert seq and gimplified code after labels
28842         instead of after the phi.
28843
28844 2015-02-13  Jeff Law  <law@redhat.com>
28845
28846         PR bootstrap/65060
28847         Revert my change for tree-optimization/64823.
28848
28849 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
28850
28851         PR tree-optimization/65053
28852         * tree-ssa-phiopt.c (value_replacement): When moving assign before
28853         cond, either reset VR on lhs or set it to phi result VR.
28854
28855 2015-02-13  Jeff Law  <law@redhat.com>
28856
28857         PR tree-optimization/64823
28858         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
28859         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
28860         threading through blocks with PHIs, but no statements.
28861         (thread_through_normal_block): Distinguish between blocks where
28862         we did not process all the statements and blocks with no statements.
28863
28864         PR rtl-optimization/47477
28865         * match.pd (convert (plus/minus (convert @0) (convert @1): New
28866         simplifier to narrow arithmetic.
28867
28868 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
28869
28870         PR ipa/65028
28871         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
28872         polymorphic call info when type is not known to be preserved.
28873
28874 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
28875
28876         PR ipa/65028
28877         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
28878         (inline_call): Use it.
28879
28880 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
28881
28882         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
28883         GOMP_DEVICE_NVIDIA_PTX.
28884
28885 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
28886
28887         PR ipa/65034
28888         * stmt.c (emit_case_nodes): Use void_type_node instead of
28889         NULL_TREE as LABEL_DECL type.
28890
28891 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
28892
28893         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
28894         constraints.
28895         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
28896         symbolic references to data to be forced to constant memory on the
28897         SOM target.
28898
28899 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
28900
28901         PR tree-optimization/65002
28902         * tree-cfg.c (pass_data_fixup_cfg): Don't update
28903         SSA on start.
28904         * tree-sra.c (some_callers_have_no_vuse_p): New.
28905         (ipa_early_sra): Reject functions whose callers
28906         assume function is read only.
28907
28908 2015-02-13  Richard Biener  <rguenther@suse.de>
28909
28910         PR lto/65015
28911         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
28912         for LTO produced CUs.
28913
28914 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
28915
28916         PR tree-optimization/64705
28917         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
28918         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
28919         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
28920         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
28921         expand_simple_operations.
28922
28923 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
28924             Richard Henderson  <rth@redhat.com>
28925
28926         PR rtl/32219
28927         * cgraphunit.c (cgraph_node::finalize_function): Set definition
28928         before notice_global_symbol.
28929         (varpool_node::finalize_decl): Likewise.
28930         * varasm.c (default_binds_local_p_2): Rename from
28931         default_binds_local_p_1, add weak_dominate argument.  Use direct
28932         returns instead of assigning to local variable.  Unify varpool and
28933         cgraph paths via symtab_node.  Reject undef weak variables before
28934         testing visibility.  Reorder tests for simplicity.
28935         (default_binds_local_p): Use default_binds_local_p_2.
28936         (default_binds_local_p_1): Likewise.
28937         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
28938         via symtab_node.
28939         (default_elf_asm_output_external): Emit visibility when specified.
28940
28941 2015-02-13  Alan Modra  <amodra@gmail.com>
28942
28943         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
28944         code setting up r11 for out-of-line fp restore.
28945
28946 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
28947
28948         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
28949         (muser-mode): Likewise.
28950
28951 2015-02-13  Alan Modra  <amodra@gmail.com>
28952
28953         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
28954         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
28955
28956 2015-02-12  David Howells  <dhowells@redhat.com>
28957
28958         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
28959         warning.
28960         * tree-ssa-uninit.c (dump_predicates): Likewise.
28961         * opts.c (print_filtered_help): Likewise.
28962
28963 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
28964
28965         * dwarf2out.c (output_die): Use "%s", name instead of name to
28966         avoid -Wformat-security warning.
28967
28968         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
28969         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
28970         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
28971         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
28972
28973 2015-02-12  Jason Merrill  <jason@redhat.com>
28974
28975         * common.opt (-flifetime-dse): New.
28976
28977 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
28978
28979         PR sanitizer/65019
28980         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
28981
28982         PR tree-optimization/65014
28983         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
28984         use original second operand of arg0 or arg1 instead of
28985         that adjusted by STRIP_NOPS.
28986
28987 2015-02-11  Jeff Law  <law@redhat.com>
28988
28989         PR target/63347
28990         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
28991         that needs to be queued, just queue it for a single cycle.
28992
28993 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
28994
28995         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
28996         bodies of thunks; comment on why.
28997         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
28998         symbols are extern.
28999
29000 2015-02-11  Richard Henderson  <rth@redhat.com>
29001
29002         PR sanitize/65000
29003         * tree-eh.c (mark_reachable_handlers): Mark source and destination
29004         regions of __builtin_eh_copy_values.
29005
29006 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
29007
29008         PR middle-end/65003
29009         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
29010         ultimate alias is MEM with SYMBOL_REF satisfying
29011         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
29012         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
29013
29014 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
29015
29016         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
29017         "diagnostic-core.h".
29018         (main): Initialize progname, and call diagnostic_initialize.
29019
29020         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
29021         instead of __OPENMP_TARGET__.
29022
29023         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
29024         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
29025         hard-coding PTX_ID.
29026
29027 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
29028
29029         * doc/sourcebuild.texi (pie_enabled): Document.
29030
29031 2015-02-11  Martin Liska  <mliska@suse.cz>
29032
29033         PR ipa/64813
29034         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
29035         a return value for call to a function that is noreturn.
29036
29037 2015-02-11  Richard Biener  <rguenther@suse.de>
29038
29039         PR lto/65015
29040         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
29041         and -fresolution.
29042
29043 2015-02-11  Andrew Pinski  <apinski@cavium.com>
29044
29045         PR target/64893
29046         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
29047         Change the first argument type to size_type_node and add another
29048         size_type_node.
29049         (aarch64_simd_expand_builtin): Handle the new argument to
29050         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
29051         print an out when the first two arguments are not
29052         nonzero integer constants.
29053         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
29054         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
29055
29056 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
29057
29058         PR target/61925
29059         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
29060         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
29061         (ix86_set_current_function): Rewritten.
29062         (ix86_add_new_builtins): Temporarily clear current_target_pragma
29063         when creating builtin fndecls.
29064
29065 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29066
29067         PR ipa/65005
29068         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
29069         function.
29070         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
29071         have no comdat group.
29072         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
29073         (lto_output_varpool_node): Always output alias info.
29074         (output_refs): Output refs of boundary aliases, too.
29075         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
29076         (output_symtab): Output call eges in thunks in boundary.
29077         (get_alias_symbol): Remove.
29078         (input_node, input_varpool_node): Do not special case weakrefs.
29079         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
29080         alias and thunks targets in the boundary; do not take removed symbols
29081         from their comdat groups.
29082         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
29083         (cgraph_node::global_info): Remove.
29084         (cgraph_node::rtl_info): Look through aliases and thunks.
29085         * cgrpah.h (global_info): Remove.
29086         (non_local_p): Remove.
29087
29088 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29089             Sandra Loosemore  <sandra@codesourcery.com>
29090
29091         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
29092         to inline asm.  List dialects in proper order.
29093
29094 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29095             Sandra Loosemore  <sandra@codesourcery.com>
29096
29097         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
29098
29099 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29100
29101         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
29102         modified) reference to Solaris.
29103
29104 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
29105
29106         * doc/extend.texi (Extended Asm): Fix typos.
29107
29108 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
29109
29110         PR sanitizer/65004
29111         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
29112
29113 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
29114
29115         PR target/64661
29116         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
29117         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
29118         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
29119         * config/sh/constraints.md (Ara, Add): New constraints.
29120         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
29121         predicates.
29122         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
29123         atomic_mem_operand_0.  Don't use force_reg on the memory address.
29124         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
29125         Sra constraint.  Convert to insn_and_split.  Add workaround for
29126         PR 64974.
29127         (atomic_compare_and_swap<mode>_hard): Copy to
29128         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
29129         Use atomic_mem_operand_0 predicate.
29130         (atomic_compare_and_swap<mode>_soft_gusa,
29131         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
29132         AraAdd constraints.
29133         (atomic_compare_and_swap<mode>_soft_tcb,
29134         atomic_compare_and_swap<mode>_soft_imask,
29135         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
29136         atomic_mem_operand_0 predicate and SraSdd constraints.
29137         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
29138         constraint.
29139         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
29140         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
29141         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
29142         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
29143         force_reg on the memory address.
29144         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
29145         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
29146         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
29147         atomic_mem_operand_1 predicate and Sra constraint.
29148         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
29149         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
29150         Use atomic_mem_operand_1 predicate.
29151         (atomic_<fetchop_name><mode>_hard): Copy to
29152         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
29153         Use atomic_mem_operand_1 predicate.
29154         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
29155         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
29156         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
29157         insn_and_split.  Use atomic_mem_operand_1 predicate.
29158         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
29159         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
29160         Use atomic_mem_operand_1 predicate.
29161         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
29162         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
29163         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
29164         in generated insn with original mem operand before emitting the insn.
29165         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
29166         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
29167         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
29168         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
29169         Use atomic_mem_operand_1 predicate and AraAdd constraints.
29170         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
29171         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
29172         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
29173         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
29174         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
29175         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
29176         atomic_not_fetch<mode>_soft_tcb,
29177         atomic_<fetchop_name>_fetch<mode>_soft_imask,
29178         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
29179         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
29180         Use atomic_mem_operand_1 predicate and SraSdd constraints.
29181
29182 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
29183
29184         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
29185         and 3 earlyclobber operands.
29186
29187 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29188
29189         * common.opt (fstack-reuse): Mark as optimization.
29190
29191 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29192
29193         PR ipa/64982
29194         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
29195
29196 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
29197
29198         PR tree-optimization/64326
29199         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
29200
29201 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
29202
29203         PR gcov-profile/61889
29204         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
29205
29206 2015-02-10  Richard Biener  <rguenther@suse.de>
29207
29208         PR tree-optimization/64995
29209         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
29210         value we use is final.
29211         (visit_reference_op_store): Always valueize op.
29212         (visit_use): Properly valueize vuses.
29213
29214 2015-02-10  Richard Biener  <rguenther@suse.de>
29215
29216         PR tree-optimization/64909
29217         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
29218         pass a scalar-stmt count estimate to the cost model.
29219         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
29220
29221 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
29222
29223         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
29224         enabled by default together with var-tracking.
29225
29226 2015-02-10  Nick Clifton  <nickc@redhat.com>
29227
29228         * config/rl78/rl78.c: Remove DIV attribute code accidentally
29229         included in previous rl78 commit.
29230
29231 2015-02-10  Richard Biener  <rguenther@suse.de>
29232
29233         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
29234         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
29235         return the bitpack.
29236
29237 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
29238
29239         PR gcov-profile/61889
29240         * config.in: regenerate.
29241         * configure.in: Likewise.
29242         * configure.ac: Check for ftw.h.
29243         * gcov-tool.c: Check for ftw.h before using nftw.
29244
29245 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
29246
29247         PR lto/64076
29248         * ipa-visibility.c (update_visibility_by_resolution_info): Only
29249         assert when not in lto mode.
29250
29251 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
29252
29253         * ira-color.c (setup_left_conflict_sizes_p): Simplify
29254         initialization/assignment of conflict_size.
29255
29256 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
29257
29258         PR ipa/64978
29259         * ipa-cp.c (gather_caller_stats): Skip thunks.
29260         (propagate_constants_topo): Skip aliases.
29261
29262 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
29263
29264         PR target/64761
29265         * config/sh/sh.c (sh_option_override): Don't change
29266         -freorder-blocks-and-partition to -freorder-blocks even when
29267         unwinding is enabled.
29268         (sh_can_follow_jump): Return false if the followee jump is
29269         a crossing jump when -freorder-blocks-and-partition is specified.
29270         * config/sh/sh.md (*jump_compact_crossing): New insn.
29271
29272 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
29273             Kaz Kojima  <kkojima@gcc.gnu.org>
29274
29275         PR target/64761
29276         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
29277         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
29278         (sh_can_redirect_branch): Rename to ...
29279         (sh_can_follow_jump): ... this.  Constify argument types.
29280         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
29281         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
29282         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
29283         * doc/tm.texi: Regenerate.
29284
29285 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
29286
29287         PR sanitizer/64981
29288         * builtins.c (expand_builtin): Call targetm.expand_builtin
29289         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
29290
29291 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29292
29293         PR ipa/61548
29294         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
29295
29296 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29297
29298         PR ipa/63566
29299         * ipa-icf.c (set_local): New function.
29300         (sem_function::merge): Use it.
29301
29302 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29303
29304         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
29305         (add_type_duplicate): Fix comparison of BINFOs.
29306
29307 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29308
29309         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
29310         on getting VOID pointer.
29311
29312 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
29313
29314         PR target/64979
29315         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
29316         va_list escapes.
29317
29318 2015-02-09  Richard Biener  <rguenther@suse.de>
29319
29320         * genmatch.c (replace_id): Copy expr_type.
29321
29322 2015-02-09  Richard Biener  <rguenther@suse.de>
29323
29324         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
29325         (streamer_write_tree_bitfields): Declare.
29326         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
29327         properly unpack padding.
29328         (unpack_value_fields): Inline ...
29329         (streamer_read_tree_bitfields): ... here.
29330         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
29331         and properly add padding bits.
29332         (streamer_pack_tree_bitfields): Fold into ...
29333         (streamer_write_tree_bitfields): ... this new function,
29334         exposing the bitpack object.
29335         * lto-streamer-out.c (lto_write_tree_1): Call
29336         streamer_write_tree_bitfields.
29337
29338 2015-02-09  Richard Biener  <rguenther@suse.de>
29339
29340         PR tree-optimization/54000
29341         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
29342         (struct ivopts_data): Add loop_loc member.
29343         (tree_ssa_iv_optimize_loop): Dump loop location.
29344         (create_new_ivs): Likewise, also dump number of IVs generated.
29345
29346 2015-02-09  Martin Liska  <mliska@suse.cz>
29347
29348         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
29349         just if not yet registered.
29350         (ipa_icf_generate_summary): Register callgraph hooks.
29351
29352 2015-02-08  Andrew Pinski  <apinski@cavium.com>
29353
29354         * config/aarch64/aarch64.c (gty_dummy): Delete.
29355
29356 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29357
29358         PR ipa/63566
29359         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
29360         (cgraph_node::local_p): Remove thunk related FIXME.
29361
29362 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29363
29364         PR ipa/63566
29365         * i386.c (ix86_function_regparm): Look through aliases to see if callee
29366         is local and optimized.
29367         (ix86_function_sseregparm): Likewise; also use target's SSE math
29368         settings; error out instead of silently generating wrong code
29369         on mismatches.
29370         (init_cumulative_args): Look through aliases.
29371
29372 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29373
29374         PR ipa/63566
29375         * ipa-split.c (execute_split_functions): Split if function has aliases.
29376
29377 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29378
29379         PR ipa/63566
29380         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
29381         aliases before trying to expand it.
29382         (cgraph_node::expand_thunk): Fix formating.
29383
29384 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
29385
29386         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
29387         (Using Assembly Language with C): Expand introduction.
29388         (Basic Asm): Copy-edit.  Add more information about uses of
29389         basic asm.
29390         (Extended Asm): Copy-edit.  Document new escape syntax and
29391         %l[label] syntax.
29392         (Global Reg Vars): Copy-edit.
29393         (Local Reg Vars): Likewise.
29394
29395 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
29396
29397         PR debug/2714
29398         PR bootstrap/64256
29399         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
29400         (DBX_CONTIN_CHAR): Define.
29401
29402 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
29403             Brian Rzycki  <b.rzycki@samsung.com>
29404
29405         PR tree-optimization/64878
29406         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
29407         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
29408         Stop recursion at loop phi nodes after having visited a loop phi node.
29409
29410 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29411
29412         * toplev.c (process_options): Change flag_ipa_ra before creating
29413         optimization_{default,current}_node.
29414
29415         PR ipa/64896
29416         * cgraphunit.c (cgraph_node::expand_thunk): If
29417         restype is not is_gimple_reg_type nor the thunk_fndecl
29418         returns aggregate_value_p, set restmp to a temporary variable
29419         instead of resdecl.
29420
29421 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
29422
29423         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
29424
29425 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
29426
29427         PR target/64205
29428         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
29429         add a general secondary reload handler for SDmode, unless we have
29430         both read/write support for SDmode.
29431
29432 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29433
29434         PR middle-end/64937
29435         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
29436         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
29437         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
29438         1 before, push it to abstract_vec.
29439         (dwarf2out_abstract_function): Adjust caller.  Don't call
29440         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
29441         DECL_ABSTRACT_P flags for all abstract_vec elts.
29442
29443 2015-02-06  Renlin Li  <renlin.li@arm.com>
29444
29445         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
29446         complex gimple.
29447         * tree-ssa.c (execute_update_addresses_taken): Likewise.
29448
29449 2015-02-06  Jeff Law  <law@redhat.com>
29450
29451         PR target/64889
29452         * config/h8300/h8300.c (push): New argument "in_prologue".
29453         Pass "in_prologue" along to "F".
29454         (h8300_push_pop): Corresponding changes.
29455         (h8300_expand_prologue): Likewise.
29456         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
29457
29458 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29459
29460         PR rtl-optimization/64957
29461         PR debug/64817
29462         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
29463         IOR rather than for AND.
29464
29465 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
29466
29467         PR target/62631
29468         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
29469         of shift-add and (add + shift) operations.  Rename local variable.
29470
29471 2015-02-05  Jeff Law  <law@redhat.com>
29472
29473         PR target/17306
29474         * config/h8300/constraints.md (U): Correctly dectect
29475         "eightbit_data" memory addresses.
29476         * config/h8300/h8300.c (eightbit_constant_address_p): Also
29477         handle (const (plus (symbol_ref (x)))) where x is declared
29478         as an 8-bit data memory address.
29479         * config/h8300/h8300.md (call, call_value): Correctly detect
29480         "funcvec" functions.
29481
29482         PR target/43264
29483         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
29484         24 to 28 bits for the H8/300.
29485
29486 2015-02-06  Alan Modra  <amodra@gmail.com>
29487
29488         PR target/64876
29489         * config/rs6000/rs6000.c (chain_already_loaded): New function.
29490         (rs6000_call_aix): Use it.
29491
29492 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
29493
29494         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
29495         check.
29496
29497 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
29498
29499         * config/h8300/constraints.md ("U" constraint): Use strict
29500         variant of REG_OK_FOR_BASE_P after reload has started.
29501
29502 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
29503
29504         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
29505         define to zero if !TARGET_NEON.
29506         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
29507
29508 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29509             Trevor Saunders  <tsaunders@mozilla.com>
29510
29511         PR ipa/61548
29512         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
29513
29514 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29515
29516         PR ipa/61548
29517         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
29518         when removing varpool nodes.
29519
29520 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29521
29522         PR ipa/61548
29523         * varpool.c (varpool_node::remove): Fix order of variables.
29524
29525 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29526
29527         PR ipa/64686
29528         * ipa-inline.c (inline_small_functions): Fix ordering issue between
29529         speculation resolution and key updates.
29530
29531 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29532
29533         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
29534         about not letting any speculative edges unupdated.
29535
29536 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29537
29538         PR gcov/64123
29539         * gcov-io.c (gcov_var): Export.
29540
29541 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29542
29543         PR middle-end/64922
29544         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
29545         edges that become speculative.
29546
29547 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
29548
29549         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
29550         or DW_LANG_Fortran08.
29551         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
29552         DW_LANG_Fortran08.
29553         (gen_compile_unit_die): Handle "GNU Fortran2003" and
29554         "GNU Fortran2008" language strings.
29555         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
29556         * langhooks.h (lang_GNU_Fortran): New prototype.
29557         * langhooks.c (lang_GNU_Fortran): New function.
29558         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
29559         lang_GNU_Fortran.
29560
29561 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
29562
29563         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
29564         (RTX_OK_FOR_OLO10_P): Likewise.
29565
29566 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
29567
29568         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
29569
29570 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29571
29572         PR middle-end/64922
29573         * gimple.c: Include gimple-ssa.h.
29574         (maybe_remove_unused_call_args): New function.
29575         * gimple.h (maybe_remove_unused_call_args): Declare.
29576         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
29577         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
29578         * gimple-fold.c (gimple_fold_call): Likewise.
29579
29580 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
29581
29582         PR rtl-optimization/64905
29583         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
29584         pointer alignment if it isn't needed.
29585
29586 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
29587
29588         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
29589         cortex-a72.cortex-a53.
29590         * config/aarch64/aarch64-tune.md: Regenerate.
29591         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
29592
29593 2015-02-04  Nick Clifton  <nickc@redhat.com>
29594
29595         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
29596         inside a MEM.
29597
29598 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
29599
29600         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
29601         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
29602         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
29603         of DEF_BUILTIN.
29604         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
29605         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
29606         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
29607         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
29608         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
29609         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
29610         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
29611         * tree-core.h (enum built_in_function): In between
29612         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
29613         for builtins that use DEF_BUILTIN_CHKP macro.
29614
29615 2015-02-04  Alexandre Oliva  <aoliva@redhat.com>
29616
29617         PR debug/64817
29618         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
29619         operands for tcc_comparison exprs.  Fix typos.
29620
29621         PR debug/64817
29622         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
29623         of two XORs that have an intervening AND or IOR.
29624
29625         PR debug/64817
29626         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
29627         simplification of XOR of AND to not allocate new rtx before
29628         committing to a simplification.
29629
29630 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29631
29632         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
29633         manual swaps in all peepholes.
29634
29635 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29636
29637         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
29638         of manual swapping implementation.
29639         (aarch64_expand_vec_perm_const_1): Likewise.
29640
29641 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
29642
29643         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
29644         (generic_addrcost_table): Remove NAMED_PARAM.
29645         (cortexa57_addrcost_table): Likewise.
29646         (xgene1_addrcost_table): Likewise.
29647         (generic_regmove_table): Likewise.
29648         (cortexa53_regmove_table): Likewise.
29649         (xgene1_regmove_table): Likewise.
29650         (generic_vector_table): Likewise.
29651         (cortexa57_vector_table): Likewise.
29652         (xgene1_vector_table): Likewise.
29653         (generic_tunings): Likewise.
29654         (cortexa53_tunings): Likewise.
29655         (cortexa57_tunings): Likewise.
29656         (xgene1_tunings): Likewise.
29657
29658 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
29659
29660         * config/arm/arm-cores.def: Add cortex-a72 and
29661         cortex-a72.cortex-a53.
29662         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
29663         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
29664         * config/arm/arm-tune.md: Regenerate.
29665         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
29666         "cortex-a72.cortex-a53".
29667         * doc/invoke.texi (ARM Options/-mtune): Likewise.
29668
29669 2015-02-04  Nick Clifton  <nickc@redhat.com>
29670
29671         PR target/64408
29672         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
29673         of accepted codes.
29674         (nonimmediate_di_operand): Likewise.
29675
29676         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
29677         prefixes of known F5 using MSP430 MCUs.
29678
29679 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29680
29681         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
29682         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
29683         instead of __builtin_sqrt.
29684
29685 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
29686
29687         * varasm.c (do_assemble_alias): Follow transparent alias
29688         chain for target.
29689         (default_assemble_visibility): Follow transparent alias
29690         chain for decl name.
29691
29692 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29693
29694         PR middle-end/62103
29695         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
29696         to compute size of referenced value in the constant case.
29697
29698 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
29699
29700         PR rtl-optimization/64756
29701         * cse.c (invalidate_dest): New function.
29702         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
29703         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
29704         invalidate and do not record it.
29705
29706 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
29707
29708         PR target/64660
29709         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
29710         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
29711         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
29712         atomic_nand<mode>_soft_tcb): New insns.
29713         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
29714         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
29715         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
29716         Split into atomic_not_fetchsi_hard if operands[0] is unused.
29717         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
29718         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
29719         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
29720         atomic_not<mode>_hard if operands[0] is unused.
29721         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
29722         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
29723         if operands[0] is unused.
29724         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
29725         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
29726         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
29727         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
29728         unused.
29729         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
29730         into atomic_not<mode>_soft_tcb if operands[0] is unused.
29731         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
29732         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
29733         if operands[0] is unused.
29734         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
29735         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
29736         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
29737         atomic_nand_fetchsi_hard if operands[0] is unused.
29738         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
29739         atomic_nand<mode>_hard if operands[0] is unused.
29740         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
29741         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
29742         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
29743         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
29744         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
29745         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
29746         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
29747         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
29748         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
29749         atomic_not<mode>_hard if operands[0] is unused.
29750         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
29751         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
29752         unused.
29753         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
29754         into atomic_not<mode>_soft_tcb if operands[0] is unused.
29755         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
29756         atomic_nand<mode>_hard if operands[0] is unused.
29757         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
29758         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
29759
29760 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
29761
29762         PR jit/64810
29763         * Makefile.in (GCC_OBJS): Add gcc-main.o.
29764         * gcc-main.c: New file, containing "main" taken from gcc.c.
29765         * gcc.c (do_self_spec): Free decoded_options.
29766         (class driver): Move declaration to gcc.h.
29767         (main): Move declaration and implementation to new file
29768         gcc-main.c.
29769         (driver_get_configure_time_options): New function.
29770         * gcc.h (class driver): Move this declaration here, from
29771         gcc.c.
29772         (driver_get_configure_time_options): New declaration.
29773
29774 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
29775
29776         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
29777         cross-module inlining.
29778         * cgraph.h (cgraph_node): Add flag merged.
29779         * ipa-icf.c (sem_function::merge): Maintain it.
29780
29781 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
29782
29783         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
29784         instead of OBJECT_P.
29785
29786 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
29787
29788         PR target/62631
29789         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
29790         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
29791         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
29792         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
29793
29794 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
29795
29796         PR other/63504
29797         * combine.c (reg_n_sets_max): New variable.
29798         (can_change_dest_mode, reg_nonzero_bits_for_combine,
29799         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
29800         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
29801         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
29802         (rest_of_handle_combine): Initialize reg_n_sets_max.
29803
29804 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
29805
29806         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
29807         if some always_inline was inlined, apply changes before inlining
29808         heuristically.
29809
29810 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
29811
29812         PR jit/64810
29813         * config/arm/arm.c (arm_option_override): Set
29814         arm_selected_arch/cpu/tune to NULL on entry.
29815
29816 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
29817             Andrew Pinski  <pinskia@gcc.gnu.org>
29818             Jakub Jelinek  <jakub@gcc.gnu.org>
29819
29820         PR target/64231
29821         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
29822         integer typing for small model. Use IN_RANGE.
29823
29824 2015-02-02  Richard Biener  <rguenther@suse.de>
29825
29826         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
29827         * tree-vrp.c (vrp_valueize_1): Likewise.
29828
29829 2015-02-02  Alan Modra  <amodra@gmail.com>
29830
29831         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
29832         than mem for toc_restore.
29833         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
29834         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
29835         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
29836
29837 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
29838
29839         PR target/64047
29840         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
29841         explicit default options.
29842
29843 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
29844
29845         PR ipa/64872
29846         * ipa-utils.c (ipa_merge_profiles): Add release argument.
29847         * ipa-icf.c (sem_function::merge): Do not release body when merging.
29848         * ipa-utils.h (ipa_merge_profiles): Update prototype.
29849
29850 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
29851
29852         PR debug/64817
29853         * cfgexpand.c (deep_ter_debug_map): New variable.
29854         (avoid_deep_ter_for_debug): New function.
29855         (expand_debug_expr): If TERed SSA_NAME is in
29856         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
29857         instead of trying to expand SSA_NAME's def stmt.
29858         (expand_debug_locations): When expanding debug bind
29859         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
29860         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
29861         value.
29862         (pass_expand::execute): Call avoid_deep_ter_for_debug on
29863         all debug bind stmts.  Delete deep_ter_debug_map after
29864         expand_debug_location if non-NULL and clear it.
29865
29866 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
29867
29868         PR target/64851
29869         * config/sh/sync.md (atomic_fetch_notsi_hard,
29870         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
29871         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
29872         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
29873         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
29874         atomic_not_fetch<mode>_soft_imask): New insns.
29875
29876 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
29877
29878         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
29879         (rank_for_schedule_debug): Split from ...
29880         (rank_for_schedule): ... this.
29881         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
29882         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
29883
29884 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
29885
29886         * doc/md.texi (Machine Constraints): Alphabetize table by target.
29887         * doc/extend.texi (x86 Variable Attributes): Move section to
29888         correct alphabetization after renaming.
29889         (x86 Type Attributes): Likewise.
29890         (Target Builtins): Re-alphabetize menu.
29891         (x86 Built-in Functions): Move section to correct alphabetization
29892         after renaming.
29893         (x86 transactional memory intrinsics): Likewise.
29894         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
29895         and x86 Windows Options in table and menu.
29896         (x86 Options): Move section to correct alphabetization after
29897         renaming.
29898         (x86 Windows Options): Likewise.
29899
29900 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
29901
29902         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
29903         preferred names of the architecture and its 32- and 64-bit
29904         variants.
29905         * doc/invoke.texi: Likewise.
29906         * doc/md.texi: Likewise.
29907
29908 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
29909
29910         PR target/64882
29911         * config/i386/predicates.md (address_no_seg_operand): Reject
29912         non-CONST_INT_P operands in invalid mode.
29913
29914 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
29915
29916         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
29917         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
29918         * config/i386/predicates.md (address_no_seg_operand): Call
29919         address_operand with VOIDmode.
29920         (vsib_address_operand): Ditto.
29921         (address_mpx_no_base_operand): Ditto.
29922         (address_mpx_no_index_operand): Ditto.
29923
29924 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
29925
29926         PR target/64688
29927         * lra-constraints.c (original_subreg_reg_mode): New.
29928         (simplify_operand_subreg): Try to simplify subreg of const.  Use
29929         original_subreg_reg_mode for it.
29930         (swap_operands): Update original_subreg_reg_mode.
29931         (curr_insn_transform): Set up original_subreg_reg_mode.
29932
29933 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
29934
29935         PR target/64617
29936         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
29937         function.
29938         (process_alt_operands): Use it.
29939         (curr_insn_transform): Check the optional reload pseudo class is
29940         ok for the mode.
29941
29942 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
29943
29944         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
29945         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
29946         prototype.
29947         * toplev.h (init_asm_output): Update comment on use of
29948         UNKNOWN_LOCATION with fatal_error.
29949         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
29950         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
29951         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
29952         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
29953         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
29954         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
29955         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
29956         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
29957         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
29958         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
29959         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
29960         fatal_error changed to pass input_location as first argument.
29961
29962 2015-01-30  Martin Liska  <mliska@suse.cz>
29963
29964         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
29965         in #pragma GCC diagnostic guards.
29966
29967 2015-01-30  Richard Biener  <rguenther@suse.de>
29968
29969         PR tree-optimization/64829
29970         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
29971         not add a widening conversion pattern but hand off extra
29972         widenings to callers.
29973         (vect_recog_widen_mult_pattern): Handle extra widening produced
29974         by vect_handle_widen_op_by_const.
29975         (vect_recog_widen_shift_pattern): Likewise.
29976         (vect_pattern_recog_1): Remove excess vertical space in dumping.
29977         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
29978         (vect_init_vector_1): Likewise.
29979         (vect_get_vec_def_for_operand): Likewise.
29980         (vect_finish_stmt_generation): Likewise.
29981         (vectorizable_load): Likewise.
29982         (vect_analyze_stmt): Likewise.
29983         (vect_is_simple_use): Likewise.
29984
29985 2015-01-29  Jeff Law  <law@redhat.com>
29986
29987         * combine.c (try_combine): Fix typo in comment.
29988
29989 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
29990
29991         PR target/64580
29992         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
29993         (rs6000_stack_info): Add assert.
29994         (rs6000_output_savres_externs): New function, split off from...
29995         (rs6000_output_function_prologue): ... here.  Do not call it for
29996         thunks.
29997
29998 2015-01-29  Jeff Law  <law@redhat.com>
29999
30000         PR target/15184
30001         * combine.c (try_combine): If I0 is a memory load and I3 a store
30002         to a related address, increase the "goodness" of doing a 4-insn
30003         combination with I0-I3.
30004         (make_field_assignment): Handle SUBREGs in the ior+and case.
30005
30006 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
30007
30008         PR tree-optimization/64746
30009         * tree-if-conv.c (mask_exists): New function.
30010         (predicate_mem_writes): Save created mask with given size for further
30011         use.
30012         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
30013         (ifcvt_repair_bool_pattern): Collect all statements that are root
30014         of bool pattern and use iterative algorithm to remove multiple uses
30015         of predicates, display number of required iterations.
30016
30017 2015-01-29  Richard Biener  <rguenther@suse.de>
30018
30019         PR tree-optimization/64853
30020         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
30021         stmt will get simulated again.
30022         * tree-ssa-ccp.c (valueize_op_1): Likewise.
30023
30024 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30025
30026         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
30027         return_in_pc.  Remove redundant assignments.
30028         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
30029         (arm_expand_epilogue): Don't compare boolean with true in if condition.
30030
30031 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
30032
30033         * config/i386/i386.c (ix86_mode_after): Make static.
30034
30035 2015-01-29  Richard Biener  <rguenther@suse.de>
30036
30037         PR tree-optimization/64844
30038         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
30039         dump cost model analysis.
30040         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
30041         Do not register adjusted load/store costs here.
30042
30043 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
30044             Uros Bizjak  <ubizjak@gmail.com>
30045
30046         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
30047         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
30048         using x86_use_pseudo_pic_reg.
30049         * config/i386/i386.c (ix86_conditional_register_usage): Remove
30050         support for fixed PIC register.
30051         (ix86_use_pseudo_pic_reg): Not static any more.
30052
30053 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
30054
30055         PR middle-end/64805
30056         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
30057         to avoid error in cgraph node verification.
30058
30059 2015-01-29  Marek Polacek  <polacek@redhat.com>
30060
30061         * doc/standards.texi: Reflect that the default for C is gnu11.
30062
30063 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
30064
30065         PR target/64761
30066         * reorg.c (switch_text_sections_between_p): New function.
30067         (relax_delay_slots): Call it when testing if the jump insn
30068         is removable.  Use targetm.can_follow_jump when testing if
30069         the conditional branch can follow an unconditional jump.
30070
30071 2015-01-27  Caroline Tice  <cmtice@google.com>
30072
30073         Committing VTV Cywin/Ming patch for Patrick Wollgast
30074         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
30075         if -fvtable-verify=preinit/std is used.
30076         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
30077         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
30078         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
30079         if -fvtable-verify=preinit/std is used.
30080         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
30081         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
30082         if -fvtable-verify=preinit/std is used.
30083         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
30084         * config/i386/mingw32.h (LIB_SPEC): Likewise.
30085         * varasm.c (assemble_variable): Add code to properly set the comdat
30086         section and name for the .vtable_map_vars section in case the
30087         target is PE or COFF.
30088
30089 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
30090
30091         PR ipa/64801
30092         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
30093         make sane BB profile.
30094         (cgraph_node::expand_thunk): Make sane BB profile.
30095         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
30096         * cgraph.h (init_lowered_empty_function): Update prototype.
30097         * config/i386/i386.c (make_resolver_func): Update call.
30098         * predict.c (gate): Disable branch prediction pass if
30099         profile is already there.
30100
30101 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
30102
30103         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
30104         * opth-gen.awk: Likewise.
30105         * common.opt: Mark flag_fp_contract_mode as Optimization.
30106
30107 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30108
30109         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
30110         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
30111
30112 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
30113
30114         PR target/64659
30115         * config/sh/predicates.md (atomic_arith_operand,
30116         atomic_logical_operand): Remove.
30117         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
30118         (atomic_arith_operand_0): New predicate.
30119         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
30120         Use atomic_arith_operand_0 for input values.
30121         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
30122         atomic_compare_and_swap<mode>_soft_gusa,
30123         atomic_compare_and_swap<mode>_soft_tcb,
30124         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
30125         arith_reg_operand instead of register_operand.
30126         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
30127         atomic_arith_operand_0 for newval input.
30128         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
30129         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
30130         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
30131         arith_reg_operand instead of register_operand.
30132         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
30133         fetchop_predicate_1, fetchop_constraint_1_llcs,
30134         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
30135         fetchop_constraint_1_imask): New code iterator attributes.
30136         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
30137         register_operand.  Use fetchop_predicate_1.
30138         (atomic_fetch_<fetchop_name>si_hard,
30139         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
30140         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
30141         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
30142         and arith_reg_operand instead of register_operand.  Use
30143         fetchop_predicate_1, fetchop_constraint_1_gusa.
30144         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
30145         and arith_reg_operand instead of register_operand.  Use
30146         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
30147         to allow R0 usage.
30148         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
30149         and arith_reg_operand instead of register_operand.  Use
30150         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
30151         to allow R0 usage.
30152         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
30153         register_operand.  Use atomic_logical_operand_1.
30154         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
30155         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
30156         arith_reg_operand instead of register_operand.
30157         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
30158         Use arith_reg_dest and arith_reg_operand instead of register_operand.
30159         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
30160         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
30161         register_operand.  Use fetchop_predicate_1.
30162         (atomic_<fetchop_name>_fetchsi_hard,
30163         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
30164         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30165         fetchop_constraint_1_llcs.
30166         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
30167         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30168         fetchop_constraint_1_gusa.
30169         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
30170         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30171         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
30172         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
30173         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30174         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
30175         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
30176         register_operand.  Use atomic_logical_operand_1.
30177         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
30178         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
30179         arith_reg_operand instead of register_operand.
30180         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
30181         arith_reg_operand instead of register_operand.  Use logical_operand
30182         and K08.  Adjust asm sequence to allow R0 usage.
30183         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
30184         arith_reg_operand instead of register_operand.  Use logical_operand
30185         and K08.
30186
30187 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
30188
30189         PR other/63504
30190         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
30191         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
30192         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
30193         only get_full_len HOST_WIDE_INTs from get_val () array rather than
30194         all bits in *val_wide.
30195
30196 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
30197
30198         * varpool.c (tls_model_names): Fix names.
30199         (varpool_node::dump): Dump tls- prefix for tls models.
30200
30201 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
30202             Bernd Schmidt  <bernds@codesourcery.com>
30203             Nathan Sidwell  <nathan@codesourcery.com>
30204
30205         * config/nvptx/mkoffload.c: New file.
30206         * config/nvptx/t-nvptx: Add build rules for it.
30207         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
30208         (extra_programs): Add mkoffload.
30209         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
30210         function.
30211         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
30212
30213 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
30214
30215         PR middle-end/64809
30216         * cfgexpand.c (reorder_operands): Skip debug gimples.
30217
30218 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
30219
30220         PR tree-optimization/64277
30221         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
30222         range info when possible to refine estimation.
30223
30224 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30225
30226         PR tree-optimization/64718
30227         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
30228         be a 16bit unsigned integer when n->range is 16.
30229         (bswap_replace): Convert src to that type if necessary for all bswap
30230         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
30231         set in pass_optimize_bswap::execute ().
30232
30233 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
30234
30235         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
30236         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
30237         integer and floating point variants.
30238         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
30239
30240 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
30241
30242         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
30243         for all vector modes.
30244
30245 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
30246
30247         PR bootstrap/64612
30248         * doc/sourcebuild.texi (comdat_group): Document.
30249
30250 2015-01-28  Terry Guo  <terry.guo@arm.com>
30251
30252         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
30253
30254 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
30255
30256         * toplev.c (print_version): Add param "show_global_state", and
30257         only print GGC and plugin information if it is true.
30258         (init_asm_output): Pass in "true" for the new param when calling
30259         print_version.
30260         (process_options): Likewise.
30261         (toplev::main): Likewise.
30262         * toplev.h (print_version): Add new param to decl.
30263
30264 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
30265
30266         PR ipa/60871
30267         PR ipa/64139
30268         * tree.c (lookup_binfo_at_offset): New function.
30269         (get_binfo_at_offset): Use it.
30270
30271 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
30272
30273         PR ipa/64282
30274         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
30275         on vtable being vtable.
30276
30277 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
30278
30279         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
30280         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
30281         -mhotpatch= option.
30282         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
30283         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
30284         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
30285         Renamed.
30286         (s390_hotpatch_trampoline_halfwords_max): Renamed.
30287         (s390_hotpatch_hw_max): New name.
30288         (s390_hotpatch_trampoline_halfwords): Renamed.
30289         (s390_hotpatch_hw_before_label): New name.
30290         (get_hotpatch_attribute): Removed.
30291         (s390_hotpatch_hw_after_label): New name.
30292         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
30293         attribute.
30294         (s390_attribute_table): Ditto.
30295         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
30296         (s390_function_num_hotpatch_hw): New name.
30297         Remove special handling of inline functions and hotpatching.
30298         Return number of nops before and after the function label.
30299         (s390_can_inline_p): Removed.
30300         (s390_asm_output_function_label): Emit a configurable number of nops
30301         after the function label.
30302         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
30303         (TARGET_CAN_INLINE_P) Removed.
30304         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
30305
30306 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30307             Jiong Wang  <jiong.wang@arm.com>
30308
30309         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
30310         of scratch reg.
30311         (cb<optab><mode>1): Likewise.
30312         * config/aarch64/iterators.md (bcond): New define_code_attr.
30313
30314 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30315
30316         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
30317         memory accesses.
30318
30319 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30320
30321         * config/s390/s390.c (s390_register_move_cost): Increase costs for
30322         FPR->GPR moves.
30323
30324 2015-01-27  Richard Biener  <rguenther@suse.de>
30325
30326         * tree-vrp.c (update_value_range): Intersect the range with
30327         old recorded SSA name range information.
30328
30329 2015-01-27  Nick Clifton  <nickc@redhat.com>
30330
30331         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
30332         BC, DE and HL registers directly, not via AX.
30333         When decrementing the stack pointer by a large amount, transfer SP
30334         into AX and perform the subtraction there.
30335         (rl78_expand_epilogue): Perform the inverse of the above
30336         enhancements.
30337
30338 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30339
30340         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
30341
30342 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30343             Yury Gribov  <y.gribov@samsung.com>
30344
30345         PR ubsan/64741
30346         * ubsan.c (ubsan_source_location): Refactor code.
30347         (ubsan_type_descriptor): Update type size. Refactor code.
30348
30349 2015-01-27  Richard Biener  <rguenther@suse.de>
30350
30351         PR tree-optimization/56273
30352         PR tree-optimization/59124
30353         PR tree-optimization/64277
30354         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
30355         from the first VRP pass.
30356
30357 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30358
30359         PR ipa/64776
30360         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
30361         handle the first argument in the same loop as all the other arguments.
30362
30363         PR rtl-optimization/61058
30364         * jump.c (cleanup_barriers): Update basic block boundaries
30365         if BLOCK_FOR_INSN is non-NULL on PREV.
30366
30367 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
30368
30369         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
30370         bounds narrowing, already instrumented calls and calls to
30371         not instrumentable functions.
30372
30373 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30374
30375         PR tree-optimization/64807
30376         * wide-int.cc (wi::divmod_internal): Clear
30377         b_dividend[dividend_blocks_needed].
30378
30379 2015-01-26  DJ Delorie  <dj@redhat.com>
30380
30381         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
30382         volatile memory references.
30383
30384 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
30385
30386         PR target/49263
30387         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
30388         remove_insn.
30389         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
30390         shifts if it already fits into K08.
30391
30392 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
30393
30394         PR ipa/64730
30395         * ipa-inline.c (inline_small_functions): Print "unknown" even
30396         if edge->call_stmt is non-NULL, but has builtins or unknown
30397         location.
30398
30399         PR middle-end/64421
30400         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
30401         with asterisk, skip the first character.
30402
30403 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
30404
30405         PR target/64806
30406         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
30407         order change.
30408
30409 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
30410
30411         PR target/64795
30412         * config/i386/i386.md (*movdi_internal): Also check operand 0
30413         to determine TYPE_LEA operand.
30414         (*movsi_internal): Ditto.
30415
30416 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
30417
30418         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
30419         OPTION_MASK_QUAD_MEMORY_ATOMIC.
30420
30421 2015-01-26  Renlin Li  <renlin.li@arm.com>
30422
30423         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
30424         the comment.
30425         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
30426         for higher part.
30427
30428 2015-01-26  Richard Biener  <rguenther@suse.de>
30429
30430         PR middle-end/64764
30431         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
30432         combining two BIT_AND_EXPR predicates.
30433
30434 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
30435
30436         PR bootstrap/64754
30437         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
30438
30439 2015-01-26  Terry Guo  <terry.guo@arm.com>
30440
30441         * config/arm/arm.c (arm_file_start): Update the assignment of
30442         Tag_ABI_HardFP_use.
30443
30444 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
30445
30446         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
30447         pipeline model.
30448         config/arm/arm.md: Include the new Cortex-A57 model.
30449         (generic_sched): Don't use generic_sched when tuning for
30450         Cortex-A57.
30451
30452 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
30453             Uros Bizjak  <ubizjak@gmail.com>
30454
30455         * config/i386/i386.c (get_builtin_code_for_version): Add
30456         support for BMI and BMI2 multiversion functions.
30457
30458 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
30459
30460         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
30461         (extract_bit_field): Likewise.
30462         (extract_low_bits): Likewise.
30463         (expand_mult): Likewise.
30464         (expand_mult_highpart_adjust): Likewise.
30465
30466 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
30467
30468         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
30469         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
30470         * config/i386/i386.c (processor_model): Add
30471         M_INTEL_COREI7_BROADWELL.
30472         (arch_names_table): Add "broadwell".
30473
30474 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
30475
30476         PR target/49263
30477         PR target/53987
30478         PR target/64345
30479         PR target/59533
30480         PR target/52933
30481         PR target/54236
30482         PR target/51244
30483         * config/sh/sh-protos.h
30484         (sh_extending_set_of_reg::can_use_as_unextended_reg,
30485         sh_extending_set_of_reg::use_as_unextended_reg,
30486         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
30487         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
30488         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
30489         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
30490         (sh_treg_insns): New class.
30491         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
30492         (scope_counter): New class.
30493         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
30494         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
30495         sh_extending_set_of_reg::can_use_as_unextended_reg,
30496         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
30497         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
30498         sh_split_treg_set_expr): New functions.
30499         (addsubcosts): Handle treg_set_expr.
30500         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
30501         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
30502         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
30503         (sh_insn_operands_modified_between_p): Make non-static.
30504         * config/sh/predicates.md (zero_extend_movu_operand): Allow
30505         simple_mem_operand in addition to displacement_mem_operand.
30506         (zero_extend_operand): Don't allow zero_extend_movu_operand.
30507         (treg_set_expr, treg_set_expr_not_const01,
30508         arith_reg_or_treg_set_expr): New predicates.
30509         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
30510         arith_or_int_operand instead of logical_operand.  Convert to
30511         insn_and_split.  Try to optimize constant operand in splitter.
30512         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
30513         (*tstqi_t_zero): Delete.
30514         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
30515         (tstsi_t_and_not): Delete.
30516         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
30517         Convert to insn_and_split.
30518         (unnamed split, tstsi_t_zero_extract_xor,
30519         tstsi_t_zero_extract_subreg_xor_little,
30520         tstsi_t_zero_extract_subreg_xor_big): Delete.
30521         (*tstsi_t_shift_mask): New insn_and_split.
30522         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
30523         to recombine with surrounding insns when splitting.
30524         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
30525         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
30526         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
30527         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
30528         (*cbranch_div0s: Delete.
30529         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
30530         Try to recombine with surrounding insns when splitting.  Add operand
30531         order variants.
30532         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
30533         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
30534         *addc_r_r_msb, *addc_2r_msb): Delete.
30535         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
30536         order variant.
30537         (*addc_negreg_t): New insn_and_split.
30538         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
30539         Try to recombine with surrounding insns when splitting.
30540         Add operand order variants.
30541         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
30542         insn_and_split patterns.
30543         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
30544         surrounding insns when splitting.
30545         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
30546         (*rotcl): Likewise.  Add zero_extract variant.
30547         (*ashrsi2_31): New insn_and_split.
30548         (*negc): Convert to insn_and_split.  Use treg_set_expr.
30549         (*zero_extend<mode>si2_disp_mem): Update comment.
30550         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
30551         condition.
30552         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
30553         with surrounding insns when splitting.
30554         (any_treg_expr_to_reg): New insn_and_split.
30555         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
30556         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
30557         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
30558         *zero_extract_2): New single bit zero extract patterns.
30559         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
30560         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
30561         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
30562         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
30563         set destination.
30564         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
30565         register_operand for set source.
30566
30567 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
30568
30569         * i386.opt (prefetch_sse): New targetsave.
30570         * i386.c (ix86_function_specific_save): Save prefetch_sse.
30571         (ix86_function_specific_restore): Restore prefetch_sse and initialize
30572         ix86_cost/ix86_tune_cost.
30573
30574 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
30575
30576         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
30577         Support the JIT by using 0 as the language type.
30578
30579 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
30580
30581         PR target/64317
30582         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
30583         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
30584         (mark_regno_live, process_bb_lives): Pass new parameter value to
30585         make_hard_regno_born.
30586
30587 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
30588
30589         PR rtl-optimization/63637
30590         PR rtl-optimization/60663
30591         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
30592         if elt->cost is MAX_COST for ASM_OPERANDS.
30593         (find_sets_in_insn): Fix up comment typo.
30594         (cse_insn): Don't set src_volatile for all non-volatile
30595         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
30596         or with "memory" clobber.  Set elt->cost to MAX_COST
30597         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
30598         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
30599
30600 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
30601
30602         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
30603         alternative 1.
30604
30605 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
30606
30607         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
30608         libgcc/config/i386/elf-lib.h.
30609
30610 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
30611
30612         PR driver/64737
30613         * gcc.c (print_configuration): Don't print a blank line at the end
30614         here...
30615         (run_attempt): ... but here unstead.
30616
30617         PR middle-end/64734
30618         * omp-low.c (scan_sharing_clauses): Don't ignore
30619         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
30620         on target data/update constructs.
30621
30622 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30623
30624         PR target/50928
30625         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
30626         (DEBUG_RELOAD): Removed define.
30627         (m32c_limit_reload_class): Enable traces with if DEBUG0.
30628         (m32c_function_arg): Added a type cast.
30629         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
30630         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
30631         * config/m32c/bitops.md (andqi3_16): Likewise.
30632         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
30633         (push_a01_l): Likewise.
30634
30635 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
30636
30637         PR jit/64721
30638         * main.c (main): Construct toplev instances with init_signals=true.
30639         * toplev.c (general_init): Add param "init_signals", and use it to
30640         conditionalize the calls to signal and host_hooks.extra_signals.
30641         (toplev::toplev): Add param "init_signals".
30642         (toplev::main): When invoking general_init, pass m_init_signals
30643         to control whether signal-handlers are installed.
30644         * toplev.h (toplev::toplev): Add param "init_signals".
30645         (toplev::m_init_signals): New field.
30646
30647 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
30648
30649         PR jit/64722
30650         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
30651         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
30652         latter may be affected by the former (e.g. on i686).
30653
30654 2015-01-23  Martin Liska  <mliska@suse.cz>
30655
30656         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
30657         false positive during profiledbootstrap.
30658
30659 2015-01-23  Tom de Vries  <tom@codesourcery.com>
30660
30661         PR libgomp/64672
30662         * lto-opts.c (lto_write_options): Output non-explicit conservative
30663         -fno-openacc.
30664         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
30665         (append_compiler_options): Pass -fopenacc through.
30666
30667 2015-01-23  Tom de Vries  <tom@codesourcery.com>
30668
30669         PR libgomp/64707
30670         * lto-opts.c (lto_write_options): Output non-explicit conservative
30671         -fno-openmp.
30672         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
30673         (append_compiler_options): Pass -fopenmp through.
30674
30675 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
30676
30677         PR debug/64511
30678         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
30679         GTY markup.
30680
30681         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
30682         * diagnostic.def (DK_ICE_NOBT): New kind.
30683         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
30684         like DK_ICE, but never print backtrace.
30685         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
30686         (internal_error_no_backtrace): New function.
30687         * gcc.c (execute): Use internal_error_no_backtrace instead of
30688         internal_error.
30689
30690 2015-01-22  Jeff Law  <law@redhat.com>
30691
30692         PR target/52076
30693         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
30694         improve code density for small immediate to memory case.
30695         (insv): Better handle bitfield assignments when the field is
30696         being set to all ones.
30697         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
30698         operand predicate.
30699
30700 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30701             Jakub Jelinek  <jakub@redhat.com>
30702
30703         PR middle-end/64729
30704         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
30705         for !TARGET_LIBC_PROVIDES_SSP version and
30706         -fstack-protector-{all,strong,explicit} otherwise.
30707         * config/freebsd.h (LINK_SSP_SPEC): Handle
30708         -fstack-protector-{strong,explicit}.
30709
30710 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
30711             H.J. Lu  <hongjiu.lu@intel.com>
30712
30713         PR ipa/64694
30714         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
30715         heap.
30716
30717 2015-01-22  Wei Mi  <wmi@google.com>
30718
30719         PR rtl-optimization/64557
30720         * dse.c (record_store): Call get_addr for mem_addr.
30721         (check_mem_read_rtx): Likewise.
30722
30723 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
30724
30725         * fold-const.c (const_binop): Add early return for non-tcc_binary.
30726
30727 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
30728
30729         * toplev.c (init_local_tick): Process the failure when read
30730         fails for random_seed.
30731
30732         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
30733         'pretty_name' to avoid memory overflow.
30734
30735 2015-01-22  Richard Biener  <rguenther@suse.de>
30736
30737         PR middle-end/64728
30738         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
30739         abnormal coalescing on undefined SSA names.
30740
30741 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
30742
30743         PR target/64688
30744         PR target/64477
30745         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
30746         for alternative 3.
30747         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
30748
30749 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
30750
30751         PR middle-end/63325
30752         * fold-const.c (fold_checksum_tree): Don't include value of
30753         expr->decl_with_vis.symtab_node in the checksum.
30754
30755 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30756
30757         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
30758
30759 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
30760
30761         PR driver/64690
30762         * gcc.c (insert_comments): New function.
30763         (try_generate_repro): Call it.
30764         (append_text): Removed.
30765
30766 2015-01-22  Richard Biener  <rguenther@suse.de>
30767
30768         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
30769         with IL incompatible options.  Properly honor user optimize
30770         attributes.
30771
30772 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
30773
30774         PR rtl-optimization/64682
30775         * combine.c (distribute_notes): When moving a death note for
30776         a register that is set in the new I2, make sure to put it
30777         before that new I2.
30778
30779 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
30780
30781         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
30782         not TARGET_DEFAULT.
30783
30784 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
30785
30786         PR debug/64511
30787         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
30788         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
30789         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
30790
30791         PR sanitizer/64706
30792         * doc/invoke.texi (-fsanitize=vptr): Document.
30793
30794         PR rtl-optimization/62078
30795         * dse.c: Include cfgcleanup.h.
30796         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
30797         anything call purge_all_dead_edges and cleanup_cfg at the end
30798         of the pass.
30799
30800 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
30801
30802         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
30803         edges.
30804
30805 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30806
30807         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
30808         decl attribute.
30809
30810 2015-01-21  David Sherwood  <david.sherwood@arm.com>
30811             Tejas Belagod <Tejas.Belagod@arm.com>
30812
30813         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
30814         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
30815         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
30816         Removed.
30817
30818 2015-01-21  David Sherwood  <david.sherwood@arm.com>
30819             Tejas Belagod <Tejas.Belagod@arm.com>
30820
30821         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
30822         (aarch64_reverse_mask): New decls.
30823         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
30824         (insn_count): New mode_attr.
30825         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
30826         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
30827         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
30828         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
30829         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
30830         (aarch64_simd_st4): New patterns.
30831         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
30832         (aarch64_reverse_mask): New functions.
30833
30834 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
30835
30836         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
30837         Declare.
30838         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
30839         addressing modes for BE.
30840         (aarch64_print_operand): Add 'R' specifier.
30841         (aarch64_simd_disambiguate_copy): Delete.
30842         (aarch64_simd_emit_reg_reg_move): New function.
30843         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
30844         in define_splits for structural moves.
30845         (mov<mode>): Use less restrictive predicates.
30846         (*aarch64_mov<mode>): Simplify and only allow for LE.
30847         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
30848
30849 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
30850
30851         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
30852
30853 2015-01-21  Richard Henderson  <rth@redhat.com>
30854
30855         PR target/64669
30856         * ccmp.c (used_in_cond_stmt_p): Remove.
30857         (expand_ccmp_expr): Don't use it.
30858
30859 2015-01-21  Nick Clifton  <nickc@redhat.com>
30860
30861         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
30862         PARALLELs.
30863
30864 2015-01-21  Richard Biener  <rguenther@suse.de>
30865
30866         PR middle-end/64313
30867         * tree-core.h (builtin_info, builtin_info_type): Turn from
30868         an object with two arrays into an array of an object with
30869         decl and two flags, implicit_p and declared_p.
30870         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
30871         set_builtin_decl, set_builtin_decl_implicit_p,
30872         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
30873         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
30874         * builtins.c (builtin_info): Adjust.
30875         * gimplify.c (gimplify_addr_expr): References to builtins
30876         that have been declared by the user makes them eligible for
30877         use by the compiler.  Call set_builtin_decl_implicit_p on them.
30878
30879 2015-01-20  Jeff Law  <law@redhat.com>
30880
30881         PR target/59946
30882         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
30883         allow pc-relative addresses in operand predicates or constraints.
30884
30885 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
30886
30887         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
30888         neon on aarch32 processors for stringops.
30889
30890 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
30891
30892         PR ipa/63576
30893         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
30894
30895 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
30896
30897         PR lto/45375
30898         * ipa-inline.c: Include lto-streamer.h
30899         (report_inline_failed_reason): Output source file differences and
30900         flags on optimization/target node mismatch.
30901         (can_inline_edge_p): Consider caller to be the outer inline function;
30902         be less restrictive about matching opimize and optimize_size attributes.
30903         (inline_account_function_p): Break out from ...
30904         (inline_small_functions): ... here.
30905         * ipa-inline-transform.c (clone_inlined_nodes): Use
30906         inline_account_function_p.
30907         (inline_call): Use optimize attribution; use inline_account_function_p.
30908         (inline_transform): Use opt_for_fn.
30909         * ipa-inline.h (inline_account_function_p): Declare.
30910
30911 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
30912
30913         PR debug/64663
30914         * dwarf2out.c (decl_piece_node): Don't put bitsize into
30915         mode if bitsize <= 0.
30916         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
30917         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
30918         sizes and positions.
30919
30920 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
30921
30922         * config/nios2/nios2.c (nios2_asm_file_end): Implement
30923         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
30924         needed.
30925         (TARGET_ASM_FILE_END): Define.
30926
30927 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
30928
30929         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
30930         (struct tune_params): Use the enum.
30931         * arm.c (arm_*_tune): Update.
30932         (arm_option_override): Update.
30933
30934 2015-01-20  Richard Biener  <rguenther@suse.de>
30935
30936         PR ipa/64684
30937         * ipa-reference.c (add_static_var): Inline ...
30938         (analyze_function): ... here after splitting out from ...
30939         (is_proper_for_analysis): ... this.
30940
30941 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
30942
30943         PR target/64149
30944         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
30945         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
30946         replace the conditional with it's true branch.
30947         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
30948         (arm_lra_p): Remove.
30949
30950 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
30951
30952         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
30953
30954 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
30955
30956         * config/tilegx/mul-tables.c: Move symtab.h include after
30957         coretypes.h include.
30958         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
30959         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
30960         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
30961         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
30962         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
30963
30964 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
30965
30966         PR bootstrap/64676
30967         Revert:
30968         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
30969
30970         PR rtl-optimization/64081
30971         * loop-iv.c (def_pred_latch_p): New function.
30972         (latch_dominating_def): Allow specific cases with non-single
30973         definitions.
30974         (iv_get_reaching_def): Likewise.
30975         (check_complex_exit_p): New function.
30976         (check_simple_exit): Use check_complex_exit_p to allow certain cases
30977         with exits not executing on any iteration.
30978
30979 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
30980
30981         PR lto/45375
30982         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
30983         to set branch cost.
30984
30985 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
30986
30987         PR lto/45375
30988         * i386.c (gate): Check flag_expensive_optimizations and
30989         optimize_size.
30990         (ix86_option_override_internal): Drop optimize_size condition
30991         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
30992         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
30993         MASK_PREFER_AVX128.
30994         (ix86_avx256_split_vector_move_misalign,
30995         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
30996         * sse.md (all uses of TARGET_PREFER_AVX128): Add
30997         optimize_insn_for_speed_p check.
30998
30999 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
31000
31001         * config/mips/mips.h (FP_ASM_SPEC): New define.
31002         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
31003         instead.
31004
31005 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
31006
31007         PR target/53988
31008         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
31009         nullptr for insn when reaching the first insn.
31010         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
31011         (sh_insn_operands_modified_between_p): Add nullptr check.
31012         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
31013         sign extending mem load if the insn contains any UNSPEC or
31014         UNSPEC_VOLATILE.
31015
31016 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31017
31018         * params.def (inline-unit-growth): Drop to 15%.
31019         * invoke.texi (inline-unit-growth): Document change.
31020
31021 2015-01-19  Martin Liska  <mliska@suse.cz>
31022
31023         PR ipa/64668
31024         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
31025         function for second argument of OBJ_TYPE_REF.
31026
31027 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31028
31029         PR ipa/64218
31030         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
31031         whether function is an alias.
31032
31033 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31034
31035         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
31036         cases.
31037
31038 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
31039
31040         PR rtl-optimization/64671
31041         * lra-remat.c (operand_to_remat): Don't consider jump and call
31042         insns.
31043
31044 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
31045
31046         PR target/59828
31047         * config/rs6000/default64.h: Include rs6000-cpus.def.
31048         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
31049         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
31050         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
31051         and POWER8.
31052         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
31053         POWER8.
31054         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
31055         pseudo-op to specify assembler dialect.
31056
31057 2015-01-19  Martin Liska  <mliska@suse.cz>
31058
31059         PR ipa/64664
31060         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
31061         Handle safe potentially removed nodes during filtering.
31062
31063 2015-01-19  Martin Liska  <mliska@suse.cz>
31064
31065         * doc/extend.texi (no_icf): Add new attribute description.
31066         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
31067         where the pass attempts to merge a function with no_icf attribute.
31068
31069 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31070
31071         PR target/64532
31072         * doc/md.texi (ARM Options): Document register constraints.
31073
31074 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
31075             Andrew Pinski  <apinski@cavium.com>
31076
31077         PR target/64304
31078         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
31079         (ashl<mode>3): Don't expand if operands[2] is not constant.
31080
31081 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31082
31083         PR target/64448
31084         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
31085         Match xor-and-xor RTL pattern.
31086
31087 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
31088
31089         PR rtl-optimization/64081
31090         * loop-iv.c (def_pred_latch_p): New function.
31091         (latch_dominating_def): Allow specific cases with non-single
31092         definitions.
31093         (iv_get_reaching_def): Likewise.
31094         (check_complex_exit_p): New function.
31095         (check_simple_exit): Use check_complex_exit_p to allow certain cases
31096         with exits not executing on any iteration.
31097
31098 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
31099
31100         * common.opt (fgraphite): Fix a typo.
31101
31102 2015-01-19  Felix Yang  <felix.yang@huawei.com>
31103
31104         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
31105         pattern.
31106         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
31107         uminp, smax_nanp, smin_nanp): New builtins.
31108         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
31109         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
31110         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
31111         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
31112         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
31113         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
31114         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
31115         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
31116         vpminnms_f32): Rewrite using builtin functions.
31117
31118 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
31119
31120         PR libgomp/64625
31121         * omp-low.c (offload_symbol_decl): Remove variable.
31122         (get_offload_symbol_decl): Remove function.
31123         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
31124         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
31125         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
31126         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
31127         BUILT_IN_GOACC_UPDATE don't pass it at all.
31128
31129 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
31130
31131         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
31132         callers.
31133
31134 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
31135
31136         * ipa-chkp.c (chkp_produce_thunks): Add early param
31137         to split thunks production into two passes.  Keep
31138         'always_inline' function bodies after the first pass.
31139         (pass_data_ipa_chkp_early_produce_thunks): New.
31140         (pass_ipa_chkp_early_produce_thunks): New.
31141         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
31142         chkp_produce_thunks signature.
31143         (make_pass_ipa_chkp_early_produce_thunks): New.
31144         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
31145         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
31146         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
31147
31148 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31149
31150         * cgraph.c (cgraph_node::dump): Dump profile flags.
31151
31152 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
31153
31154         PR target/64652
31155         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
31156         reg appear first in the parallel.
31157
31158 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31159
31160         * ipa-reference.c (set_reference_optimization_summary,
31161         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
31162         disabled.
31163         (ignore_module_statics): New static var.
31164         (propagate_bits): If ipa-reference is disabled, do not look into local
31165         properties.
31166         (analyze_function): Disable analysis when ipa_reference is disabled.
31167         (generate_summary): Do not dump when reference is disabled;
31168         collect vars accessed from functions with ipa-reference disabled.
31169         (get_read_write_all_from_node): When ipa-reference is disabled, use the
31170         node flags.
31171         (gate): Enable for LTO.
31172         (ignore_edge_p): New function.
31173         (propagate): Skip functions w/o ipa-reference analysis.
31174         * optc-save-gen.awk: Handle optimize_debug correctly.
31175         * opth-gen.awk: Likewise.
31176         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
31177         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
31178         fira-share-save-slots, fira-share-spill-slots,
31179         fmodulo-sched-allow-regmoves, fpartial-inlining,
31180         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
31181         ftracer, ftree-parallelize-loops, fassociative-math,
31182         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
31183         Optimization
31184         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
31185         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
31186         Optimization.
31187         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
31188         Fix for IPA.
31189
31190 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31191
31192         PR ipa/64378
31193         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
31194         flag correctly.
31195         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
31196
31197 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
31198
31199         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
31200         Remove duplicate option listings.
31201
31202 2015-01-18  Felix Yang  <felix.yang@huawei.com>
31203
31204         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
31205         (autofdo_source_profile::get_callsite_total_count,
31206         function_instance::get_function_instance_by_decl,
31207         string_table::get_index, string_table::get_index_by_decl,
31208         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
31209         Fix comment typos. Reformatting and minor code rearrangement.
31210
31211 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31212
31213         * config/rs6000/rs6000.md (probe_stack): Delete.
31214         (probe_stack_address): New.
31215
31216 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31217
31218         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
31219         to test for 32-bit ABIs, not !TARGET_POWERPC64.
31220
31221 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31222
31223         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
31224         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
31225         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
31226         snafu.
31227         (rs6000_libcall_value): Use the new function.
31228
31229 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
31230
31231         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
31232
31233 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
31234
31235         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
31236         implement a more precise life analysis for it during backward scan.
31237
31238 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
31239
31240         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
31241
31242 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
31243
31244         PR rtl-optimization/52773
31245         * calls.c (emit_library_call_value): When pushing arguments use
31246         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
31247         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
31248         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
31249
31250 2015-01-17  Jeff Law  <law@redhat.com>
31251
31252         PR rtl-optimization/32790
31253         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
31254         not ZERO_EXTEND in SET_DESTs.
31255
31256 2015-01-17  Alan Modra  <amodra@gmail.com>
31257
31258         * cprop.c (do_local_cprop): Revert last change.
31259
31260 2015-01-16  DJ Delorie  <dj@redhat.com>
31261             Nick Clifton  <nickc@redhat.com>
31262
31263         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
31264         (addhi3_real): Likewise.  Fix [HL+0] syntax.
31265         (subqi3_real): Likewise.
31266         (subhi3_real): Likewise.
31267         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
31268         (cbranchhi4_real): Likewise.
31269         (cbranchhi4_real_inverted): Likewise.
31270         (cbranchsi4_real_lt): Likewise.
31271         (cbranchsi4_real_ge): Likewise.
31272         (cbranchsi4_real_ge): Likewise.
31273         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
31274         (sub<mode>3_virt): Likewise.
31275         (cbranchqi4_virt): Likewise.
31276         (cbranchhi4_virt): Likewise.
31277         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
31278         always use '[reg+imm]' even when imm is zero.
31279         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
31280         (rl78_general_operand): New.
31281         (rl78_nonimmediate_operand): New.
31282         (rl78_nonfar_operand): Use them.
31283         (rl78_nonfar_nonimm_operand): Likewise.
31284         (rl78_stack_based_mem): Fix.
31285         * config/rl78/constraints.md (Ibqi): New.
31286         (IBqi): New.
31287         (Wsa): New.
31288         (Wsf): New.
31289         (Cs1): Fix.
31290         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
31291         (iorqi3): Likewise.
31292         (xorqi3): Likewise.
31293         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
31294
31295         * config/rl78/constrains (Qs8): New constraint.
31296         * config/rl78/rl78.c (rl78_flags_already_set): New function.
31297         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
31298         * config/rl78/rl78-real.md (update_Z): New attribute.
31299         Update patterns to set it.
31300         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
31301         shorter compare and branch sequence can be used.
31302         (cbranchhi4_real): Likewise.
31303         (cbranchhi4_real_inverted): Likewise.
31304
31305         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
31306         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
31307         address space.
31308         * config/rl78/rl78.c (rl78_get_name_encoding): New.
31309         (rl78_option_override): Allow -mes0 only if C.
31310         (characterize_address): Support subregs of symbol_refs.
31311         (rl78_addr_space_address_mode): Move.  Add __near.
31312         (rl78_far_p): Likewise.
31313         (rl78_addr_space_pointer_mode): Likewise.
31314         (rl78_as_legitimate_address): Likewise.
31315         (rl78_addr_space_subset_p): Likewise.
31316         (rl78_addr_space_convert): Likewise.
31317         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
31318         symbols with -mes0.
31319         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
31320         addressing.
31321         (rl78_alloc_physical_registers_op1): Change logic to prefer
31322         symbol[BC] addressing.
31323         (frodata_section): New.
31324         (rl78_asm_init_sections): Initialize it.
31325         (rl78_select_section): Put __far readonly symbols in .frodata.
31326         (rl78_make_type_far): New.
31327         (rl78_insert_attributes): Force all readonly symbols to be
31328         __far when -mes0.
31329         (rl78_asm_out_integer): New.
31330         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
31331         * config/rl78/rl78.opt (-mes0): New.
31332
31333         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
31334         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
31335         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
31336         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
31337         (rl78_saddr_p): New.
31338         (rl78_output_aligned_common): New.
31339         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
31340         (rl78_handle_saddr_attribute): New.
31341         (rl78_handle_naked_attribute): New.
31342         (rl78_attribute_table): Add saddr.
31343         (rl78_print_operand_1): Don't print '!' on saddr operands.
31344         (rl78_print_operand_1): Strip encodings.
31345         (rl78_sfr_p): New.
31346         (rl78_strip_name_encoding): New.
31347         (rl78_attrlist_to_encoding): New.
31348         (rl78_encode_section_info): New.
31349         (rl78_asm_init_sections): New.
31350         (rl78_select_section): New.
31351         (rl78_output_labelref): New.
31352         (rl78_output_aligned_common): New.
31353         (rl78_asm_out_integer): New.
31354         (rl78_asm_ctor_dtor): New.
31355         (rl78_asm_constructor): New.
31356         (rl78_asm_destructor): New.
31357
31358         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
31359         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
31360         (transcode_memory_rtx): Update.
31361         (rl78_expand_epilogue): Use A_REG instead of 0.
31362
31363 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31364
31365         * config/arm/arm-protos.h (struct tune_params): New field
31366         sched_autopref_queue_depth.
31367         * config/arm/arm.c (sched-int.h): Include header.
31368         (arm_first_cycle_multipass_dfa_lookahead_guard,)
31369         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
31370         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
31371         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
31372         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
31373         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
31374         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
31375         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
31376         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
31377         * config/arm/t-arm (arm.o): Update.
31378         * haifa-sched.c (update_insn_after_change): Update.
31379         (rank_for_schedule): Use auto-prefetcher model, if requested.
31380         (autopref_multipass_init): New static function.
31381         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
31382         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
31383         variable for debug dumps.
31384         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
31385         (autopref_multipass_dfa_lookahead_guard): New global function that
31386         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
31387         (init_h_i_d): Update.
31388         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
31389         * sched-int.h (enum autopref_multipass_data_status): New const enum.
31390         (autopref_multipass_data_): Structure for auto-prefetcher data.
31391         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
31392         (struct _haifa_insn_data:autopref_multipass_data): New field.
31393         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
31394         (autopref_multipass_dfa_lookahead_guard): Declare.
31395
31396 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31397
31398         * rtlanal.c (get_base_term): Handle SCRATCH.
31399
31400 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31401
31402         * config/aarch64/aarch64.c
31403         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
31404         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
31405         * config/arm/arm.c
31406         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
31407         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
31408
31409 2015-01-17  Alan Modra  <amodra@gmail.com>
31410
31411         * cprop.c (do_local_cprop): Disallow replacement of fixed
31412         hard registers.
31413
31414 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31415
31416         PR target/62066
31417         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
31418         early return 0.
31419
31420 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31421
31422         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
31423         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
31424
31425 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31426
31427         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
31428         * config/arm/thumb1.md: ... Here.
31429
31430 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31431
31432         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
31433         TImode for TARGET_32BIT.
31434
31435 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31436
31437         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
31438         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
31439         as ...
31440         (rs6000_abi_word_mode): New function.
31441
31442 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31443
31444         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
31445         instead of UNITS_PER_WORD to describe the size of stack slots.
31446
31447 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31448
31449         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
31450         as rs6000_promote_function_mode.  Move comment to there.
31451         (rs6000_promote_function_mode): New function.
31452
31453 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31454
31455         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
31456         -mpowerpc64 is active.
31457
31458 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
31459
31460         PR middle-end/64353
31461         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
31462         virtuals on start.
31463
31464 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
31465
31466         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
31467         introduced in revision 219724.
31468
31469 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31470             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31471
31472         PR target/64263
31473         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
31474         destination is not a GP reg.
31475         (*movdi_aarch64): Likewise.
31476
31477 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
31478
31479         PR target/64623
31480         * config/rs6000/default64.h: Revert ISA change.
31481
31482 2015-01-16  Richard Biener  <rguenther@suse.de>
31483
31484         PR middle-end/64614
31485         * tree-ssa-uninit.c: Include tree-cfg.h.
31486         (MAX_SWITCH_CASES): New define.
31487         (convert_control_dep_chain_into_preds): Handle switch statements.
31488         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
31489         (normalize_one_pred_1): Do not split bit-manipulations.
31490         Record (x & CST).
31491
31492 2015-01-16  Richard Biener  <rguenther@suse.de>
31493
31494         PR tree-optimization/64568
31495         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
31496         complex load rewriting for TARGET_MEM_REFs.
31497
31498 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
31499
31500         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
31501
31502 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
31503
31504         PR target/64149
31505         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
31506         variable.
31507         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
31508         (aarch64_lra_p): Remove.
31509
31510 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
31511
31512         PR target/64363
31513         * ipa-chkp.h (chkp_instrumentable_p): New.
31514         * ipa-chkp.c: Include tree-inline.h.
31515         (chkp_instrumentable_p): New.
31516         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
31517         Fix processing of not instrumentable functions.
31518         (chkp_versioning): Use chkp_instrumentable_p. Warn about
31519         not instrumentable functions.
31520         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
31521         chkp_instrumentable_p.
31522         * tree-inline.h (copy_forbidden): New.
31523         * tree-inline.c (copy_forbidden): Not static anymore.
31524
31525 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31526
31527         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
31528         ptr1, ptr2 unused.
31529
31530 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
31531
31532         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
31533         type OP_OUT to OP_INOUT.
31534
31535 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
31536
31537         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
31538         (high x) y) to y if x and y have the same base.
31539
31540 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
31541
31542         * config/arm/cortex-a57.md: New.
31543         * config/aarch64/aarch64.md: Include it.
31544         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
31545         * config/aarch64/aarch64-tune.md: Regenerate.
31546
31547 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
31548
31549         PR target/64015
31550         * ccmp.c (expand_ccmp_next): New function.
31551         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
31552         and compare insn sequence.
31553         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
31554         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
31555         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
31556         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
31557         (*ccmp_ior): Changed to ccmp_ior<mode>.
31558         (cmp<mode>): New pattern.
31559         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
31560         parameters.
31561         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
31562
31563 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
31564
31565         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
31566         _mm256_bsrli_epi128): New.
31567         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
31568
31569 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
31570
31571         * expmed.c (store_bit_field_using_insv): Improve warning message.
31572         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
31573
31574 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
31575
31576         PR rtl-optimization/64011
31577         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
31578         there is partial overflow.
31579
31580 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31581
31582         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
31583         prototype.
31584         (nds32_expand_epilogue_v3pop): Likewise.
31585         * config/nds32/nds32.md (sibcall): Define this for sibling call
31586         optimization.
31587         (sibcall_register): Likewise.
31588         (sibcall_immediate): Likewise.
31589         (sibcall_value): Likewise.
31590         (sibcall_value_register): Likewise.
31591         (sibcall_value_immediate): Likewise.
31592         (sibcall_epilogue): Likewise.
31593         (epilogue): Pass false to indicate this is not a sibcall epilogue.
31594         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
31595         (nds32_expand_epilogue_v3pop): Likewise.
31596
31597 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31598
31599         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
31600         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
31601         (return_internal): New.
31602         (return): Define this named pattern.
31603         (simple_return): Define this named pattern.
31604         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
31605         pattern instead of unspec_volatile_func_return.
31606         (nds32_expand_epilogue_v3pop): Likewise.
31607         (nds32_can_use_return_insn): New function.
31608
31609 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31610
31611         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
31612         * config/nds32/nds32.md (pop25return): New.
31613         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
31614         pop25return pattern.
31615
31616 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31617
31618         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
31619         -mforbid-fp-as-gp, and -mex9 options.
31620
31621 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31622
31623         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
31624         remove -mgp-direct option.
31625
31626 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
31627
31628         * doc/invoke.texi (--param early-inlining-insns): Update default value.
31629         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
31630
31631 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
31632
31633         * ipa-inline.c (inline_small_functions): Work around hints
31634         cache issue.
31635
31636 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
31637
31638         PR target/59710
31639         * doc/invoke.texi (Option Summary): Document new Nios II
31640         -mgpopt= syntax.
31641         (Nios II Options): Likewise.
31642         * config/nios2/nios2.opt: Add -mgpopt= option support.
31643         Modify existing -mgpopt and -mno-gpopt options to be aliases.
31644         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
31645         * config/nios2/nios2.c (nios2_option_override): Adjust
31646         -mgpopt defaulting.
31647         (nios2_in_small_data_p): Return true for explicit small data
31648         sections even with -G0.
31649         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
31650         option choices.
31651
31652 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
31653
31654         PR ipa/64612
31655         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
31656         of comdat locals.
31657         (inline_call): Fix removal of aliases.
31658
31659 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
31660
31661         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
31662         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
31663         * opts.c (common_handle_option): Add -fsanitize=vptr.
31664         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
31665         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
31666         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
31667         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
31668         (ubsan_expand_vptr_ifn): New prototype.
31669         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
31670         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
31671         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
31672         expand_LOOP_VECTORIZED): Make argument nameless, remove
31673         ATTRIBUTE_UNUSED.
31674         (expand_UBSAN_VPTR): New function.
31675         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
31676         in fn spec.
31677         (UBSAN_VPTR): New internal function.
31678         * sanopt.c (tree_map_traits): Renamed to ...
31679         (sanopt_tree_map_traits): ... this.
31680         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
31681         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
31682         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
31683         (maybe_optimize_ubsan_vptr_ifn): New function.
31684         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
31685         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
31686         -fsanitize=vptr.
31687         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
31688         internal calls like pure functions for aliasing, even when they
31689         have other side-effects that prevent making them ECF_PURE.
31690         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
31691         (ubsan_expand_vptr_ifn): New function.
31692
31693 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
31694
31695         PR rtl-optimization/64110
31696         * stmt.c (parse_output_constraint): Process '^' and '$'.
31697         (parse_input_constraint): Ditto.
31698         * lra-constraints.c (process_alt_operands): Process the new
31699         constraints.
31700         * ira-costs.c (record_reg_classes): Process the new constraint
31701         '^'.
31702         * genoutput.c (indep_constraints): Add '^' and '$'.
31703         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
31704         * doc/md.texi: Add description of the new constraints.
31705
31706 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
31707             Bernd Schmidt  <bernds@codesourcery.com>
31708             Cesar Philippidis  <cesar@codesourcery.com>
31709             James Norris  <jnorris@codesourcery.com>
31710             Tom de Vries  <tom@codesourcery.com>
31711             Ilmir Usmanov  <i.usmanov@samsung.com>
31712             Dmitry Bocharnikov  <dmitry.b@samsung.com>
31713             Evgeny Gavrin  <e.gavrin@samsung.com>
31714             Jakub Jelinek  <jakub@redhat.com>
31715
31716         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
31717         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
31718         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
31719         New function types.
31720         * builtins.c: Include "gomp-constants.h".
31721         (expand_builtin_acc_on_device): New function.
31722         (expand_builtin, is_inexpensive_builtin): Handle
31723         BUILT_IN_ACC_ON_DEVICE.
31724         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
31725         New macros.
31726         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
31727         flag_openmp.
31728         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
31729         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
31730         i386/intelmic-offload.h.
31731         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
31732         to libgomp and its dependencies.
31733         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
31734         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
31735         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
31736         * config/ia64/hpux.h (LIB_SPEC): Likewise.
31737         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
31738         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
31739         * doc/generic.texi: Update for OpenACC changes.
31740         * doc/gimple.texi: Likewise.
31741         * doc/invoke.texi: Likewise.
31742         * doc/sourcebuild.texi: Likewise.
31743         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
31744         GF_OMP_FOR_KIND_OACC_LOOP.
31745         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
31746         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
31747         GF_OMP_TARGET_KIND_OACC_UPDATE,
31748         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
31749         Dump more data.
31750         * gimple.c: Update comments for OpenACC changes.
31751         * gimple.def: Likewise.
31752         * gimple.h: Likewise.
31753         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
31754         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
31755         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
31756         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
31757         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
31758         appropriate place.
31759         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
31760         * gimplify.c: Include "gomp-constants.h".
31761         Update comments for OpenACC changes.
31762         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
31763         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
31764         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
31765         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
31766         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
31767         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
31768         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
31769         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
31770         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
31771         OMP_CLAUSE_SEQ.
31772         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
31773         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
31774         OMP_CLAUSE_SET_MAP_KIND.
31775         (gimplify_oacc_cache): New function.
31776         (gimplify_omp_for): Handle OACC_LOOP.
31777         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
31778         OACC_DATA.
31779         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
31780         OACC_EXIT_DATA, OACC_UPDATE.
31781         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
31782         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
31783         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
31784         (gimplify_body): Consider flag_openacc next to flag_openmp.
31785         * lto-streamer-out.c: Include "gomp-constants.h".
31786         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
31787         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
31788         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
31789         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
31790         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
31791         (BUILT_IN_ACC_ON_DEVICE): New builtins.
31792         * omp-low.c: Include "gomp-constants.h".
31793         Update comments for OpenACC changes.
31794         (struct omp_context): Add reduction_map, gwv_below, gwv_this
31795         members.
31796         (extract_omp_for_data, use_pointer_for_field, install_var_field)
31797         (new_omp_context, delete_omp_context, scan_sharing_clauses)
31798         (create_omp_child_function, scan_omp_for, scan_omp_target)
31799         (check_omp_nesting_restrictions, lower_reduction_clauses)
31800         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
31801         Update for OpenACC changes.
31802         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
31803         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
31804         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
31805         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
31806         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
31807         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
31808         OMP_CLAUSE_MAP_*.
31809         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
31810         Handle GF_OMP_FOR_KIND_OACC_LOOP.
31811         (expand_omp_target, lower_omp_target): Handle
31812         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
31813         GF_OMP_TARGET_KIND_OACC_UPDATE,
31814         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
31815         GF_OMP_TARGET_KIND_OACC_DATA.
31816         (pass_expand_omp::execute, execute_lower_omp)
31817         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
31818         flag_openmp.
31819         (offload_symbol_decl): New variable.
31820         (oacc_get_reduction_array_id, oacc_max_threads)
31821         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
31822         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
31823         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
31824         (oacc_gimple_assign, oacc_initialize_reduction_data)
31825         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
31826         functions.
31827         (is_targetreg_ctx): Remove function.
31828         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
31829         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
31830         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
31831         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
31832         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
31833         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
31834         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
31835         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
31836         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
31837         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
31838         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
31839         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
31840         * tree-core.h: Update comments for OpenACC changes.
31841         (enum omp_clause_map_kind): Remove.
31842         (struct tree_omp_clause): Change type of map_kind member from enum
31843         omp_clause_map_kind to unsigned char.
31844         * tree-inline.c: Update comments for OpenACC changes.
31845         * tree-nested.c: Likewise.  Include "gomp-constants.h".
31846         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
31847         (convert_tramp_reference_stmt, convert_gimple_call): Update for
31848         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
31849         OMP_CLAUSE_SET_MAP_KIND.
31850         * tree-pretty-print.c: Include "gomp-constants.h".
31851         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
31852         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
31853         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
31854         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
31855         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
31856         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
31857         instead of OMP_CLAUSE_MAP_*.
31858         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
31859         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
31860         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
31861         * tree-streamer-in.c: Include "gomp-constants.h".
31862         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
31863         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
31864         * tree-streamer-out.c: Include "gomp-constants.h".
31865         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
31866         OMP_CLAUSE_MAP_*.
31867         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
31868         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
31869         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
31870         * tree.c (omp_clause_num_ops): Update accordingly.
31871         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
31872         Likewise.
31873         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
31874         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
31875         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
31876         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
31877         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
31878         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
31879         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
31880         (OMP_CLAUSE_SET_MAP_KIND): New macro.
31881         * varpool.c (varpool_node::get_create): Consider flag_openacc next
31882         to flag_openmp.
31883         * config/i386/intelmic-offload.h: New file.
31884         * config/nvptx/offload.h: Likewise.
31885
31886 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31887
31888         * explow.h: Remove duplicate contents.
31889         * dojump.h: Likewise.
31890
31891 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
31892
31893         * arm.c (arm_xgene_tune): Add default initializer for instruction
31894         fusion.
31895
31896 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
31897
31898         PR ipa/64068
31899         PR ipa/64559
31900         * ipa.c (symbol_table::remove_unreachable_nodes):
31901         Do not put abstract origins into boundary.
31902
31903 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
31904
31905         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
31906         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
31907
31908 2015-01-15  Steve Ellcey  <sellcey@mips.com>
31909
31910         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
31911         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
31912         builtins.def, and chkp-builtins.def.
31913
31914 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
31915
31916         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
31917         ISA 2.7 (POWER8).
31918
31919 2015-01-15  Richard Biener  <rguenther@suse.de>
31920
31921         PR tree-optimization/61743
31922         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
31923         information on PHIs for some simple cases.
31924
31925 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
31926
31927         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
31928         Include xgene1.md.
31929         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
31930         * config/arm/arm-cores.def (xgene1): New entry.
31931         * config/arm/arm-tables.opt: Regenerate.
31932         * config/arm/arm-tune.md: Regenerate.
31933         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
31934
31935 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
31936
31937         * tree-if-conv.c: Include hash-map.h.
31938         (aggressive_if_conv): New variable.
31939         (fold_build_cond_expr): Add simplification of non-zero condition.
31940         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
31941         destination block is not always executed.
31942         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
31943         than two predecessors if AGGRESSIVE_IF_CONV is true.
31944         (if_convertible_stmt_p): Fix commentary.
31945         (all_preds_critical_p): New function.
31946         (has_pred_critical_p): New function.
31947         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
31948         BB can have more than two predecessors and all incoming edges can be
31949         critical.
31950         (predicate_bbs): Skip predication for loop exit block, use build2_loc
31951         to compute predicate for true edge.
31952         (find_phi_replacement_condition): Delete this function.
31953         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
31954         Allow interchange PHI arguments if EXTENDED is false.
31955         Change check that block containing reduction statement candidate
31956         is predecessor of phi-block since phi may have more than two arguments.
31957         (phi_args_hash_traits): New helper structure.
31958         (struct phi_args_hash_traits): New type.
31959         (phi_args_hash_traits::hash): New function.
31960         (phi_args_hash_traits::equal_keys): New function.
31961         (gen_phi_arg_condition): New function.
31962         (predicate_scalar_phi): Add handling of phi nodes with more than two
31963         arguments, delete COND and TRUE_BB arguments, insert body of
31964         find_phi_replacement_condition to predicate ordinary phi nodes.
31965         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
31966         delete call of find_phi_replacement_condition and invoke
31967         predicate_scalar_phi with two arguments.
31968         (insert_gimplified_predicates): Add assert that non-predicated block
31969         don't have statements to insert.
31970         (ifcvt_split_critical_edges): New function.
31971         (ifcvt_split_def_stmt): Likewise.
31972         (ifcvt_walk_pattern_tree): Likewise.
31973         (stmt_is_root_of_bool_pattern): Likewise.
31974         (ifcvt_repair_bool_pattern): Likewise.
31975         (ifcvt_local_dce): Likewise.
31976         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
31977         is copy of inner or outer loop force_vectorize field, invoke
31978         ifcvt_split_critical_edges, ifcvt_local_dce and
31979         ifcvt_repair_bool_pattern for aggressive if-conversion.
31980
31981 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
31982
31983         * config/aarch64/aarch64.md: Include xgene1.md.
31984         * config/aarch64/xgene1.md: New file.
31985
31986 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
31987
31988         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
31989         xgene1 (APM XGene-1) core definition.
31990         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
31991         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
31992         * doc/invoke.texi: Document -mcpu=xgene1.
31993
31994 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31995
31996         * dojump.h: New header file.
31997         * explow.h: Likewise.
31998         * expr.h: Remove includes.
31999         Move expmed.c prototypes to expmed.h.
32000         Move dojump.c prototypes to dojump.h.
32001         Move alias.c prototypes to alias.h.
32002         Move explow.c prototypes to explow.h.
32003         Move calls.c prototypes to calls.h.
32004         Move emit-rtl.c prototypes to emit-rtl.h.
32005         Move varasm.c prototypes to varasm.h.
32006         Move stmt.c prototypes to stmt.h.
32007         (saved_pending_stack_adjust): Move to dojump.h.
32008         (adjust_address): Move to explow.h.
32009         (adjust_address_nv): Move to emit-rtl.h.
32010         (adjust_bitfield_address): Likewise.
32011         (adjust_bitfield_address_size): Likewise.
32012         (adjust_bitfield_address_nv): Likewise.
32013         (adjust_automodify_address_nv): Likewise.
32014         * explow.c (expr_size): Move to expr.c.
32015         (int_expr_size): Likewise.
32016         (tree_expr_size): Likewise.
32017         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32018         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
32019         * genemit.c (main): Generate includes statistics.h, real.h,
32020         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
32021         stmt.h.
32022         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
32023         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
32024         explow.h, emit-rtl.h, stmt.h.
32025         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
32026         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
32027         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
32028         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
32029         emit-rtl.h, varasm.h, stmt.h.
32030         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
32031         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
32032         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
32033         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
32034         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
32035         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
32036         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
32037         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
32038         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
32039         tm.h tree.h varasm.h vec.h wide-int.h.
32040         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32041         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
32042         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
32043         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
32044         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
32045         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
32046         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
32047         * loop-iv.c: Likewise.
32048         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
32049         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
32050         statistics.h stmt.h tree.h varasm.h wide-int.h.
32051         * lra-constraints.c: Likewise.
32052         * lra-eliminations.c: Likewise.
32053         * lra-lives.c: Likewise.
32054         * lra-remat.c: Likewise.
32055         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32056         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
32057         statistics.h stmt.h tree.h varasm.h wide-int.h.
32058         * hw-doloop.c: Likewise.
32059         * ira-color.c: Likewise.
32060         * ira-emit.c: Likewise.
32061         * loop-doloop.c: Likewise.
32062         * loop-invariant.c: Likewise.
32063         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32064         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
32065         statistics.h stmt.h tree.h varasm.h wide-int.h.
32066         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
32067         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
32068         statistics.h stmt.h tree.h varasm.h wide-int.h.
32069         * combine-stack-adj.c: Likewise.
32070         * cse.c: Likewise.
32071         * ddg.c: Likewise.
32072         * ifcvt.c: Likewise.
32073         * ira-costs.c: Likewise.
32074         * jump.c: Likewise.
32075         * lra-coalesce.c: Likewise.
32076         * lra-spills.c: Likewise.
32077         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32078         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
32079         stmt.h varasm.h wide-int.h.
32080         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32081         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
32082         varasm.h.
32083         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
32084         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
32085         statistics.h stmt.h varasm.h wide-int.h.
32086         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
32087         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
32088         varasm.h wide-int.h.
32089         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
32090         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32091         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
32092         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
32093         statistics.h stmt.h.
32094         * config/tilepro/tilepro.c: Likewise.
32095         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
32096         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
32097         * config/pdp11/pdp11.c: Likewise.
32098         * config/xtensa/xtensa.c: Likewise.
32099         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
32100         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
32101         varasm.h.
32102         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32103         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
32104         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
32105         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32106         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
32107         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
32108         * rtl-chkp.c: Likewise.
32109         * tree-chkp-opt.c: Likewise.
32110         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
32111         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
32112         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
32113         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32114         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
32115         statistics.h stmt.h.
32116         * tree-vect-data-refs.c: Likewise.
32117         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
32118         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32119         rtl.h statistics.h stmt.h varasm.h.
32120         * internal-fn.c: Likewise.
32121         * ipa-icf-gimple.c: Likewise.
32122         * lto-section-out.c: Likewise.
32123         * tree-data-ref.c: Likewise.
32124         * tree-nested.c: Likewise.
32125         * tree-outof-ssa.c: Likewise.
32126         * tree-predcom.c: Likewise.
32127         * tree-pretty-print.c: Likewise.
32128         * tree-scalar-evolution.c: Likewise.
32129         * tree-ssa-strlen.c: Likewise.
32130         * tree-vect-loop.c: Likewise.
32131         * tree-vect-patterns.c: Likewise.
32132         * tree-vect-slp.c: Likewise.
32133         * tree-vect-stmts.c: Likewise.
32134         * tsan.c: Likewise.
32135         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32136         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
32137         stmt.h.
32138         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
32139         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32140         statistics.h stmt.h varasm.h.
32141         * loop-unroll.c: Likewise.
32142         * ubsan.c: Likewise.
32143         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
32144         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
32145         stmt.h varasm.h.
32146         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32147         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
32148         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
32149         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
32150         statistics.h stmt.h.
32151         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
32152         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
32153         statistics.h stmt.h varasm.h.
32154         * gimple-match-head.c: Likewise.
32155         * lto-cgraph.c: Likewise.
32156         * lto-section-in.c: Likewise.
32157         * lto-streamer-in.c: Likewise.
32158         * lto-streamer-out.c: Likewise.
32159         * tree-affine.c: Likewise.
32160         * tree-cfg.c: Likewise.
32161         * tree-cfgcleanup.c: Likewise.
32162         * tree-if-conv.c: Likewise.
32163         * tree-into-ssa.c: Likewise.
32164         * tree-ssa-alias.c: Likewise.
32165         * tree-ssa-copyrename.c: Likewise.
32166         * tree-ssa-dse.c: Likewise.
32167         * tree-ssa-forwprop.c: Likewise.
32168         * tree-ssa-live.c: Likewise.
32169         * tree-ssa-math-opts.c: Likewise.
32170         * tree-ssa-pre.c: Likewise.
32171         * tree-ssa-sccvn.c: Likewise.
32172         * tree-tailcall.c: Likewise.
32173         * tree-vect-generic.c: Likewise.
32174         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32175         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
32176         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32177         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
32178         * varasm.c: Likewise.
32179         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32180         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
32181         varasm.h.
32182         * init-regs.c: Likewise.
32183         * ira.c: Likewise.
32184         * omp-low.c: Likewise.
32185         * stack-ptr-mod.c: Likewise.
32186         * tree-ssa-reassoc.c: Likewise.
32187         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32188         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
32189         varasm.h.
32190         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32191         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
32192         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32193         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
32194         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32195         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
32196         * tree-ssa-phiopt.c: Likewise.
32197         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32198         fixed-value.h hashtab.h real.h statistics.h stmt.h.
32199         * config/fr30/fr30.c: Likewise.
32200         * config/frv/frv.c: Likewise.
32201         * expr.c: Likewise.
32202         * final.c: Likewise.
32203         * optabs.c: Likewise.
32204         * passes.c: Likewise.
32205         * simplify-rtx.c: Likewise.
32206         * stmt.c: Likewise.
32207         * toplev.c: Likewise.
32208         * var-tracking.c: Likewise.
32209         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32210         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32211         * lower-subreg.c: Likewise.
32212         * postreload-gcse.c: Likewise.
32213         * ree.c: Likewise.
32214         * reginfo.c: Likewise.
32215         * store-motion.c: Likewise.
32216         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32217         fixed-value.h hashtab.h real.h stmt.h varasm.h.
32218         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32219         fixed-value.h hashtab.h statistics.h stmt.h.
32220         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32221         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
32222         * except.c: Likewise.
32223         * explow.c: Likewise.
32224         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32225         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
32226         varasm.h.
32227         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32228         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
32229         * tree-ssa-structalias.c: Likewise.
32230         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32231         fixed-value.h insn-config.h real.h statistics.h.
32232         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32233         fixed-value.h insn-config.h real.h statistics.h stmt.h.
32234         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32235         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
32236         * cfgbuild.c: Likewise.
32237         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32238         fixed-value.h real.h rtl.h statistics.h stmt.h.
32239         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32240         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32241         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32242         fixed-value.h real.h statistics.h stmt.h.
32243         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32244         fixed-value.h real.h statistics.h stmt.h varasm.h.
32245         * cprop.c: Likewise.
32246         * modulo-sched.c: Likewise.
32247         * postreload.c: Likewise.
32248         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
32249         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
32250         statistics.h stmt.h varasm.h.
32251         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
32252         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32253         rtl.h statistics.h stmt.h varasm.h.
32254         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
32255         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
32256         varasm.h.
32257         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
32258         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
32259         varasm.h.
32260         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
32261         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
32262         varasm.h.
32263         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
32264         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32265         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32266         function.h real.h statistics.h stmt.h varasm.h.
32267         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32268         insn-config.h real.h statistics.h stmt.h.
32269         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32270         statistics.h stmt.h.
32271         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
32272         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
32273         statistics.h stmt.h varasm.h.
32274         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
32275         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
32276         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32277         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
32278         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
32279         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
32280         statistics.h stmt.h varasm.h.
32281         * ipa-polymorphic-call.c: Likewise.
32282         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
32283         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32284         statistics.h stmt.h.
32285         * config/c6x/c6x.c: Likewise.
32286         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
32287         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32288         statistics.h stmt.h varasm.h.
32289         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
32290         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
32291         stmt.h varasm.h.
32292         * ipa-split.c: Likewise.
32293         * tree-eh.c: Likewise.
32294         * tree-ssa-dce.c: Likewise.
32295         * tree-ssa-loop-niter.c: Likewise.
32296         * tree-vrp.c: Likewise.
32297         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
32298         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
32299         stmt.h.
32300         * config/nds32/nds32-fp-as-gp.c: Likewise.
32301         * config/nds32/nds32-intrinsic.c: Likewise.
32302         * config/nds32/nds32-isr.c: Likewise.
32303         * config/nds32/nds32-md-auxiliary.c: Likewise.
32304         * config/nds32/nds32-memory-manipulation.c: Likewise.
32305         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
32306         * config/nds32/nds32-predicates.c: Likewise.
32307         * config/nds32/nds32.c: Likewise.
32308         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
32309         fixed-value.h hashtab.h real.h statistics.h.
32310         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
32311         fixed-value.h hashtab.h real.h statistics.h stmt.h.
32312         * config/arm/arm.c: Likewise.
32313         * config/avr/avr.c: Likewise.
32314         * config/bfin/bfin.c: Likewise.
32315         * config/h8300/h8300.c: Likewise.
32316         * config/i386/i386.c: Likewise.
32317         * config/ia64/ia64.c: Likewise.
32318         * config/iq2000/iq2000.c: Likewise.
32319         * config/m32c/m32c.c: Likewise.
32320         * config/m32r/m32r.c: Likewise.
32321         * config/m68k/m68k.c: Likewise.
32322         * config/mcore/mcore.c: Likewise.
32323         * config/mep/mep.c: Likewise.
32324         * config/mips/mips.c: Likewise.
32325         * config/mn10300/mn10300.c: Likewise.
32326         * config/moxie/moxie.c: Likewise.
32327         * config/pa/pa.c: Likewise.
32328         * config/rl78/rl78.c: Likewise.
32329         * config/rx/rx.c: Likewise.
32330         * config/s390/s390.c: Likewise.
32331         * config/sh/sh.c: Likewise.
32332         * config/sparc/sparc.c: Likewise.
32333         * config/spu/spu.c: Likewise.
32334         * config/stormy16/stormy16.c: Likewise.
32335         * config/v850/v850.c: Likewise.
32336         * config/vax/vax.c: Likewise.
32337         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
32338         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32339         * config/msp430/msp430.c: Likewise.
32340         * predict.c: Likewise.
32341         * value-prof.c: Likewise.
32342         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
32343         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
32344         * config/microblaze/microblaze.c: Likewise.
32345         * config/nios2/nios2.c: Likewise.
32346         * config/rs6000/rs6000.c: Likewise.
32347         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32348         insn-config.h real.h rtl.h statistics.h stmt.h.
32349         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32350         insn-config.h real.h statistics.h stmt.h.
32351         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
32352         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
32353         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
32354         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32355         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
32356         fixed-value.h real.h statistics.h stmt.h.
32357         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
32358         fixed-value.h statistics.h stmt.h.
32359         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
32360         stmt.h.
32361
32362 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
32363
32364         * gengtype.c (create_user_defined_type): Workaround
32365         -Wmaybe-uninitialized false positives.
32366         * cse.c (fold_rtx): Likewise.
32367         * loop-invariant.c (gain_for_invariant): Likewise.
32368
32369 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
32370
32371         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
32372         set the memory attributes in all cases but clear MEM_EXPR if need be.
32373
32374 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
32375
32376         PR tree-optimization/64434
32377         * cfgexpand.c (reorder_operands): New function.
32378         (expand_gimple_basic_block): Insert call of reorder_operands if
32379         optimized is true.
32380
32381 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
32382
32383         * config/mips/micromips.md (*swp): Remove explicit parallel.
32384         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
32385         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
32386         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
32387         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
32388         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
32389         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
32390         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
32391         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
32392         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
32393         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
32394         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
32395         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
32396         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
32397         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
32398         (mips_wrdsp): Likewise.
32399         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
32400         parallel.
32401         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
32402         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
32403         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
32404         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
32405         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
32406         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
32407         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
32408         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
32409         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
32410
32411 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32412
32413         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
32414         (mips_print_operand): Support 'y' to print exact log2 in decimal
32415         of a const_int.
32416         * config/mips/mips.h (ISA_HAS_LSA): New define.
32417         (ISA_HAS_DLSA): Likewise.
32418         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
32419         * config/mips/predicates.md (const_immlsa_operand): New predicate.
32420
32421 2015-01-15  Martin Liska  <mliska@suse.cz>
32422
32423         PR target/64377
32424         * optc-save-gen.awk: Add support for array types.
32425
32426 2015-01-15  Richard Biener  <rguenther@suse.de>
32427
32428         PR middle-end/64365
32429         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
32430         for MEM_REF access functions with the same base can never partially
32431         overlap.
32432
32433 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
32434
32435         * common.opt: New option -fstack-protector-explicit.
32436         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
32437         (stack_protect_decl_phase): Handle stack_protect attribute for
32438         explicit stack protection requests.
32439         (expand_used_vars): Similarly.
32440         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
32441         * doc/extend.texi: Add documentation for "stack_protect" attribute.
32442         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
32443
32444 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
32445
32446         PR target/53988
32447         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
32448         reg-reg copies.
32449         (sh_extending_set_of_reg): New struct.
32450         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
32451         sh_remove_reg_dead_or_unused_notes): New Declarations.
32452         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
32453         sh_find_extending_set_of_reg, sh_split_tst_subregs,
32454         sh_extending_set_of_reg::use_as_extended_reg): New functions.
32455         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
32456         convert to insn_and_split and use new function sh_split_tst_subregs.
32457
32458 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
32459
32460         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
32461         option.
32462         (Optimization Options): Move -fuse-ld documentation to...
32463         (Link Options): ...here.
32464
32465 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32466
32467         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
32468         offsets.
32469         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
32470         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
32471         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
32472         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
32473         instead of ZR for the memory operand of LL/SC.
32474         (compare_and_swap_12, sync_add<mode>): Likewise.
32475         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
32476         (sync_new_<optab>_12, sync_nand_12): Likewise.
32477         (sync_old_nand_12, sync_new_nand_12): Likewise.
32478         (sync_sub<mode>, sync_old_add<mode>): Likewise.
32479         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
32480         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
32481         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
32482         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
32483         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
32484         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
32485         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
32486         * doc/md.texi (ZC): Update description.
32487
32488 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
32489
32490         * builtins.c (expand_builtin_atomic_exchange): Remove error when
32491         memory model is CONSUME.
32492         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
32493         expand_builtin_atomic_store): Change invalid memory model errors to
32494         warnings.
32495         (expand_builtin_atomic_clear): Change invalid model errors to warnings
32496         and issue warning for CONSUME.
32497
32498 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
32499
32500         * lto-cgraph: Update function comments for
32501         lto_symtab_encoder_encode_*.
32502
32503 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
32504
32505         * Makefile.in (site.exp): Do not set ENABLE_LTO.
32506
32507 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
32508
32509         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
32510         * lto-cgraph.c (select_what_to_stream): Remove argument, use
32511         lto_stream_offload_p instead.
32512         * lto-streamer.h (select_what_to_stream): Remove argument.
32513         * passes.c (ipa_write_summaries): Likewise.
32514         * tree-pass.h (ipa_write_summaries): Likewise.
32515
32516 2015-01-14  Richard Biener  <rguenther@suse.de>
32517
32518         PR tree-optimization/59354
32519         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
32520         groups larger than the slp group size as having gaps.
32521
32522 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
32523
32524         PR middle-end/59448
32525         * builtins.c (get_memmodel): Promote consume to acquire always.
32526
32527 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
32528
32529         PR target/64386
32530         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
32531         V32HImode.
32532
32533 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
32534
32535         PR target/64393
32536         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
32537         Enable AVX512BW.
32538         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
32539         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
32540         AVX512VBMI, as it implies AVX512BW.
32541
32542 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
32543
32544         PR target/64387
32545         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
32546         (vec_unpacks_hi_v16sf): Ditto.
32547
32548 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32549
32550         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
32551         is not available.
32552
32553 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32554
32555         * doc/invoke.texi (mapcs): Mention deprecation.
32556         (mapcs-frame): Likewise.
32557
32558 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32559
32560         PR target/64453
32561         * config/arm/arm.c (callee_saved_reg_p): Define.
32562         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
32563         register is callee saved instead of !call_used_regs[reg].
32564         (thumb1_compute_save_reg_mask): Likewise.
32565
32566 2015-01-14  Hale Wang  <hale.wang@arm.com>
32567
32568         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
32569         Cortex-M7.
32570
32571 2015-01-14  Richard Biener  <rguenther@suse.de>
32572
32573         PR lto/64415
32574         * tree-inline.c (insert_debug_decl_map): Check destination
32575         function MAY_HAVE_DEBUG_STMTS.
32576         (insert_init_debug_bind): Likewise.
32577         (insert_init_stmt): Remove redundant check.
32578         (remap_gimple_stmt): Drop debug stmts if the destination
32579         function has var-tracking assignments disabled.
32580
32581 2015-01-14  Martin Liska  <mliska@suse.cz>
32582
32583         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
32584         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
32585
32586 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32587
32588         PR target/64460
32589         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
32590         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
32591
32592 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32593
32594         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
32595         level from an ARCH; do not inject the default.
32596         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
32597         MIPS_ISA_LEVEL_SPEC.
32598         (MIPS_ISA_NAN2008_SPEC): Update comment.
32599         (BASE_DRIVER_SELF_SPECS): Likewise.
32600         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
32601         MIPS_DEFAULT_ISA_LEVEL_SPEC.
32602         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
32603         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
32604         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
32605
32606 2015-01-14  Richard Biener  <rguenther@suse.de>
32607
32608         PR tree-optimization/64493
32609         PR tree-optimization/64495
32610         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
32611         assign the proper vectorized PHI to the inner loop exit PHIs.
32612
32613 2015-01-14  Joey Ye  <joey.ye@arm.com>
32614
32615         * config/arm/arm.c (arm_compute_save_reg_mask):
32616         Do not save lr in case of tail call.
32617         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
32618
32619 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
32620
32621         * tree-vrp.c (check_array_ref): Emit more warnings
32622         for warn_array_bounds >= 2.
32623         * common.opt: New option -Warray-bounds=.
32624         * doc/invoke.texi: Document -Warray-bounds=.
32625
32626 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
32627
32628         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
32629         (mforbid-fp-as-gp): Remove.
32630         (mex9): Remove.
32631         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
32632         (nds32_symbol_load_store_p): Remove.
32633         (nds32_fp_as_gp_check_available): Clean up implementation.
32634         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
32635         cases.
32636         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
32637         fp-as-gp and ex9 cases.
32638
32639 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
32640
32641         * tree-profile.c (init_ic_make_global_vars): Drop workaround
32642         for bintuils bug 14342.
32643         (init_ic_make_global_vars): Likewise.
32644         (gimple_init_edge_profiler): Likewise.
32645         (gimple_gen_ic_func_profiler): Likewise.
32646
32647 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
32648
32649         * ipa-inline.c (inline_small_functions): Swap the operands in
32650         enum.
32651
32652 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
32653
32654         PR ipa/64481
32655         * ipa-inline-analysis.c (node_growth_cache): Remove.
32656         (initialize_growth_caches): Do not initialize it.
32657         (free_growth_caches): Do not free it.
32658         (do_estimate_growth): Rename to ...
32659         (estimate_growth): ... this one; drop growth cache code.
32660         (growth_likely_positive): Always go the heuristics way.
32661         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
32662         (reset_edge_caches): Do not reset node growth.
32663         (heap_edge_removal_hook): Do not maintain cache.
32664         (inline_small_functions): Likewise; strenghten sanity check.
32665         (ipa_inline): Do not maintain caches.
32666         * ipa-inline.h (node_growth_cache): Remove.
32667         (do_estimate_growth): Remove to ...
32668         (estimate_growth): this one; remove inline version.
32669         (reset_node_growth_cache): Remove.
32670
32671 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
32672
32673         PR ipa/64565
32674         * ipa-inline.c (inline_small_functions): Update callee keys after
32675         resolving speculation
32676         (inline_small_functions): Always check monotonicity of the queue.
32677
32678 2015-01-13  Marek Polacek  <polacek@redhat.com>
32679
32680         PR middle-end/64391
32681         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
32682
32683 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
32684
32685         PR rtl-optimization/64286
32686         * ree.c (combine_reaching_defs): Move part of comment earlier,
32687         remove !SCALAR_INT_MODE_P check.
32688         (add_removable_extension): Don't add vector mode
32689         extensions if all uses of the source register aren't the same
32690         vector extensions.
32691
32692 2015-01-13  Renlin Li  <renlin.li@arm.com>
32693
32694         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
32695         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
32696
32697 2015-01-13  Martin Liska  <mliska@suse.cz>
32698
32699         * ipa-icf.c (sem_function::equals_private): Call new functions
32700         cl_target_option_print_diff and cl_optimization_print_diff.
32701         * optc-save-gen.awk (cl_target_option_print_diff): New function.
32702         (cl_optimization_print_diff): Likewise.
32703         * opth-gen.awk: Likewise.
32704
32705 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
32706
32707         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
32708         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
32709         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
32710         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
32711         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
32712         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
32713
32714 2015-01-13  Andrew Pinski  <apinski@cavium.com>
32715
32716         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
32717         instead of src mode.
32718
32719 2015-01-13  Richard Biener  <rguenther@suse.de>
32720
32721         PR lto/64373
32722         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
32723         DECL_CONTEXT.
32724
32725 2015-01-13  Andrew Pinski  <apinski@cavium.com>
32726
32727         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
32728         volatile mems.
32729         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
32730
32731 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
32732
32733         PR middle-end/63974
32734         * cfgexpand.c (expand_computed_goto): Don't call
32735         convert_memory_address here.
32736
32737 2015-01-13  Richard Biener  <rguenther@suse.de>
32738
32739         PR tree-optimization/64406
32740         * tree-loop-distibution.c (pass_loop_distribution::execute):
32741         Reset the SCEV hashtable if we distributed anything.
32742
32743 2015-01-13  Richard Biener  <rguenther@suse.de>
32744
32745         PR tree-optimization/64404
32746         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
32747         SLP types for CSEd loads.
32748
32749 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32750
32751         PR tree-optimization/64436
32752         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
32753         merge of two symbolic numbers for a bitwise OR to ...
32754         (perform_symbolic_merge): This. Also fix computation of the range and
32755         end of the symbolic number corresponding to the result of a bitwise OR.
32756
32757 2015-01-13  Richard Biener  <rguenther@suse.de>
32758
32759         PR tree-optimization/64568
32760         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
32761         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
32762
32763 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
32764
32765         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
32766         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
32767
32768 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
32769
32770         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
32771         target-specific symbol_ref flag.
32772         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
32773         resides in rodata section.
32774         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
32775         (nds32_encode_section_info): New function.
32776
32777 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
32778
32779         * config/nds32/nds32.md (call): Use pseudo instruction bal which
32780         clobbers TA_REGNUM if large code model is specified.
32781         (call_register): Likewise.
32782         (call_immediate): Likewise.
32783         (call_value): Likewise.
32784         (call_value_register): Likewise.
32785         (call_value_immediate): Likewise.
32786
32787 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
32788
32789         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
32790         (TARGET_CMODEL_MEDIUM): New macro.
32791         (TARGET_CMODEL_LARGE): New macro.
32792         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
32793         code model setting in assembly code.
32794
32795 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
32796
32797         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
32798         Remove MASK_GP_DIRECT flag.
32799         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
32800         one of the multilib default options.
32801         * config/nds32/nds32.opt (mgp-direct): Remove.
32802         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
32803         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
32804
32805 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
32806
32807         * config/nds32/nds32.opt (mcmodel): Add new option.
32808         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
32809         to describe code model.
32810
32811 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
32812
32813         PR target/64479
32814         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
32815
32816 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
32817
32818         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
32819         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
32820         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
32821         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
32822         __builtin_sh_set_fpscr.
32823
32824 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
32825
32826         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
32827         after a funtion name just to indicate it is a function.
32828         ([-fsanitize-undefined-trap-on-error]): Likewise.
32829         ([-fdbg-cnt=]): Likewise.
32830         ([-mmemcpy]): Likewise.
32831         ([-mflush-func]): Likewise.
32832         ([-msynci]): Likewise.
32833
32834 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
32835
32836         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
32837         example.
32838
32839 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
32840
32841         PR tree-optimization/64563
32842         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
32843         instead of != VR_VARYING.
32844
32845         PR target/64513
32846         * config/i386/i386.c (ix86_expand_prologue): Add
32847         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
32848
32849         PR tree-optimization/64454
32850         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
32851         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
32852         for signed or [0, op1 - 1] for unsigned modulo.
32853         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
32854         even if op1 does not satisfy integer_pow2p.
32855
32856         PR other/64370
32857         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
32858
32859 2015-01-12  Jeff Law  <law@redhat.com>
32860
32861         PR target/64461
32862         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
32863         (trunchiqi2, truncsihi2): Similarly.
32864
32865         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
32866         rather than calling F.
32867
32868 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32869
32870         * tsan.c (instrument_expr): Use force_gimple_operand.
32871         Use may_be_nonaddressable_p instead of is_gimple_addressable.
32872
32873 2015-01-12  Richard Biener  <rguenther@suse.de>
32874
32875         PR tree-optimization/64530
32876         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
32877         back dr1.
32878
32879 2015-01-12  Richard Biener  <rguenther@suse.de>
32880
32881         PR middle-end/64357
32882         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
32883         latches properly.
32884
32885 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32886
32887         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
32888         Cortex-A17 tuning parameters.
32889         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
32890
32891 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32892
32893         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
32894         * config/arm/arm.c (arm_macro_fusion_p): New function.
32895         (arm_macro_fusion_pair_p): Likewise.
32896         (TARGET_SCHED_MACRO_FUSION_P): Define.
32897         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
32898         (ARM_FUSE_NOTHING): Likewise.
32899         (ARM_FUSE_MOVW_MOVT): Likewise.
32900         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
32901         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
32902         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
32903         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
32904         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
32905         arm_cortex_a5_tune): Specify fuseable_ops value.
32906
32907 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
32908
32909         PR bootstrap/64561
32910         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
32911         test for PIE with copy reloc.
32912         * configure: Regenerated.
32913
32914 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32915
32916         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
32917         in gen_rtx_REG.
32918         (arm_tls_descseq_addr): Likewise.
32919         (arm_gen_movmemqi): Likewise.
32920         (arm_expand_epilogue_apcs_frame): Likewise.
32921         (arm_expand_epilogue): Likewise.
32922         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
32923         in gen_rtx_REG.
32924
32925 2015-01-12  Martin Liska  <mliska@suse.cz>
32926
32927         PR ipa/64550
32928         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
32929         volatility for correct operands.
32930
32931 2015-01-12  Martin Liska  <mliska@suse.cz>
32932
32933         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
32934         indication that a function is not leaf.
32935         (sem_function::compare_polymorphic_p): Likewise.
32936
32937 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32938
32939         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
32940         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
32941         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
32942         fold-const.h, tree-check.h.
32943
32944 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
32945
32946         PR ipa/63967
32947         PR ipa/64425
32948         * ipa-inline.c (compute_uninlined_call_time,
32949         compute_inlined_call_time): Use counts for extra precision when
32950         needed possible.
32951         (big_speedup_p): Fix formating.
32952         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
32953         (relative_time_benefit): Remove.
32954         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
32955         merge guessed and read profile paths.
32956         (inline_small_functions): Count only !optimize_size functions into
32957         initial size; be more lax about sanity check when profile is used;
32958         be sure to update inlined function profile when profile is read.
32959
32960 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
32961
32962         PR ipa/63470
32963         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
32964         cost when edge becomes direct.
32965         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
32966         is resolved or when introducing new speculation.
32967
32968 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
32969
32970         PR ipa/64551
32971         PR ipa/64552
32972         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
32973         '||' to fix typo issue.
32974
32975         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
32976         accept and return NULL.
32977
32978 2015-01-12  Martin Liska  <mliska@suse.cz>
32979
32980         * cgraph.c (cgraph_edge::remove_callee): Move function to header
32981         file for being inlined.
32982         (cgraph_set_edge_callee): Delete.
32983         (cgraph_edge::redirect_callee): Move function to header file
32984         for being inlined.
32985         (cgraph_edge::make_direct): Use new function.
32986         (cgraph_edge::dump_edge_flags): New function created from
32987         static dump_edge_flags function.
32988         (cgraph_node::dump): Use new function.
32989         (cgraph_edge::verify_count_and_frequency): New function created
32990         from verify_edge_count_and_frequency.
32991         (cgraph_edge::verify_corresponds_to_fndecl): New function created
32992         from verify_edge_corresponds_to_fndecl.
32993         (verify_edge_corresponds_to_fndecl): Delete.
32994         (cgraph_node::verify_node): Use new function.
32995         * cgraph.h (cgraph_edge::set_callee): New function.
32996         (cgraph_edge::dump_edge_flags): Likewise.
32997         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
32998
32999 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
33000
33001         * ipa-utils.c (estimate_function_body_sizes): Do not
33002         free node params when called late with early=true.
33003
33004 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
33005
33006         * doc/md.texi (Instruction Patterns): Rewrite text for
33007         clarity.
33008         (Example): Likewise.
33009
33010 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
33011
33012         * doc/invoke.texi (Option Summary): Break long lines.
33013         [(-fdiagnostics-color)]: Put long literal in @smallexample
33014         instead of inline.
33015         [(-fsanitize-recover)]: Likewise.
33016         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
33017         [(-ffast-math)]: Likewise.
33018         [(--param max-inline-insns-recursive)]: Likewise.
33019         [(--param max-inline-recursive-depth)]: Likewise.
33020         [(-mno-text-section-literals)]: Likewise.
33021
33022 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
33023
33024         * doc/install.texi: Update for libgomp being renamed from "GNU
33025         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
33026         Runtime Library".
33027         * doc/sourcebuild.texi: Likewise.
33028
33029 2015-01-10  Anthony Green  <green@moxielogic.com>
33030
33031         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
33032         mul.x availability for moxiebox configuration.
33033
33034 2015-01-09  Anthony Green  <green@moxielogic.com>
33035
33036         * config/moxie/moxie.md: Tabify assembly output.
33037
33038 2015-01-09  Anthony Green  <green@moxielogic.com>
33039
33040         * config/moxie/moxie.md (CC_REG): Correct register definition.
33041
33042 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
33043
33044         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
33045         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
33046         of log files.
33047
33048 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33049
33050         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
33051
33052 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
33053             Jakub Jelinek  <jakub@redhat.com>
33054
33055         PR middle-end/64412
33056         * lto-streamer.h (lto_stream_offload_p): New declaration.
33057         * lto-streamer.c (lto_stream_offload_p): New variable.
33058         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
33059         at the same time as section_name_prefix.
33060         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
33061         if lto_stream_offload_p.
33062         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
33063         stream TREE_TARGET_OPTION if lto_stream_offload_p.
33064         (write_ts_function_decl_tree_pointers): Don't
33065         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
33066         * tree-streamer-in.c (unpack_value_fields): Don't stream
33067         TREE_TARGET_OPTION in if ACCEL_COMPILER.
33068         (lto_input_ts_function_decl_tree_pointers): Don't stream
33069         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
33070         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
33071         instead of section_name_prefix string comparisons.
33072
33073 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
33074
33075         PR rtl-optimization/64536
33076         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
33077         tablejumps.
33078
33079 2015-01-09  Michael Collison  <michael.collison@linaro.org>
33080
33081         PR tree-optimization/64322
33082         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
33083         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
33084
33085 2015-01-09  Tom de Vries  <tom@codesourcery.com>
33086
33087         PR rtl-optimization/64539
33088         * regcprop.c (kill_clobbered_values): Factor out of ...
33089         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
33090         instead of note_stores with kill_clobbered_value.
33091
33092 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33093
33094          * ginclude/unwind-arm-common.h: Revert previous commit.
33095
33096 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33097
33098         * config.gcc (arm*-*-freebsd*): New configuration.
33099         * config/arm/freebsd.h: New file.
33100         * config.host: Add extra components for arm*-*-freebsd*.
33101         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
33102         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
33103
33104 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33105
33106         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
33107         for -mcpu=e6500.
33108         * config/rs6000/t-rtems: Add e6500 multilibs.
33109
33110 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33111
33112         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
33113         MPC8540.
33114
33115 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33116
33117         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
33118         MULTILIB_EXCEPTIONS.
33119
33120 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33121
33122         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
33123         MULTILIB_EXCEPTIONS.
33124
33125 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33126
33127         * config/arm/t-rtems-eabi: Rename to...
33128         * config/arm/t-rtems: ...this.
33129         * config/arm/rtems-eabi.h: Rename to...
33130         * config/arm/rtems.h: ...this.
33131         * config.gcc (arm*-*-rtems*): Reflect changes above.
33132
33133 2015-01-09  Richard Biener  <rguenther@suse.de>
33134
33135         PR tree-optimization/64410
33136         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
33137         on the LHS.
33138         (execute_update_addresses_taken): Deal with that.
33139         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
33140         loads/stores for complex variables.
33141
33142 2015-01-09  Martin Liska  <mliska@suse.cz>
33143
33144         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
33145         name comparison.
33146         (func_checker::compare_memory_operand): New function.
33147         (func_checker::compare_operand): Split case to newly
33148         added functions.
33149         (func_checker::compare_cst_or_decl): New function.
33150         (func_checker::compare_gimple_call): Identify
33151         memory operands.
33152         (func_checker::compare_gimple_assign): Likewise.
33153         * ipa-icf-gimple.h: New function.
33154
33155 2015-01-09  Martin Liska  <mliska@suse.cz>
33156
33157         PR ipa/64503
33158         * sreal.c (sreal::dump): Change unsigned format to signed for
33159         m_exp value.
33160         (sreal::to_double): Replace exp2 with scalbln.
33161
33162 2015-01-09  Martin Liska  <mliska@suse.cz>
33163
33164         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
33165         * ipa-icf.c (sem_function::equals_private): Add support for target and
33166         (sem_item_optimizer::merge_classes): Remove redundant function
33167         optimization flags comparison.
33168         * tree.h (target_opts_for_fn): New function.
33169
33170 2015-01-09  Tom de Vries  <tom@codesourcery.com>
33171
33172         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
33173
33174 2015-01-09  Kito Cheng  <kito@0xlab.org>
33175
33176         PR rtl-optimization/64348
33177         * lra-constraints.c (split_reg): Fix caller-save store/restore
33178         instruction generation.
33179
33180 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
33181
33182         PR gcov-profile/61790
33183         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
33184         long long.  Fallback to int64_t if host doesn't have long long and
33185         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
33186
33187 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33188
33189         PR tree-optimization/63989
33190         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
33191         from 1000 to 10000.
33192         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
33193         (get_stridx): If we don't have a record for certain SSA_NAME,
33194         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
33195         constant offset, call get_stridx_plus_constant.
33196         (get_stridx_plus_constant): New function.
33197         (zero_length_string): Don't use get_stridx here.
33198
33199         PR target/55023
33200         PR middle-end/64388
33201         * dse.c (struct insn_info): Mention frame_read set also
33202         before reload for tail calls on some targets.
33203         (scan_insn): Revert 2014-12-22 change.  Set frame_read
33204         also before reload for tail calls if
33205         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
33206         instead of add_non_frame_wild_read for non-const/memset
33207         tail calls after reload.
33208
33209 2015-01-08  Jason Merrill  <jason@redhat.com>
33210
33211         * ubsan.c (do_ubsan_in_current_function): New.
33212         (pass_ubsan::gate): Use it.
33213         * ubsan.h: Declare it.
33214         * convert.c (convert_to_integer): Use it.
33215
33216 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33217
33218         PR target/64338
33219         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
33220         compare_code when it is unconditionally overwritten afterwards.
33221         Use ix86_reverse_condition instead of reverse_condition.  Don't
33222         change code if *reverse_condition* returned UNKNOWN and don't
33223         swap ct/cf and negate diff in that case.
33224
33225 2015-01-08  Mike Stump  <mikestump@comcast.net>
33226
33227         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
33228         (pass_tsan_O0::gate): Likewise.
33229         * extend.texi (Function Attributes): Add no_sanitize_thread
33230         documentation.
33231
33232 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
33233
33234         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
33235         for registering builtins.
33236         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
33237         add -fopenmp to the argv_obstack used when invoking
33238         compile_for_target.
33239
33240         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
33241         add "-m32" or "-m64" to argv_obstack.
33242         (generate_host_descr_file): Likewise, when invoking host_compiler.
33243         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
33244         ld.
33245
33246 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
33247
33248         * config/sh/sh-mem.cc: Use constant as second operand when emitting
33249         tstsi_t insns.
33250
33251 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
33252
33253         PR target/55212
33254         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
33255         constant load if constant operand fits into I08.
33256
33257 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33258
33259         PR sanitizer/64336
33260         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
33261         and TREE_THIS_VOLATILE for MEM_REFs.
33262         (build5_stat): Fix up initialization of TREE_READONLY and
33263         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
33264
33265 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
33266
33267         PR target/64533
33268         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
33269         of r for the second alternative of the destination operand.
33270
33271 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
33272
33273         PR target/36557
33274         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
33275
33276 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
33277
33278         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
33279         keywords.
33280         ([-fivar-visibility], [-fvisibility]): Likewise.
33281
33282 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
33283
33284         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
33285         the file where @code, @command, etc is more appropriate.
33286
33287 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
33288
33289         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
33290         of -mrecip= documentation.
33291
33292 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
33293
33294         PR target/64505
33295         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
33296         correct reload handler if -m32 -mpowerpc64 is used.
33297
33298 2015-01-06  Tom de Vries  <tom@codesourcery.com>
33299
33300         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
33301
33302 2015-01-08  Christian Bruel  <christian.bruel@st.com>
33303
33304         PR target/64507
33305         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
33306
33307 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33308
33309         PR tree-optimization/63259
33310         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
33311         if optab exists for 16bit byteswap.
33312
33313 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
33314
33315         * opts.c (common_handle_option): Add support for
33316         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
33317         * doc/invoke.texi: Document -fno-sanitize=all,
33318         -f{,no-}sanitize-recover=all.  Document that
33319         -fsanitize=float-cast-overflow is not enabled
33320         by -fsanitize=undefined.  Fix up documentation
33321         of -f{,no-}sanitize-recover.
33322
33323 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
33324
33325         * config.gcc: Add Visium support.
33326         * configure.ac: Likewise.
33327         * configure: Regenerate.
33328         * doc/extend.texi (interrupt attribute): Add Visium.
33329         * doc/invoke.texi: Document Visium options.
33330         * doc/install.texi: Document Visium target.
33331         * doc/md.texi: Document Visium constraints.
33332         * common/config/visium: New directory.
33333         * config/visium: Likewise.
33334
33335 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
33336
33337         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
33338         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
33339
33340 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
33341
33342         * combine.c (combine_validate_cost): Do not count the cost of a
33343         split I2 twice.  Do not display it twice in the dump, either.
33344
33345 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
33346
33347         Revert parts of r219199.
33348         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
33349         <inttypes.h>.
33350         ([-Wtraditional]): Restore markup on <limits.h>.
33351
33352 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
33353
33354         PR c++/31397
33355         * doc/invoke.texi: Document -Wsuggest-override.
33356
33357 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
33358
33359         PR rtl-optimization/64287
33360         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
33361         (process_options): Disable flag_ipa_ra if profiling.
33362
33363 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
33364
33365         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
33366
33367 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
33368
33369         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
33370         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
33371         put under #if TARGET_LOOPS guard.
33372
33373 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
33374
33375         * config/i386/i386.c (output_387_binary_op): Use std::swap.
33376
33377 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
33378
33379         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
33380         * rtl.h (refers_to_regno_p): Add overload.
33381         * cse.c: Use it.
33382         * bt-load.c: Likewise.
33383         * combine.c: Likewise.
33384         * df-scan.c: Likewise.
33385         * sched-deps.c: Likewise.
33386         * config/s390/s390.c: Likewise.
33387         * config/m32r/m32r.c: Likewise.
33388         * config/rs6000/spe.md: Likewise.
33389         * config/rs6000/rs6000.c: Likewise.
33390         * config/pa/pa.c: Likewise.
33391         * config/stormy16/stormy16.c: Likewise.
33392         * config/cris/cris.c: Likewise.
33393         * config/arc/arc.md: Likewise.
33394         * config/arc/arc.c: Likewise.
33395         * config/sh/sh.md: Likewise.
33396         * config/sh/sh.c: Likewise.
33397         * config/frv/frv.c: Likewise.
33398
33399 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33400
33401         PR sanitizer/64265
33402         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
33403         call as cleanup of the whole body.
33404         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
33405         * tsan.c (replace_func_exit): New function.
33406         (instrument_func_exit): Moved earlier.
33407         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
33408         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
33409         been found.
33410         (tsan_pass): Don't call instrument_func_exit.
33411         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
33412         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
33413         inlining.
33414
33415         PR sanitizer/64344
33416         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
33417         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
33418         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
33419         if the result is integer_zerop, return NULL_TREE.
33420         * convert.c (convert_to_integer): Pass expr as ARG.
33421
33422         PR tree-optimization/64465
33423         * tree-inline.c (redirect_all_calls): During inlining
33424         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
33425         changed the stmt to a non-throwing call.
33426
33427 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
33428
33429         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
33430         etc markup throughout the file.
33431
33432 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33433
33434         Enable experimental TSAN support for Ada.
33435         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
33436
33437 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33438
33439         PR tree-optimization/64494
33440         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
33441         clear SSA_NAME_ANTI_RANGE_P flag.
33442
33443 2015-01-05  Marek Polacek  <polacek@redhat.com>
33444
33445         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
33446
33447 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33448
33449         Update copyright years.
33450
33451         * gcc.c (process_command): Update copyright notice dates.
33452         * gcov-dump.c: Ditto.
33453         * gcov.c: Ditto.
33454         * doc/cpp.texi: Bump @copying's copyright year.
33455         * doc/cppinternals.texi: Ditto.
33456         * doc/gcc.texi: Ditto.
33457         * doc/gccint.texi: Ditto.
33458         * doc/gcov.texi: Ditto.
33459         * doc/install.texi: Ditto.
33460         * doc/invoke.texi: Ditto.
33461
33462         * auto-profile.c, auto-profile.h: Fix up Copyright line.
33463
33464 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
33465
33466         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
33467         verb tense, etc.
33468         ([-fvtable-verify], [-fvtv-debug]): Likewise.
33469         ([-Wabi]): Likewise.
33470         ([-fmessage-length]): Likewise.
33471         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
33472         ([-Wno-discarded-qualifiers]): Likewise.
33473         ([-Wnodiscarded-array-qualifiers]): Likewise.
33474         ([-Wno-virtual-move-assign]): Likewise.
33475         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
33476         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
33477         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
33478         ([-fsanitize-undefined-trap-on-error]): Likewise.
33479         ([-floop-interchange]): Likewise.
33480         ([-ftree-coalesce-inlined-vars]): Likewise.
33481         ([-fvect-cost-model]): Likewise.
33482         ([-flto]): Likewise.
33483         ([--param]): Likewise.
33484         (Spec Files): Likewise.
33485         ([-mstrict-align]): Likewise.
33486         ([-mfix-cortex-a53-835769]): Likewise.
33487         ([-march], [-mtune]): Likewise.
33488         ([-mpic-register]): Likewise.
33489         ([-munaligned-access]): Likewise.
33490         ([-msp8]): Likewise.
33491         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
33492         (AVR Built-in Macros): Likewise.
33493         ([-mpreferred-stack-boundary]): Likewise.
33494         ([-mtune-crtl]): Likewise.
33495         ([-mashf]): Likewise.
33496         ([-mmcu=]): Likewise.
33497         ([-minrt]): Likewise.
33498         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
33499         ([-mupper-regs]): Likewise.
33500         ([-matomic-model]): Likewise.
33501         ([-mdiv]): Likewise.
33502         ([-mzdcbranch]): Likewise.
33503         ([-mdisable-callt]): Likewise.
33504         ([-msoft-float]): Likewise.
33505         ([-m8byte-align]): Likewise.
33506         ([-fstack-reuse]): Likewise.
33507
33508 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33509
33510         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
33511         Fix markup, light copy-editing.
33512         ([-fauto-profile]): Rewrite to fix formatting and content
33513         problems.
33514
33515 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33516
33517         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
33518         Copy-edit description.
33519         ([-fisolate-erroneous-paths-attribute]): Likewise.
33520         * common.opt (fisolate-erroneous-paths-dereference):
33521         Copy-edit description.
33522         (fisolate-erroneous-paths-attribute): Likewise.
33523
33524 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33525
33526         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
33527         tidy grammar.
33528
33529 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33530
33531         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
33532         ([-fvtv-debug]): Likewise.
33533         ([-Wc++-compat]): Likewise.
33534         ([-Wc++11-compat]): Likewise.
33535         ([-Wc++14-compat]): Likewise.
33536         ([-Wno-sized-deallocation]): Likewise.
33537         ([-femit-class-debug-always]): Likewise.
33538         ([-femit-struct-debug-detailed]): Likewise.
33539         ([-fno-keep-inline-dllexport]): Likewise.
33540         ([-fira-algorithm]): Likewise.
33541         ([-fira-region]): Likewise.
33542         ([-flra-remat]): Likewise.
33543         ([-fipa-ra]): Likewise.
33544         ([-fhoist-adjacent-loads]): Likewise.
33545         ([-fisolate-erroneous-paths-dereference]): Likewise.
33546         ([-fisolate-erroneous-paths-attribute]): Likewise.
33547         ([-ftree-switch-conversion]): Likewise.
33548         ([-ftree-tail-merge]): Likewise.
33549         ([-ftree-loop-if-convert]): Likewise.
33550         ([-ftree-loop-if-convert-stores]): Likewise.
33551         ([-ftree-loop-distribution]): Likewise.
33552         ([-ftree-loop-distribute-patterns]): Likewise.
33553         ([-flto-compression-level]): Likewise.
33554         ([-flto-report]): Likewise.
33555         ([-flto-report-wpa]): Likewise.
33556         ([-fuse-linker-plugin]): Likewise.
33557         ([-mfix-cortex-a53-835769]): Likewise.
33558         ([-mno-fix-cortex-a53-835769]): Likewise.
33559         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
33560         explicit listing; add a note to the discussion indicating they
33561         exist.  Reorder table to group similar options.  Add missing
33562         @opindex entries.  Add @need commands throughout the table to
33563         allow it to be split across multiple pages.
33564         ([-m8bit-idiv]): Fix @opindex.
33565         ([-mavx256-split-unaligned-load]): Likewise.
33566         ([-mavx256-split-unaligned-store]): Likewise.
33567         ([-mstack-protector-guard]): Likewise.
33568         ([-mcpu=]): Likewise.
33569         ([-mcpu]): Likewise.
33570         ([-mpointer-size=]): Likewise.
33571
33572 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
33573
33574         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
33575         instead of `m' constraint.  Likewise for unnamed movb comparison
33576         patterns using reg_before_reload_operand predicate.
33577         * config/pa/predicates.md (reg_before_reload_operand): Tighten
33578         predicate to reject register index and LO_SUM DLT memory forms
33579         after reload.
33580
33581 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
33582
33583         * doc/invoke.texi (Option Summary): Fix spelling of
33584         -fdevirtualize-at-ltrans.
33585         ([-fdevirtualize]): Fix markup.
33586         ([-fdevirtualize-speculatively]): Fix typo.
33587         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
33588         implementor-speaky.
33589         * common.opt (fdevirtualize-at-ltrans): Likewise.
33590         * ipa-devirt.c: Fix typos in comments throughout the file.
33591         (ipa_devirt): Fix typos in format strings for dump output.
33592
33593 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
33594
33595         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
33596         discussion of defaults, light copy-editing.
33597
33598 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33599
33600         * tsan.c (instrument_expr): corrected previous checkin.
33601
33602 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33603
33604         Instrument bit field and unaligned accesses for TSAN.
33605         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
33606         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
33607         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
33608         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
33609         unaligned memory regions.
33610
33611 2015-01-01  Anthony Green  <green@moxielogic.com>
33612
33613         * config/moxie/predicates.md (moxie_general_movsrc_operand):
33614         Restrict move source register offsets to 16 bits.
33615 \f
33616 Copyright (C) 2015 Free Software Foundation, Inc.
33617
33618 Copying and distribution of this file, with or without modification,
33619 are permitted in any medium without royalty provided the copyright
33620 notice and this notice are preserved.