Move more cproj simplifications to match.pd
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
2
3         * builtins.c (fold_builtin_cproj): Delete.
4         (fold_builtin_1): Handle constant arguments here.
5         (build_complex_cproj): Move and rename to...
6         * tree.c: (build_complex_inf): ...this.
7         * tree.h (build_complex_inf): Declare.
8         * match.pd: Fold cproj(x)->x if x has no infinity.
9         Use build_complex_inf for existing cproj rules.
10
11 2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12
13         PR target/68015
14         * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
15         already have a comparison result.
16
17 2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18
19         PR target/63304
20         * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
21         (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
22         (aarch64_classify_address): Likewise.
23         (aarch64_secondary_reload): Likewise.
24         (aarch64_override_options_after_change_1): Adjust.
25         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
26         Use aarch64_nopcrelative_literal_loads.
27         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
28         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads): Declare
29
30 2015-10-21  Martin Sebor  <msebor@redhat.com>
31
32         PR driver/68043
33         * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
34         (print_filtered_help): Reference aliased option's name and encourage
35         readers to use it in preference to the alias if the former is not
36         documented.  Mention when using an option is diagnosed.
37         * gcc.c (display_help): End each sentence with a period.
38
39         * ada/gcc-interface/lang.opt: End each sentence that describes
40         an option with a period.
41         * c-family/c.opt: Same.
42         * common.opt: Same.
43         * config/aarch64/aarch64.opt: Same.
44         * config/alpha/alpha.opt: Same.
45         * config/arc/arc.opt: Same.
46         * config/arm/arm.opt: Same.
47         * config/avr/avr.opt: Same.
48         * config/bfin/bfin.opt: Same.
49         * config/c6x/c6x.opt: Same.
50         * config/cr16/cr16.opt: Same.
51         * config/cris/cris.opt: Same.
52         * config/cris/linux.opt: Same.
53         * config/darwin.opt: Same.
54         * config/epiphany/epiphany.opt: Same.
55         * config/fr30/fr30.opt: Same.
56         * config/frv/frv.opt: Same.
57         * config/ft32/ft32.opt: Same.
58         * config/g.opt: Same.
59         * config/h8300/h8300.opt: Same.
60         * config/i386/cygming.opt: Same.
61         * config/i386/djgpp.opt: Same.
62         * config/i386/i386.opt: Same.
63         * config/i386/interix.opt: Same.
64         * config/i386/mingw-w64.opt: Same.
65         * config/i386/mingw.opt: Same.
66         * config/ia64/ia64.opt: Same.
67         * config/ia64/ilp32.opt: Same.
68         * config/iq2000/iq2000.opt: Same.
69         * config/linux.opt: Same.
70         * config/lm32/lm32.opt: Same.
71         * config/lynx.opt: Same.
72         * config/m32c/m32c.opt: Same.
73         * config/m32r/m32r.opt: Same.
74         * config/m68k/ieee.opt: Same.
75         * config/m68k/m68k.opt: Same.
76         * config/mcore/mcore.opt: Same.
77         * config/mep/mep.opt: Same.
78         * config/microblaze/microblaze.opt: Same.
79         * config/mips/mips.opt: Same.
80         * config/mmix/mmix.opt: Same.
81         * config/mn10300/mn10300.opt: Same.
82         * config/moxie/moxie.opt: Same.
83         * config/msp430/msp430.opt: Same.
84         * config/nios2/elf.opt: Same.
85         * config/nios2/nios2.opt: Same.
86         * config/nvptx/nvptx.opt: Same.
87         * config/pa/pa-hpux.opt: Same.
88         * config/pa/pa-hpux1010.opt: Same.
89         * config/pa/pa-hpux1111.opt: Same.
90         * config/pa/pa-hpux1131.opt: Same.
91         * config/pa/pa.opt: Same.
92         * config/pa/pa64-hpux.opt: Same.
93         * config/pdp11/pdp11.opt: Same.
94         * config/rl78/rl78.opt: Same.
95         * config/rs6000/476.opt: Same.
96         * config/rs6000/aix64.opt: Same.
97         * config/rs6000/darwin.opt: Same.
98         * config/rs6000/linux64.opt: Same.
99         * config/rs6000/rs6000.opt: Same.
100         * config/rs6000/sysv4.opt: Same.
101         * config/s390/s390.opt: Same.
102         * config/s390/tpf.opt: Same.
103         * config/sh/sh.opt: Same.
104         * config/sol2.opt: Same.
105         * config/sparc/long-double-switch.opt: Same.
106         * config/sparc/sparc.opt: Same.
107         * config/spu/spu.opt: Same.
108         * config/stormy16/stormy16.opt: Same.
109         * config/tilegx/tilegx.opt: Same.
110         * config/tilepro/tilepro.opt: Same.
111         * config/v850/v850.opt: Same.
112         * config/vax/vax.opt: Same.
113         * config/visium/visium.opt: Same.
114         * config/vms/vms.opt: Same.
115         * config/vxworks.opt: Same.
116         * config/xtensa/xtensa.opt: Same.
117         * fortran/lang.opt: Same.
118
119 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
120             Sebastian Pop  <s.pop@samsung.com>
121
122         * graphite-scop-detection.c (parameter_index_in_region): Update call to
123         invariant_in_sese_p_rec.
124         * graphite-sese-to-poly.c (extract_affine): Same.
125         * sese.c (invariant_in_sese_p_rec): Pass in an extra parameter has_vdefs.
126         (scalar_evolution_in_region): Return chrec_dont_know when the scalar variable
127         depends on virtual definitions in the current region.
128         * sese.h (invariant_in_sese_p_rec): Update declaration.
129
130 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
131             Sebastian Pop  <s.pop@samsung.com>
132
133         * graphite-scop-detection.c (build_scops): Do not handle scops with more
134         than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
135         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
136
137 2015-10-21  Mikhail Maltsev  <maltsevm@gmail.com>
138
139         * config.in: Regenerate.
140         * configure: Regenerate.
141         * configure.ac (CHECKING_P): Define.
142         * system.h: Use CHECKING_P.
143
144 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
145
146         PR ipa/67056
147         * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
148         is negative we don't know the type.
149         (check_stmt_for_type_change): Skip constructors of non-polymorphic
150         types as those won't help devirutalization.
151
152 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
153
154         * fold-const.c (operand_equal_p): Add code matching empty
155         constructors.
156
157 2015-10-21  Eric Botcazou  <ebotcazou@adacore.com>
158
159         * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
160         comments.
161         (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
162         Add comments on sign of the result.
163         * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
164         Recurse on operand #1 instead of operand #0.
165         <CEIL_MOD_EXPR>: Do not recurse.
166         <ROUND_MOD_EXPR>: Likewise.
167
168 2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
169
170         * cfgrtl.c (pass_free_cfg::execute): Adjust.
171         * final.c (dbr_sequence_length): Always define.
172         (shorten_branches): Adjust.
173         * genattr-common.c (main): Always define DELAY_SLOTS.
174         * genattr.c (main): Unconditionally declare functions and define
175         macros related to delay slots.
176         * genattrtab.c (write_eligible_delay): Adjust.
177         (main): Always write out delay slot functions.
178         * opts.c (default_options_table): Adjust.
179         * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
180         (redirect_with_delay_list_safe_p): Likewise.
181         (fill_simple_delay_slots): Likewise.
182         (fill_slots_from_thread): Likewise.
183         (make_return_insns): Likewise.
184         (dbr_schedule): Likewise.
185         (rest_of_handle_delay_slots): Likewise.
186         (pass_delay_slots::gate): Likewise.
187         * toplev.c (process_options): Likewise.
188
189 2015-10-21  Richard Henderson  <rth@redhat.com>
190
191         * targhooks.c (default_addr_space_pointer_mode): Remove check
192         for generic address space.
193         (default_addr_space_address_mode): Likewise.
194         (default_addr_space_valid_pointer_mode): Likewise.
195         (default_addr_space_legitimate_address_p): Likewise.
196         (default_addr_space_legitimize_address): Likewise.
197         * target.def (addr_space.pointer_mode): Update documentation
198         of default behavior.
199         (addr_space.address_mode): Likewise.
200         * tm.texi: Update.
201
202         * expr.c (expand_expr_real_2): Use convert_modes on disjoint
203         address spaces.
204
205 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
206
207         * builtins.c (fold_builtin_cabs): Delete.
208         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
209         * match.pd: Add rules previously handled by fold_builtin_cabs.
210
211 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
212
213         * fold-const.h (fold_strip_sign_ops): Delete.
214         * fold-const.c (fold_strip_sign_ops): Likewise.
215         (fold_unary_loc, fold_binary_loc): Remove calls to it.
216         * builtins.c (fold_builtin_cos, fold_builtin_cosh)
217         (fold_builtin_ccos): Delete.
218         (fold_builtin_pow): Don't call fold_strip_sign_ops.
219         (fold_builtin_hypot, fold_builtin_copysign): Likewise.
220         Remove fndecl argument.
221         (fold_builtin_1): Update calls accordingly.  Handle constant
222         cos, cosh, ccos and ccosh here.
223
224 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
225
226         * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
227         * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
228         * common.opt (fssa-backprop): New option.
229         * fold-const.h (negate_mathfn_p): Declare.
230         * fold-const.c (negate_mathfn_p): Make public.
231         * timevar.def (TV_TREE_BACKPROP): New.
232         * tree-pass.h (make_pass_backprop): Declare.
233         * passes.def (pass_backprop): Add.
234         * gimple-ssa-backprop.c: New file.
235
236 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
237             Sebastian Pop  <s.pop@samsung.com>
238
239         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Do not call
240         create_empty_if_region_on_edge when cond_expr is true.
241         (translate_isl_ast_node_for): Check whether a guard has been generated.
242
243 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
244
245         * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
246         (operator=): Removed.
247         (dr_info): Make alias_set number the last argument with default value of invalid_alias_set.
248         * graphite-sese-to-poly.c (build_scop_drs): Update constructor of dr_info.
249         (rewrite_reductions_out_of_ssa): Iterate only through the basic blocks which are inside region.
250         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
251         * sese.h (struct sese_l): Removed assignment operator.
252         (split_region_for_bb): Removed dead code.
253
254 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
255
256         * graphite-poly.h (struct dr_info): Removed conversion constructor.
257         (struct scop): Renamed scop::region to scop::scop_info
258         (scop_set_region): Same.
259         (SCOP_REGION): Removed
260         (SCOP_CONTEXT): Removed.
261         (POLY_SCOP_P): Removed.
262         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
263         Rename scop->region to scop->scop_info.
264         (add_parameters_to_ivs_params): Same.
265         (graphite_regenerate_ast_isl): Same.
266         * graphite-poly.c (new_scop): Same.
267         (free_scop): Same.
268         (print_scop_params): Same.
269         * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
270         (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
271         (dot_all_scops_1): Rename scop->region to scop->scop_info.
272         (scop_detection::nb_pbbs_in_loops): Same.
273         (find_scop_parameters): Same.
274         (try_generate_gimple_bb): Same.
275         (gather_bbs::before_dom_children): Same.
276         (gather_bbs::after_dom_children): Same.
277         (build_scops): Same.
278         * graphite-sese-to-poly.c (build_scop_scattering): Same.
279         (extract_affine_chrec): Same.
280         (extract_affine): Same.
281         (set_scop_parameter_dim): Same.
282         (build_loop_iteration_domains): Same.
283         (create_pw_aff_from_tree): Same.
284         (add_param_constraints): Same.
285         (build_scop_iteration_domain): Same.
286         (build_scop_drs): Same.
287         (analyze_drs_in_stmts): Same.
288         (insert_out_of_ssa_copy_on_edge): Same.
289         (rewrite_close_phi_out_of_ssa):Same.
290         (rewrite_reductions_out_of_ssa):Same.
291         (handle_scalar_deps_crossing_scop_limits):Same.
292         (rewrite_cross_bb_scalar_deps):Same.
293         (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
294         (build_poly_scop):Same.
295         (build_alias_set): Use pointer to dr_info.
296         * graphite.c (print_graphite_scop_statistics):
297         (graphite_transform_loops):
298         * sese.h (struct sese_l): Remove conversion constructor.
299
300 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
301
302         PR middle-end/67966
303         * tree.c (verify_type): Verify that TYPE_MODE match
304         between TYPE_CANONICAL and type.
305         * expr.c (store_expr_with_bounds): Revert my previous change.
306         * expmed.c (store_bit_field_1): Revert prevoius change.
307         * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
308         to match for all types.
309
310 2015-10-21  Nathan Sidwell  <nathan@codesourcery.com>
311
312         * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
313         nesting.
314
315 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
316
317         * doc/tm.texi: Regenerated.
318         * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
319         * stor-layout.c (layout_type): Use mode to get vector mask size.
320         * target.def (get_mask_mode): New.
321         * targhooks.c (default_get_mask_mode): New.
322         * targhooks.h (default_get_mask_mode): New.
323         * gcc/tree-vect-stmts.c (get_same_sized_vectype): Add special case
324         for boolean vector.
325         * tree.c (MAX_BOOL_CACHED_PREC): New.
326         (nonstandard_boolean_type_cache): New.
327         (build_nonstandard_boolean_type): New.
328         (make_vector_type): Vector mask has no canonical type.
329         (build_truth_vector_type): New.
330         (build_same_sized_truth_vector_type): New.
331         (truth_type_for): Support vector masks.
332         * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
333         (build_truth_vector_type): New.
334         (build_same_sized_truth_vector_type): New.
335         (build_nonstandard_boolean_type): New.
336         * tree-cfg.c (verify_gimple_comparison) Require boolean
337         vector type for vector comparison.
338         (verify_gimple_assign_ternary): Likewise.
339         * optabs.c (expand_vec_cond_expr): Accept boolean vector as
340         condition operand.
341         * tree-vect-stmts.c (vectorizable_condition): Use boolean
342         vector type for vector comparison.
343         * tree-vect-generic.c (elem_op_func): Add new operand to hold
344         vector type.
345         (do_unop): Adjust to modified function type.
346         (do_binop): Likewise.
347         (do_plus_minus): Likewise.
348         (do_negate); Likewise.
349         (expand_vector_piecewise): Likewise.
350         (do_cond): Likewise.
351         (do_compare): Use comparison instead of condition.
352         (expand_vector_divmod): Use boolean vector type for comparison.
353         (expand_vector_operations_1): Skip scalar mask operations.
354
355 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
356
357         * omp-low.c (simd_clone_create): Set in_other_partition
358         for created clones.
359
360 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
361
362         * doc/extend.exp (Local Register Variables): Rewrite.
363
364 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
365
366         * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
367         and x*x in cases where the operands are sign ops.  Extend these
368         rules to handle copysign as a sign op (including for cos, cosh
369         and pow, which already treated negate and abs as sign ops).
370
371 2015-10-21  Uros Bizjak  <ubizjak@gmail.com>
372
373         PR target/68018
374         * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
375         for 64-bit MS_ABI targets also when default incoming stack boundary
376         is overriden.
377
378 2015-10-21  Richard Biener  <rguenther@suse.de>
379
380         * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
381         cond stmts, enhanced and split out from ...
382         (vn_phi_eq): ... here.
383
384 2015-10-21  Richard Biener  <rguenther@suse.de>
385
386         PR middle-end/68031
387         * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
388         (tree_ssa_name_nonnegative_warnv_p): Fold into ...
389         (tree_single_nonnegative_warnv_p): ... here.  For SSA names
390         make sure they are not registered for update.
391
392 2015-10-21  Richard Biener  <rguenther@suse.de>
393
394         PR tree-optimization/68026
395         * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
396         unsigned VARYING values.
397
398 2015-10-21  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
399
400         * asan.c (asan_emit_stack_protection): Don't pass local stack to
401         asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
402         NULL and use local stack than.
403         (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
404         in addition to __asan_init.
405         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
406         (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
407         * asan.h (asan_intercepted_p): Handle new string builtins.
408         * ubsan.c (ubsan_use_new_style_p): New function.
409         (ubsan_instrument_float_cast): If location is unknown, assign
410         input_location to loc. Propagate loc to ubsan_create_data if
411         ubsan_use_new_style_p returned true.
412
413 2015-10-21  Jeff Law  <law@redhat.com>
414
415         * Makefile.in (OBJS): Remove sched-vis.c
416         * sched-vis.c: Removed.  Code moved into...
417         * print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
418         * rtl.h: Remove prototypes for functions now living in print-rtl.c
419         * print-rtl.h Add prototypes for new functions in print-rtl.c.
420         * auto-inc-dec.c: Include print-rtl.h
421         * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
422         * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
423
424         * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
425         ATTRIBUTE_UNUSED.
426
427 2015-10-21  Richard Biener  <rguenther@suse.de>
428             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
429
430         * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
431         to match.pd.
432         Move (a * (1 << b)) is (a << b) to match.pd.
433         Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
434         Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
435         Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
436
437         * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
438         New simplifier.
439         (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
440         (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
441         (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
442         : New simplifier.
443         (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
444         New simplifier.
445         (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
446
447 2015-10-21  Gregor Richards  <gregor.richards@uwaterloo.ca>
448             Szabolcs Nagy  <szabolcs.nagy@arm.com>
449             Alan Modra  <amodra@gmail.com>
450
451         * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
452         * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
453         (LINK_SPEC): Add %(link_secure_plt).
454         (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
455         * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
456
457 2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
458             Szabolcs Nagy  <szabolcs.nagy@arm.com>
459
460         * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
461         (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
462
463 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
464
465         * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
466         New function.
467         (fusion_load_store): Use it.
468         * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
469         ldp and stp in VD modes.
470         * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
471         (store_pair<mode>, VD): Likewise.
472
473 2015-10-20  Vladimir Makarov  <vmakarov@redhat.com>
474
475         PR rtl-optimization/67609
476         * lra-splill.c (lra_final_code_change): Don't remove all
477         sub-registers.
478
479 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
480
481         * simplify-rtx.c (simplify_binary_operation): If either operand was
482         a constant pool reference use them if all other simplifications failed.
483
484 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
485
486         * config/aarch64/aarch64.md
487         (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
488         * config/aarch64/aarch64-simd.md
489         (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
490         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
491         (aarch64_fpconst_pow_of_2): New function.
492         (aarch64_vec_fpconst_pow_of_2): Likewise.
493         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
494         prototype.
495         (aarch64_vec_fpconst_pow_of_2): Likewise.
496         * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
497         (aarch64_fp_vec_pow2): Likewise.
498
499 2015-10-20  Uros Bizjak  <ubizjak@gmail.com>
500
501         * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
502         (ALPHA_ARG_SIZE): Ditto.  Remove unused NAMED argument.
503         * config/alpha/alpha.c (alpha_function_arg_advance): Update
504         ALPHA_ARG_SIZE usage.
505         (alpha_arg_partial_bytes): Ditto.
506
507 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
508
509         PR target/66810
510         * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
511         error_mark_node decls.
512
513 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
514
515         PR target/67963
516         PR target/67985
517         * common/config/i386/i386-common.c (ix86_handle_option): Remove
518         OPT_miamcu handling.
519         * config/i386/i386.c (PTA_NO_80387): New macro.
520         (processor_alias_table): Add PTA_NO_80387 to lakemont.
521         (ix86_option_override_internal): Update MASK_80387 from
522         PTA_NO_80387.  Don't warn x87/MMX/SSE/AVX for -miamcu.  Warn
523         SSE math only if 80387 is supported.  Don't change
524         MASK_FLOAT_RETURNS.
525         (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
526         80387 is supported.
527         * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
528         if TARGET_80387 is true and TARGET_IAMCU is false.
529         (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
530         is true and TARGET_IAMCU_P is false.
531
532 2015-10-20  Richard Biener  <rguenther@suse.de>
533
534         PR tree-optimization/68017
535         * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
536
537 2015-10-20  Martin Liska  <mliska@suse.cz>
538
539         * cgraphclones.c (cgraph_node::create_virtual_clone):
540         Verify cgraph_node.local.versionable instead of calling
541         tree_versionable_function_p.
542         * ipa-cp.c (determine_versionability): Save the information
543         to ipa_node_params summary.
544         (ipcp_versionable_function_p): Use it.
545         (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
546         (ipcp_generate_summary): Do not compute cgraph_node
547         versionability.
548         * ipa-inline-analysis.c (inline_generate_summary): Compute
549         versionability for all cgraph nodes.
550         * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
551         ipa_node_params::versionability.
552         * ipa-prop.h (struct ipa_node_params): Declare it.
553
554 2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
555
556         PR other/67868
557         * varasm.c (assemble_variable): Move special vtv handling to..
558         (handle_vtv_comdat_sections): .. here. New function.
559         (output_object_block): Handle vtv sections.
560
561 2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>
562
563         PR target/66912
564         * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
565
566 2015-10-20  Arkadiusz Drabczyk  <arkadiusz@drabczyk.org>
567
568         * doc/extend.texi: Update documentation WRT inline functions.
569
570 2015-10-20  Alan Modra  <amodra@gmail.com>
571
572         PR go/66870
573         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
574         * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
575         (TARGET_CAN_SPLIT_STACK_64BIT): Define.
576
577 2015-10-19  Pierre-Marie de Rodat  <derodat@adacore.com>
578
579         PR rtl-optimization/66790
580         * df.h (DF_MIR): New macro.
581         (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
582         (DF_MIR_INFO_BB): New macro.
583         (DF_MIR_IN, DF_MIR_OUT): New macros.
584         (struct df_mir_bb_info): New.
585         (df_mir): New macro.
586         (df_mir_add_problem, df_mir_simulate_one_insn): New forward
587         declarations.
588         (df_mir_get_bb_info): New.
589         * df-problems.c (struct df_mir_problem_data): New.
590         (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
591         df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
592         df_mir_confluence_0, df_mir_confluence_n,
593         df_mir_transfer_function, df_mir_free, df_mir_top_dump,
594         df_mir_bottom_dump, df_mir_verify_solution_start,
595         df_mir_verify_solution_end): New.
596         (problem_MIR): New.
597         (df_mir_add_problem, df_mir_simulate_one_insn): New.
598         * timevar.def (TV_DF_MIR): New.
599         * ree.c: Include bitmap.h
600         (add_removable_extension): Add an INIT_REGS parameter.  Use it
601         to skip zero-extensions that may get an uninitialized register.
602         (find_removable_extensions): Compute must-initialized registers
603         using the MIR dataflow problem. Update the call to
604         add_removable_extension.
605         (find_and_remove_re): Call df_mir_add_problem.
606
607 2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
608
609         * common/config/mn10300/mn10300-common.c
610         (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
611         Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
612
613 2015-10-19  David Wohlferd  <dw@LimeGreenSocks.com>
614
615         * doc/extend.texi (Explicit Register Variables): Simplify and
616         avoid unnecessary and confusion abbreviations.  Update cross
617         references.
618         doc/implement-c.tex: Update cross reference.
619
620 2015-10-19  Jeff Law  <law@redhat.com>
621
622         * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
623         that create irreducible loops unless the path elimiantes a multiway
624         branch.
625
626 2015-10-19  Richard Biener  <rguenther@suse.de>
627
628         PR tree-optimization/67975
629         * tree-cfg.h (extract_true_false_controlled_edges): Declare.
630         * tree-cfg.c (extract_true_false_controlled_edges): Split out
631         core worker from ...
632         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
633         * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
634         instead of block number for PHIs with two or one args.
635         (vn_phi_eq): Compare edge predicates of PHIs that are in different
636         blocks.
637
638 2015-10-19  Richard Biener  <rguenther@suse.de>
639
640         * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
641         (gimple_stmt_nonnegative_warnv_p): Use it.
642         * match.pd (CPROJ): New operator list.
643         (cproj (complex ...)): Move simplifications from ...
644         * builtins.c (fold_builtin_cproj): ... here.
645
646 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
647
648         * config/i386/i386.c (ix86_expand_vector_move): Use
649         GET_MODE_BITSIZE for IA MCU psABI to get vector natural
650         alignment.
651
652 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
653
654         * doc/invoke.texi: Replace @optindex with @opindex.
655
656 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
657
658         PR target/67995
659         * config/i386/i386.c (ix86_valid_target_attribute_tree): If
660         arch= is set,  clear all bits in x_ix86_isa_flags, except for
661         ISA_64BIT, ABI_64, ABI_X32, and CODE16.
662
663 2015-10-19  Joost VandeVondele  <vondele@gnu.gcc.org>
664
665         PR middle-end/68002
666         * common.opt (fkeep-static-functions): New option.
667         * doc/invoke.texi: Document it.
668         * cgraphunit.c (cgraph_node::finalize_function): Use it.
669
670 2015-10-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
671
672         * sched-int.h (struct autopref_multipass_data_): Remove offset
673         field.  Add min_offset, max_offset, multi_mem_insn_p fields.
674         * haifa-sched.c (analyze_set_insn_for_autopref): New function.
675         (autopref_multipass_init): Use it.  Handle PARALLEL sets.
676         (autopref_rank_data): New function.
677         (autopref_rank_for_schedule): Use it.
678         (autopref_multipass_dfa_lookahead_guard_1): Likewise.
679
680 2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>
681
682         PR other/65800
683         * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
684
685 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
686
687         * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
688         (HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New.
689         (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
690         (STANDARD_STARTFILE_PREFIX_1): New.
691         (STANDARD_STARTFILE_PREFIX_2): New.
692
693 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
694
695         * config/darwin-driver.c (darwin_default_min_version): Refactor code.
696         (darwin_driver_init): Note a version-min when provided on the c/l.
697         * config/darwin.h (%darwin_minversion): Remove.
698         * config/i386/darwin.h: Likewise.
699         * config/rs6000/darwin.h: Likewise.
700         * config/darwin.opt (mmacosx-version-min=): Use the configured default,
701         rather than an arbitrary constant.
702
703 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
704
705         * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
706         PPC, detect conflicts between -arch and multilib settings.  Detect
707         and warn about conflicts between multiple -arch definitions.
708
709 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
710
711         * config/darwin-driver.c: Adjust includes to add diagnostic-core.
712
713 2015-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
714
715         * lra-constraints.c (add_next_usage_insn): Change argument type
716         from rtx to rtx_insn *.
717
718 2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>
719
720         * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
721         for Lakemont.
722
723 2015-10-16  Andrew MacLeod  <amacleod@redhat.com>
724
725         * config/tilepro/gen-mul-tables.cc: Adjust include files.
726         * config/tilegx/mul-tables.c: Regenerate.
727         * config/tilepro/mul-tables.c: Regenerate.
728
729         * config/tilegx/tilegx-c.c: Adjust include files.
730         * config/tilegx/tilegx.c: Likewise.
731         * config/tilepro/tilepro-c.c: Likewise.
732         * config/tilepro/tilepro.c: Likewise.
733         * config/aarch64/aarch64-builtins.c: Likewise.
734         * config/aarch64/aarch64.c: Likewise.
735         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
736         * config/alpha/alpha.c: Likewise.
737         * config/arc/arc.c: Likewise.
738         * config/arm/aarch-common.c: Likewise.
739         * config/arm/arm-builtins.c: Likewise.
740         * config/arm/arm-c.c: Likewise.
741         * config/arm/arm.c: Likewise.
742         * config/avr/avr-c.c: Likewise.
743         * config/avr/avr-devices.c: Likewise.
744         * config/avr/avr-log.c: Likewise.
745         * config/avr/avr.c: Likewise.
746         * config/bfin/bfin.c: Likewise.
747         * config/c6x/c6x.c: Likewise.
748         * config/cr16/cr16.c: Likewise.
749         * config/cris/cris.c: Likewise.
750         * config/darwin-c.c: Likewise.
751         * config/darwin-driver.c: Likewise.
752         * config/darwin.c: Likewise.
753         * config/default-c.c: Likewise.
754         * config/epiphany/epiphany.c: Likewise.
755         * config/epiphany/mode-switch-use.c: Likewise.
756         * config/epiphany/resolve-sw-modes.c: Likewise.
757         * config/fr30/fr30.c: Likewise.
758         * config/frv/frv.c: Likewise.
759         * config/ft32/ft32.c: Likewise.
760         * config/glibc-c.c: Likewise.
761         * config/h8300/h8300.c: Likewise.
762         * config/i386/host-cygwin.c: Likewise.
763         * config/i386/host-mingw32.c: Likewise.
764         * config/i386/i386-c.c: Likewise.
765         * config/i386/i386.c: Likewise.
766         * config/i386/msformat-c.c: Likewise.
767         * config/i386/winnt-cxx.c: Likewise.
768         * config/i386/winnt-stubs.c: Likewise.
769         * config/i386/winnt.c: Likewise.
770         * config/ia64/ia64-c.c: Likewise.
771         * config/ia64/ia64.c: Likewise.
772         * config/iq2000/iq2000.c: Likewise.
773         * config/lm32/lm32.c: Likewise.
774         * config/m32c/m32c-pragma.c: Likewise.
775         * config/m32c/m32c.c: Likewise.
776         * config/m32r/m32r.c: Likewise.
777         * config/mcore/mcore.c: Likewise.
778         * config/mep/mep-pragma.c: Likewise.
779         * config/mep/mep.c: Likewise.
780         * config/microblaze/microblaze-c.c: Likewise.
781         * config/microblaze/microblaze.c: Likewise.
782         * config/mips/mips-tables.opt
783         * config/mips/mips.c: Likewise.
784         * config/mmix/mmix.c: Likewise.
785         * config/mn10300/mn10300.c: Likewise.
786         * config/moxie/moxie.c: Likewise.
787         * config/msp430/msp430-c.c: Likewise.
788         * config/msp430/msp430.c: Likewise.
789         * config/nds32/nds32-cost.c: Likewise.
790         * config/nds32/nds32-fp-as-gp.c: Likewise.
791         * config/nds32/nds32-intrinsic.c: Likewise.
792         * config/nds32/nds32-isr.c: Likewise.
793         * config/nds32/nds32-md-auxiliary.c: Likewise.
794         * config/nds32/nds32-memory-manipulation.c: Likewise.
795         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
796         * config/nds32/nds32-predicates.c: Likewise.
797         * config/nds32/nds32.c: Likewise.
798         * config/nios2/nios2.c: Likewise.
799         * config/nvptx/mkoffload.c: Likewise.
800         * config/nvptx/nvptx.c: Likewise.
801         * config/pa/pa.c: Likewise.
802         * config/pdp11/pdp11.c: Likewise.
803         * config/rl78/rl78-c.c: Likewise.
804         * config/rl78/rl78.c: Likewise.
805         * config/rs6000/host-darwin.c: Likewise.
806         * config/rs6000/rs6000-c.c: Likewise.
807         * config/rs6000/rs6000-linux.c: Likewise.
808         * config/rs6000/rs6000.c: Likewise.
809         * config/rx/rx.c: Likewise.
810         * config/s390/s390-c.c: Likewise.
811         * config/s390/s390.c: Likewise.
812         * config/sh/sh-c.c: Likewise.
813         * config/sh/sh-mem.cc: Likewise.
814         * config/sh/sh.c: Likewise.
815         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
816         * config/sh/sh_treg_combine.cc: Likewise.
817         * config/sol2-c.c: Likewise.
818         * config/sol2-cxx.c: Likewise.
819         * config/sol2-stubs.c: Likewise.
820         * config/sol2.c: Likewise.
821         * config/sparc/sparc-c.c: Likewise.
822         * config/sparc/sparc.c: Likewise.
823         * config/spu/spu-c.c: Likewise.
824         * config/spu/spu.c: Likewise.
825         * config/stormy16/stormy16.c: Likewise.
826         * config/v850/v850-c.c: Likewise.
827         * config/v850/v850.c: Likewise.
828         * config/vax/vax.c: Likewise.
829         * config/visium/visium.c: Likewise.
830         * config/vms/vms-c.c: Likewise.
831         * config/vms/vms.c: Likewise.
832         * config/vxworks.c: Likewise.
833         * config/winnt-c.c: Likewise.
834         * config/xtensa/xtensa.c: Likewise.
835
836 2015-10-16  Christian Bruel  <christian.bruel@st.com>
837
838         PR target/67745
839         * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
840         (FUNCTION_BOUNDARY_P): New macro:
841         * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
842         New hook.
843         * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
844         * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
845         * gcc/target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
846         * gcc/function.c (allocate_struct_function): Call
847         relayout_function hook.
848         * gcc/passes.c (rest_of_decl_compilation): Likewise.
849
850 2015-10-16  Christian Bruel  <christian.bruel@st.com>
851
852         PR target/67745
853         * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
854         * config/arm/arm.c (arm_option_override_internal): Call
855         arm_override_options_after_change_1.
856         (arm_override_options_after_change): New function.
857         (arm_override_options_after_change_1): Likewise.
858         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
859
860 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
861
862         Revert:
863         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
864         empty constructors.
865
866 2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>
867
868         * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
869         argument is an ADDR_EXPR.
870
871 2015-10-16  Richard Biener  <rguenther@suse.de>
872
873         * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
874         and get rid of force_gimple_operand_gsi.
875         (gimple_fold_builtin_memory_chk): Likewise.
876         (gimple_fold_builtin_stxcpy_chk): Likewise.
877         (rewrite_to_defined_overflow): Likewise.
878         (gimple_convert_to_ptrofftype): New function.
879         * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
880
881 2015-10-16  Richard Biener  <rguenther@suse.de>
882
883         * tree-nested.h (build_addr): Adjust prototype.
884         * tree-nested.c (build_addr): Remove context argument and use
885         mark_addressable.
886         (get_static_chain): Adjust calls to build_addr.
887         (convert_nl_goto_reference): Likewise.
888         (convert_tramp_reference_op): Likewise.
889         (finalize_nesting_tree_1): Likewise.
890         * value-prof.c (gimple_ic): Likewise.
891         * gimple-low.c (lower_builtin_setjmp): Likewise.
892         * tree-parloops.c (take_address_of): Likewise.
893         (create_call_for_reduction_1): Likewise.
894         * tree-profile.c (gimple_gen_interval_profiler): Likewise.
895         (gimple_gen_ic_func_profiler): Likewise.
896
897 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
898
899         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
900         empty constructors.
901
902 2015-10-16  Michael Collison  <michael.collison@linaro.org>
903             Andrew Pinski <andrew.pinski@caviumnetworks.com>
904
905         * match.pd ((x < y) && (x < z) -> x < min (y,z),
906         (x > y) and (x > z) -> x > max (y,z))
907
908 2015-10-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
909             Szabolcs Nagy  <szabolcs.nagy@arm.com>
910
911         * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
912         (DYNAMIC_LINKER): Renamed to ...
913         (GLIBC_DYNAMIC_LINKER): This.
914         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
915
916 2015-10-15  Marek Polacek  <polacek@redhat.com>
917
918         * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
919         gimple_call_builtin instead of is_gimple_call.
920
921 2015-10-15  Richard Biener  <rguenther@suse.de>
922
923         * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
924
925 2015-10-15  Richard Biener  <rguenther@suse.de>
926
927         * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
928         * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
929         * tree-vect-loop.c (get_initial_def_for_induction): Drop
930         use of force_gimple_operand in favor of gimple_build.
931         Use vect_get_new_ssa_name.
932         * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
933         (vectorizable_mask_load_store): Likewise.
934         (vectorizable_call): Likewise.
935         (vectorizable_store): Likewise.
936         (vectorizable_load): Likewise.
937         (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
938
939 2015-10-15  Richard Sandiford  <richard.sandiford@arm.com>
940
941         PR tree-optimization/67945
942         * tree-pass.h (PROP_gimple_opt_math): New property flag.
943         * generic-match-head.c (canonicalize_math_p): New function.
944         * gimple-match-head.c: Include tree-pass.h.
945         (canonicalize_math_p): New function.
946         * match.pd: Group math built-in rules into simplifications
947         and canonicalizations.  Guard the latter with canonicalize_math_p.
948         * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
949         PROP_gimple_opt_math property.
950
951 2015-10-15  Marek Polacek  <polacek@redhat.com>
952
953         PR tree-optimization/67953
954         * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
955
956 2015-10-15  Jiong Wang  <jiong.wang@arm.com>
957
958         * config.gcc: Recognize "." in architecture base name for AArch64.
959
960 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
961
962         * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
963         ROUND_UP macro.
964         * config/mips/mips.c (mips_setup_incoming_varargs): Use
965         ROUND_DOWN to calculate off.
966         (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
967         (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
968         rounded_size.
969
970 2015-10-14  Eric Botcazou  <ebotcazou@adacore.com>
971
972         * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
973
974 2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
975             Torvald Riegel  <triegel@redhat.com>
976
977         PR target/67281
978         * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
979         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
980         trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
981         (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
982         *trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
983         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
984         trechkpt, treclaim, tsr, ttest): New define_expands.
985         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
986         __TM_FENCE__ for htm.
987         * doc/extend.texi: Update documentation for htm builtins.
988
989 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
990
991         PR target/67967
992         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
993         REG_CFA_EXPRESSION to aligned SSE stores.
994
995 2015-10-14  Jeff Law  <law@redhat.com>
996
997         * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
998         num_threaded_edges for successful FSM threads too.
999
1000 2015-10-14  Richard Biener  <rguenther@suse.de>
1001
1002         * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
1003         (vect_is_simple_use_1): Likewise.  Make overload of vect_is_simple_use.
1004         (vect_get_vec_def_for_operand): Remove unused parameter.
1005         * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
1006         (vect_create_epilog_for_reduction): Likewise.
1007         (vectorizable_reduction): Likewise.
1008         (vectorizable_live_operation): Likewise.
1009         * tree-vect-patterns.c (type_conversion_p): Likewise.
1010         (vect_recog_vector_vector_shift_pattern): Likewise.
1011         (check_bool_pattern): Likewise.
1012         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
1013         (vect_analyze_slp_cost_1): Likewise.
1014         * tree-vect-stmts.c (process_use): Likewise.
1015         (vect_get_vec_def_for_operand): Do not handle reductions.
1016         (vect_get_vec_defs): Adjust.
1017         (vectorizable_mask_load_store): Likewise.
1018         (vectorizable_call): Likewise.
1019         (vectorizable_simd_clone_call): Likewise.
1020         (vect_get_loop_based_defs): Likewise.
1021         (vectorizable_conversion): Likewise.
1022         (vectorizable_assignment): Likewise.
1023         (vectorizable_shift): Likewise.
1024         (vectorizable_operation): Likewise.
1025         (vectorizable_store): Likewise.
1026         (vectorizable_load): Likewise.
1027         (vect_is_simple_cond): Likewise.
1028         (vectorizable_condition): Likewise.
1029         (vect_is_simple_use): Remove unused parameters.
1030         (vect_is_simple_use_1): Adjust and rename.
1031
1032 2015-10-14  Richard Biener  <rguenther@suse.de>
1033
1034         PR tree-optimization/67915
1035         * match.pd: Handle comparisons of addresses of STRING_CSTs.
1036         * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
1037         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
1038         stmt folding in favor of GIMPLE one.
1039
1040 2015-10-14  Marek Polacek  <polacek@redhat.com>
1041
1042         PR tree-optimization/67815
1043         * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
1044         (reassociate_bb): Call it.
1045
1046 2015-10-14  Richard Biener  <rguenther@suse.de>
1047
1048         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1049         Reset info at start.
1050         (vect_analyze_group_access_1): Add debug print.
1051         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
1052         (vect_compute_single_scalar_iteration_cost): ... to this.
1053         (vect_analyze_loop_2): Adjust.
1054         * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
1055         * tree-vectorizer.h: ... here.
1056         (add_stmt_info_to_vec): Remove.
1057         * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
1058
1059 2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1060
1061         * targhooks.c (default_target_option_pragma_parse): Do not warn if
1062         called on behalf of "#pragma GCC pop_options".
1063
1064 2015-10-14  Tom de Vries  <tom@codesourcery.com>
1065
1066         * cfganal.c (verify_no_unreachable_blocks): New function.
1067         (inverted_post_order_compute) [ENABLE_CHECKING]: Call
1068         verify_no_unreachable_blocks.
1069         cfganal.h (verify_no_unreachable_blocks): Declare.
1070
1071 2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
1072
1073         * common.opt: Add flag_checking.
1074         * system.h (CHECKING_P): Define.
1075
1076 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
1077             Aldy Hernandez  <aldyh@redhat.com>
1078             Ilya Verbin  <ilya.verbin@intel.com>
1079
1080         * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
1081         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
1082         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
1083         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
1084         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
1085         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
1086         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
1087         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
1088         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
1089         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
1090         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
1091         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
1092         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
1093         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
1094         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
1095         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
1096         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
1097         (struct cgraph_simd_clone_arg): Adjust comment.
1098         * coretypes.h (struct gomp_ordered): New forward decl.
1099         * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
1100         set critical clauses to it.
1101         (gimple_build_omp_ordered): Return gomp_ordered * instead of
1102         gimple *.  Add CLAUSES argument, set ordered clauses to it.
1103         (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
1104         GIMPLE_OMP_ORDERED.
1105         * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
1106         GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
1107         * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
1108         to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
1109         GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
1110         GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
1111         Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
1112         GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
1113         renumber
1114         GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
1115         (gomp_critical): Add clauses field.
1116         (gomp_ordered): New struct.
1117         (is_a_helper <gomp_ordered *>::test): New inline.
1118         (gimple_build_omp_critical): Add CLAUSES argument.
1119         (gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
1120         instead of gimple *.
1121         (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
1122         gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
1123         gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
1124         gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
1125         inline functions.
1126         * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
1127         (dump_gimple_omp_target): Handle enter data and exit data.
1128         (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
1129         (dump_gimple_omp_critical): Print clauses.
1130         (dump_gimple_omp_ordered): New function.
1131         (dump_gimple_omp_task): Handle taskloop.
1132         (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
1133         GIMPLE_OMP_ORDERED.
1134         * gimple-walk.c (walk_gimple_op): Walk clauses on
1135         GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
1136         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
1137         (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
1138         (struct gimplify_omp_ctx): Add loop_iter_var,
1139         target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
1140         and target_firstprivatize_array_bases fields.
1141         (delete_omp_context): Release loop_iter_var.
1142         (gimplify_bind_expr): Handle ORT_NONE.
1143         (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
1144         ORT_COMBINED_TARGET.
1145         (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
1146         OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
1147         (omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
1148         ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
1149         ctx->target_map_scalars_firstprivate.
1150         (omp_add_variable): Handle ORT_NONE.  Allow map clause together with
1151         data sharing clauses.  For data sharing clause with VLA decl
1152         on omp target/target data don't add firstprivate for the pointer.
1153         Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
1154         (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
1155         the addition of ORT_COMBINED_TARGET.
1156         (omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
1157         for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
1158         pointers as zero length array sections and
1159         ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
1160         data sharing.
1161         (omp_check_private): Handle omp_member_access_dummy_var vars.
1162         (find_decl_expr): New function.
1163         (gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
1164         complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
1165         Handle OMP_CLAUSE_GANG separately.  Handle
1166         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
1167         clauses.  Diagnose linear clause on combined
1168         distribute {, parallel for} simd construct, unless it is the loop
1169         iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
1170         Handle map clauses with COMPONENT_REF.  Initialize
1171         ctx->target_map_scalars_firstprivate,
1172         ctx->target_firstprivatize_array_bases and
1173         ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
1174         linear clause even to target region if combined.  Remove
1175         map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
1176         OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
1177         map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
1178         Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
1179         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
1180         For linear clause on worksharing loop combined with parallel add
1181         shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
1182         with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
1183         omp_member_access_dummy_var vars.  Add lastprivate clause to outer
1184         taskloop if needed.
1185         (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
1186         If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
1187         GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
1188         GOMP_MAP_POINTER.
1189         (gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
1190         of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
1191         in target body.  Handle removal of struct mapping if struct is not
1192         seen in target body.  Remove GOMP_MAP_STRUCT map clause on
1193         OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
1194         addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
1195         instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
1196         for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
1197         clause appear together.  Handle
1198         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
1199         clause if it has map-type-modifier always.  Handle
1200         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
1201         clauses.
1202         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
1203         Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
1204         callers.
1205         (gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
1206         loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
1207         iterators in doacross loops.
1208         (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
1209         gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
1210         for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
1211         for the addition of ORT_COMBINED_TARGET.
1212         (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
1213         gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
1214         and OMP_TARGET_EXIT_DATA.
1215         (gimplify_omp_ordered): New function.
1216         (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
1217         OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
1218         Gimplify clauses on OMP_CRITICAL.
1219         * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
1220         expand_GOMP_SIMD_ORDERED_END): New functions.
1221         * internal-fn.def (GOMP_SIMD_ORDERED_START,
1222         GOMP_SIMD_ORDERED_END): New internal functions.
1223         * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
1224         BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
1225         BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
1226         BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
1227         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
1228         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
1229         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
1230         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
1231         BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
1232         BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
1233         BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
1234         BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
1235         (BUILT_IN_GOMP_TASK): Add INT argument to the end.
1236         (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
1237         adjust type.
1238         (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
1239         GOMP_target_data_41, adjust type.
1240         (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
1241         GOMP_target_update_41, adjust type.
1242         * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
1243         field.
1244         (struct omp_for_data): Add ordered and simd_schedule fields.
1245         (omp_member_access_dummy_var, unshare_and_remap_1,
1246         unshare_and_remap, is_taskloop_ctx): New functions.
1247         (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
1248         (extract_omp_for_data): Handle taskloops and doacross loops
1249         and simd schedule modifier.
1250         (omp_adjust_chunk_size): New function.
1251         (get_ws_args_for): Use it.
1252         (lookup_sfield): Change first argument to splay_tree_key,
1253         add overload with first argument tree.
1254         (maybe_lookup_field): Likewise.
1255         (use_pointer_for_field): Handle omp_member_access_dummy_var.
1256         (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
1257         task_shared_vars, clear TREE_ADDRESSABLE on the copy.
1258         (build_outer_var_ref): Add LASTPRIVATE argument, handle
1259         taskloops and omp_member_access_dummy_var vars.
1260         (build_sender_ref): Change first argument to splay_tree_key,
1261         add overload with first argument tree.
1262         (install_var_field): For mask & 8 use &DECL_UID as key instead
1263         of the tree itself.
1264         (fixup_child_record_type): Const qualify *.omp_data_i.
1265         (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
1266         C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
1267         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
1268         OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
1269         on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
1270         (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
1271         (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
1272         kinds.
1273         (add_taskreg_looptemp_clauses): New function.
1274         (scan_omp_parallel): Use it.
1275         (scan_omp_task): Likewise.
1276         (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
1277         For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
1278         (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
1279         and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
1280         sandwiched taskloop constructs.  Type check
1281         OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
1282         region.  Diagnose depend(source) or depend(sink:...) on
1283         target constructs or task/taskloop.
1284         (handle_simd_reference): Use get_name.
1285         (lower_rec_input_clauses): Likewise.  Ignore all
1286         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
1287         Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
1288         before passing it to omp_clause_{default,copy}_ctor.  Handle
1289         OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
1290         lastprivate_firstprivate flag for linear that needs copyin and
1291         copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
1292         (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
1293         on taskloop lookup decl in outer context.  Pass true to
1294         build_outer_var_ref lastprivate argument.  Handle
1295         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
1296         outside of outer taskloop for.
1297         (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
1298         OMP_CLAUSE_DECL.
1299         (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
1300         GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
1301         omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
1302         with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
1303         (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
1304         abstract origin.  Handle omp_member_access_dummy_var vars.
1305         (expand_parallel_call): Use expand_omp_build_assign.
1306         (expand_task_call): Handle taskloop construct expansion.  Add
1307         REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
1308         integers.  Add priority argument to GOMP_task* calls.  Or in
1309         GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
1310         GOMP_task call.
1311         (expand_omp_build_assign): Add prototype.  Add AFTER
1312         argument, if true emit statements after *GSI_P and continue linking.
1313         (expand_omp_taskreg): Adjust expand_task_call caller.
1314         (expand_omp_for_init_counts): Rename zero_iter_bb argument to
1315         zero_iter1_bb and first_zero_iter to first_zero_iter1, add
1316         zero_iter2_bb and first_zero_iter2 arguments, handle computation
1317         of counts even for ordered loops.
1318         (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
1319         (expand_omp_ordered_source, expand_omp_ordered_sink,
1320         expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
1321         functions.
1322         (expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
1323         clauses on worksharing loop.  Handle DOACROSS loop expansion.
1324         (expand_omp_for_static_nochunk): Handle linear clauses on
1325         worksharing loop.  Adjust expand_omp_for_init_counts
1326         callers.
1327         (expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
1328         (expand_omp_simd): Handle addressable fd->loop.v.  Adjust
1329         expand_omp_for_init_counts callers.
1330         (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
1331         functions.
1332         (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
1333         Handle doacross loops.
1334         (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1335         GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
1336         GOMP_target_{41,update_41,enter_exit_data} libcalls.
1337         (expand_omp): Don't expand ordered depend constructs here, record
1338         ord_stmt instead for later expand_omp_for_generic.
1339         (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1340         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
1341         clause as stand-alone directive.
1342         (lower_omp_ordered_clauses): New function.
1343         (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
1344         don't lower anything.
1345         (lower_omp_for_lastprivate): Use last _looptemp_ clause
1346         on taskloop for comparison.
1347         (lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
1348         and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
1349         expansion for linear adjustments.
1350         (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
1351         (lower_depend_clauses): Assert not seeing sink/source depend kinds.
1352         Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
1353         to tree * pointing to the stmt's clauses.
1354         (lower_omp_taskreg): Adjust lower_depend_clauses caller.
1355         (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
1356         and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
1357         GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
1358         map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
1359         clauses.  Always use short kind and 8-bit align shift.
1360         (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
1361         (struct lower_omp_regimplify_operands_data): New type.
1362         (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
1363         New functions.
1364         (lower_omp_1): Use lower_omp_regimplify_operands instead of
1365         gimple_regimplify_operands.
1366         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1367         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
1368         clause as stand-alone directive.
1369         (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
1370         (simd_clone_mangle): Mangle the various linear kinds
1371         per the new ABI.
1372         (simd_clone_adjust_argument_types): Handle
1373         SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
1374         (simd_clone_init_simd_arrays): Don't do anything for uval.
1375         (simd_clone_adjust): Handle
1376         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
1377         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
1378         Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
1379         * omp-low.h (omp_member_access_dummy_var): New prototype.
1380         * passes.def (pass_simduid_cleanup): Schedule another copy of the
1381         pass after all optimizations.
1382         * tree.c (omp_clause_code_name): Add entries for
1383         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1384         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
1385         (omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
1386         arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
1387         (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
1388         OMP_CLAUSE_REDUCTION 5 arguments.  Handle
1389         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1390         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
1391         clauses.
1392         * tree-core.h (enum omp_clause_linear_kind): New.
1393         (struct tree_omp_clause): Change type of map_kind
1394         from unsigned char to unsigned int.  Add subcode.if_modifier
1395         and subcode.linear_kind fields.
1396         (enum omp_clause_code): Add
1397         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1398         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
1399         (OMP_CLAUSE_REDUCTION): Document
1400         OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
1401         (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
1402         * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
1403         (OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
1404         operand.
1405         (OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
1406         operand.
1407         (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
1408         codes.
1409         * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
1410         (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
1411         char.
1412         (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
1413         (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
1414         (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
1415         (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
1416         OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
1417         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
1418         OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
1419         OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
1420         OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
1421         OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
1422         OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
1423         OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
1424         OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
1425         * tree-inline.c (remap_gimple_stmt): Handle clauses on
1426         GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
1427         IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
1428         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
1429         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
1430         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
1431         clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
1432         (convert_local_omp_clauses): Likewise.
1433         * tree-pretty-print.c (dump_omp_clause): Handle
1434         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
1435         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
1436         clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
1437         OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
1438         OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
1439         GOMP_MAP_FORCE_DEALLOC.  Handle
1440         GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
1441         (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
1442         and clauses on OMP_ORDERED and OMP_CRITICAL.
1443         * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
1444         Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
1445         (vectorize_loops): Adjust comments.
1446         (pass_simduid_cleanup::execute): Likewise.
1447         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
1448         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
1449         * wide-int.h (wi::gcd): New.
1450
1451 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
1452
1453         * config/i386/i386.c (classify_argument): Use CEIL where applicable.
1454         (ix86_function_arg_advance): Ditto.
1455         (ix86_function_arg): Ditto.
1456         (ix86_gimplify_va_arg): Ditto.
1457         (ix86_class_max_nregs): Ditto.
1458         (inline_memory_move_cost): Ditto.
1459         (ix86_set_reg_reg_cost): Ditto.
1460         * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
1461
1462 2015-10-13  Alexandre Oliva <aoliva@redhat.com>
1463
1464         PR middle-end/67912
1465         * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
1466
1467 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
1468
1469         * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
1470         ROUND_UP macro and UNITS_PER_WORD * 2.
1471         * config/sparc/sparc.c (sparc_compute_frame_size):
1472         Use ROUND_UP and ROUND_DOWN macros where applicable.
1473         (function_arg_record_value, function_arg_record_value_1)
1474         (function_arg_record_value_1): Ditto.
1475         (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
1476         alignment to double-word.
1477         (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
1478         (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
1479         rounded_size.
1480
1481 2015-10-13  Nikolai Bozhenov  <n.bozhenov@samsung.com>
1482
1483         * gcc/rtl.h (print_insn): Fix prototype.
1484
1485 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1486
1487         * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
1488         -1.  Add assert that returned entry matches phi argument.
1489         (parallelize_loops): Move calls to init_stmt_vec_info_vec and
1490         free_stmt_vec_info_vec ...
1491         (gather_scalar_reductions): ... here.  Initialize gimple_uids of phis
1492         with -1.
1493
1494 2014-10-13  Yuri Rumyantsev  <ysrumyan@gmail.com>
1495
1496         PR tree-optimization/67909, 67947
1497         * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
1498         really skip the inner loop.
1499
1500 2015-10-13  Jeff Law  <law@redhat.com>
1501
1502         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
1503         Allow single block jump threading paths.
1504
1505 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1506
1507         PR tree-optimization/67476
1508         * doc/invoke.texi (@item parloops-schedule): New item.
1509         * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
1510         * tree-parloops.c: Include params-enum.h.
1511         (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
1512
1513 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1514
1515         * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
1516         * params-enum.h: New file.
1517         * opts.c (handle_param): Handle case that param arg is a string.
1518         * params-list.h: Handle DEFPARAMENUM5 in params.def.
1519         * params.c (find_param): New function, factored out of ...
1520         (set_param_value): ... here.
1521         (param_string_value_p): New function.
1522         * params.h (struct param_info): Add value_names field.
1523         (find_param, param_string_value_p): Declare.
1524
1525 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1526
1527         PR tree-optimization/67476
1528         * omp-low.c (expand_omp_for_generic): Handle original loop tree.
1529
1530 2015-10-13  Richard Biener  <rguenther@suse.de>
1531
1532         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
1533         the data dependence vector.
1534         (vect_peeling_hash_insert): Get the peeling hash table as argument.
1535         (vect_peeling_hash_get_lowest_cost): Likewise.
1536         (vect_enhance_data_refs_alignment): Adjust.
1537         (struct _vect_peel_info, struct _vect_peel_extended_info,
1538         struct peel_info_hasher): Move from ...
1539         * tree-vectorizer.h: ... here.
1540         (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
1541         (LOOP_VINFO_PEELING_HTAB): Likewise.
1542         (struct _loop_vec_info): Remove min_profitable_iters and
1543         peeling_htab members.
1544         * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
1545         here.
1546         (destroy_loop_vec_info): Adjust.
1547         (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
1548         (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
1549         to estimate alias versioning cost.
1550         * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
1551
1552 2015-10-13  Richard Sandiford  <richard.sandiford@arm.com>
1553
1554         * real.h (real_isinteger): Declare.
1555         * real.c (real_isinteger): New function.
1556         * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
1557         if y is an even integer.
1558
1559 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1560
1561         revert:
1562         2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1563         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
1564         counts when these are more informative.
1565
1566 2015-10-12  Jeff Law  <law@redhat.com>
1567
1568         * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
1569         (fsm_find_control_stmt_paths): Change name of first argument to
1570         more accurately relfect what it really is.  Handle simplification
1571         of GIMPLE_COND after finding a thread path for NAME.
1572         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
1573         nontrivial conditions to be handled by FSM threader.
1574         (thread_through_normal_block): Extract the name to looup via
1575         FSM threader from COND_EXPR.
1576
1577         * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
1578         restriction that traced SSA_NAME is a user variable.
1579
1580 2015-10-12  Tom de Vries  <tom@codesourcery.com>
1581
1582         PR tree-optimization/67476
1583         * omp-low.c (expand_omp_for_generic): Add missing phis.
1584
1585 2015-10-12  Tom de Vries  <tom@codesourcery.com>
1586
1587         PR tree-optimization/67476
1588         * omp-low.c (expand_omp_for_generic): Handle simple latch.
1589
1590 2015-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
1591
1592         * config/aarch64/aarch64-simd-builtins.def: Update builtins
1593         tables: add tbl3 and tbx4.
1594         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
1595         (aarch64_tbx4v8qi): New.
1596         * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
1597         (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
1598         Rewrite using builtin functions.
1599         * config/aarch64/iterators.md (UNSPEC_TBX): New.
1600
1601 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
1602
1603         * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
1604         ROUND_UP macro.
1605         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
1606         Use ROUND_UP and ROUND_DOWN macros where applicable.
1607         (rs6000_darwin64_record_arg_flush): Ditto.
1608         (rs6000_function_arg): Use ROUND_UP to calculate align_words.
1609         (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
1610         rounded_size.
1611
1612 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
1613
1614         * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
1615         (AARCH64_ROUND_DOWN): Ditto.
1616         * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
1617
1618 2015-10-12  Richard Biener  <rguenther@suse.de>
1619
1620         PR ipa/67783
1621         * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
1622         code that analyzes IVs on each stmt but in a cheaper way avoiding
1623         quadratic behavior.
1624
1625 2015-10-12  Nick Clifton  <nickc@redhat.com>
1626
1627         * config/msp430/msp430.c (msp430_mcu_names): Rename to
1628         msp430_mcu_data, add fields for ISA and hardware multiply
1629         support.  Import latest data from the devices.csv file.
1630         (msp430_override_option): Use the data from the new array.
1631         (msp430_use_f5_series_hwmult): Likewise.
1632         (use_32bit_hwmult): Likewise.
1633         (msp430_no_hwmult): Likewise.
1634         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
1635         MCU names.
1636         * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
1637         not recognised then no hardware multiply support is assumed and
1638         that only the MSP430 ISA is allowed.
1639
1640 2015-10-12  Richard Biener  <rguenther@suse.de>
1641
1642         * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
1643         related code ...
1644         (vect_analyze_loop_2): ... here.
1645
1646 2015-10-11  Jason Merrill  <jason@redhat.com>
1647
1648         PR c++/67557
1649         * expr.c (store_field): Call store_constructor directly when
1650         storing a CONSTRUCTOR into a target smaller than its type.
1651         Guard against unsafe bitwise copy.
1652
1653 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1654
1655         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
1656         counts when these are more informative.
1657
1658 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1659
1660         * tree-profile.c (tree_profiling): Do not clear
1661         pure/const when not instrumenting.
1662         (pass tree_profile): Add dump of symtab.
1663
1664 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1665
1666         * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
1667         addresses.
1668         (fold_addr_of_array_ref_difference): Likewise.
1669
1670 2015-10-11  Jeff Law  <law@redhat.com>
1671
1672         * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
1673         tree-ssa-threadbackward.c.
1674         (fsm_find_control_statement_thread_paths): Likewise.
1675         (thread_through_normal_block): Break out FSM bits and move them
1676         into a new function in tree-ssa-threadbackward.c.  Call new function
1677         instead.
1678         Minimize header file usage.
1679         * tree-ssa-threadbackward.h: New file.
1680         * tree-ssa-threadbackward.c: Likewise.
1681         * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
1682
1683 2015-10-11  Uros Bizjak  <ubizjak@gmail.com>
1684
1685         * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
1686
1687 2015-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
1688
1689         PR rtl-optimization/67864
1690         * gcc/bb-reorder (reorder_basic_blocks_simple): Prefer existing
1691         fallthrough edges for conditional jumps.  Don't sort candidate
1692         edges if not optimizing for speed.
1693
1694 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1695
1696         * defaults.h (REVERSE_CONDITION): New default definition.
1697         * jump.c (reversed_comparison_code_parts): Adjust.
1698
1699 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1700
1701         * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
1702         check HARD_FRAME_POINTER_IS_ARG_POINTER.
1703
1704 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1705
1706         * defaults.h (FRAME_ADDR_RTX): New default definition.
1707         * builtins.c (expand_builtin_return_addr): Adjust.
1708
1709 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1710
1711         * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
1712         * builtins.c (expand_builtin_return_addr): Adjust.
1713
1714 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1715
1716         * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
1717         * builtins.c (expand_builtin_return_addr): Adjust.
1718         * doc/tm.texi: Likewise.
1719         * doc/tm.texi.in: Likewise.
1720         * except.c (expand_builtin_unwind_init): Likewise.
1721
1722 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1723
1724         * builtins.c (expand_builtin_return_addr): Adjust.
1725         * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
1726
1727 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
1728
1729         * tree.c (type_with_interoperable_signedness): New.
1730         (gimple_canonical_types_compatible_p): Use it.
1731         * tree.h (type_with_interoperable_signedness): Declare
1732
1733 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
1734
1735         * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
1736         and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
1737         when OEP_ADDRESS_OF is se.
1738
1739 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
1740             Sebastian Pop  <s.pop@samsung.com>
1741
1742         * graphite-dependences.c (scop_get_dependences): Add dump of the
1743         data dependence graph.
1744         * graphite-poly.c (print_isl_union_map): New.
1745         (debug_isl_union_map): New.
1746         * graphite-poly.h (print_isl_union_map): Declare.
1747         (debug_isl_union_map): Declare.
1748
1749 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
1750             Sebastian Pop  <s.pop@samsung.com>
1751
1752         * graphite-poly.c (print_iteration_domain): Remove verbosity.
1753         Remove OpenScop formatting.
1754         (print_iteration_domains): Same.
1755         (debug_iteration_domain): Same.
1756         (debug_iteration_domains): Same.
1757         (print_pdr): Same.
1758         (debug_pdr): Same.
1759         (dump_gbb_cases): Same.
1760         (dump_gbb_conditions): Same.
1761         (print_pdrs): Same.
1762         (debug_pdrs): Same.
1763         (print_pbb_body): Same.
1764         (print_pbb): Same.
1765         (print_scop_params): Same.
1766         (print_scop_context): Same.
1767         (print_scop): Same.
1768         (debug_pbb_domain): Same.
1769         (debug_pbb): Same.
1770         (debug_scop_context): Same.
1771         (debug_scop): Same.
1772         (debug_scop_params): Same.
1773         * graphite-poly.h: Same.
1774         * graphite.c (graphite_transform_loops): Same.
1775
1776 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1777
1778         * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
1779         call that isn't needed.
1780
1781 2015-10-09  Jeff Law  <law@redhat.com>
1782
1783         * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
1784         rather than moving each name to the freelist individually.
1785
1786 2015-10-09  Steve Ellcey  <sellcey@imgtec.com>
1787
1788         * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
1789         * frame-header-opt.c: New file.
1790         * config/mips/mips-proto.h (mips_register_frame_header_opt):
1791         Add prototype.
1792         * config/mips/mips.c (mips_compute_frame_info): Check
1793         optimize_call_stack flag.
1794         (mips_option_override): Register new frame_header_opt pass.
1795         (mips_frame_info, mips_int_mask, mips_shadow_set,
1796         machine_function): Move these types to...
1797         * config/mips/mips.h: here.
1798         (machine_function): Add does_not_use_frame_header and
1799         optimize_call_stack fields.
1800         * config/mips/t-mips (frame-header-opt.o): Add new make rule.
1801         * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
1802         Document new flags.
1803         * config/mips/mips.opt (mframe-header-opt): Add new option.
1804
1805 2015-10-09  Uros Bizjak  <ubizjak@gmail.com>
1806
1807         * config/i386/i386.c
1808         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
1809         ROUND_DOWN where applicable.
1810
1811 2015-10-09  Jeff Law  <law@redhat.com>
1812
1813         * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
1814         correct statement.
1815
1816 2015-10-09  Renlin Li  <renlin.li@arm.com>
1817
1818         * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
1819         operands[0] and operands[2].
1820         (neon_vtrn<mode>_insn): Likewise.
1821         (neon_vzip<mode>_insn): Likewise.
1822
1823 2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1824
1825         * match.pd: ((X inner_op C0) outer_op C1) New pattern.
1826         ((X & C2) << C1): Expand to...
1827         (X {&,^,|} C2 << C1): ...This.
1828         ((X & C2) >> C1): Expand to...
1829         (X {&,^,|} C2 >> C1): ...This.
1830
1831 2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>
1832
1833         PR target/67895
1834         * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
1835         Adjust embedded rounding/SAE specifier position.
1836         (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
1837         (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
1838         (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
1839         (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
1840         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
1841         Likewise.
1842         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
1843
1844 2015-10-09  Martin Jambor  <mjambor@suse.cz>
1845
1846         tree-optimization/67794
1847         * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
1848         between types of state,ents but accept original definitions as a
1849         parameter.
1850         (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
1851         iterate over definitions.
1852
1853 2015-10-09  James Norris  <jnorris@codesourcery.com>
1854
1855         * config/rs6000/rs6000.c (rs6000_offload_options): New.
1856         (TARGET_OFFLOAD_OPTIONS): New.
1857
1858 2015-10-09  Alexandre Oliva <aoliva@redhat.com>
1859
1860         PR middle-end/67891
1861         * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
1862
1863         PR middle-end/67766
1864         * function.c (expand_function_end): Move return value
1865         promotion past the handling of PARALLELs and CONCATs.
1866
1867         PR rtl-optimization/67828
1868         * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
1869         (tree_may_unswitch_on): Don't unswitch on expressions
1870         involving undefined values.
1871
1872 2015-10-09  Richard Biener  <rguenther@suse.de>
1873
1874         * genmatch.c (print_operand): Fix formatting.
1875         (dt_node::append_simplify): Warn for multiple simplifiers
1876         that match the same pattern.
1877         * match.pd (log (exp @0)): Remove duplicates.
1878
1879 2015-10-09  Richard Biener  <rguenth@suse.de>
1880
1881         PR target/67366
1882         * gimple-fold.c (optabs-query.h): Include
1883         (gimple_fold_builtin_memory_op): Allow unaligned stores
1884         when movmisalign_optabs are available.
1885
1886 2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1887
1888         PR target/67366
1889         * config/arm/arm.md (movmisalign<mode>): New.
1890         * config/arm/iterators.md (HSI): New.
1891
1892 2015-10-09  Richard Biener  <rguenther@suse.de>
1893
1894         PR tree-optimization/67891
1895         * gimple-match.h (gimple_simplified_result_is_gimple_val):
1896         New helper.
1897         (gimple_resimplify1): Declare.
1898         (gimple_resimplify2): Likewise.
1899         (gimple_resimplify3): Likewise.
1900         * gimple-match-head.c (gimple_resimplify1): Export.
1901         (gimple_resimplify2): Likewise.
1902         (gimple_resimplify3): Likewise.
1903         (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
1904         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
1905         * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
1906         to avoid creating stmts without VN info.
1907
1908 2015-10-08  Jan Hubicka  <hubicka@ucw.cz>
1909
1910         * ipa-icf.c (sem_item::compare_symbol_references): Fix use
1911         of availability.
1912
1913 2015-10-08  Jeff Law  <law@redhat.com>
1914
1915         * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
1916         and release_ssa_name in two places.
1917         (gimple_stringop_fixed_value): Similarly.
1918
1919         * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
1920         release_defs.
1921
1922         * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
1923         unlink_stmt_vdef and release_ssa_name_fn.
1924
1925         * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
1926         release_defs.
1927
1928 2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>
1929
1930         * config/i386/i386.c (ix86_compute_frame_layout): Round up the
1931         SSE register save area to 16 bytes only if the incoming stack
1932         boundary is no less than 16 bytes.
1933
1934 2015-10-08  Jeff Law  <law@redhat.com>
1935
1936         * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
1937         release_ssa_name.  Fix typo in comment.
1938
1939 2015-10-08  Nathan Sidwell  <nathan@acm.org>
1940
1941         * config/nvptx/nvptx.h (struct machine_function): Add comment.
1942         * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
1943         may return pointer as well as in memory.
1944         (nvptx_output_return): Likewise.
1945
1946 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
1947
1948         * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
1949         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
1950         * match.pd: Add rules previously handled by fold_builtin_sqrt
1951         and fold_builtin_cbrt.
1952
1953 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
1954
1955         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
1956         * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
1957         * fold-const.h (tree_unary_nonnegative_warnv_p)
1958         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
1959         (tree_expr_nonnegative_warnv_p): Add depth parameters.
1960         * fold-const.c: Include gimple-fold.h and params.h.
1961         (tree_ssa_name_nonnegative_warnv_p): New function.
1962         (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
1963         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
1964         (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
1965         Add a depth parameter and increment it for recursive calls to
1966         tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
1967         to handle SSA names.
1968         * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
1969         (gimple_stmt_nonnegative_warnv_p): Declare.
1970         * tree-vrp.c (remove_range_assertions): Remove assert that condition
1971         cannot be proven false.
1972         (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
1973         (gimple_stmt_nonnegative_warnv_p): Move to...
1974         * gimple-fold.c: ...here.  Add depth parameters and pass them
1975         down to the tree routines.  Accept statements that aren't
1976         assignments or calls but just return false for them.
1977         (gimple_val_nonnegative_real_p): Delete.
1978         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
1979         tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
1980         Check HONOR_NANs first.
1981
1982 2015-10-08  Martin Jambor  <mjambor@suse.cz>
1983
1984         * ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
1985         unnecessary MIN.
1986
1987 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
1988
1989         * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
1990         in the tail of outer-loop.
1991
1992 2015-10-08  David Edelsohn  <dje.gcc@gmail.com>
1993
1994         * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
1995         return UI_NONE.
1996
1997 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
1998
1999         * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
2000         "cfghooks.h", add prototypes for introduced new functions.
2001         (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
2002         checks on ability of loop unswitching to tree_unswitch_single_loop;
2003         invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
2004         on innermost loop check.
2005         (tree_unswitch_single_loop): Add all required checks on ability of
2006         loop unswitching under zero recursive level guard.
2007         (tree_unswitch_outer_loop): New function.
2008         (find_loop_guard): Likewise.
2009         (empty_bb_without_guard_p): Likewise.
2010         (used_outside_loop_p): Likewise.
2011         (get_vop_from_header): Likewise.
2012         (hoist_guard): Likewise.
2013         (check_exit_phi): Likewise.
2014
2015 2015-10-08  Marek Polacek  <polacek@redhat.com>
2016
2017         * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
2018         ops element.
2019
2020 2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2021
2022         PR c/65345
2023         * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
2024         create_tmp_var_raw instead of create_tmp_var.
2025
2026 2015-10-07  Jan Hubicka  <hubicka@ucw.cz>
2027
2028         * expr.c (store_expr_with_bounds): Handle aggregate moves from
2029         BLKmode.
2030         * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
2031         to define gimple type system; compare aggregates only by size.
2032
2033 2015-10-07  Jeff Law  <law@redhat.com>
2034
2035         * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
2036         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
2037         here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
2038         unnecessarily.
2039
2040 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2041             Sebastian Pop  <s.pop@samsung.com>
2042
2043         * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
2044         * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
2045         (generate_isl_schedule): Same.
2046         * graphite-optimize-isl.c (scop_get_domains): Same.
2047         (apply_schedule_map_to_scop): Same.
2048         * graphite-poly.c (print_iteration_domains): Same.
2049         (remove_gbbs_in_scop): Same.
2050         (new_scop): Same.
2051         (free_scop): Same.
2052         (print_scop): Same.
2053         * graphite-poly.h (struct scop): Rename bbs to pbbs.
2054         (SCOP_BBS): Remove.
2055         * graphite-scop-detection.c (compare_bb_depths): Remove.
2056         (graphite_sort_dominated_info): Remove.
2057         (try_generate_gimple_bb): Move out of scop_detection.
2058         (all_non_dominated_preds_marked_p): Remove.
2059         (build_scop_bbs_1): Remove.
2060         (build_scop_bbs): Remove.
2061         (nb_pbbs_in_loops): Do not use SCOP_BBS.
2062         (find_scop_parameters): Same.
2063         (sese_dom_walker): Rename gather_bbs.
2064         (before_dom_children): Call try_generate_gimple_bb and collect gbb
2065         and pbb.
2066         (build_scops): Call gather_bbs.
2067         * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
2068         (add_conditions_to_constraints): Same.
2069         (build_scop_iteration_domain): Same.
2070         (build_scop_drs): Same.
2071         (new_pbb_from_pbb): Same.
2072         * sese.c (new_sese_info): Create bbs.
2073         * sese.h (struct sese_info_t): Add bbs.
2074
2075 2015-10-07  David Edelsohn  <dje.gcc@gmail.com>
2076
2077         * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
2078         encoding in 64-bit mode.
2079
2080 2015-10-07  Uros Bizjak  <ubizjak@gmail.com>
2081
2082         PR target/66697
2083         * config/i386/i386.c (ix86_option_override_internal): Always use
2084         8-byte minimum stack boundary in 64-bit mode.
2085         (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
2086         (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
2087         Add a REG_CFA_EXPRESSION note if needed.
2088         (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
2089         (ix86_handle_force_align_arg_pointer_attribute): New.
2090         (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
2091         (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
2092         with ix86_handle_force_align_arg_pointer_attribute.
2093         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
2094
2095 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2096             Sebastian Pop  <s.pop@samsung.com>
2097
2098         * graphite-scop-detection.c (parameter_index_in_region): Remove
2099         use of SESE_ADD_PARAMS.
2100         (find_scop_parameters): Same.
2101         * sese.c (new_sese_info): Same.
2102         * sese.h (struct sese_info_t): Remove add_params.
2103         (SESE_ADD_PARAMS): Remove.
2104
2105 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2106             Sebastian Pop  <s.pop@samsung.com>
2107
2108         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
2109         an sese_info_p.
2110         (copy_def): Same.
2111         (copy_internal_parameters): Same.
2112         (translate_isl_ast_to_gimple): Use an sese_l.
2113         (build_iv_mapping): Same.
2114         * graphite-poly.c (new_sese): Rename new_sese_info.
2115         (free_sese): Rename free_sese_info.
2116         * graphite-poly.h (struct scop): Use an sese_info_p.
2117         (scop_set_region): Same.
2118         * graphite-scop-detection.c (struct sese_l): Moved...
2119         (get_entry_bb): Moved...
2120         (get_exit_bb): Moved...
2121         (parameter_index_in_region_1): Use an sese_info_p.
2122         (parameter_index_in_region): Same.
2123         (scan_tree_for_params): Same.
2124         (find_params_in_bb): Same.
2125         (sese_dom_walker): Use an sese_l.
2126         * graphite-sese-to-poly.c (remove_invariant_phi): Same.
2127         (reduction_phi_p): Same.
2128         (parameter_index_in_region_1): Use an sese_info_p.
2129         (propagate_expr_outside_region): Use an sese_l.
2130         * graphite.c: Replace uses of SCOP_REGION.
2131         * sese.c (sese_record_loop): Use an sese_info_p.
2132         (build_sese_loop_nests): Same.
2133         (sese_build_liveouts_use): Same.
2134         (sese_build_liveouts_bb): Same.
2135         (sese_build_liveouts_bb): Same.
2136         (sese_bad_liveouts_use): Same.
2137         (sese_reset_debug_liveouts_bb): Same.
2138         (sese_build_liveouts): Same.
2139         (new_sese): Renamed new_sese_info.
2140         (free_sese): Renamed free_sese_info.
2141         (set_rename): Use an sese_info_p.
2142         (graphite_copy_stmts_from_block): Same.
2143         (copy_bb_and_scalar_dependences): Same.
2144         (outermost_loop_in_sese_1): Use an sese_l.
2145         (outermost_loop_in_sese): Same.
2146         (if_region_set_false_region): Use an sese_info_p.
2147         (move_sese_in_condition): Same.
2148         (scalar_evolution_in_region): Use an sese_l.
2149         * sese.h (struct sese_l): ... here.
2150         (SESE_ENTRY): Remove.
2151         (SESE_ENTRY_BB): Remove.
2152         (SESE_EXIT): Remove.
2153         (SESE_EXIT_BB): Remove.
2154         (sese_contains_loop): Use an sese_info_p.
2155         (sese_nb_params): Same.
2156         (bb_in_sese_p): Use an sese_l.
2157         (stmt_in_sese_p): Same.
2158         (defined_in_sese_p): Same.
2159         (loop_in_sese_p): Same.
2160         (sese_loop_depth): Same.
2161         (struct ifsese_s): Use an sese_info_p.
2162         (gbb_loop_at_index): Use an sese_l.
2163         (nb_common_loops): Same.
2164         (scev_analyzable_p): Same.
2165
2166 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2167
2168         * config/i386/i386.c (ix86_conditional_register_usage): Use
2169         CALL_USED_REGISTERS_MASK.
2170         * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
2171
2172 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2173
2174         PR bootstrap/67385
2175         * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
2176         * configure: Regenerated.
2177
2178 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2179
2180         PR target/67850
2181         * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
2182         (ix86_set_current_function): This.
2183         (TARGET_EXPAND_TO_RTL_HOOK): Removed.
2184
2185 2015-10-07  Richard Biener  <rguenther@suse.de>
2186
2187         * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
2188         (vinfo_for_stmt): Adjust.
2189         (set_vinfo_for_stmt): Likewise.
2190         * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
2191         * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
2192         * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
2193         of inner loop.
2194         (vect_analyze_loop_1): Remove.
2195         (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
2196         inner loop when vectorizing an outer loop by splitting out from ...
2197         (vect_analyze_loop_form): ... here.
2198
2199 2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2200
2201         PR c/65345
2202         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
2203         Use create_tmp_var_raw instead of create_tmp_var.
2204
2205 2015-10-07  Richard Sandiford  <richard.sandiford@arm.com>
2206
2207         * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
2208         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
2209         * real.c (CACHED_FRACTION): New helper macro.
2210         (dconst_third_ptr): Use it.
2211         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
2212         * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
2213         dconst_sixth.
2214         (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
2215
2216 2015-10-06  Jeff Law  <law@redhat.com>
2217
2218         PR tree-optimization/67816
2219         * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
2220         from remove_jump_threads_starting_at.  Accept an edge rather than
2221         a basic block.
2222         * tree-ssa-threadupdate.c (removed_edges): New hash table.
2223         (remove_jump_threads_including): Note edges that get removed from
2224         the CFG for later pruning of jump threading paths including them.
2225         (thread_through_all_blocks): Remove paths which include edges that
2226         have been removed.
2227         * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
2228         on each outgoing edges when optimizing away a control statement.
2229
2230 2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2231
2232         * reorg.c (emit_delay_sequence): Store list of delay slot insns
2233         in a vector instead of rtx_insn_list.
2234         (add_to_delay_list): Likewise.
2235         (delete_from_delay_slot): Likewise.
2236         (optimize_skip): Likewise.
2237         (redirect_with_delay_list_safe_p): Likewise.
2238         (check_annul_list_true_false): Likewise.
2239         (steal_delay_list_from_target): Likewise.
2240         (steal_delay_list_from_fallthrough): Likewise.
2241         (redundant_insn): Likewise.
2242         (fill_simple_delay_slots): Likewise.
2243         (fill_slots_from_thread): Likewise.
2244         (fill_eager_delay_slots): Likewise.
2245         (relax_delay_slots): Likewise.
2246
2247 2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>
2248
2249         * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
2250         For -mgpopt=local, also exclude unintialized common symbols.
2251         * doc/invoke.texi (Nios II Options): Document the change.
2252
2253 2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
2254
2255         * config/aarch64/iterators.md (vwcore): Add missing cases for
2256          V4HF/V8HF modes.
2257
2258 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2259             Sebastian Pop  <s.pop@samsung.com>
2260
2261         * graphite-poly.c (new_scop): Initialize drs.
2262         * graphite-poly.h (struct dr_info): New.
2263         (struct scop): Add drs.
2264         * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
2265         (pdr_add_memory_accesses): Same.
2266         (build_poly_dr): Same.
2267         (build_alias_set): Same.
2268         (build_scop_drs): Same.
2269         (build_pbb_drs): Remove.
2270         * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
2271         * tree-data-ref.h (data_reference): Remove alias_set.
2272
2273 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2274             Sebastian Pop  <s.pop@samsung.com>
2275
2276         * graphite-poly.c (free_data_refs_aux): Remove.
2277         (free_gimple_poly_bb): Do not call free_data_refs_aux.
2278         * graphite-poly.h (struct base_alias_pair): Remove.
2279         * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
2280         base_alias_pair and dr->aux.
2281         (build_alias_set): Same.
2282         * tree-data-ref.c (create_data_ref): Initialize alias_set.
2283         * tree-data-ref.h (data_reference): Add alias_set.
2284
2285 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2286             Sebastian Pop  <s.pop@samsung.com>
2287
2288         * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
2289         Do not set PDR_BASE_OBJECT_SET.
2290         * graphite-poly.h (poly_dr): Same.
2291         (PDR_BASE_OBJECT_SET): Remove.
2292         (new_poly_dr): Update decl.
2293         * graphite-sese-to-poly.c (build_poly_dr): Update call to
2294         new_poly_dr.
2295         (write_alias_graph_to_ascii_dimacs): Remove.
2296         (write_alias_graph_to_ascii_dot): Remove.
2297         (write_alias_graph_to_ascii_ecc): Remove.
2298         (dr_same_base_object_p): Remove.
2299         (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
2300         code.
2301         (build_base_obj_set_for_drs): Remove.
2302         (dump_alias_graphs): Remove.
2303         (build_scop_drs): Remove dead code.
2304
2305 2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
2306             Peter Bergner  <bergner@vnet.ibm.com>
2307
2308         PR target/67808
2309         * config/rs6000/rs6000.md (extenddftf2): In the expander, only
2310         allow registers, but provide insns for the combiner to create for
2311         loads from memory. Separate VSX code from non-VSX code. For
2312         non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
2313         externaldftf2_internal to externaldftf2_fprs. Reorder constraints
2314         so that registers come before memory operations. Drop support from
2315         converting DFmode to TFmode, if the DFmode value is in a GPR
2316         register.
2317         (extenddftf2_fprs): Likewise.
2318         (extenddftf2_internal): Likewise.
2319         (extenddftf2_vsx): Likewise.
2320         (extendsftf2): In the expander, only allow registers, but provide
2321         insns for the combiner to create for stores and loads.
2322
2323 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2324
2325         * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
2326         from the decl parameter.
2327
2328 2015-10-06  Nathan Sidwell  <nathan@codesourcery.com>
2329
2330         PR 67861
2331         * gimple-fold.c (gimple_fold_builtin): Add break after
2332         BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
2333
2334 2015-10-06  H.J. Lu  <hongjiu.lu@intel.com>
2335
2336         * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
2337         to scop->isl_context.
2338
2339 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2340
2341         * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
2342         (output_probe_stack_range): Rotate the loop and simplify.
2343         (thumb1_expand_prologue): Tweak sorry message.
2344         * config/arm/arm.md (probe_stack): Use bare string.
2345
2346 2015-10-06  Nick Clifton  <nickc@redhat.com>
2347
2348         * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
2349
2350 2015-10-06  Nick Clifton  <nickc@redhat.com>
2351
2352         * config/msp430/msp430.c (ATTR_NOINIT): New constant.
2353         (ATTR_PERSIST): New constant.
2354         (msp430_data_attr): New function - verifies an attribute that only
2355         applies to variables.
2356         (msp430_attributes): Add noinit and persistent attributes.
2357         (noinit_section): New variable.
2358         (presis_section): New variable.
2359         (TARGET_ASM_INIT_SECTIONS): Define.
2360         (msp430_init_sections): New function - initialises the noinit and
2361         persist section variables.
2362         (msp430_select_section): Add support for noinit and persist
2363         attributes.
2364         (msp430_section_type_flags): Likewise.
2365         * doc/extend.texi:  Document the reent, critical, wakeup, noinit
2366         and persistent attributes.
2367
2368 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2369             Sebastian Pop  <s.pop@samsung.com>
2370
2371         * graphite-dependences.c (scop_get_transformed_schedule): Remove.
2372         (no_violations): Remove.
2373         (subtract_commutative_associative_deps): Remove.
2374         (compute_deps): Do not call subtract_commutative_associative_deps.
2375         (transform_is_safe): Remove.
2376         (graphite_legal_transform): Remove.
2377         * graphite-poly.h (graphite_legal_transform): Remove.
2378
2379 2015-10-05  Aditya Kumar  <hiraditya@msn.com>
2380
2381         * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
2382         which are in this region are passed so gcc_assert and remove redundant
2383         computation.
2384         * sese.c (sese_build_liveouts): Pass only those bbs which are not
2385         in region.
2386         (sese_bad_liveouts_use): Only BBs which are not in region are passed so
2387         gcc_assert on that and remove unnecessary computation.
2388         (sese_build_liveouts_use): Same.
2389
2390 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2391
2392         * graphite-dependences.c (scop_get_reads): Renamed scop->context
2393         to scop->param_context.
2394         (scop_get_must_writes): Same.
2395         (scop_get_may_writes): Same.
2396         (scop_get_original_schedule): Same.
2397         (scop_get_transformed_schedule): Same.
2398         (subtract_commutative_associative_deps): Same.
2399         * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
2400         (generate_isl_context): Same.
2401         (generate_isl_schedule): Same.
2402         (scop_to_isl_ast): Same.
2403         (graphite_regenerate_ast_isl): Same.
2404         * graphite-optimize-isl.c (scop_get_domains): Same.
2405         (optimize_isl): Renamed scop->context to scop->param_context.
2406         * graphite-poly.c (new_poly_bb): Change the type of argument to
2407         gimple_poly_bb_p.
2408         (new_scop): Renamed scop->context to scop->param_context.
2409         (free_scop): Same.
2410         (print_scop_context): Same.
2411         * graphite-poly.h (new_poly_dr): Change the type of argument from
2412         void* to data_reference_p.
2413         (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
2414         (new_poly_bb): Change the type of argument from void* to
2415         gimple_poly_bb_p.
2416         (pbb_set_black_box): Same.
2417         (struct scop): Rename context to param_context, ctx to isl_context.
2418         * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
2419         Move declarations closer to assignment.
2420         (find_params_in_bb): Same.
2421         (find_scop_parameters): Same.
2422         * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
2423         Global to be used for statement IDs.
2424         (isl_id_for_pbb): Use ssa_name_version_typesize.
2425         (simple_copy_phi_p): Move declarations closer to assignment.
2426         (build_pbb_scattering_polyhedrons): Same.
2427         (build_scop_scattering): Same.
2428         (isl_id_for_ssa_name): Same.
2429         (extract_affine_name): Same.
2430         (extract_affine_int): Same.
2431         (extract_affine): Same.
2432         (set_scop_parameter_dim): Use renamed member.
2433         (build_loop_iteration_domains): Same.
2434         (add_param_constraints): Same.
2435         (build_scop_iteration_domain): Same.
2436         (pdr_add_data_dimensions): Same.
2437         (build_poly_dr): Same.
2438         (build_scop_drs): Move declarations closer to assignment.
2439         (analyze_drs_in_stmts): Same.
2440         (insert_out_of_ssa_copy): Same.
2441         (insert_out_of_ssa_copy_on_edge): Same.
2442         (propagate_expr_outside_region): Same.
2443         (rewrite_phi_out_of_ssa): Same.
2444         (rewrite_degenerate_phi): Same.
2445         (rewrite_reductions_out_of_ssa): Same.
2446         (rewrite_cross_bb_scalar_dependence): Same.
2447         (handle_scalar_deps_crossing_scop_limits): Same.
2448         (rewrite_cross_bb_scalar_deps): Same.
2449         * graphite.c (graphite_transform_loops): Use renamed member.
2450
2451 2015-10-06  Uros Bizjak  <ubizjak@gmail.com>
2452
2453         PR c/65345
2454         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
2455         create_tmp_var_raw instead of create_tmp_var.
2456
2457 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2458
2459         PR c/65345
2460         * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
2461         Use create_tmp_var_raw instead of create_tmp_var.
2462
2463 2015-10-06  Alexander Fomin  <alexander.fomin@intel.com>
2464
2465         PR target/67849
2466         * config/i386/sse.md (define_split vec_select/V8FI): Restrict
2467         split for upper-bank registers when target does not support
2468         AVX512VL.
2469         (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
2470         split when target does not support AVX512VL.
2471
2472 2015-10-06  David Edelsohn  <dje.gcc@gmail.com>
2473
2474         PR c/65345
2475         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
2476         Adjust to use create_tmp_var_raw instead of create_tmp_var.
2477
2478 2015-10-06  Nick Clifton  <nickc@redhat.com>
2479
2480         * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
2481         multiplication.
2482
2483 2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
2484
2485         * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
2486         (case ${target}): Add znver1.
2487         * config/i386/cpuid.h(bit_CLZERO):  Define.
2488         * config/i386/driver-i386.c: (host_detect_local_cpu): Let
2489         -march=native recognize znver1 processors.
2490         * config/i386/i386-c.c (ix86_target_macros_internal): Add
2491         znver1, clzero def_and_undef.
2492         * config/i386/i386.c (struct processor_costs znver1_cost): New.
2493         (m_znver1): New definition.
2494         (m_AMD_MULTIPLE): Includes m_znver1.
2495         (processor_target_table): Add znver1 entry.
2496         (ix86_target_string) : Add clzero entry.
2497         (static const char *const cpu_names): Add znver1 entry.
2498         (ix86_option_override_internal): Add znver1 instruction sets.
2499         (PTA_CLZERO) :  New definition.
2500         (ix86_option_override_internal): Handle new clzerooption.
2501         (ix86_issue_rate): Add znver1.
2502         (ix86_adjust_cost): Add znver1.
2503         (ia32_multipass_dfa_lookahead): Add znver1.
2504         (has_dispatch): Add znver1.
2505         * config/i386/i386.h (TARGET_znver1): New definition.
2506         (TARGET_CLZERO): Define.
2507         (TARGET_CLZERO_P): Define.
2508         (struct ix86_size_cost): Add TARGET_ZNVER1.
2509         (enum processor_type): Add PROCESSOR_znver1.
2510         * config/i386/i386.md (define_attr "cpu"): Add znver1.
2511         (set_attr znver1_decode): New definitions for znver1.
2512         * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
2513         (mclzero): New.
2514         * config/i386/mmx.md (set_attr znver1_decode): New definitions
2515         for znver1.
2516         * config/i386/sse.md (set_attr znver1_decode): Likewise.
2517         * config/i386/x86-tune.def:  Add znver1 tunings.
2518         * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
2519         * gcc/doc/invoke.texi: Add details about znver1
2520
2521 2015-10-06  Richard Biener  <rguenther@suse.de>
2522
2523         PR tree-optimization/67859
2524         * tree-ssa-pre.c (create_expression_by_pieces): Properly
2525         discard not inserted stmts.
2526
2527 2015-10-06  Jonathan Wakely  <jwakely@redhat.com>
2528
2529         * doc/extend.texi (Template Instantiation): Reorder options and
2530         de-emphasize -frepo.
2531         * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
2532         example instead of -frepo.
2533
2534 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2535
2536         PR c/65345
2537         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
2538         use create_tmp_var_raw rather than create_tmp_var.
2539
2540 2015-10-06  Richard Biener  <rguenther@suse.de>
2541
2542         * tree-vectorizer.h (vec_info): New base class for...
2543         (_loop_vec_info): ... this and ...
2544         (_bb_vec_info): ... this.
2545         (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
2546         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
2547         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
2548         vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
2549         vect_destroy_datarefs): Adjust interface to take a vec_info *
2550         rather than both a loop_vec_info and a bb_vec_info argument.
2551         * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
2552         vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
2553         vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
2554         vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
2555         accordingly.
2556         * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
2557         (destroy_loop_vec_info, vect_analyze_loop_2,
2558         vect_is_simple_reduction_1, get_initial_def_for_induction,
2559         vect_create_epilog_for_reduction, vectorizable_reduction,
2560         vectorizable_live_operation, vect_transform_loop): Adjust.
2561         * tree-vect-patterns.c (type_conversion_p,
2562         vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
2563         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
2564         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
2565         check_bool_pattern, vect_recog_bool_pattern,
2566         vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
2567         * tree-vect-slp.c (vect_get_and_check_slp_defs,
2568         vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
2569         vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
2570         vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
2571         (new_bb_vec_info): Initialize base classs.
2572         * tree-vect-stmts.c (record_stmt_cost, process_use,
2573         vect_get_vec_def_for_operand, vect_finish_stmt_generation,
2574         vectorizable_mask_load_store, vectorizable_call,
2575         vectorizable_simd_clone_call, vectorizable_conversion,
2576         vectorizable_assignment, vectorizable_shift,
2577         vectorizable_operation, vectorizable_store,
2578         vectorizable_load, vect_is_simple_cond, vectorizable_condition,
2579         new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
2580         * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
2581
2582 2015-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
2583
2584         PR c/65345
2585         * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
2586         create_tmp_var_raw rather than create_tmp_var.
2587
2588 2015-10-05  Marek Polacek  <polacek@redhat.com>
2589
2590         * tree-ssa-loop-im.c
2591         (move_computations_dom_walker::before_dom_children): Don't set
2592         SSA_NAME_ANTI_RANGE_P.
2593         * tree-ssa-phiopt.c (value_replacement): Likewise.
2594
2595 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2596             Sebastian Pop  <s.pop@samsung.com>
2597
2598         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
2599
2600 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2601             Sebastian Pop  <s.pop@samsung.com>
2602
2603         * graphite-poly.c (new_gimple_poly_bb): ... here.
2604         (free_data_refs_aux): ... here.
2605         (free_gimple_poly_bb): ... here.
2606         (remove_gbbs_in_scop): ... here.
2607         (new_scop): Call new_sese.
2608         (free_scop): Call remove_gbbs_in_scop and free_sese.
2609         * graphite-poly.h (base_alias_pair): ... here.
2610         (new_gimple_poly_bb): Declare.
2611         (free_gimple_poly_bb): Declare.
2612         * graphite-scop-detection.c (parameter_index_in_region_1):
2613         (parameter_index_in_region): ... here.
2614         (scan_tree_for_params): ... here.
2615         (find_params_in_bb): ... here.
2616         (find_scop_parameters): ... here.
2617         (build_scops): Call find_scop_parameters.
2618         * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
2619         (free_scops): Move...
2620         (single_pred_cond_non_loop_exit): Move...
2621         (sese_dom_walker::before_dom_children): Move...
2622         (sese_dom_walker::after_dom_children): Move...
2623         (build_poly_scop): Move...
2624         * graphite-sese-to-poly.h (base_alias_pair): Move...
2625         * graphite.c (free_scops): ... here.
2626
2627 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2628             Sebastian Pop  <s.pop@samsung.com>
2629
2630         * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
2631         (trivially_empty_bb_p): Move...
2632         (same_close_phi_node): Move...
2633         (new_gimple_poly_bb): Move...
2634         (compare_bb_depths): Move...
2635         (graphite_sort_dominated_info): Move...
2636         (remove_duplicate_close_phi): Move...
2637         (make_close_phi_nodes_unique): Move...
2638         (canonicalize_loop_closed_ssa): Move...
2639         (canonicalize_loop_closed_ssa_form): Move...
2640         (loop_ivs_can_be_represented): Move...
2641         (single_pred_cond_non_loop_exit): Move...
2642         (graphite_can_represent_init): Move...
2643         (graphite_can_represent_scev): Move...
2644         (stmt_has_simple_data_refs_p): Move...
2645         (stmt_has_side_effects):  Move...
2646         (graphite_can_represent_stmt): Move...
2647         (scop_detection): ... here.
2648         (sese_dom_walker): ... and here.
2649         (build_scops): Call all moved functions.
2650         * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
2651         (all_non_dominated_preds_marked_p): Move...
2652         (build_scop_bbs_1): Move...
2653         (build_scop_bbs): Move...
2654         (set_scop_parameter_dim): Move...
2655         (nb_pbbs_in_loops): Move...
2656         (build_poly_scop): Do not call all the moved functions.
2657
2658 2015-10-05  Martin Jambor  <mjambor@suse.cz>
2659             Jan Hubicka  <hubicka@ucw.cz>
2660
2661         * ipa-cp.c (ipcp_alignment_lattice): New type.
2662         (ipcp_param_lattices): Use the above to represent alignment.
2663         (ipcp_alignment_lattice::print): New function.
2664         (print_all_lattices): Use it to print alignment information.
2665         (ipcp_alignment_lattice::top_p): New function.
2666         (ipcp_alignment_lattice::bottom_p): Likewise.
2667         (ipcp_alignment_lattice::set_to_bottom): Likewise.
2668         (ipcp_alignment_lattice::meet_with_1): Likewise.
2669         (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
2670         (set_all_contains_variable): Use set_to_bottom of alignment lattice.
2671         (initialize_node_lattices): Likewise.
2672         (propagate_alignment_accross_jump_function): Work with the new class
2673         for alignment lattices.
2674         (propagate_constants_accross_call): Pass only the alignment lattice to
2675         propagate_alignment_accross_jump_function.
2676         (ipcp_store_alignment_results): Work with the new class for alignment
2677         lattices.
2678
2679 2015-10-05  Marek Polacek  <polacek@redhat.com>
2680
2681         PR tree-optimization/67821
2682         * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
2683
2684 2015-10-05  Thomas Schwinge  <thomas@codesourcery.com>
2685
2686         PR other/65021
2687         * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
2688         function to...
2689         (mkoffload_cleanup): ... this.  Adjust all users.
2690         (maybe_unlink): Look at save_temps and verbose flags instead of
2691         debug flag.
2692         (main): Parse "-save-temps" flag.
2693         (generate_target_descr_file, generate_target_offloadend_file)
2694         (generate_host_descr_file, prepare_target_image): Pass it on.
2695         * config/nvptx/mkoffload.c (tool_cleanup): Implement.
2696         (mkoffload_cleanup): New function.
2697         (maybe_unlink): Look at save_temps and verbose flags instead of
2698         debug flag.
2699         (main): Instead of calling utils_cleanup, register atexit handler
2700         for mkoffload_cleanup.
2701         (main): Parse "-save-temps" flag.
2702         (compile_native, main): Pass it on.
2703         * lto-wrapper.c (compile_offload_image): Likewise.
2704
2705 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2706
2707         * gimple.h (gimple_op_ptr): Require a non const gimple *.
2708         (gimple_assign_lhs_ptr): Likewise.
2709         (gimple_assign_rhs1_ptr): Likewise.
2710         (gimple_assign_rhs2_ptr): Likewise.
2711         (gimple_assign_rhs3_ptr): Likewise.
2712         (gimple_call_lhs_ptr): Likewise.
2713         (gimple_call_fn_ptr): Likewise.
2714         (gimple_call_chain_ptr): Likewise.
2715                 (gimple_call_arg_ptr): Likewise.
2716                 (gimple_cond_lhs_ptr): Likewise.
2717         (gimple_cond_rhs_ptr): Likewise.
2718         (gimple_switch_index_ptr): Likewise.
2719         (gimple_return_retval_ptr): Likewise.
2720
2721 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2722
2723         * gimple.h (gimple_asm_input_op_ptr): Remove.
2724         (gimple_asm_output_op_ptr): Likewise.
2725
2726 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2727
2728         * gimple.h (gimple_location_ptr): Remove.
2729         * tree-vrp.c (check_all_array_refs): Adjust.
2730
2731 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2732
2733         * tree-ssa-operands.c (build_uses): store tree * instead of
2734         tree.
2735         (finalize_ssa_uses): Adjust.
2736         (append_use): Likewise.
2737         (verify_ssa_operands): Likewise.
2738
2739 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2740
2741         * real.h (build_real_truncate): Declare.
2742         * tree.c (build_real_truncate): New function.
2743         (strip_float_extensions): Use it.
2744         * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
2745         (fold_builtin_hypot, fold_builtin_pow): Likewise.
2746         * match.pd: Likewise.
2747
2748 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
2749            Jiong Wang  <jiong.wang@arm.com>
2750
2751         * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
2752
2753 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2754
2755         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
2756         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
2757         (aarch64_print_operand, aarch64_float_const_representable_p)
2758         (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
2759         instead of REAL_VALUE_FROM_CONST_DOUBLE.
2760         * config/arc/arc.c (arc_print_operand): Likewise.
2761         * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
2762         (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
2763         (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
2764         Likewise.
2765         * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
2766         (consttable_16): Likewise.
2767         * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
2768         * config/avr/avr.c (avr_print_operand): Likewise.
2769         * config/bfin/bfin.md: Likewise (in a define_split).
2770         * config/c6x/c6x.md: Likewise (in a define_split).
2771         * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
2772         (cr16_print_operand): Likewise.
2773         * config/cris/cris.c (cris_print_operand): Likewise.
2774         * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
2775         * config/fr30/fr30.c (fr30_print_operand): Likewise.
2776         (fr30_const_double_is_zero): Likewise.
2777         * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
2778         * config/frv/frv.md: Likewise (in a define_split).
2779         * config/frv/predicates.md (int_2word_operand): Likewise.
2780         * config/h8300/h8300.c (h8300_print_operand): Likewise.
2781         * config/i386/i386.c (standard_80387_constant_p): Likewise.
2782         (ix86_print_operand, ix86_split_to_parts): Likewise.
2783         * config/i386/i386.md: Likewise (in a define_split).
2784         * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
2785         * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
2786         * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
2787         * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
2788         (print_operand): Likewise.
2789         * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
2790         * config/mep/mep.md: Likewise (in define_split).
2791         * config/microblaze/microblaze.c (microblaze_const_double_ok)
2792         (print_operand): Likewise.
2793         * config/mips/mips.md (consttable_float): Likewise.
2794         * config/mmix/mmix.c (mmix_intval): Likewise.
2795         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
2796         * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
2797         * config/pa/pa.c (pa_singlemove_string): Likewise.
2798         * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
2799         (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
2800         * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
2801         (output_toc): Likewise.
2802         * config/rs6000/rs6000.md: Likewise (in define_splits).
2803         * config/rx/rx.c (rx_print_operand): Likewise.
2804         * config/s390/s390.c (s390_output_pool_entry): Likewise.
2805         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
2806         * config/sh/sh.md (consttable_sf, consttable_df): Likewise
2807         (and also in define_splits).
2808         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
2809         (fp_high_losum_p): Likewise.
2810         * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
2811         (*movsf_high): Likewise.
2812         * config/spu/spu.c (const_double_to_hwint): Likewise.
2813         * config/v850/v850.c (const_double_split): Likewise.
2814         * config/vax/vax.c (vax_float_literal): Likewise.
2815         * config/visium/visium.c (visium_expand_copysign): Likewise.
2816         * config/visium/visium.md: Likewise (in define_split).
2817         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
2818         * config/xtensa/xtensa.c (print_operand): Likewise.
2819         (xtensa_output_literal): Likewise.
2820         * cprop.c (implicit_set_cond_p): Likewise.
2821         * dwarf2out.c (insert_float): Likewise.
2822         * expmed.c (expand_mult, make_tree): Likewise.
2823         * expr.c (compress_float_constant): Likewise.
2824         * rtlanal.c (split_double): Likewise.
2825         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
2826         (simplify_const_unary_operation, simplify_binary_operation_1)
2827         (simplify_const_binary_operation): Likewise.
2828         (simplify_const_relational_operation): Likewise.
2829         * varasm.c (output_constant_pool_2): Likewise.
2830
2831 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2832
2833         * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
2834         instead of CONST_DOUBLE_FROM_REAL_VALUE.
2835         (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
2836         * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
2837         instead of CONST_DOUBLE_FROM_REAL_VALUE.
2838         * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
2839         * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
2840         (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
2841         (ix86_emit_swsqrtsf): Likewise.
2842         * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
2843         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
2844         (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
2845         * config/pa/pa.c (pa_expand_builtin): Likewise.
2846         * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
2847         (rs6000_scale_v2df): Likewise.
2848         * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
2849         * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
2850         (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
2851         * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
2852         (vec_ctul): Likewise.
2853         * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
2854         * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
2855         * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
2856         * cse.c (fold_rtx): Likewise.
2857         * emit-rtl.c (immed_double_const): Likewise (in comments).
2858         (init_emit_once): Likewise.
2859         * expr.c (compress_float_constant, expand_expr_real_1)
2860         (const_vector_from_tree): Likewise.
2861         * optabs.c (expand_float, expand_fix): Likewise.
2862         * reg-stack.c (reg_to_stack): Likewise.
2863         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
2864         (simplify_const_unary_operation, simplify_binary_operation_1)
2865         (simplify_const_binary_operation, simplify_relational_operation)
2866         (simplify_immed_subreg): Likewise.
2867
2868 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2869
2870         * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
2871         * doc/tm.texi: Regenerate.
2872         * real.h (REAL_ARITHMETIC): Delete.
2873         * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
2874         (ix86_expand_round_sse4): Use real_arithmetic instead of
2875         REAL_ARITHMETIC.
2876         * config/i386/sse.md (round<mode>2): Likewise.
2877         * rtl.h (rtx_to_tree_code): Likewise (in comment).
2878         * explow.c (rtx_to_tree_code): Likewise (in comment).
2879         * match.pd: Likewise.
2880         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2881         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
2882         (expand_pow_as_sqrts): Likewise.
2883         * tree-pretty-print.c (dump_generic_node): Remove code that
2884         was conditional on REAL_ARITHMETIC being undefined.
2885
2886 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2887
2888         * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
2889         * doc/tm.texi: Regenerate.
2890         * real.h (real_less): Declare.
2891         (REAL_VALUES_LESS): Delete.
2892         * real.c (real_less): New function.
2893         (real_compare): Use it.
2894         * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
2895         of REAL_VALUES_LESS.
2896         * config/microblaze/microblaze.c (microblaze_const_double_ok):
2897         Likewise.
2898         * fold-const.c (fold_convert_const_int_from_real): Likewise.
2899         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
2900         (simplify_const_relational_operation): Likewise.
2901         * tree-call-cdce.c (check_pow): Likewise.
2902         (gen_conditions_for_pow_cst_base): Likewise.
2903
2904 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2905
2906         * real.h (REAL_VALUES_IDENTICAL): Delete.
2907         * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
2908         instead of REAL_VALUES_IDENTICAL.
2909         * fold-const.c (operand_equal_p): Likewise.
2910         * ipa-icf.c (sem_variable::equals): Likewise.
2911         * tree-complex.c (some_nonzerop): Likewise.
2912         (expand_complex_multiplication): Likewise.
2913         * tree.c (simple_cst_equal): Likewise.
2914         * varasm.c (compare_constant): Likewise.
2915
2916 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
2917
2918         * real.h (real_equal): Declare.
2919         (REAL_VALUES_EQUAL): Delete.
2920         * real.c (real_equal): New function.
2921         (real_compare): Use it.
2922         * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
2923         * doc/tm.texi: Regenerate.
2924         * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
2925         real_equal instead of REAL_VALUES_EQUAL.
2926         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
2927         * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
2928         (fp_const_from_val): Likewise.
2929         * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
2930         * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
2931         (floating_exact_log2): Likewise.
2932         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
2933         * config/vax/vax.c (vax_float_literal): Likewise.
2934         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
2935         * cprop.c (implicit_set_cond_p): Likewise.
2936         * expmed.c (expand_mult): Likewise.
2937         * fold-const.c (const_binop): Likewise.
2938         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2939         (simplify_const_binary_operation): Likewise.
2940         (simplify_const_relational_operation): Likewise.
2941         * tree-call-cdce.c (check_pow): Likewise.
2942         (gen_conditions_for_pow_cst_base): Likewise.
2943         * tree-inline.c (estimate_num_insns): Likewise.
2944         * tree-ssa-dom.c (record_equality): Likewise.
2945         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
2946         (gimple_expand_builtin_pow): Likewise.
2947         (pass_optimize_widening_mul::execute): Likewise.
2948         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
2949         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
2950         * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
2951
2952 2015-10-05  Richard Biener  <rguenther@suse.de>
2953
2954         PR ipa/67783
2955         * ipa-inline-analysis.c (estimate_function_body_sizes): Only
2956         consider loop header PHI defs as IVs.
2957
2958 2015-10-05  Richard Biener  <rguenther@suse.de>
2959
2960         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
2961         call handling ...
2962         (create_expression_by_pieces): ... here and build GIMPLE
2963         calls directly.  Use gimple_build API and avoid force_gimple_operand.
2964         (insert_into_preds_of_block): Simplify.
2965         (do_regular_insertion): Add comment.
2966
2967 2015-10-04  Jason Merrill  <jason@redhat.com>
2968
2969         * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
2970
2971 2015-10-04  Uros Bizjak  <ubizjak@gmail.com>
2972
2973         * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
2974         check for general register.
2975         (ix86_emit_save_regs): Ditto.
2976         (ix86_emit_save_regs_using_mov): Ditto.
2977         (ix86_emit_restore_regs_using_pop): Ditto.
2978         (ix86_emit_restore_regs_using_mov): Ditto.
2979
2980 2015-10-03  Marek Polacek  <polacek@redhat.com>
2981
2982         * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
2983         (insn-dfatab.o): Likewise.
2984
2985 2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
2986
2987         * config.gcc (xtensa*-*-uclinux*): New configuration.
2988         * config/xtensa/uclinux.h: New file.
2989         * config/xtensa/uclinux.opt: New file.
2990
2991 2015-10-03  Jonathan Wakely  <jwakely@redhat.com>
2992
2993         * doc/cpp.texi (Standard Predefined Macros): Document value of
2994         __cplusplus for C++14.
2995
2996 2015-10-02  Bernd Schmidt  <bernds@codesourcery.com>
2997
2998         * gcc.c (process_command): Use spec_machine rather than
2999         spec_host_machine to build tooldir_prefix2.
3000
3001 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
3002             Bernd Schmidt  <bernds@codesourcery.com>
3003
3004         * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
3005         (Token, Stmt): Remove structs.
3006         (decls, vars, fns): Remove variables.
3007         (alloc_comment, append_stmt, is_keyword): Remove macros.
3008         (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
3009         (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
3010         (parse_init, parse_file): Remove functions.
3011         (read_file): Accept a pointer to a length and store into it.
3012         (process): Don't try to parse the input file, just write it out as
3013         a string, but looking for maps.  Also write out the length.
3014         (main): Don't use "-S" to compile PTX code.
3015
3016 2015-10-02  Jeff Law  <law@redhat.com>
3017
3018         * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
3019         fixups.
3020
3021 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
3022
3023         PR target/67822
3024         * config/nvptx/mkoffload.c (main): Scan the argument vector for
3025         -fopenmp, and skip generating an offloading image if specified.
3026
3027 2015-10-02  Uros Bizjak  <ubizjak@gmail.com>
3028
3029         * system.h (ROUND_UP): New macro definition.
3030         (ROUND_DOWN): Ditto.
3031         * ggc-page.c (ROUND_UP): Remove local macro definition.
3032         (PAGE_ALIGN): Implement using ROUND_UP macro.
3033
3034         * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
3035         * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
3036         to align values.
3037         (ix86_compute_frame_layout): Ditto.
3038         (ix86_expand_prologue): Ditto.
3039         (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
3040         to round down values.
3041         (expand_set_or_movmem_via_rep): Ditto.
3042
3043 2015-10-02  Marek Polacek  <polacek@redhat.com>
3044
3045         * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
3046
3047 2015-10-02  Aditya Kumar  <aditya.k7@samsung.com>
3048
3049         * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
3050         (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
3051         * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
3052         (free_gimple_bb): Renamed free_gimple_poly_bb.
3053         (try_generate_gimple_bb): Hoist loop invariant code.
3054         (analyze_drs_in_stmts): Same.
3055         (build_scop_drs): Call renamed functions.
3056         (new_pbb_from_pbb): Same.
3057         (scop_ivs_can_be_represented): Delete as functionality now moved to
3058         graphite-scop-detection.c
3059         (build_poly_scop): Remove call to scop_ivs_can_be_represented.
3060
3061 2015-10-02  Aditya Kumar  <hiraditya@msn.com>
3062
3063         * graphite-scop-detection.c (stmt_has_side_effects): New function
3064           outlined from stmt_simple_for_scop_p.
3065         (graphite_can_represent_stmt): Same.
3066         (stmt_simple_for_scop_p): Moved code out of this function for better
3067         readability.
3068
3069 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3070
3071         * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
3072         F_AVX512IFMA.
3073         (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
3074
3075 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3076
3077         * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
3078
3079 2015-10-02  Vladimir Makarov  <vmakarov@redhat.com>
3080
3081         PR rtl-optimization/67756
3082         * lra-constraints.c (match_reload): Add a new parameter.  Use it
3083         for creating a pseudo with the same value.
3084         (curr_insn_transform): Pass a new argument to match_reload.
3085
3086 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3087
3088         * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
3089         (expand_vec_perm_even_odd_1): Handle V64QImode.
3090         (ix86_expand_vec_perm_const_1): Try expansion with
3091         expand_vec_perm_even_odd_trunc as well.
3092         * config/i386/sse.md (VI124_AVX512F): Rename to ...
3093         (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
3094         to V54QI.
3095         (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
3096         (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
3097         to V32HI and V16SI.
3098         (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
3099         (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
3100         (define_expand "vec_unpacks_lo_<mode>"): Ditto.
3101         (define_expand "vec_unpacks_hi_<mode>"): Ditto.
3102         (define_expand "vec_unpacku_lo_<mode>"): Ditto.
3103         (define_expand "vec_unpacku_hi_<mode>"): Ditto.
3104
3105 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3106
3107         * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
3108         -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
3109
3110 2015-10-02  Jason Merrill  <jason@redhat.com>
3111
3112         PR c/59218
3113         * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
3114         (diagnose_tm_1_op): Also diagnose volatile accesses in
3115         transaction_safe function.
3116
3117 2015-10-02  Jonathan Wakely  <jwakely@redhat.com>
3118
3119         * system.h (malloc.h): Don't include obsolete header.
3120
3121 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3122
3123         * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
3124         (TLS_SECTION_ASM_FLAG): Delete.
3125
3126 2015-10-02  Marek Polacek  <polacek@redhat.com>
3127
3128         PR c/64249
3129         * doc/invoke.texi: Document -Wduplicated-cond.
3130         * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
3131         (insn-dfatab.o): Likewise.
3132         * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
3133         warning.
3134
3135 2015-10-02  Oleg Endo  <olegendo@gcc.gnu.org>
3136
3137         * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
3138         sequences.
3139
3140 2015-10-02  Renlin Li  <renlin.li@arm.com>
3141
3142         * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
3143
3144 2015-10-02  Renlin Li  <renlin.li@arm.com>
3145
3146         PR target/66776
3147         * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
3148
3149 2015-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3150
3151         PR rtl-optimization/67786
3152         PR rtl-optimization/67787
3153         * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
3154         it modifies a reg used in the condition calculation.
3155
3156 2015-10-02  James Greenhalgh  <james.greenhalgh@arm.com>
3157
3158         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
3159         alternatives for reads from memory and moves from general-purpose
3160         registers.
3161         (*aarch64_combinez_be<mode>): Likewise.
3162
3163 2015-10-02  Kai Tietz  <ktietz70@googlemail.com>
3164
3165         PR target/51726
3166         * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
3167         selectany within this function without need to keep attribute.
3168         (i386_pe_encode_section_info): Remove selectany-code.
3169
3170 2015-10-02  Richard Biener  <rguenther@suse.de>
3171
3172         * tree-ssa-sccvn.c (has_VN_INFO): New function.
3173         (free_scc_vn): Use it.
3174         (visit_use): Remove dead code and refactor to use gassign
3175         and use less indentation.
3176
3177 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3178
3179         PR target/67788
3180         PR target/67789
3181         * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
3182         (rs6000_cannot_copy_insn_p): New function.
3183         * config/rs6000/rs6000.md (cannot_copy): New attribute.
3184         (load_toc_v4_PIC_1_normal): Set cannot_copy.
3185         (load_toc_v4_PIC_1_476): Ditto.
3186
3187 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
3188
3189         * graphite-scop-detection.c (struct sese_l): New conversion constructor
3190         so that this type can be pushed into a vec.
3191         (class scop_builder): use sese_l to collect scops.
3192         (get_scops): New getter function.
3193         (remove_intersecting_scops): Use sese_l instead of scops_p.
3194         (intersects): Same.
3195         (add_scop): Same.
3196         (subsumes): Same.
3197         (remove_subscops): Same.
3198         (build_scops): Add scops to vec<scops_p> once all the scops have been
3199         detected.
3200
3201 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
3202
3203         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
3204         Renamed type from gimple_bb_p to gimple_poly_bb_p.
3205         (translate_isl_ast_node_user): Same.
3206         * graphite-poly.c (new_poly_bb): Same.
3207         * graphite-poly.h (gbb_from_bb): Same.
3208         * sese.h: Same.
3209         * graphite-sese-to-poly.c (new_gimple_bb):
3210         gimple_bb_p -> gimple_poly_bb_p
3211         (build_scop_scattering): Same.
3212         (find_params_in_bb): Same.
3213         (add_conditions_to_domain): Same.
3214         (sese_dom_walker::before_dom_children): Same.
3215         (analyze_drs_in_stmts): Same.
3216         (new_pbb_from_pbb): Same.
3217         (free_data_refs_aux): New pointer to type base_alias_pair.
3218         * graphite-sese-to-poly.h: Same.
3219         * sese.c (if_region_set_false_region): Fixed Indentation.
3220         (move_sese_in_condition): Same.
3221
3222 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3223             Aditya Kumar  <aditya.k7@samsung.com>
3224
3225         PR tree-optimization/66980
3226         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
3227         when data reference analysis has failed.
3228
3229 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3230             Aditya Kumar  <aditya.k7@samsung.com>
3231
3232         PR tree-optimization/67754
3233         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
3234         scev analysis on the same loop nest as analyze_drs_in_stmts.
3235         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
3236         renamed...
3237         (try_generate_gimple_bb): Call outermost_loop_in_sese.
3238         (analyze_drs_in_stmts): Same.
3239         * sese.c (outermost_loop_in_sese): ...here.
3240
3241 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3242             Aditya Kumar  <aditya.k7@samsung.com>
3243
3244         PR tree-optimization/67754
3245         * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
3246         recursion on the inner loops.
3247
3248 2015-10-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3249
3250         * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
3251         function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
3252         tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
3253         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
3254         tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
3255
3256 2015-10-01  Marek Polacek  <polacek@redhat.com>
3257
3258         PR c/65345
3259         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
3260         create_tmp_var_raw rather than create_tmp_var.
3261
3262 2015-10-01  Marek Polacek  <polacek@redhat.com>
3263
3264         PR tree-optimization/67769
3265         * tree-ssa-phiopt.c (conditional_replacement): Call
3266         reset_flow_sensitive_info_in_bb.
3267         (minmax_replacement): Likewise.
3268         (abs_replacement): Likewise.
3269
3270 2015-10-01  Nathan Sidwell  <nathan@codesourcery.com>
3271
3272         * builtins.c: Don't include gomp-constants.h.
3273         (fold_builtin_1): Don't fold acc_on_device here.
3274         * gimple-fold.c: Include gomp-constants.h.
3275         (gimple_fold_builtin_acc_on_device): New.
3276         (gimple_fold_builtin): Call it.
3277
3278 2015-10-01  H.J. Lu  <hongjiu.lu@intel.com>
3279
3280         * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
3281         (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
3282
3283 2015-10-01  James Greenhalgh  <james.greenhalgh@arm.com>
3284
3285         * config/arm/aarch-common-protos.h
3286         (aarch_accumulator_forwarding): New.
3287         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
3288         * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
3289         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
3290         * config/arm/cortex-a53.md: Rewrite.
3291
3292 2015-10-01  Richard Biener  <rguenther@suse.de>
3293
3294         * gimple-match.h (mprts_hook): Declare.
3295         * gimple-match.head.c (mprts_hook): Define.
3296         (maybe_push_res_to_seq): Use new hook.
3297         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
3298         * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
3299         (vn_ssa_aux::has_constants): Remove.
3300         * tree-ssa-sccvn.c: Include gimple-match.h.
3301         (VN_INFO_GET): Assert we don't re-use SSA names.
3302         (vn_get_expr_for): Remove.
3303         (expr_has_constants): Likewise.
3304         (stmt_has_constants): Likewise.
3305         (simplify_binary_expression): Likewise.
3306         (simplify_unary_expression): Likewise.
3307         (vn_lookup_simplify_result): New hook.
3308         (visit_copy): Adjust.
3309         (visit_reference_op_call): Likewise.
3310         (visit_phi): Likewise.
3311         (visit_use): Likewise.
3312         (process_scc): Likewise.
3313         (init_scc_vn): Likewise.
3314         (visit_reference_op_load): Likewise.  Use match-and-simplify and
3315         a gimple seq for inserted expressions.
3316         (try_to_simplify): Remove GENERIC stmt combining code.
3317         (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
3318         * tree-ssa-pre.c (eliminate_insert): Adjust.
3319         (eliminate_dom_walker::before_dom_children): Likewise.
3320
3321 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3322
3323         * doc/invoke.texi (Optimization Options): Add
3324         -freorder-blocks-algorithm=.
3325         (Optimize Options) <-O>: Add -freorder-blocks.
3326         <-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
3327         <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
3328         <-freorder-blocks>: Also enabled at levels -O and -Os.
3329         <-freorder-blocks-algorithm=>: Document new option.
3330
3331 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3332
3333         * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
3334         with flag_reorder_blocks_algorithm.
3335         * common.opt (freorder-blocks-algorithm=): New flag.
3336         (reorder_blocks_algorithm): New enum.
3337         * flag-types.h (reorder_blocks_algorithm): New enum.
3338         * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
3339         and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
3340
3341 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3342
3343         * bb-reorder.c: Add intro comment.
3344         (reorder_basic_blocks_software_trace_cache): Print a header to
3345         the dump file.
3346         (edge_order): New function.
3347         (reorder_basic_blocks_simple): New function.
3348         (reorder_basic_blocks): Choose between the STC and the simple
3349         algorithms (always choose the former).
3350
3351 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3352
3353         * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
3354         function, factored out from ...
3355         (reorder_basic_blocks): ... here.
3356
3357 2015-10-01  Tom de Vries  <tom@codesourcery.com>
3358
3359         * tree-cfg.c (dump_function_to_file): Dump function attributes using
3360         __attribute__(()) string.  Move dumping of function attributes to before
3361         function name.
3362
3363 2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>
3364
3365         PR target/66870
3366         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
3367         * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
3368         based on gold linker version.
3369         * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
3370         HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
3371         * configure, config.in: Regenerate.
3372
3373 2015-10-01  Alan Modra  <amodra@gmail.com>
3374
3375         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
3376         r2_setup_needed when TARGET_SINGLE_PIC_BASE.
3377         (rs6000_output_mi_thunk): Likewise.
3378
3379 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
3380
3381         * config/nvptx/mkoffload.c (process): Change offload data format.
3382
3383 2015-09-30  Jeff Law  <law@redhat.com>
3384
3385         * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
3386         with constant conditions.
3387         * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
3388         (remove_ctrl_stmt_and_useless_edges): No longer static.
3389         * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
3390         (remove_ctrl_stmt_and_useless_edges): Likewise.
3391
3392 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
3393             Cesar Philippidis  <cesar@codesourcery.com>
3394
3395         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
3396         (TARGET_GOACC_VALIDATE_DIMS): Override.
3397         * target.def (TARGET_GOACC): New target hook prefix.
3398         (validate_dims): New hook.
3399         * targhooks.h (default_goacc_validate_dims): New.
3400         * omp-low.c (oacc_validate_dims): New.
3401         (execute_oacc_device_lower): New.
3402         (default_goacc_validate_dims): New.
3403         (pass_data_oacc_device_lower): New.
3404         (pass_oacc_device_lower): New pass.
3405         (make_pass_oacc_device_lower): New.
3406         * tree-pass.h (make_pass_oacc_device_lower): Declare.
3407         * passes.def (pass_oacc_device_lower): Add it.
3408         * doc/tm.texi: Rebuilt.
3409         * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
3410         * doc/invoke.texi (oaccdevlow): Document tree dump flag.
3411
3412 2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3413
3414         PR rtl-optimization/67037
3415         * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
3416
3417 2015-09-30  Bernd Schmidt  <bernds@redhat.com>
3418
3419         * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
3420         * passes.c: Include tree-ssanames.h.
3421         (execute_function_todo): Flush the pending free SSA_NAMEs after
3422         eliminating unreachable basic blocks.
3423         * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
3424         (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
3425         (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
3426         (flush_ssanames_freelist): New function.
3427         (release_ssaname_fn): Put released names on the queue.
3428         (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
3429         * tree-ssanames.h (flush_ssanames_freelist): Declare.
3430
3431 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
3432
3433         * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
3434         (generate_target_descr_file, generate_target_offloadend_file)
3435         (generate_host_descr_file, prepare_target_image): Pass it on.
3436         * config/nvptx/mkoffload.c (main): Parse "-v" flag.
3437         (compile_native, main): Pass it on.
3438         * lto-wrapper.c (compile_offload_image): Likewise.
3439
3440 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
3441             Ilya Verbin  <ilya.verbin@intel.com>
3442             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3443
3444         * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
3445         (prepare_target_image, main): Refactor argv building to use
3446         obstacks.
3447
3448 2015-09-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3449
3450         * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
3451         * config/spu/spu.c (spu_expand_atomic_op): New function.
3452         * config/spu/spu.md (AINT): New mode iterator.
3453         (ATOMIC): New code iterator.
3454         (atomic_name, atomic_pred): New code predicates.
3455         ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
3456         ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
3457         (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
3458         "atomic_<atomic_name>_fetch<mode>"): Likewise.
3459
3460 2015-09-30  Ilya Enkovich  <enkovich.gnu@gmail.com>
3461
3462         * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
3463         debug insns.
3464         (scalar_chain::convert_reg): Likewise.
3465
3466 2015-09-30  Richard Biener  <rguenther@suse.de>
3467
3468         * builtins.c: Add comment that no new simplifications should
3469         be added here.
3470
3471 2015-09-30  Marek Polacek  <polacek@redhat.com>
3472
3473         PR tree-optimization/67690
3474         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
3475         reset_flow_sensitive_info_in_bb.
3476         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
3477         * tree-ssanames.c: Include "gimple-iterator.h".
3478         (reset_flow_sensitive_info_in_bb): New function.
3479         * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
3480
3481 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
3482
3483         * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
3484         variable, replacing it with...
3485         (offload_abi): ... this new variable.  Adjust all users.
3486         * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
3487
3488 2015-09-30  Matthias Klose  <doko@ubuntu.com>
3489
3490         * configure.ac: Remove extraneous ;;.
3491         * configure: Regenerate.
3492
3493 2015-09-29  James Bowman  <james.bowman@ftdichip.com>
3494
3495         * config/ft32/predicates.md (ft32_imm_operand): New predicate.
3496         * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
3497         predicate, disallow register for operand 2.
3498
3499 2015-09-29  Aditya Kumar  <aditya.k7@samsung.com>
3500
3501         * graphite-dependences.c (scop_get_dependences): Moved in down
3502         in order to be visible to its caller.
3503         * graphite-poly.h: Removed compute_deps, and extend_schedule.
3504
3505 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
3506             Aditya Kumar  <aditya.k7@samsung.com>
3507
3508         PR tree-optimization/67754
3509         * graphite-optimize-isl.c (optimize_isl): Call
3510         isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
3511
3512 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
3513
3514         * builtins.c (expand_builtin_acc_on_device): Delete.
3515         (expand_builtin): Don't call it.
3516         (fold_builtin_1): Fold acc_on_device.
3517
3518 2015-09-29  H.J. Lu  <hongjiu.lu@intel.com>
3519
3520         * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
3521         (ix86_nsaved_sseregs): Likewise.
3522
3523 2015-09-29  Jeff Law  <law@redhat.com>
3524
3525         * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
3526         computation of unused value.
3527
3528         * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
3529         * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
3530         inline macro expansion.
3531
3532         * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
3533
3534         * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
3535         (gen_shl_sext): Likewise.
3536         * config/sh/sh.md (divsi3): Likewise.
3537         (imm->ext_dest_operand splitter): Likewise.
3538
3539 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
3540             Aditya Kumar  <aditya.k7@samsung.com>
3541
3542         * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
3543         (nb_data_writes_in_bb): Remove.
3544         (split_pbb): Remove.
3545         (split_reduction_stmt): Remove.
3546         (is_reduction_operation_p): Remove.
3547         (phi_contains_arg): Remove.
3548         (follow_ssa_with_commutative_ops): Remove.
3549         (detect_commutative_reduction_arg): Remove.
3550         (detect_commutative_reduction_assign): Remove.
3551         (follow_inital_value_to_phi): Remove.
3552         (edge_initial_value_for_loop_phi): Remove.
3553         (initial_value_for_loop_phi): Remove.
3554         (used_outside_reduction): Remove.
3555         (detect_commutative_reduction): Remove.
3556         (translate_scalar_reduction_to_array_for_stmt): Remove.
3557         (remove_phi): Remove.
3558         (dr_indices_valid_in_loop): Remove.
3559         (close_phi_written_to_memory): Remove.
3560         (translate_scalar_reduction_to_array): Remove.
3561         (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
3562         (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
3563         (rewrite_commutative_reductions_out_of_ssa): Remove.
3564         (build_poly_scop): Remove call to
3565         rewrite_commutative_reductions_out_of_ssa.
3566
3567 2015-09-29  Evandro Menezes  <e.menezes@samsung.com>
3568
3569         * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
3570         Add new insn types for vector load and store pairs.
3571         * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
3572         types "neon_ldp{,_q}".
3573         * config/arm/cortex-a57.md (neon_load_c): Add insn types
3574         "neon_ldp{,_q}".
3575         (neon_store_complex): Add insn types "neon_stp{,_q}".
3576         * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
3577         "neon_{ldp,stp}_q".
3578
3579 2015-09-29  Jeff Law  <law@redhat.com>
3580
3581         * config/rx/constraints.md (Int08): Fix undefined left shift
3582         behaviour.
3583         (Sint08, Sint16, Sint24): Likewise.
3584         * config/rx/rx.c (rx_get_stack_layout): Likewise.
3585
3586         * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
3587         behaviour.
3588
3589         * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
3590         left shift behaviour.
3591         * config/msp430/constraints.md ('L' constraint): Similarly.
3592         ('Ys' constraint): Similarly.
3593
3594 2015-09-29  Richard Biener  <rguenther@suse.de>
3595
3596         PR tree-optimization/67170
3597         * tree-ssa-alias.h (get_continuation_for_phi): Adjust
3598         the translate function pointer parameter to get the
3599         bool whether to disambiguate only by reference.
3600         (walk_non_aliased_vuses): Likewise.
3601         * tree-ssa-alias.c (maybe_skip_until): Adjust.
3602         (get_continuation_for_phi_1): Likewise.
3603         (get_continuation_for_phi): Likewise.
3604         (walk_non_aliased_vuses): Likewise.
3605         * tree-ssa-sccvn.c (const_parms): New bitmap.
3606         (vn_reference_lookup_3): Adjust for interface change.
3607         Disambiguate parameters pointing to readonly memory.
3608         (free_scc_vn): Free const_parms.
3609         (run_scc_vn): Initialize const_parms from a fn spec attribute.
3610
3611 2015-09-29  Richard Biener  <rguenther@suse.de>
3612
3613         PR tree-optimization/67741
3614         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
3615         builtin calls with correct signature.
3616
3617 2015-09-29  Ilya Enkovich  <enkovich.gnu@gmail.com>
3618
3619         PR target/65105
3620         * config/i386/i386.c: Include dbgcnt.h.
3621         (has_non_address_hard_reg): New.
3622         (convertible_comparison_p): New.
3623         (scalar_to_vector_candidate_p): New.
3624         (remove_non_convertible_regs): New.
3625         (scalar_chain): New.
3626         (scalar_chain::scalar_chain): New.
3627         (scalar_chain::~scalar_chain): New.
3628         (scalar_chain::add_to_queue): New.
3629         (scalar_chain::mark_dual_mode_def): New.
3630         (scalar_chain::analyze_register_chain): New.
3631         (scalar_chain::add_insn): New.
3632         (scalar_chain::build): New.
3633         (scalar_chain::compute_convert_gain): New.
3634         (scalar_chain::replace_with_subreg): New.
3635         (scalar_chain::replace_with_subreg_in_insn): New.
3636         (scalar_chain::emit_conversion_insns): New.
3637         (scalar_chain::make_vector_copies): New.
3638         (scalar_chain::convert_reg): New.
3639         (scalar_chain::convert_op): New.
3640         (scalar_chain::convert_insn): New.
3641         (scalar_chain::convert): New.
3642         (convert_scalars_to_vector): New.
3643         (pass_data_stv): New.
3644         (pass_stv): New.
3645         (make_pass_stv): New.
3646         (ix86_option_override): Created and register stv pass.
3647         (flag_opts): Add -mstv.
3648         (ix86_option_override_internal): Likewise.
3649         * config/i386/i386.md (SWIM1248x): New.
3650         (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
3651         (and<mode>3): Use SWIM1248x iterator instead of SWIM.
3652         (*anddi3_doubleword): New.
3653         (*zext<mode>_doubleword): New.
3654         (*zextsi_doubleword): New.
3655         (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
3656         (*<code>di3_doubleword): New.
3657         * config/i386/i386.opt (mstv): New.
3658         * dbgcnt.def (stv_conversion): New.
3659
3660 2015-09-29  Tom de Vries  <tom@codesourcery.com>
3661
3662         * tree-cfg.c (dump_function_to_file): Dump function attributes.
3663
3664 2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3665
3666         PR target/67716
3667         * config/sh/sh.c (sh_override_options_after_change): New.
3668         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
3669         (sh_option_override): Move align_loops, align_jumps and
3670         align_functions handling into sh_override_options_after_change.
3671
3672 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
3673
3674         * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
3675         (nvptx_record_offload_symbol): Record function execution geometry.
3676         * config/nvptx/mkoffload.c (process): Include launch geometry in
3677         function data.
3678         * omp-low.c (oacc_launch_pack): New.
3679         (replace_oacc_fn_attrib): New.
3680         (set_oacc_fn_attrib): New.
3681         (get_oacc_fn_attrib): New.
3682         (expand_omp_target): Create keyed varargs for GOACC_parallel call
3683         generation.
3684         * omp-low.h (get_oacc_fn_attrib): Declare.
3685         * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
3686         (DEF_FUNCTION_TYPE_VAR_11): Delete.
3687         * tree.h (OMP_CLAUSE_EXPR): New.
3688         * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
3689
3690 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
3691             Sebastian Pop  <s.pop@samsung.com>
3692
3693         * sese.c (invariant_in_sese_p_rec): Remove unused variable.
3694
3695 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
3696             Sebastian Pop  <s.pop@samsung.com>
3697
3698         * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
3699         * graphite-scop-detection.c (struct sese_l): New type.
3700         (get_entry_bb): API for getting entry bb of SESE.
3701         (get_exit_bb): API for getting exit bb of SESE.
3702         (class debug_printer): New type.  Simple printer in debug mode.
3703         (trivially_empty_bb_p): New.  Return true when BB is empty or
3704         contains only debug instructions.
3705         (graphite_can_represent_expr): Call scalar_evoution_in_region
3706         instead of analyze_scalar_evolution.  Pass in scop instead of only
3707         the scop entry.
3708         (stmt_has_simple_data_refs_p): Pass in scop instead of only the
3709         scop entry.
3710         (stmt_simple_for_scop_p): Same.
3711         (harmful_stmt_in_bb): Same.
3712         (graphite_can_represent_loop): Deleted.
3713         (struct scopdet_info): Deleted.
3714         (scopdet_basic_block_info): Deleted.
3715         (build_scops_1): Deleted.
3716         (bb_in_sd_region): Deleted.
3717         (find_single_entry_edge): Deleted.
3718         (find_single_exit_edge): Deleted.
3719         (create_single_entry_edge): Deleted.
3720         (sd_region_without_exit): Deleted.
3721         (create_single_exit_edge): Deleted.
3722         (unmark_exit_edges): Deleted.
3723         (mark_exit_edges): Deleted.
3724         (create_sese_edges): Deleted.
3725         (build_graphite_scops): Deleted.
3726         (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
3727         (build_scops): Use the new scop_builder to build scops.
3728         (dot_all_scops_1): Use the new pretty printer.  Print loop father
3729         as well.
3730         (loop_body_is_valid_scop): New.  Return true if loop body is a
3731         valid scop.
3732         (class scop_builder): New.  Builds SCoPs for polyhedral
3733         optimizations.
3734         (scop_builder): New constructor.
3735         (static sese_l invalid_sese): sese_l with invalid edges.
3736         (get_sese): Get an sese (from a loop) if possible, invalid_sese
3737         otherwise.
3738         (get_nearest_dom_with_single_entry): Get nearest dominator of a
3739         basic_block with single entry.  Return NULL if we get to the
3740         beginning of a function.
3741         (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
3742         a basic_block with single exit.  Return NULL if we get to the
3743         beginning of a function.
3744         (print_sese): Pretty-print SESE.
3745         (merge_sese): Merge two SESEs if possible and return the new SESE.
3746         (build_scop_depth): Start building the SCoP within a loop nest.
3747         (build_scop_breadth): Start building the SCoP at a single loop
3748         depth.  Merge adjacent SESEs if valid.
3749         (can_represent_loop_1): Returns true if Graphite can represent
3750         loop inside SCoP.  Helper for can_represent_loop.
3751         (can_represent_loop): Returns true if Graphite can represent LOOP
3752         and all its nested loops in SCoP.
3753         (loop_is_valid_scop): Returns true if LOOP and all its nests
3754         constitute a valid SCoP.
3755         (region_has_one_loop): Returns true of a region has only one loop.
3756         (add_scop): Add SCoP to the list of valid scops.  Removes an
3757         already existing scop if it intersects with or subsumed by this one.
3758         (harmful_stmt_in_region): Returns true if SCoP has any statment
3759         which cannot be represented by Graphite.
3760         (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
3761         (remove_subscops): Remove any SCoP from the list of already found
3762         SCoPs, if subsumed by S1.
3763         (intersects): Return true if region bounded by SCoPs S1 and S2
3764         intersect.
3765         (remove_intersecting_scops): Remove any SCoP which intersects with S1.
3766         * graphite.c (print_graphite_scop_statistics):
3767         (print_graphite_statistics): Print SCoP info while debugging.
3768         (graphite_initialize): Early exit in case number of loops in a
3769         function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
3770         basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
3771         (graphite_finalize):
3772         * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
3773         * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
3774         (recompute_all_dominators): Recalculate POST_DOMINATORS.
3775         * tree-cfg.c (print_loops): Print the function name while printing
3776         loops.
3777
3778 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
3779             Sebastian Pop  <s.pop@samsung.com>
3780
3781         PR tree-optimization/67700
3782         * graphite-sese-to-poly.c (parameter_index_in_region): Call
3783         invariant_in_sese_p_rec.
3784         (extract_affine): Same.
3785         (rewrite_cross_bb_scalar_deps): Call update_ssa.
3786         * sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
3787         * sese.h (invariant_in_sese_p_rec): Declare.
3788
3789 2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>
3790
3791         * doc/extend.texi (Asm Labels): Break out text for data vs functions.
3792
3793 2015-09-28  Jiong Wang  <jiong.wang@arm.com>
3794
3795         Revert:
3796         2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3797                     Jiong Wang  <jiong.wang@arm.com>
3798
3799         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
3800         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
3801         (REG_CLASS_NAMES): Likewise.
3802         (REG_CLASS_CONTENTS): Likewise.
3803         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
3804         (aarch64_register_move_cost): Likewise.
3805         (aarch64_load_symref_appropriately): Invoke the new added pattern if
3806         possible.
3807         * config/aarch64/constraints.md (Uc0): New constraint.
3808
3809 2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>
3810
3811         * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
3812
3813 2015-09-28  David Edelsohn  <dje.gcc@gmail.com>
3814
3815         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
3816         SECTION_EXCLUDE in XO mapping class.
3817
3818 2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
3819
3820         PR target/54236
3821         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
3822         and handle ne and eq codes.
3823         * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
3824         (sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
3825         CONST_INT_P.  Use reverse_condition.
3826         (sh_split_treg_set_expr): Likewise.
3827
3828 2015-09-28  James Greenhalgh  <james.greenhalgh@arm.com>
3829
3830         * config/arm/types.md (type): Add rotate_imm.
3831         * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
3832         ROR immediate case.
3833         (*rorsi3_insn_uxtw): Likewise.
3834         * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
3835         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
3836         * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
3837
3838 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3839
3840         PR rtl-optimization/67481
3841         * ifcvt.c (contains_ccmode_rtx_p): New function.
3842         (insn_valid_noce_process_p): Use it.
3843
3844 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3845
3846         PR rtl-optimization/67456
3847         PR rtl-optimization/67464
3848         PR rtl-optimization/67465
3849         * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
3850         move in the mode of x.  Handle combination of complex and simple
3851         block pairs as well as the case when one is empty.
3852
3853 2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3854
3855         * doc/gimple.texi: Update references to gimple_statement_base.
3856         * gdbhooks.py: Likewise.
3857         * gimple.h: Likewise.
3858
3859 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
3860
3861         * config/sparc/driver-sparc.c: map LEON to leon3
3862
3863 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
3864
3865         * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
3866           and make it inverse to change default
3867         * config/sparc/sync.md: Only use supervisor ASI for CASA when in
3868           supervisor mode
3869         * doc/invoke.texi: Document change of default
3870
3871 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
3872
3873         * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
3874         true on %f0 for a target without FPU.
3875         * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
3876         without FPU.
3877         (untyped_return): Do not load %f0 for a target without FPU.
3878
3879 2015-09-28  Andrew Pinski  <apinski@cavium.com>
3880
3881         * config/aarch64/aarch64.md (prefetch):
3882         Change the predicate of operand 0 to register_operand.
3883
3884 2015-09-27  Uros Bizjak  <ubizjak@gmail.com>
3885
3886         * config/i386/predicates.md (register_sse4nonimm_operand): New
3887         predicate.
3888         * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
3889         (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
3890         Use register_sse4nonimm_operand as operand 0 predicate.
3891         (*vec_extractv8hi_sse2): Remove insn pattern.
3892         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
3893         *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
3894
3895 2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
3896             Kaz Kojima  <kkojima@gcc.gnu.org>
3897
3898         PR target/67391
3899         * config/sh/sh-protos.h (sh_lra_p): Declare.
3900         * config/sh/sh.c (sh_lra_p): Make non-static.
3901         * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
3902         arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
3903         Expand into addsi3_scr if operands[2] if needed.
3904         (*addsi3_compact): Rename to *addsi3_compact_lra.  Use
3905         arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
3906         (addsi3_scr, *addsi3): New insn_and_split patterns.
3907
3908 2015-09-27  Alexandre Oliva <aoliva@redhat.com>
3909
3910         PR rtl-optimization/64164
3911         PR tree-optimization/67312
3912         PR middle-end/67340
3913         PR middle-end/67490
3914         PR bootstrap/67597
3915         * cfgexpand.c (parm_in_stack_slot_p): Remove.
3916         (ssa_default_def_partition): Remove.
3917         (get_rtl_for_parm_ssa_default_def): Remove.
3918         (set_rtl): Check that RTL assignments match expectations.
3919         Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
3920         default def location for params and results.  Record SSA names
3921         or types in REG and MEM attrs, respectively.
3922         (set_parm_rtl): New.
3923         (expand_one_ssa_partition): Drop logic that assigned MEMs with
3924         unassigned addresses.
3925         (adjust_one_expanded_partition_var): Don't accept NULL RTL on
3926         deferred stack alloc vars.
3927         (expand_used_vars): Skip partitions holding parm default defs.
3928         Move adjust_one_expanded_partition_var loop...
3929         (pass_expand::execute): ... here.  Drop redundant assert.
3930         Adjust comments before the final loop over all ssa names.
3931         Require assigned rtl of parms and results to match exactly.
3932         Reset its attributes to match them, not any other variables in
3933         the same partition.
3934         (expand_debug_expr): Use entry value for PARM's default defs
3935         only iff they have zero nondebug uses.
3936         * cfgexpand.h (parm_in_stack_slot_p): Remove.
3937         (get_rtl_for_parm_ssa_default_def): Remove.
3938         (set_parm_rtl): Declare.
3939         * doc/invoke.texi: Improve wording.
3940         * explow.c (promote_decl_mode): Fix promote_function_mode for
3941         result decls not by reference.
3942         (promote_ssa_mode): Disregard BLKmode from promote_decl, and
3943         bypass TYPE_MODE to get the actual vector mode.
3944         * function.c: Include tree-dfa.h.  Revert 2015-08-14's and
3945         2015-08-19's changes as follows.  Drop include of
3946         basic-block.h and df.h.
3947         (rtl_for_parm): Remove.
3948         (maybe_reset_rtl_for_parm): Remove.
3949         (parm_in_unassigned_mem_p): Remove.
3950         (use_register_for_decl): Add logic for RESULT_DECLs matching
3951         assign_parms' behavior.
3952         (split_complex_args): Revert.
3953         (assign_parms_augmented_arg_list): Revert.  Add comment
3954         referencing the logic above.
3955         (assign_parm_adjust_stack_rtl): Revert.
3956         (assign_parm_setup_block): Revert.  Use set_parm_rtl instead
3957         of SET_DECL_RTL.  Set up a REG if the parm demands so.
3958         (assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
3959         calls into a single set_parm_rtl.  Set up a temporary RTL
3960         temporarily for expand_assignment.
3961         (assign_parm_setup_stack): Revert.  Use set_parm_rtl.
3962         (assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
3963         (assign_bounds): Revert.
3964         (assign_parms): Revert.  Use set_parm_rtl.
3965         (allocate_struct_function): Relayout result and parms of
3966         non-abstruct functions.
3967         (expand_function_start): Revert.  Use set_parm_rtl.  If the
3968         result is not a hard reg, create a pseudo from the promoted
3969         mode of the default def.  Promote static chain mode.
3970         * tree-outof-ssa.c (remove_ssa_form): Drop unused
3971         partition_has_default_def.  Set up
3972         partitions_for_parm_default_defs.
3973         (finish_out_of_ssa): Remove partition_has_default_def.
3974         Release partitions_for_parm_default_defs.
3975         * tree-outof-ssa.h (struct ssaexpand): Remove
3976         partition_has_default_def.  Add
3977         partitions_for_parm_default_defs.
3978         * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
3979         stor-layout.h.
3980         (build_ssa_conflict_graph): Fix conflict-detection of default
3981         defs of even unused default defs of params and results.
3982         (for_all_parms): New.
3983         (create_default_def): New.
3984         (register_default_def): New.
3985         (coalesce_with_default): New.
3986         (create_outofssa_var_map): Create default defs for all parms
3987         and results, and register their partitions.  Add GIMPLE_RETURN
3988         operands as coalesce candidates with results.  Add default
3989         defs of each parm or result as coalesce candidates with its
3990         other defs.  Mark each result def, and each default def of
3991         parms, as used_in_copy.
3992         (gimple_can_coalesce_p): Call it.  Call use_register_for_decl
3993         with the ssa names, even anonymous ones.  Drop
3994         parm_in_stack_slot_p calls.  Require same signedness and
3995         alignment.
3996         (coalesce_ssa_name): Add coalesce candidates for all defs of
3997         each parm and result, even unused ones.
3998         (parm_default_def_partition_arg): New type.
3999         (set_parm_default_def_partition): New.
4000         (get_parm_default_def_partitions): New.
4001         * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
4002         * tree-ssa-live.c (partition_view_init): Regard unused defs of
4003         parms and results as used.
4004         (verify_live_on_entry): Don't error out just because they're
4005         not live.
4006
4007 2015-09-26  David Edelsohn  <dje.gcc@gmail.com>
4008
4009         * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
4010         (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
4011         (output_fde): Don't output length for debug_frame on AIX.
4012         (output_call_frame_info): Don't output length for debug_frame on AIX.
4013         (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
4014         HAVE_XCOFF_DWARF_EXTRAS.
4015         (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
4016         HAVE_XCOFF_DWARF_EXTRAS.
4017         (output_compilation_unit_header): Don't output length on AIX.
4018         (output_pubnames): Don't output length on AIX.
4019         (output_aranges): Delete argument. Compute length locally. Don't
4020         output length on AIX.
4021         (output_line_info): Don't output length on AIX.
4022         (dwarf2out_finish): Don't compute aranges_length.
4023         * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
4024         (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
4025         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
4026         symbol decoration for AIX.
4027         (rs6000_xcoff_debug_unwind_info): New.
4028         (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
4029         for SECTION_DEBUG.
4030         (rs6000_xcoff_declare_function_name): Emit different
4031         .function pseudo-op when DWARF2_DEBUG. Don't call
4032         xcoffout_declare_function for DWARF2_DEBUG.
4033         * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
4034         Redefine.
4035         * config/rs6000/aix71.h: New.
4036         * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
4037         locations support.
4038         * configure: Regenerate.
4039         * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
4040         DWARF support.
4041
4042 2015-09-26  Jeff Law  <law@redhat.com>
4043
4044         * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
4045         behaviour.
4046         * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
4047         behaviour.
4048
4049         * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
4050         behaviour
4051
4052         * config/mips/mips.c (mips_compute_frame_info): Fix left shift
4053         undefined behaviour.
4054
4055         * config/cris/cris.md (asrandb): Fix left shift undefined
4056         behaviour.
4057         (asrandw): Likewise.
4058
4059 2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>
4060
4061         PR target/61578
4062         * lra-constarints.c (match_reload): Check presence of the input pseudo
4063         in the output operand.
4064
4065 2015-09-25  Tobias Burnus  <burnus@net-b.de>
4066
4067         * doc/invoke.texi (-fsanitize): Minor wording tweak.
4068
4069 2015-09-25  Tobias Burnus  <burnus@net-b.de>
4070
4071         * doc/invoke.texi (-fsanitize): Update URLs.
4072
4073 2015-09-25  Teresa Johnson  <tejohnson@google.com>
4074
4075         * opts.c (finish_options): Unset -freorder-blocks-and-partition
4076         if not using profile.
4077
4078 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4079
4080         PR pretty-print/67567
4081         * pretty-print.c (pp_string): Add gcc_checking_assert.
4082         * pretty-print.h (output_buffer_append_r): Likewise.
4083
4084 2015-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
4085
4086         PR target/67675
4087         * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
4088         addr2 individually.  Don't emit logical or insn if one is known to
4089         be aligned approriately.
4090         (sh_expand_cmpnstr): Likewise.
4091
4092 2015-09-25  Richard Sandiford  <richard.sandiford@arm.com>
4093
4094         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
4095         __builtin_aarch64_fp[sc]r arguments into a register.
4096
4097 2015-09-25  H.J. Lu  <hongjiu.lu@intel.com>
4098
4099         * config.gcc (x86_archs): Replace lakemount with lakemont.
4100         (with_cpu): Likewise.
4101         (with_arch): Likewise.
4102         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
4103         PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
4104         __tune_lakemount__ with __tune_lakemont__.
4105         * config/i386/i386.c (lakemount_cost): Renamed to ...
4106         (lakemont_cost): This.
4107         (m_LAKEMOUNT): Renamed to ...
4108         (m_LAKEMONT): This.
4109         (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
4110         (processor_target_table): Replace "lakemount" with "lakemont".
4111         (processor_alias_table): Likewise.
4112         (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
4113         PROCESSOR_LAKEMONT.
4114         (ix86_adjust_cost): Likewise.
4115         (ia32_multipass_dfa_lookahead): Likewise.
4116         * config/i386/i386.h (processor_type): Likewise.
4117         * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
4118         * doc/invoke.texi: Replace lakemount with lakemont.  Replace
4119         Lakemount with Lakemont.
4120
4121 2015-09-24  H.J. Lu  <hongjiu.lu@intel.com>
4122
4123         * config.gcc (x86_archs): Replace iamcu with lakemount.
4124         (with_cpu): Likewise.
4125         (with_arch): Likewise.
4126         * doc/invoke.texi: Likewise.
4127         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
4128         PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
4129         __tune_iamcu__ with __tune_lakemount__.
4130         * config/i386/i386.c (iamcu_cost): Renamed to ...
4131         (lakemount_cost): This.
4132         (m_IAMCU): Renamed to ...
4133         (m_LAKEMOUNT): This.
4134         (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
4135         (processor_target_table): Replace "iamcu" with "lakemount".
4136         (processor_alias_table): Likewise.
4137         (ix86_issue_rate): Replace PROCESSOR_IAMCU with
4138         PROCESSOR_LAKEMOUNT.
4139         (ix86_adjust_cost): Likewise.
4140         (ia32_multipass_dfa_lookahead): Likewise.
4141         * config/i386/i386.h (processor_type): Likewise.
4142         * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
4143
4144 2015-09-24  John David Anglin  <danglin@gcc.gnu.org>
4145
4146         * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
4147         * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
4148         Declare.
4149         * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
4150         (pa_expand_compare_and_swap_loop): New.
4151         (pa_maybe_emit_compare_and_swap_exchange_loop): New.
4152         * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
4153         atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
4154         (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
4155         (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
4156         Revise.
4157
4158 2015-09-24  Michael Collison  <michael.collison@linaro.org>
4159
4160         PR other/57195
4161         * read-md.c (read_name): Allow mode iterators inside angle
4162         brackets in rtl expressions.
4163
4164 2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>
4165
4166         PR target/61578
4167         * ira-color.c (update_allocno_cost): Add parameter.
4168         (update_costs_from_allocno): Decrease conflict cost.  Pass the new
4169         parameter.
4170
4171 2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4172
4173         PR driver/67640
4174         * opts-common.c (prune_options): Discard all -fdiagnostics-color
4175         but the last one, which is moved to the front to be processed
4176         first.
4177         * opts.c (enable_warning_as_error): Reject options that do not
4178         control warnings.
4179
4180 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
4181
4182         * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
4183
4184 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
4185
4186         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
4187         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
4188         (aarch64_cannot_force_const_mem): Likewise.
4189         (aarch64_classify_address): Likewise.
4190         (aarch64_classify_symbolic_expression): Likewise.
4191         (aarch64_print_operand): Likewise.
4192         (aarch64_classify_symbol): Likewise.
4193         (aarch64_mov_operand_p): Likewise.
4194         * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
4195         (aarch64_mov_operand): Likewise.
4196
4197 2015-09-24  Segher Boessenkool  <segher@kernel.crashing.org>
4198
4199         * config/rs6000/rs6000.c (debug_stack_info): Invert the test
4200         for info->spe_gp_size.
4201
4202 2015-09-24  Richard Biener  <rguenther@suse.de>
4203
4204         PR lto/67699
4205         * lto-cgraph.c (compute_ltrans_boundary): Do not stream
4206         abstract origins.
4207
4208 2015-09-24  Thomas Schwinge  <thomas@codesourcery.com>
4209
4210         * tree-object-size.c (plus_stmt_object_size)
4211         (cond_expr_object_size): Change the formal parameters from gimple
4212         to gimple *.
4213         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
4214         * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
4215         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
4216
4217 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4218
4219         * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
4220         Check for ld -type pie on Solaris 11.x and 12.
4221         * configure: Regenerate.
4222         * config.in: Regenerate.
4223
4224         * gcc.c (LD_PIE_SPEC): Allow redefinition.
4225
4226         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
4227         (STARTFILE_SPEC): Use it.
4228         (ENDFILE_CRTEND_SPEC): Define.
4229         (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
4230         (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
4231         ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
4232         [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
4233         (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
4234         * config/i386/sol2.h (ENDFILE_SPEC): Remove.
4235         (ENDFILE_ARCH_SPEC): Define.
4236         * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
4237
4238 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4239
4240         * configure.ac (gcc_cv_solaris_crts): New test.
4241         * configure. Regenerate.
4242         * config.in: Regenerate.
4243         * config/sol2.h (STARTFILE_SPEC): Simplify, provide
4244         HAVE_SOLARIS_CRTS variant.
4245
4246 2015-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4247
4248         * tree-inline.h (count_insns_seq): Delete prototype.
4249         (estimate_num_insns_seq): Define prototype.
4250         * tree-inline.c (count_insns_seq): Delete.
4251         (estimate_num_insns_seq): Remove static qualifier.
4252         * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
4253         with estimate_num_insns_seq.
4254
4255 2015-09-24  Richard Biener  <rguenther@suse.de>
4256
4257         * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
4258         members.
4259         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
4260         and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
4261         offset.
4262         (ao_ref_init_from_vn_reference): Record clique and base in the
4263         built base.
4264         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
4265
4266 2015-09-24  Richard Biener  <rguenther@suse.de>
4267
4268         PR tree-optimization/48885
4269         * tree-ssa-structalias.c (visit_loadstore): Handle default defs
4270         as not including any restrict tags from other pointers.
4271
4272 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
4273
4274         * gcc.c (handle_foffload_option): Don't lose the trailing NUL
4275         character when appending to offload_targets.
4276
4277         * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
4278         offload targets by commas, not colons.
4279         * config.in: Regenerate.
4280         * configure: Likewise.
4281         * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
4282         instead of setting up the default offload targets here...
4283         (process_command): ..., do it here.
4284         libgomp/
4285         * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
4286         targets are separated by commas.
4287         * config.h.in: Regenerate.
4288
4289 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
4290             Nathan Sidwell  <nathan@codesourcery.com>
4291
4292         * omp-low.h (omp_reduction_init_op): Declare.
4293         * omp-low.c (omp_reduction_init_op): New, broken out of ...
4294         (omp_reduction_init): ... here.  Call it.
4295         * tree-parloops.c (initialize_reductions): Use
4296         omp_reduction_init_op.
4297
4298 2015-09-23   Richard Biener  <rguenther@suse.de>
4299
4300         PR middle-end/67662
4301         * fold-const.c (fold_binary_loc): Do not reassociate two vars with
4302         undefined overflow unless they will cancel out.
4303
4304 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4305
4306         * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
4307         insn emit.
4308
4309 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4310
4311         PR c/49655
4312         * opts.h (write_langs): Declare.
4313         * opts-global.c (write_langs): Make it extern.
4314
4315 2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>
4316
4317         PR target/67391
4318         * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
4319         overlapping regs when matching the pattern.
4320
4321 2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
4322
4323         * config/aarch64/aarch64-simd.md
4324         (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
4325         (aarch64_float_truncate_hi_v4sf_le): New.
4326         (aarch64_float_truncate_hi_v4sf_be): Likewise.
4327
4328 2015-09-23  Richard Biener  <rguenther@suse.de>
4329
4330         * tree-ssa-structalias.c (intra_create_variable_infos): Build
4331         representatives for all restrict qualified pointer destinations.
4332
4333 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4334
4335         * config/i386/i386.md (define_code_attr mshift): New.
4336         (define_mode_iterator SWI1248_AVX512BW): Rename ...
4337         (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
4338         only.
4339         (define_insn "*k<logic><mode>"): Use new iterator name.
4340         (define_insn "*<mshift><mode>3"): New.
4341
4342 2015-09-23  Mikhail Maltsev  <maltsevm@gmail.com>
4343
4344         PR middle-end/67649
4345         * memory-block.h (memory_block_pool::allocate): Use valgrind API to
4346         mark the block as accessible.
4347
4348 2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>
4349
4350         * function.c (thread_prologue_and_epilogue_insns): Delete
4351         orig_entry_edge argument to try_shrink_wrapping.
4352         * shrink-wrap.c (can_get_prologue): New function.
4353         (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
4354         (try_shrink_wrapping): Delete orig_entry_edge argument.  Use
4355         can_get_prologue where needed.  Remove code that finds a single
4356         edge for the prologue.  Remove code that tests if any reg clobbered
4357         by the prologue is live on the prologue edge.  Remove code that finds
4358         the new prologue edge after duplicating blocks.  Make a new prologue
4359         block and edge.
4360         * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
4361
4362 2015-09-22  Jeff Law  <law@redhat.com>
4363
4364         * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
4365         behavior.
4366
4367 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
4368
4369         * doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
4370         -Wtemplates, -Wnamespaces): Document.
4371
4372 2015-09-22  Tom de Vries  <tom@codesourcery.com>
4373
4374         PR tree-optimization/67671
4375         * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
4376         pointer references as restrict.
4377
4378 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
4379
4380         * config/nios2/nios2.c (nios2_legitimize_address): When handling
4381         'reg + reloc' cases, allow first operand to be non-REG, and use
4382         force_reg() to enforce address pattern.
4383
4384 2015-09-22  Alexander Fomin <alexander.fomin@intel.com>
4385
4386         PR target/67480
4387         * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
4388         (define_mode_iterator VI12_AVX_AVX512F): New.
4389         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
4390         all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
4391         (define_insn "*<code><mode>3"): ... Into new pattern using
4392         VI12_AVX_AVX512F iterators without masking.
4393
4394 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4395
4396         * config.gcc: Support "skylake-avx512".
4397         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4398         PROCESSOR_SKYLAKE_AVX512.
4399         * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
4400         (processor_target_table): Add "skylake-avx512".
4401         (PTA_SKYLAKE_AVX512): Define.
4402         (ix86_option_override_internal): Add "skylake_avx512".
4403         (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
4404         F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
4405         * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
4406         (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
4407         * doc/invoke.texi (skylake-avx512): New.
4408
4409 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4410
4411         * gcc/config/i386/i386.md (define_insn "kunpckhi"): Fix
4412         operand in pattern.
4413         (define_insn "kunpcksi"): Ditto.
4414         (define_insn "kunpckdi"): Ditto.
4415
4416 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4417
4418         * gcc/config/i386/i386.md (define_split not/xor SWI1248x): Use
4419         iterator instead of fixed modes.
4420
4421 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4422
4423         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
4424         Adjust declaration.
4425         * config/aarch64/aarch64.c (aarch64_emit_bic): New.
4426         (aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
4427         out_result.  Update to support update-fetch operations.
4428         * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
4429         Adjust for change to aarch64_gen_atomic_ldop.
4430         (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
4431         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
4432         (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
4433         (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
4434         (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
4435
4436 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4437
4438         * config/aarch64/aarch64-protos.h
4439         (aarch64_atomic_ldop_supported_p): Declare.
4440         * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
4441         (enum aarch64_atomic_load_op_code): New.
4442         (aarch64_emit_atomic_load_op): New.
4443         (aarch64_gen_atomic_ldop): Update to support load-operate
4444         patterns.
4445         * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
4446         to an expander.
4447         (aarch64_atomic_<atomic_optab><mode>): New.
4448         (aarch64_atomic_<atomic_optab><mode>_lse): New.
4449         (atomic_fetch_<atomic_optab><mode>): Change to an expander.
4450         (aarch64_atomic_fetch_<atomic_optab><mode>): New.
4451         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
4452
4453 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4454
4455         * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
4456         (UNSPECV_ATOMIC_LDOP_OR): New.
4457         (UNSPECV_ATOMIC_LDOP_BIC): New.
4458         (UNSPECV_ATOMIC_LDOP_XOR): New.
4459         (UNSPECV_ATOMIC_LDOP_PLUS): New.
4460         (ATOMIC_LDOP): New.
4461         (atomic_ldop): New.
4462         (aarch64_atomic_load<atomic_ldop><mode>): New.
4463
4464 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4465
4466         * config/aarch64/aarch64.md
4467         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
4468         pattern.
4469
4470 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4471
4472         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
4473         Declare.
4474         * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
4475         (aarch64_gen_atomic_ldop): New.
4476         (aarch64_split_atomic_op): Fix whitespace and add a comment.
4477         * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
4478         (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
4479         (atomic_exchange<mode>): Replace with an expander.
4480         (aarch64_atomic_exchange<mode>): New.
4481         (aarch64_atomic_exchange<mode>_lse): New.
4482         (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
4483         (aarch64_atomic_swp<mode>): New.
4484
4485 2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4486
4487         * tree-inline.c (expand_call_inline): Use inform for extra note.
4488         Do not give a note with UNKNOWN_LOCATION.
4489         Replace input_location with gimple_location (stmt).
4490         Use true/false instead of TRUE/FALSE.
4491
4492 2015-09-22  Tom de Vries  <tom@codesourcery.com>
4493
4494         PR tree-optimization/67666
4495         * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
4496         with single field non-conservative.
4497
4498 2015-09-21  David S. Miller  <davem@davemloft.net>
4499
4500         PR/67622
4501         Revert:
4502         2015-09-11  David S. Miller  <davem@davemloft.net>
4503
4504         * config/sparc/constraints.md: Make "U" constraint a real register
4505         constraint.
4506         * config/sparc/sparc.c (TARGET_LRA_P): Define.
4507         (D_MODES, DF_MODES): Add missing cast.
4508         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
4509         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
4510         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
4511         cost to 8.
4512         * config/sparc/sparc.h (PROMOTE_MODE): Define.
4513         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
4514         provide these insn when flag_pic.
4515
4516         2015-09-17  David S. Miller  <davem@davemloft.net>
4517
4518         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
4519         Declare.
4520         * config/sparc/sparc.c (sparc_secondary_memory_needed): New
4521         function.
4522         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
4523         (HARD_REGNO_CALLER_SAVE_MODE): Define.
4524         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
4525         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
4526         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
4527         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
4528         provide when flag_pic.
4529
4530 2015-09-21  Jeff Law  <law@redhat.com>
4531
4532         * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
4533         behavior.
4534
4535 2015-09-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4536
4537         * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
4538
4539 2015-09-21  Richard Biener  <rguenther@suse.de>
4540
4541         * passes.c (rest_of_decl_compilation): Do not call
4542         dwarf2out_early_global_decl for aliases.
4543
4544 2015-09-21  Richard Biener  <rguenther@suse.de>
4545
4546         PR debug/67664
4547         * dwarf2out.c (add_location_or_const_value_attribute): Remove
4548         attribute parameter.  Early exit if either DW_AT_const_value
4549         or DW_AT_location are present already.
4550         (gen_variable_die): Adjust caller.
4551         (dwarf2out_late_global_decl): Likewise.
4552
4553 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
4554
4555         PR target/67657
4556         * config/sh/sh.c (sh_remove_overlapping_post_inc,
4557         sh_peephole_emit_move_insn): Add new functions.
4558         * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
4559         sh_peephole_emit_move_insn): Declere them.
4560         * config/sh/sh.md: Use them in various peephole2 patterns.
4561
4562 2015-09-21  Richard Biener  <rguenther@suse.de>
4563
4564         PR middle-end/67651
4565         * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
4566         address with -fno-delete-null-pointer-checks.
4567
4568 2015-09-21  Alan Lawrence  <alan.lawrence@arm.com>
4569
4570         * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
4571         (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
4572         (reduc_uplus_v16qi): Remove.
4573
4574         * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
4575         (reduc_<VEC_reduc_name>_v2df): Remove.
4576         (reduc_<VEC_reduc_name>_v4sf): Remove.
4577         (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
4578
4579         * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
4580         gen_ function by removing * prefix.
4581         (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
4582
4583 2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4584
4585         PR middle-end/60832
4586         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
4587         Print i_bound without converting it to a tree.
4588
4589 2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>
4590
4591         * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
4592         operands[4] operands[5] swap with std::swap, removed tmp variable.
4593         (arm_evpc_neon_vzip): Replaced in0/in1 and
4594         out0/out1 swaps with std::swap, removed x variable.
4595         (arm_evpc_neon_vtrn): Replaced in0/int1 and
4596         out0/out1 swaos with std::swap, removed x variable.
4597         (arm_expand_vec_perm_const_1): Replaced
4598         d->op0/d->op1 swap with std::swap, removed x variable.
4599         (arm_evpc_neon_vuzp): Replaced in0/in1 and
4600         out0/out1 swaps with std::swap, removed x variable.
4601
4602 2015-09-21  Jonathan Yong  <10walls@gmail.com>
4603
4604         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
4605         sysroot/usr/lib/32api for additional win32 libraries,
4606         fixes failing Cygwin bootstrapping.
4607
4608 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
4609
4610         * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
4611
4612 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
4613
4614         PR target/67126
4615         * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
4616         (*mov_t_msb_neg): Rewrite negc pattern.
4617
4618 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4619
4620         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
4621         immediate generation code.
4622
4623 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4624
4625         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
4626         redundant immediate generation code.
4627
4628 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4629
4630         * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
4631         (AARCH64_NUM_BITMASKS): Remove.
4632         (aarch64_bitmasks_cmp): Remove.
4633         (aarch64_build_bitmask_table): Remove.
4634
4635 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4636
4637         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
4638         slow immediate matching loops with a faster algorithm.
4639
4640 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4641
4642         * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
4643         faster algorithm.
4644
4645 2015-09-20  Jeff Law  <law@redhat.com>
4646
4647         PR tree-optimization/47679
4648         * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
4649         * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
4650         * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
4651         (thread_through_normal_block): Use record_temporary_equivalences.
4652
4653 2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
4654
4655         * coretypes.h (gimple): Change typedef to be a forward declaration.
4656         * gimple.h (gimple_statement_base): rename to gimple.
4657         * (all functions and types using gimple): Adjust.
4658         * *.[ch]: Likewise.
4659
4660 2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
4661             David Edelsohn  <dje.gcc@gmail.com>
4662
4663         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
4664         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
4665         (EH_FRAME_THROUGH_COLLECT2): Define.
4666         (EH_TABLES_CAN_BE_READ_ONLY): Define.
4667         (ASM_OUTPUT_DWARF_PCREL): Define.
4668         (ASM_OUTPUT_DWARF_DATAREL): Define.
4669
4670 2015-09-19  John David Anglin  <danglin@gcc.gnu.org>
4671
4672         * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
4673         of TARGET_ELF32.
4674
4675 2015-09-18  Jeff Law  <law@redhat.com>
4676
4677         PR tree-optimization/47679
4678         * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
4679         it here ...
4680         (dom_opt_dom_walker): New private member holding the avail_exprs_stack
4681         object.  Update constructor.
4682         (pass_dominator::execute):  Corresponding chagnes to declaration
4683         and initialization of avail_exprs_stack.  Update constructor call
4684         for dom_opt_dom_walker object.
4685         (lookup_avail_expr, record_cond): Accept additional argument.  Pass
4686         it down to children as needed.
4687         (record_equivalences_from_incoming_edge): Likewise.
4688         (eliminate_redundant_computations): Likewise.
4689         (record_equivalences_from_stmt): Likewise.
4690         (simplify_stmt_for_jump_threading): Likewise.
4691         (record_temporary_equivalences): Likewise.
4692         (optimize_stmt): Likewise.
4693         (dom_opt_dom_walker::thread_across_edge): Update access to
4694         avail_exprs_stack object and pass it to children as needed.
4695         (dom_opt_dom_walker::before_dom_children): Similarly.
4696         (dom_opt_dom_walker::after_dom_children): Similarly.
4697         * tree-ssa-threadedge.c (pfn_simplify): New typedef.
4698         (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
4699         Add avail_expr_stack argument.  Pass it to children as needed.
4700         (dummy_simplify): Likewise.
4701         (simplify_control_stmt_condition): Likewise.
4702         (thread_around_empty_blocks): Likewise.
4703         (thread_through_normal_block): Likewise.
4704         (thread_across_edge): Likewise.
4705         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
4706         * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
4707
4708         PR tree-optimization/47679
4709         * tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
4710         it here ...
4711         (dom_opt_dom_walker): New private member holding the const_and_copies
4712         object.  Update constructor.
4713         (pass_dominator::execute): Corresponding changes to declaration
4714         and initialization of const_and_copies.  Update constructor call
4715         for the dom_opt_dom_walker object.
4716         (record_temporary_equivalences): Accept const_and_copies argument
4717         pass it down to children as needed.
4718         (record_equality): Likewise.
4719         (record_equivalences_from_incoming_edge): Likewise.
4720         (cprop_into_successor_phis, optimize_stmt): Likewise.
4721         (eliminate_redundant_computations): Likewise.
4722         (dom_opt_dom_walker::thread_across_edge): Update access to
4723         const_and_copies object and pass it to children as needed.
4724         (dom_opt_dom_walker::before_dom_children): Similarly.
4725         (dom_opt_dom_walker::after_dom_children): Similarly.
4726
4727         PR tree-optimization/47679
4728         * tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
4729         it into the avail_exprs_stack class.
4730         (pass_dominator::execute): Corresponding changes to declaration
4731         and initialization of avail_exprs.  Pass avail_exprs to
4732         dump_dominator_optimization_stats.
4733         (record_cond): Extract avail_exprs from avail_exprs_stack.
4734         (lookup_avail_expr): Similarly.
4735         (htab_staticstics): Remove unnecessary prototype.  Move to earlier
4736         position in file.
4737         (dump_dominator_optimization_stats): Make static and prototype.
4738         Add argument for the hash table to dump.
4739         (debug_dominator_optimization_stats): Remove.
4740         * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
4741         prototype.
4742         (debug_dominator_optimization_stats): Similarly.
4743         * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
4744         "void" in prototype for pop_to_marker method.  Add accessor method
4745         for the underlying avail_exprs table.
4746
4747         * tree-ssa-threadedge.c: Remove trailing whitespace.
4748
4749 2014-09-18  John David Anglin  <danglin@gcc.gnu.org>
4750
4751         * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
4752         unsigned.
4753         (pa_ldil_cint_p): Likewise.
4754         * config/pa/pa.c (pa_cint_ok_for_move): likewise.
4755         (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
4756         Update callers.
4757         * config/pa/pa.md: Likewise.
4758
4759 2015-09-18  David Malcolm  <dmalcolm@redhat.com>
4760
4761         * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
4762         * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
4763         (diagnostic_show_locus): Likewise.
4764         (diagnostic_print_caret_line): Likewise.
4765         * diagnostic-show-locus.c: New file.
4766
4767 2015-09-18  David Edelsohn  <dje.gcc@gmail.com>
4768
4769         * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
4770         "back" parameter. Declare label in #if block.
4771
4772 2015-09-18  Uros Bizjak  <ubizjak@gmail.com>
4773
4774         PR middle-end/67619
4775         * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
4776         the address to a register.
4777
4778 2015-09-18  Jeff Law  <law@redhat.com>
4779
4780         PR tree-optimization/47679
4781         * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
4782         * tree-ssa-dom.c: Remove unnecessary header includes.
4783         (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
4784         (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
4785         (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
4786         (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
4787         (pass_phi_only_cprop::execute): Likewise.
4788         (make_pass_phi_only_cprop): Likewise.
4789         * tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
4790         uses of file scoped statics by passing the required objects
4791         as parameters wherever needed.
4792
4793 2015-09-18  Andrew Dixie  <andrewd@gentrack.com>
4794             David Edelsohn  <dje.gcc@gmail.com>
4795
4796         * defaults.h (EH_FRAME_SECTION_NAME): Depend on
4797         EH_FRAME_THROUGH_COLLECT2.
4798         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
4799         DW_EH_PE_datarel.
4800         * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
4801         even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
4802         collect2 labels to EH_FRAME_THROUGH_COLLECT2.
4803         * except.c (switch_to_exception_section): Use a read-only section
4804         even if EH_FRAME_SECTION_NAME is undefined.
4805         * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
4806         * collect2.c (write_c_file_stat): Provide dbase on AIX.
4807         (scan_prog_file): Don't export __dso_handle nor
4808         __gcc_unwind_dbase.
4809         * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
4810         (EH_TABLES_CAN_BE_READ_ONLY): Define.
4811         (ASM_OUTPUT_DWARF_PCREL): Define.
4812         (ASM_OUTPUT_DWARF_DATAREL): Define.
4813         (EH_FRAME_THROUGH_COLLECT2): Define.
4814         (EH_FRAME_IN_DATA_SECTION): Delete.
4815         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
4816         * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
4817         Declare.
4818         (rs6000_asm_output_dwarf_datarel): Declare.
4819         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
4820         (rs6000_aix_asm_output_dwarf_datarel): New.
4821         (rs6000_xcoff_asm_init_sections): Don't set exception_section.
4822         * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
4823         (EH_FRAME_THROUGH_COLLECT2): Define.
4824         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
4825         (EH_FRAME_THROUGH_COLLECT2): Define.
4826         (EH_TABLES_CAN_BE_READ_ONLY): Define.
4827         * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
4828         (EH_FRAME_THROUGH_COLLECT2): New.
4829         (ASM_OUTPUT_DWARF_DATAREL): New.
4830         * doc/tm.texi: Regenerate.
4831
4832 2015-09-18  Richard Biener  <rguenther@suse.de>
4833
4834         * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
4835         we're in early phase.
4836         (schedule_generic_params_dies_gen): Likewise.
4837         (gen_remaining_tmpl_value_param_die_attribute): Do only as much
4838         work as possible, retaining unhandled cases.
4839         (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
4840         clear out generic_type_instances at the end.
4841         (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
4842         (dwarf2out_early_finish): ... here.  Do most of
4843         gen_remaining_tmpl_value_param_die_attribute here.
4844
4845 2015-09-18  Alan Lawrence  <alan.lawrence@arm.com>
4846
4847         PR tree-optimization/67283
4848         * tree-sra.c (type_consists_of_records_p): Rename to...
4849         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
4850         (completely_scalarize_record): Rename to...
4851         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
4852         (scalarize_elem): New.
4853         (analyze_all_variable_accesses): Follow renamings.
4854
4855 2015-09-18  Richard Biener  <rguenther@suse.de>
4856
4857         * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
4858         in early-dwarf.
4859
4860 2015-09-18  Richard Biener  <rguenther@suse.de>
4861
4862         PR tree-optimization/66142
4863         * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
4864         treat MEM[&x] and x the same.
4865         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
4866         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
4867         when we simplified sth.
4868         (vn_reference_maybe_forwprop_address): Likewise.
4869         (valueize_refs_1): When we simplified through
4870         vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
4871         set valueized_anything to true.
4872         (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
4873         one ref kills the other instead of just a offset-based test.
4874         * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
4875         for the operand_equal_p test to compare bases and also compare
4876         sizes.
4877
4878 2015-09-17  Christian Bruel  <christian.bruel@st.com>
4879
4880         * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
4881
4882 2015-09-17  Richard Henderson  <rth@redhat.com>
4883
4884         PR libstdc++/65913
4885         * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
4886         pointers that encode the alignment of the object.
4887
4888 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
4889
4890         PR rtl-optimization/66790
4891         * df-problems.c (LIVE): Amend documentation.
4892
4893 2015-09-17  Richard Sandiford  <richard.sandiford@arm.com>
4894
4895         * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
4896         and optabs-tree.o.
4897         (GTFILES): Replace optabs.c with optabs-libfunc.c.
4898         * genopinit.c (main): Add an include guard to insn-opinit.h.
4899         Protect the rtx_code parts with NUM_RTX_CODE.
4900         * optabs.h: Split parts out to...
4901         * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
4902         * optabs.c: Split parts out to...
4903         * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
4904         * cilk-common.c: Include optabs-query.h rather than optabs.h.
4905         * fold-const.c: Likewise.
4906         * target-globals.c: Likewise.
4907         * tree-if-conv.c: Likewise.
4908         * tree-ssa-forwprop.c: Likewise.
4909         * tree-ssa-loop-prefetch.c: Likewise.
4910         * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
4911         Remove unncessary include files.
4912         * tree-ssa-phiopt.c: Likewise.
4913         * tree-ssa-reassoc.c: Likewise.
4914         * tree-switch-conversion.c: Likewise.
4915         * tree-vect-data-refs.c: Likewise.
4916         * tree-vect-generic.c: Likewise.
4917         * tree-vect-loop.c: Likewise.
4918         * tree-vect-patterns.c: Likewise.
4919         * tree-vect-slp.c: Likewise.
4920         * tree-vect-stmts.c: Likewise.
4921         * tree-vrp.c: Likewise.
4922         * toplev.c: Include optabs-query.h and optabs-libfuncs.h
4923         rather than optabs.h.
4924         * expr.c: Include optabs-tree.h.
4925         * function.c: Likewise.
4926
4927 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
4928
4929         PR middle-end/65958
4930         * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
4931         * config/arm/arm-protos.h (output_probe_stack_range): Declare.
4932         * config/arm/arm.c: Include common/common-target.h.
4933         (use_return_insn): Return 0 if the static chain register was saved
4934         above a non-APCS frame.
4935         (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
4936         (struct scratch_reg): New.
4937         (get_scratch_register_on_entry): New function.
4938         (release_scratch_register_on_entry): Likewise.
4939         (arm_emit_probe_stack_range): Likewise.
4940         (output_probe_stack_range): Likewise.
4941         (arm_expand_prologue): Factor out code dealing with the IP register
4942         for nested function and adjust it for stack checking.
4943         Invoke arm_emit_probe_stack_range if static builtin stack checking
4944         is enabled.
4945         (thumb1_expand_prologue): Sorry out if static builtin stack checking
4946         is enabled.
4947         (arm_expand_epilogue): Add the saved static chain register, if any, to
4948         the amount of pre-pushed registers to pop.
4949         (arm_frame_pointer_required): Return true if static stack checking is
4950         enabled and we want to catch the exception with the EABI unwinder.
4951         * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
4952         (UNSPEC_PROBE_STACK_RANGE): Likewise.
4953         * config/arm/arm.md (probe_stack): New insn.
4954         (probe_stack_range): Likewise.
4955
4956 2015-09-17  Richard Biener  <rguenther@suse.de>
4957
4958         * genmatch.c (parser::parse_expr): Improve error message
4959         for mis-placed flags.
4960
4961 2015-09-17  Richard Biener  <rguenther@suse.de>
4962
4963         * passes.c (rest_of_decl_compilation): Always call early_global_decl
4964         debug hook when we created a varpool node.
4965         * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
4966         dwarf2out_early_global_decl, when not just add location or
4967         value attributes to existing DIEs.
4968
4969 2015-09-17  James Greenhalgh  <james.greenhalgh@arm.com>
4970
4971         * config/aarch64/aarch64.md (copysigndf3): New.
4972         (copysignsf3): Likewise.
4973
4974 2015-09-17  David S. Miller  <davem@davemloft.net>
4975
4976         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
4977         * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
4978         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
4979         (HARD_REGNO_CALLER_SAVE_MODE): Define.
4980         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
4981         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
4982         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
4983         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
4984         provide when flag_pic.
4985
4986 2015-09-17  Kaz Kojima  <kkojima@gcc.gnu.org>
4987
4988         * config/sh/sh.c (label_ref_list_d_pool): Adjust to
4989         object_allocator change.
4990
4991 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
4992
4993         PR tree-optimization/66388
4994         * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
4995         (dump_iv): Dump no_overflow information.
4996         (alloc_iv): Initialize new field for struct iv.
4997         (mark_bivs): Count number of no_overflow bivs.
4998         (find_deriving_biv_for_expr, record_biv_for_address_use): New
4999         functions.
5000         (idx_find_step): Call new functions above.
5001         (add_candidate_1, add_candidate): New paramter.
5002         (add_iv_candidate_for_biv): Add sizetype cand for BIV.
5003         (get_computation_aff): Simplify convertion of cand for BIV.
5004         (get_computation_cost_at): Step cand's base if necessary.
5005
5006 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
5007
5008         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
5009         parameter.
5010         (tree_simplify_using_condition): Ditto.
5011         (simplify_using_initial_conditions): Ditto.
5012         (loop_exits_before_overflow): Pass new argument to function
5013         simplify_using_initial_conditions.  Remove case for type conversions
5014         simplification.
5015         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
5016         parameter.
5017         * tree-scalar-evolution.c (simple_iv): Simplify type conversions
5018         in iv base using loop initial conditions.
5019
5020 2015-09-16  Jeff Law  <law@redhat.com>
5021
5022         PR tree-optimization/47679
5023         * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
5024         (free_all_edge_infos): Use it.
5025         (allocate_edge_info): Free preexisting edge info data.
5026         (pass_dominator::execute): Set up initial edge info structures.
5027         (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
5028         thread_across_edge.
5029         * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
5030         If non-null, then push/pop markers appropriately.
5031         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
5032         * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
5033         thread-across_edge.
5034
5035 2015-09-16  James Bowman  <james.bowman@ftdichip.com>
5036
5037         * config/ft32/ft32.c: Fix the memory address space predicate.
5038
5039 2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
5040
5041         PR target/67573
5042         * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
5043         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
5044
5045 2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5046
5047         * toplev.h (check_global_declaration): Remove declaration.
5048         * toplev.c (check_global_declaration): Move to ...
5049         * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
5050         (analyze_functions): Update call.
5051
5052 2015-09-16  David S. Miller  <davem@davemloft.net>
5053
5054         * lra-constraints.c (simplify_operand_subreg): Do not assume that
5055         lowpart of a SUBREG has offset zero.
5056
5057 2015-09-16  Jeff Law  <law@redhat.com>
5058
5059         PR tree-optimization/47679
5060         * tree-ssa-dom.c (enum expr_kind): Moved from here to
5061         tree-ssa-scopedtables.h.
5062         (struct hashable_expr, class expr_hash_elt): Likewise.
5063         (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
5064         Move associated methods into tree-ssa-scopedtables.c.
5065         (avail_expr_hash, initialize_expr_from_cond): Similarly.
5066         (hashable_expr_equal_p, add_expr_commutative): Likewise.
5067         (add_hashable_expr): Likewise.
5068         (record_cond): Delete element directly.
5069         * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
5070         private copy ctor and assignment operator methods.
5071         (expr_elt_hasher): Inline trivial methods.
5072         (initialize_expr_from_cond): Prototype.
5073         * tree-ssa-scopedtables.c: Add necessary includes, functions and
5074         methods that were previously in tree-ssa-dom.c.  Improve various
5075         comments.
5076
5077 2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>
5078
5079         * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
5080
5081 2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>
5082
5083         PR bootstrap/67587
5084         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
5085         fixup_partitions.
5086
5087 2015-09-16  Richard Biener  <rguenther@suse.de>
5088
5089         PR middle-end/67253
5090         * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
5091         location of possibly shared trees.
5092
5093 2015-09-16  Richard Biener  <rguenther@suse.de>
5094
5095         PR middle-end/67271
5096         * fold-const.c (native_encode_expr): Bail out on bogus offsets.
5097
5098 2015-09-16  Eric Botcazou  <ebotcazou@adacore.com>
5099
5100         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
5101         offset and size computations instead of HOST_WIDE_INT.
5102
5103 2015-09-16  Richard Biener  <rguenther@suse.de>
5104
5105         PR middle-end/67442
5106         * fold-const.c (extract_muldiv_1): Properly extend multiplication
5107         result before builting a tree via wide_int_to_tree.
5108
5109 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
5110
5111         * Makefile.in: Add memory-block.cc
5112         (pool_allocator::initialize): Use fixed block size.
5113         (pool_allocator::release): Use memory_block_pool.
5114         (pool_allocator::allocate): Likewise.
5115         * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
5116         object pools.
5117         * cfg.c (initialize_original_copy_tables): Likewise.
5118         * cselib.c (elt_list_pool, elt_loc_list_pool,
5119         cselib_val_pool): Likewise.
5120         * df-problems.c (df_chain_alloc): Likewise.
5121         * df-scan.c (df_scan_alloc): Likewise.
5122         * dse.c (cse_store_info_pool, rtx_store_info_pool,
5123         read_info_type_pool, insn_info_type_pool, bb_info_pool,
5124         group_info_pool, deferred_change_pool): Likewise.
5125         * et-forest.c (et_nodes, et_occurrences): Likewise.
5126         * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
5127         ipcp_agg_lattice_pool): Likewise.
5128         * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
5129         * ipa-profile.c (histogram_pool): Likewise.
5130         * ipa-prop.c (ipa_refdesc_pool): Likewise.
5131         * ira-build.c (live_range_pool, allocno_pool, object_pool,
5132         initiate_cost_vectors, pref_pool, copy_pool): Likewise.
5133         * ira-color.c (update_cost_record_pool): Likewise.
5134         * lra-lives.c (lra_live_range_pool): Likewise.
5135         * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
5136         * memory-block.cc: New file.
5137         * memory-block.h: New file.
5138         * regcprop.c (queued_debug_insn_change_pool): Use common block size.
5139         * sched-deps.c (sched_deps_init): Likewise.
5140         * sel-sched-ir.c (sched_lists_pool): Likewise.
5141         * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
5142         * tree-sra.c (access_pool): Likewise.
5143         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
5144         * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
5145         * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
5146         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
5147         * tree-ssa-strlen.c (strinfo_pool): Likewise.
5148         * tree-ssa-structalias.c (variable_info_pool): Likewise.
5149         * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
5150         location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
5151
5152 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
5153
5154         * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
5155         definition.
5156         (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
5157         call0 ABI.
5158
5159 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
5160
5161         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
5162         to pass TLS call argument, according to current ABI.
5163         * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
5164         callx0 for TLS call, according to current ABI.
5165
5166 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
5167
5168         * tree-eh.c (lower_try_finally_dup_block): Clear location information
5169         on stack restore statements.
5170         (decide_copy_try_finally): Do not consider a stack restore statement as
5171         coming from sources.
5172
5173 2015-09-15  Uros Bizjak  <ubizjak@gmail.com>
5174
5175         * config/alpha/alpha.c (alpha_expand_block_clear): Use
5176         HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
5177
5178 2015-09-15  Jeff Law  <law@redhat.com>
5179
5180         PR tree-optimization/47679
5181         * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
5182         methods and private members.
5183         (avail_exprs_stack): Similarly.  Change type of global
5184         from a pair of expr_hash_elt_t to the new class.
5185         (expr_elt_hasher::hash): Corresponding changes.
5186         (expr_elt_hasher::equal): Similarly.
5187         (avail_expr_hash): Similarly.
5188         (pass_dominator::execute): Similarly.
5189         (dom_opt_dom_walker::thread_across_edge): Similarly.
5190         (record_cond): Similarly.
5191         (dom_opt_dom_walker::before_dom_children): Similarly.
5192         (dom_opt_dom_walker::after_dom_children): Similarly.
5193         (lookup_avail_expr): Likewise.
5194         (initialize_hash_element): Now a expr_hash_elt constructor.
5195         (initialize_hash_element_from_expr): Similarly.
5196         (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
5197         (free_expr_hash_elt): Call dtor for the element.
5198         (remove_local_expressions_from_table): Now the "pop_to_marker"
5199         method in the available_exprs_stack class.
5200         (avail_expr_stack::record_expr): Method factored out.
5201         (print_expr_hash_elt): Now a method in the expr_hash_elt class.
5202         Fix formatting.
5203         (hashable_expr_equal_p): Fix formatting.
5204
5205 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
5206
5207         * input.h (location_get_source_line): Drop "expanded_location"
5208         param in favor of a file and line number.
5209         * input.c (location_get_source_line): Likewise.
5210         (dump_location_info): Update for change in signature of
5211         location_get_source_line.
5212         * diagnostic.c (diagnostic_print_caret_line): Likewise.
5213
5214 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
5215
5216         * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
5217         Bump to 4KB for SJLJ exceptions.
5218         (STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
5219         * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
5220         * doc/tm.texi: Regenerate.
5221
5222 2015-09-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5223
5224         * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
5225         of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
5226         Update prototype.
5227
5228 2015-09-15  Richard Biener  <rguenther@suse.de>
5229
5230         PR tree-optimization/67470
5231         * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
5232         structure for PHI hoisting by inserting a forwarder block
5233         if appropriate.
5234
5235 2015-09-15  Christian Bruel  <christian.bruel@st.com>
5236
5237         * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
5238         (arm_option_print): New function.
5239
5240 2015-09-15  Christian Bruel  <christian.bruel@st.com>
5241
5242         PR target/52144
5243         * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
5244         * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
5245         Remove flags parameter.
5246         * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
5247         (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
5248         (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
5249         (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
5250         (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
5251         (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
5252         (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
5253         * gcc/config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
5254
5255 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5256
5257         * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
5258
5259         * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
5260         AARCH64_VALID_SIMD_DREG_MODE.
5261
5262 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5263
5264         * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
5265         aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
5266         (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
5267         (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
5268         aarch64_ld4_lane<mode>): Combine together, making...
5269         (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
5270         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
5271         aarch64_st4_lane<mode>): Combine together, making...
5272         (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
5273         * config/aarch64/iterators.md (nregs): Add comment.
5274
5275 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5276
5277         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
5278         Change operand mode from <V_TWO_ELEM> to BLK.
5279         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
5280         (aarch64_vec_store_lanesoi_lane<mode): Likewise
5281         (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5282         (aarch64_ld2_lane<mode>): Likewise.
5283         (aarch64_st2_lane<VQ:mode>): Likewise.
5284         * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
5285
5286 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5287
5288         * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
5289         Change operand mode from <V_FOUR_ELEM> to BLK.
5290         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
5291         (aarch64_vec_store_lanesxi_lane<mode): Likewise.
5292         (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5293         (aarch64_ld4_lane<mode>): Likewise.
5294         (aarch64_st4_lane<mode>): Likewise.
5295         * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
5296
5297 2015-09-15  Richard Biener  <rguenther@suse.de>
5298
5299         PR middle-end/67563
5300         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
5301         transfer EH info from old to new stmt.
5302         (replace_call_with_value): Likewise.
5303         (replace_call_with_call_and_fold): Likewise.
5304         (gimple_fold_builtin_memory_op): Likewise.
5305         (gimple_fold_builtin_memset): Likewise.
5306         (gimple_fold_builtin_stpcpy): Likewise.
5307         (gimple_fold_call): Likewise.
5308
5309 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5310
5311         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
5312         comment.
5313         * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
5314         (aarch64_simd_intEI_type_node): Likewise.
5315         (aarch64_simd_builtin_std_type): Remove EImode case.
5316         (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
5317         * config/aarch64/aarch64-modes.def: Remove EImode.
5318
5319 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5320
5321         * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
5322         Change operand mode from <V_THREE_ELEM> to BLK.
5323         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
5324         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
5325         (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5326         (aarch64_ld3_lane<mode>): Likewise.
5327         (aarch64_st3_lane<mode>): Likewise.
5328         * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
5329
5330 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5331
5332         * config/aarch64/aarch64-simd.md
5333         (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
5334         Change all TImode operands to BLKmode.
5335         (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
5336         Change all EImode operands to BLKmode.
5337         (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
5338         Change all OImode operands to BLKmode.
5339
5340         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
5341         and call set_mem_size.
5342         (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
5343
5344         * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
5345
5346 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5347
5348         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
5349         to...
5350         (aarch64_vec_store_lanesoi_lane<mode>): ...this.
5351
5352         (vec_store_lanesci_lane<mode>): Rename to...
5353         (aarch64_vec_store_lanesci_lane<mode>): ...this.
5354
5355         (vec_store_lanesxi_lane<mode>): Rename to...
5356         (aarch64_vec_store_lanesxi_lane<mode>): ...this.
5357
5358         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
5359         aarch64_st4_lane<mode>): Follow renaming.
5360
5361 2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5362
5363         * config/s390/s390.c (s390_const_operand_ok): Add missing
5364         brackets.
5365
5366 2015-09-15  Richard Biener  <rguenther@suse.de>
5367
5368         PR lto/67568
5369         * lto-streamer.h (lto_location_cache::current_sysp): Properly
5370         initialize.
5371         * lto-streamer-out.c (clear_line_info): Likewise.
5372
5373 2015-09-15  Richard Biener  <rguenther@suse.de>
5374
5375         * doc/match-and-simplify.texi: Fix wording.
5376
5377 2015-09-15  Bin Cheng  <bin.cheng@arm.com>
5378
5379         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
5380         unnecessary type conversion in op1.
5381
5382 2015-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
5383
5384         * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
5385         (dup_block_and_redirect): Delete function.
5386         (can_dup_for_shrink_wrapping): New function.
5387         (fix_fake_fallthrough_edge): New function.
5388         (try_shrink_wrapping): Rewrite function.
5389         (convert_to_simple_return): Call fix_fake_fallthrough_edge.
5390
5391 2015-09-14  Rich Felker  <dalias@libc.org>
5392
5393         * configure.ac: Change target pattern for sh TLS support
5394         test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
5395         * configure: Regenerate.
5396
5397 2015-09-14  Jeff Law  <law@redhat.com>
5398
5399         PR tree-optimization/47679
5400         * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
5401         type rather than void *.
5402
5403 2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5404
5405         PR fortran/67460
5406         * diagnostic.c (diagnostic_initialize): Do not set
5407         some_warnings_are_errors.
5408         (diagnostic_finish): Use DK_WERROR count instead.
5409         (diagnostic_report_diagnostic): Do not set
5410         some_warnings_are_errors.
5411         * diagnostic.h (struct diagnostic_context): Remove
5412         some_warnings_are_errors.
5413
5414 2015-09-14  Richard Sandiford  <richard.sandiford@arm.com>
5415
5416         * config/sparc/predicates.md (const_all_ones_operand): Use
5417         CONSTM1_RTX to simplify definition.
5418
5419 2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>
5420
5421         PR target/67061
5422         * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
5423         Handle call insns.
5424
5425 2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>
5426
5427         * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
5428         OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
5429         OPT_fshow_column to handled saved option cases.
5430         (append_compiler_options): Do not skip the above added options.
5431
5432 2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5433
5434         PR target/63304
5435         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
5436         nopcrelative_literal_loads.
5437         (aarch64_classify_address): Likewise.
5438         (aarch64_constant_pool_reload_icode): Define.
5439         (aarch64_secondary_reload): Handle secondary reloads for
5440         literal pools.
5441         (aarch64_override_options): Handle nopcrelative_literal_loads.
5442         (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
5443         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
5444         Define.
5445         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
5446         * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
5447         * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
5448         predicate.
5449         * doc/invoke.texi (mpc-relative-literal-loads): Document.
5450
5451 2015-09-14  John David Anglin  <danglin@gcc.gnu.org>
5452
5453         PR middle-end/67401
5454         * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
5455         sync_compare_and_swap_optab libcall to target_oval.
5456
5457 2015-09-14  Marek Polacek  <polacek@redhat.com>
5458
5459         * rtlanal.c (split_double): Cast to unsigned when shifting a negative
5460         value.
5461         * sched-int.h (UNKNOWN_DEP_COST): Likewise.
5462
5463 2015-09-11  Mark Wielaard  <mjw@redhat.com>
5464
5465         PR c/28901
5466         * toplev.c (check_global_declaration): Check and use
5467         warn_unused_const_variable.
5468         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
5469         (-Wunused-variable): Remove non-constant. For C implies
5470         -Wunused-const-variable.
5471         (-Wunused-const-variable): New.
5472
5473 2015-09-14  Richard Biener  <rguenther@suse.de>
5474
5475         * doc/match-and-simplify.texi: Update for changed syntax
5476         of inner ifs and the new switch expression.
5477
5478 2015-09-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
5479
5480         * config/i386/haswell.md: New file describing Haswell pipeline.
5481         * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
5482         haswell-like processors.
5483         (ix86_reassociation_width): Increase reassociation width for 64-bit
5484         Haswell processor family.
5485         * config/i386/i386.md: Introduce haswell cpu and include new md file.
5486
5487 2015-09-14  Richard Biener  <rguenther@suse.de>
5488
5489         * doc/match-and-simplify.texi: Fixup some formatting issues
5490         and document the 's' flag.
5491
5492 2015-09-13  Olivier Hainque  <hainque@adacore.com>
5493             Eric Botcazou  <ebotcazou@adacore.com>
5494
5495         * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
5496         gr6 as possible values, defaulting to gr5.  Set target_cpu_default2.
5497         * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
5498         (TARGET_CPU_gr5): Likewise.
5499         (TARGET_CPU_gr6): Likewise.
5500         (MULTILIB_DEFAULTS): Likewise.
5501         * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
5502         for mcpu=gr5 and mcpu=gr6.
5503         (MULTILIB_DIRNAMES): Adjust accordingly.
5504
5505 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5506
5507         * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
5508         (mem_ref_p): Likewise.
5509         (outermost_indep_loop): Adjust.
5510         (mem_ref_in_stmt): Likewise.
5511         (determine_max_movement): Likewise.
5512         (mem_ref_alloc): Likewise.
5513         (record_mem_ref_loc): Likewise.
5514         (set_ref_stored_in_loop): Likewise.
5515         (mark_ref_stored): Likewise.
5516         (gather_mem_refs_stmt): Likewise.
5517         (mem_refs_may_alias_p): Likewise.
5518         (for_all_locs_in_loop): Likewise.
5519         (struct rewrite_mem_ref_loc): Likewise.
5520         (rewrite_mem_refs): Likewise.
5521         (struct first_mem_ref_loc_1): Likewise.
5522         (first_mem_ref_loc): Likewise.
5523         (struct sm_set_flag_if_changed): Likewise.
5524         (execute_sm_if_changed_flag_set): Likewise.
5525         (execute_sm): Likewise.
5526         (hoist_memory_references):
5527         (struct ref_always_accessed): Likewise.
5528         (ref_always_accessed_p): Likewise.
5529         (refs_independent_p): Likewise.
5530         (record_dep_loop): Likewise.
5531         (ref_indep_loop_p_1): Likewise.
5532         (ref_indep_loop_p_2): Likewise.
5533         (ref_indep_loop_p): Likewise.
5534         (can_sm_ref_p): Likewise.
5535         (find_refs_for_sm): Likewise.
5536         (tree_ssa_lim_finalize): Likewise.
5537
5538 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5539
5540         * dwarf2out.c (dw_attr_ref): Remove typedef.
5541         (dw_line_info_ref): Likewise.
5542         (pubname_ref): Likewise.
5543         (dw_ranges_ref): Likewise.
5544         (dw_ranges_by_label_ref): Likewise.
5545         (comdat_type_node_ref): Likewise.
5546         (get_AT): Adjust.
5547         (get_AT_low_pc): Likewise.
5548         (get_AT_hi_pc): Likewise.
5549         (get_AT_string): Likewise.
5550         (get_AT_flag): Likewise.
5551         (get_AT_unsigned): Likewise.
5552         (get_AT_ref): Likewise.
5553         (get_AT_file): Likewise.
5554         (remove_AT): Likewise.
5555         (print_die): Likewise.
5556         (check_die): Likewise.
5557         (die_checksum): Likewise.
5558         (attr_checksum_ordered): Likewise.
5559         (struct checksum_attributes): Likewise.
5560         (collect_checksum_attributes): Likewise.
5561         (die_checksum_ordered): Likewise.
5562         (same_die_p): Likewise.
5563         (is_declaration_die): Likewise.
5564         (clone_die): Likewise.
5565         (clone_as_declaration): Likewise.
5566         (copy_declaration_context): Likewise.
5567         (break_out_comdat_types): Likewise.
5568         (copy_decls_walk): Likewise.
5569         (output_location_lists): Likewise.
5570         (external_ref_hasher::hash): Likewise.
5571         (optimize_external_refs_1): Likewise.
5572         (build_abbrev_table): Likewise.
5573         (size_of_die): Likewise.
5574         (unmark_all_dies): Likewise.
5575         (size_of_pubnames): Likewise.
5576         (output_die_abbrevs): Likewise.
5577         (output_die): Likewise.
5578         (output_pubnames): Likewise.
5579         (add_ranges_num): Likewise.
5580         (add_ranges_by_labels): Likewise.
5581         (add_high_low_attributes): Likewise.
5582         (gen_producer_string): Likewise.
5583         (dwarf2out_set_name): Likewise.
5584         (new_line_info_table): Likewise.
5585         (prune_unused_types_walk_attribs): Likewise.
5586         (prune_unused_types_update_strings): Likewise.
5587         (prune_unused_types): Likewise.
5588         (resolve_addr): Likewise.
5589         (optimize_location_lists_1): Likewise.
5590         (index_location_lists): Likewise.
5591         (dwarf2out_finish): Likewise.
5592
5593 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5594
5595         * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
5596
5597 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5598
5599         * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
5600         (dump_asserts_for): Adjust.
5601         (register_new_assert_for): Likewise.
5602         (process_assert_insertions): Likewise.
5603         (insert_range_assertions): Likewise.
5604
5605 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5606
5607         * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
5608         and remove typedef.
5609         (new_temp_expr_table): Adjust.
5610         (free_temp_expr_table): Likewise.
5611         (version_to_be_replaced_p): Likewise.
5612         (make_dependent_on_partition): Likewise.
5613         (add_to_partition_kill_list): Likewise.
5614         (remove_from_partition_kill_list): Likewise.
5615         (add_dependence): Likewise.
5616         (finished_with_expr): Likewise.
5617         (process_replaceable): Likewise.
5618         (kill_expr): Likewise.
5619         (kill_virtual_exprs): Likewise.
5620         (mark_replaceable): Likewise.
5621         (find_replaceable_in_bb): Likewise.
5622         (find_replaceable_exprs): Likewise.
5623         (debug_ter): Likewise.
5624
5625 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5626
5627         * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
5628         (struct btr_user): Rename from btr_user_s.
5629         (struct btr_def): Rename from btr_def_s.
5630         (find_btr_def_group): Adjust.
5631         (add_btr_def): Likewise.
5632         (new_btr_user): Likewise.
5633         (note_other_use_this_block): Likewise.
5634         (compute_defs_uses_and_gen): Likewise.
5635         (link_btr_uses): Likewise.
5636         (build_btr_def_use_webs): Likewise.
5637         (block_at_edge_of_live_range_p): Likewise.
5638         (btr_def_live_range): Likewise.
5639         (combine_btr_defs): Likewise.
5640         (move_btr_def): Likewise.
5641         (migrate_btr_def): Likewise.
5642         (migrate_btr_defs): Likewise.
5643
5644 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5645
5646         * var-tracking.c (shared_hash_def): Rename to shared_hash.
5647         (shared_hash): Remove typedef.
5648         (struct dataflow_set): Adjust.
5649         (shared_hash_unshare): Likewise.
5650         (dataflow_set_merge): Likewise.
5651         (vt_initialize): Likewise.
5652         (vt_finalize): Likewise.
5653
5654 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5655
5656         * var-tracking.c (struct location_chain): Rename from
5657         location_chain_def.
5658         (struct variable_part): Adjust.
5659         (variable_htab_free): Likewise.
5660         (unshare_variable): Likewise.
5661         (get_init_value): Likewise.
5662         (get_addr_from_local_cache): Likewise.
5663         (drop_overlapping_mem_locs): Likewise.
5664         (val_reset): Likewise.
5665         (struct variable_union_info): Likewise.
5666         (variable_union): Likewise.
5667         (find_loc_in_1pdv): Likewise.
5668         (insert_into_intersection): Likewise.
5669         (intersect_loc_chains): Likewise.
5670         (canonicalize_loc_order_check): Likewise.
5671         (canonicalize_values_mark): Likewise.
5672         (canonicalize_values_star): Likewise.
5673         (canonicalize_vars_star): Likewise.
5674         (variable_merge_over_cur): Likewise.
5675         (remove_duplicate_values): Likewise.
5676         (variable_post_merge_new_vals): Likewise.
5677         (variable_post_merge_perm_vals): Likewise.
5678         (find_mem_expr_in_1pdv): Likewise.
5679         (dataflow_set_preserve_mem_locs): Likewise.
5680         (dataflow_set_remove_mem_locs): Likewise.
5681         (variable_part_different_p): Likewise.
5682         (onepart_variable_different_p): Likewise.
5683         (find_src_set_src): Likewise.
5684         (dump_var): Likewise.
5685         (set_slot_part): Likewise.
5686         (clobber_slot_part): Likewise.
5687         (delete_slot_part): Likewise.
5688         (vt_expand_var_loc_chain): Likewise.
5689         (emit_note_insn_var_location): Likewise.
5690         (vt_finalize): Likewise.
5691
5692 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5693
5694         * dse.c (store_info_t): Remove typedef.
5695         (group_info_t): Likewise.
5696         (const_group_info_t): Likewise.
5697         (deferred_change_t): Likewise.
5698         (get_group_info): Adjust.
5699         (free_store_info): Likewise.
5700         (canon_address): Likewise.
5701         (clear_rhs_from_active_local_stores): Likewise.
5702         (record_store): Likewise.
5703         (replace_read): Likewise.
5704         (check_mem_read_rtx): Likewise.
5705         (scan_insn): Likewise.
5706         (remove_useless_values): Likewise.
5707         (dse_step1): Likewise.
5708         (dse_step2_init): Likewise.
5709         (dse_step2_nospill): Likewise.
5710         (scan_stores_nospill): Likewise.
5711         (scan_reads_nospill): Likewise.
5712         (dse_step3_exit_block_scan): Likewise.
5713         (dse_step3): Likewise.
5714         (dse_step5_nospill): Likewise.
5715         (dse_step6): Likewise.
5716
5717 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5718
5719         * alias.c (alias_set_entry_d): Rename to alias_set_entry.
5720         (alias_set_entry): Remove typedef.
5721         (alias_set_subset_of): Adjust.
5722         (alias_sets_conflict_p): Likewise.
5723         (init_alias_set_entry): Likewise.
5724         (get_alias_set): Likewise.
5725         (new_alias_set): Likewise.
5726         (record_alias_subset): Likewise.
5727
5728 2015-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
5729
5730         * doc/install.texi (Downloading the source): Mark up
5731         contrib/download_prerequisites properly and drop leading "./".
5732
5733 2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5734
5735         * config/arc/arc.h: Remove define of STRUCT_VALUE.
5736         * config/lm32/lm32.h: Likewise.
5737         * config/mep/mep.h: Likewise.
5738         * config/visium/visium.h: Likewise.
5739         * system.h: Poison STRUCT_VALUE macro.
5740
5741 2015-09-12  John David Anglin  <danglin@gcc.gnu.org>
5742
5743         * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
5744         CONSTANT_P operands.
5745
5746 2015-09-11  David S. Miller  <davem@davemloft.net>
5747
5748         * config/sparc/constraints.md: Make "U" constraint a real register
5749         constraint.
5750         * config/sparc/sparc.c (TARGET_LRA_P): Define.
5751         (D_MODES, DF_MODES): Add missing cast.
5752         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
5753         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
5754         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
5755         cost to 8.
5756         * config/sparc/sparc.h (PROMOTE_MODE): Define.
5757         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
5758         provide these insn when flag_pic.
5759
5760 2015-09-11  Jeff Law  <law@redhat.com>
5761
5762         PR tree-optimization/47679
5763         * tree-ssa-dom.c (struct cond_equivalence): Update comment.
5764         * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
5765         member with m_.  Update inline member functions as necessary.  Add
5766         toplevel comment.
5767         * tree-ssa-scopedtables.c: Update const_and_copies's member
5768         functions to use m_ prefix to access the stack.
5769
5770 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
5771
5772         * graphite-optimize-isl.c (disable_tiling): Remove.
5773         (get_schedule_for_band): Do not use disable_tiling.
5774         (get_prevector_map): Delete function.
5775         (enable_polly_vector): Remove.
5776         (get_schedule_for_band_list): Remove dead code.
5777
5778 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
5779
5780         * graphite-optimize-isl.c (get_tile_map): Refactor.
5781         (get_schedule_for_band): Same.
5782         (getScheduleForBand): Same.
5783         (get_prevector_map): Same.
5784         (get_schedule_for_band_list): Same.
5785         (get_schedule_map): Same.
5786         (get_single_map): Same.
5787         (apply_schedule_map_to_scop): Same.
5788         (optimize_isl): Same.
5789
5790 2015-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5791
5792         PR target/63304
5793         * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
5794         (movtf): Delete.
5795         * config/aarch64/iterators.md (GPF_TF_F16): New.
5796         (GPF_F16): Delete.
5797
5798 2015-09-10  Nathan Sidwell  <nathan@acm.org>
5799
5800         * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
5801         (nvptx_reorg): Adjust comments.
5802
5803 2015-09-15  John David Anglin  <danglin@gcc.gnu.org>
5804
5805         PR bootstrap/67363
5806         * configure.ac: Check if setenv and unsetenv are declared.
5807         * configure: Rebuild.
5808         * config.in: Rebuild.
5809         * system.h: Declare setenv and unsetenv if not declared.
5810
5811 2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5812
5813         * config/rs6000/rs6000.c (swap_web_entry): Update preceding
5814         commentary to simplify permute mask adjustment equation.
5815         (special_handling_values): Add SH_VPERM.
5816         (const_load_sequence_p): New function.
5817         (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
5818         the mask loaded from the constant pool.
5819         (adjust_vperm): New function.
5820         (handle_special_swappables): Call adjust_vperm.
5821         (dump_swap_insn_table): Handle SH_VPERM.
5822
5823 2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>
5824
5825         * shrink-wrap.c (requires_stack_frame_p): Remove static.
5826         * shrink-wrap.h (requires_stack_frame_p): Put back.
5827
5828 2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>
5829
5830         * reload1.c (elimination_costs_in_insn): Locally turn
5831         -Wmaybe-uninitialized into a warning.
5832
5833 2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>
5834
5835         * shrink-wrap.c (requires_stack_frame_p): Make static.
5836         (prepare_shrink_wrap): Likewise.
5837         (dup_block_and_redirect): Likewise.
5838         * shrink-wrap.h: Remove declarations of those functions.
5839
5840 2015-09-10  Mark Wielaard  <mjw@redhat.com>
5841
5842         * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
5843
5844 2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
5845
5846         PR target/67506
5847         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
5848         missing simplify_gen_subreg.
5849
5850 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5851
5852         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
5853         the vector element is bigger than 64 bit.
5854
5855 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5856
5857         * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
5858         ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
5859
5860 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5861
5862         * config/s390/s390.c: Add V1TImode to constant pool modes.
5863
5864 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5865
5866         PR target/67439
5867         * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
5868         predicate.  Set predicable_short_it attr to "no".
5869
5870 2015-09-10  Jiong Wang  <jiong.wang@arm.com>
5871
5872         PR rtl-optimization/67421
5873         * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
5874         left wide shift tranformation.
5875
5876 2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>
5877
5878         * common/config/arc/arc-common.c: Remove references to A5.
5879         * config/arc/arc-opts.h: Likewise.
5880         * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
5881         * config/arc/arc.opt, config/arc/constraints.md: Likewise.
5882         * config/arc/t-arc-newlib: Likewise.
5883
5884 2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>
5885
5886         * config/arc/arc.md (length): Fix attribute length for conditional
5887         executed instructions with long immediate.
5888
5889 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5890
5891         * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
5892         type for second alternative.
5893
5894 2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
5895
5896         * doc/invoke.texi (Downloading GCC): Mention
5897         contrib/download_prerequisites script.
5898
5899 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
5900
5901         PR c++/67523
5902         * gimplify.c (gimplify_omp_for): If inner stmt is not found
5903         for combined loop, assert seen_error () and return GS_ERROR.
5904
5905         PR middle-end/67521
5906         * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
5907         if decl is already in outer->variables.
5908
5909         PR middle-end/67517
5910         * gimplify.c (gimplify_scan_omp_clauses): Instead of
5911         asserting that decl is not specified in octx->variables,
5912         break out of the loop if it is.
5913
5914         PR c++/67514
5915         * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
5916         iterator is not explicitly determined, but is defined inside
5917         of the combined workshare region, handle it like if it has
5918         DECL_EXPR in OMP_FOR_PRE_BODY.
5919
5920 2015-09-09  Nathan Sidwell  <nathan@acm.org>
5921
5922         * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
5923         (*cmp<mode>): Add assembler spacing.
5924         (setcc_int<mode>, set_cc_float<mode>): Likewise.
5925         * config/nvptx/nvptx.c (nvptx_option_override): Override debug
5926         level.
5927         (write_func_decl_from_insn): Refactor argument loops & comma emission.
5928         (nvptx_expand_call): Likewise.
5929         (nvptx_output_call_insn): Likewise.
5930         (nvptx_reorg_subreg): Add spacing.
5931
5932 2015-09-09  Marek Polacek  <polacek@redhat.com>
5933
5934         PR middle-end/67512
5935         * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
5936         for comparisons.
5937
5938 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
5939
5940         PR c++/53184
5941         * doc/invoke.texi ([Wsubobject-linkage]): Document.
5942
5943 2015-09-09  Tom de Vries  <tom@codesourcery.com>
5944
5945         * params-list.h: Add missing copyright notice.
5946
5947 2015-09-09  Nathan Sidwell  <nathan@acm.org>
5948
5949         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
5950         sel_truesi, not andsi.
5951
5952 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5953
5954         * config/arm/arm.md (*subsi3_compare0): Rename to...
5955         (subsi3_compare0): ... This.
5956         (modsi3): New define_expand.
5957         * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
5958         when operand is power of 2.
5959
5960 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5961
5962         * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
5963         (*neg<mode>2_compare0): Rename to...
5964         (neg<mode>2_compare0): ... This.
5965         * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
5966         Move check for speed inside the if-then-elses.  Reflect
5967         CSNEG sequence in MOD by power of 2 case.
5968
5969 2015-09-09  Alan Modra  <amodra@gmail.com>
5970
5971         PR target/67378
5972         * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
5973         reload replacement for PRE_MODIFY address reg.
5974
5975 2015-09-09  Sebastian Pop  <s.pop@samsung.com>
5976
5977         PR tree-optimization/53852
5978         * config.in: Regenerate.
5979         * configure: Regenerate.
5980         * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
5981         * graphite-optimize-isl.c (optimize_isl): Stop computation when
5982         PARAM_MAX_ISL_OPERATIONS is reached.
5983         * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
5984         * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
5985         result equal to isl_stat_ok as the status now can be isl_error_quota.
5986         (subtract_commutative_associative_deps): Same.
5987         (compute_deps): Same.
5988
5989 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
5990             Sebastian Pop  <s.pop@samsung.com>
5991
5992         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
5993         Return the parameter if it was saved in corresponding
5994         parameter_rename_map of the region.
5995         (copy_def): Copy def from sese region to the newly created region.
5996         (copy_internal_parameters): Copy all the internal parameters defined
5997         within a region to the newly created region.
5998         (graphite_regenerate_ast_isl): Copy parameters to the new region before
5999         translating isl to gimple.
6000         * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
6001         the loop-nest does not have any data-references.
6002         (build_graphite_scops): Create a scop only when there is at least one
6003         loop inside it.
6004         (contains_only_close_phi_nodes): Deleted.
6005         (print_graphite_scop_statistics): Deleted
6006         (print_graphite_statistics): Deleted
6007         (limit_scops): Deleted.
6008         (build_scops): Removed call to limit_scops.
6009         * sese.c (new_sese): Construct.
6010         (free_sese): Destruct.
6011         (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
6012         added.
6013         (set_rename): Pass sese region so that parameters inside the region can
6014         be added to its parameter_rename_map.
6015         (rename_uses): Pass sese region.
6016         (graphite_copy_stmts_from_block): Do not copy parameters that have been
6017         generated in the header of the scop. For each SSA_NAME in the
6018         parameter_rename_map rename its usage.
6019         (invariant_in_sese_p_rec): Return false if tree t is defined outside
6020         sese region.
6021         (scalar_evolution_in_region): If the tree t is invariant just return t.
6022         * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
6023         struct sese to keep track of all the parameters which need renaming.
6024         * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
6025         any data-refs.
6026         * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
6027
6028 2015-09-08  Tom de Vries  <tom@codesourcery.com>
6029
6030         * Makefile.in (generated_files): Add params.list.
6031         (params.list, s-params.list): Add rule.
6032         * params.h (enum compiler_param): Include params-list.h.  Move define
6033         DEFPARAM, include params.def and undef DEFPARAM ...
6034         * params-list.h: ... here.  New file.
6035
6036 2015-09-08  David Malcolm  <dmalcolm@redhat.com>
6037
6038         * pretty-print.h (printer_fn): Fix typo in comment.
6039
6040 2015-09-07  Jeff Law  <law@redhat.com>
6041
6042         * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
6043
6044 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6045
6046         * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
6047         (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
6048         (arm_neon_fp16_hw): New.
6049
6050 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6051
6052         * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
6053         UNITS_PER_WORD >= 4.
6054
6055 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6056
6057         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
6058         aarch64_simd_vec_unpacks_hi_<mode>): New insn.
6059         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
6060         (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
6061         (aarch64_float_extend_lo_v2df): Rename to...
6062         (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
6063
6064         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
6065         (float_extend_lo): Add v4sf.
6066
6067         * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
6068         * config/aarch64/iterators.md (VQ_HSF): New iterator.
6069         (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
6070         (Vwide): New mode_attr.
6071
6072 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6073
6074         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
6075         aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
6076         aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
6077         vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
6078         V4HF and V8HF variants to iterator.
6079
6080         * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
6081
6082         * config/aarch64/iterators.md (VDQF_F16): New.
6083         (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
6084
6085 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6086
6087         * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
6088         vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
6089         vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
6090         vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
6091         vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
6092         vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
6093         vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
6094         vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
6095         vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
6096         vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
6097         vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
6098         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
6099         vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
6100         vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
6101         vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
6102         vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
6103         vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
6104         vld1q_dup_f16): New.
6105
6106 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6107
6108         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
6109         Reparameterize to...
6110         (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
6111         (aarch64_float_truncate_hi_v4sf): Reparameterize to...
6112         (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
6113
6114         * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
6115         v8hf variant.
6116         (float_truncate_lo_): Use BUILTIN_VDF iterator.
6117
6118         * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
6119
6120         * config/aarch64/iterators.md (VDF, Vdtype): New.
6121         (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
6122
6123 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6124
6125         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
6126         * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
6127         (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
6128         Add __builtin_aarch64_simd_hf.
6129         * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
6130         float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
6131         vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
6132         vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
6133         vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
6134         vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
6135         vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
6136         vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
6137         vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
6138
6139         * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
6140         V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
6141         (VDC, Vdbl): Add V4HF.
6142
6143 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6144
6145         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
6146         V4HFmode and V8HFmode.
6147         (aarch64_split_simd_move): Add case for V8HFmode.
6148         * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
6149         (aarch64_simd_builtin_std_type): Handle HFmode.
6150         (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
6151
6152         * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
6153         aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
6154         (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
6155
6156         * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
6157         Float16x8_t.
6158
6159         * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
6160         * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
6161         New typedefs.
6162         (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
6163         vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
6164         vst1q_lane_f16): New.
6165         * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
6166         (VALLDI_F16, VALL_F16): New.
6167         (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
6168         Add cases for V4HF and V8HF.
6169         (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
6170
6171 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6172
6173         * config/arm/arm-builtins.c (VAR11, VAR12): New.
6174         * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
6175         vld4_dup): Add v4hf variant.
6176         (vget_high, vget_low): Add v8hf variant.
6177         (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
6178         vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
6179         v4hf and v8hf variants.
6180
6181         * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
6182         (VDX): Add V4HF.
6183         (V_DOUBLE): Add case for V4HF.
6184         (VQX): Add V8HF.
6185         (V_HALF): Add case for V8HF.
6186         (VDQX): Add V4HF, V8HF.
6187         (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
6188         V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
6189
6190         * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
6191         neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
6192         vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
6193         neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
6194         neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
6195         neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
6196         vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
6197         neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
6198         neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
6199
6200         (neon_vcreate, neon_vreinterpretv8qi<mode>,
6201         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
6202         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
6203         Change VDX to VD_RE.
6204
6205         (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
6206         neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
6207         Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
6208
6209         * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
6210         float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
6211         vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
6212         vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
6213         vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
6214         vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
6215         vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
6216         vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
6217         vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
6218
6219 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6220
6221         * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
6222         vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
6223         vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
6224         vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
6225         vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
6226         vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
6227         vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
6228         vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
6229         vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
6230         vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
6231         New.
6232
6233 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6234
6235         * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
6236
6237         * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
6238
6239         * config/arm/arm-builtins.c (v8hf_UP): New.
6240         (arm_init_simd_builtin_types): Initialise Float16x8_t.
6241
6242         * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
6243
6244         * config/arm/arm_neon.h (float16x8_t): New typedef.
6245
6246 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6247
6248         * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
6249         vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
6250         vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
6251         vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
6252         vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
6253         vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
6254         vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
6255         vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
6256         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
6257         vreinterpret_u16_f16, vreinterpret_u32_f16): New.
6258
6259 2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
6260
6261         * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
6262         non-alphanumeric characters in the symbol name.
6263
6264 2015-09-07  Marek Polacek  <polacek@redhat.com>
6265
6266         PR inline-asm/67448
6267         * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
6268         a memory input.
6269
6270 2015-09-07  Marek Polacek  <polacek@redhat.com>
6271
6272         * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
6273
6274 2015-09-04  Paolo Bonzini  <bonzini@gnu.org>
6275
6276         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
6277         not warn.
6278
6279 2015-09-04  Jakub Jelinek  <jakub@redhat.com>
6280
6281         PR middle-end/67452
6282         * tree-ssa-live.c: Include cfgloop.h.
6283         (remove_unused_locals): Clear loop->simduid if simduid is about
6284         to be removed from cfun->local_decls.
6285
6286 2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6287
6288         PR target/65210
6289         * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
6290         attribute as well.
6291
6292 2015-09-04  Tom de Vries  <tom@codesourcery.com>
6293
6294         * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
6295
6296 2015-09-04  Jeff Law  <law@redhat.com>
6297
6298         * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
6299         unnecessary constructor.  It's now trivial and implemented inside...
6300         * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
6301         constructor.  Add comments to various methods.  Remove unused
6302         private fields.
6303         * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
6304         * tree-vrp.c (identify_jump_threads): Likewise.
6305         * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
6306         indentation issues.
6307         (thread_across_edge): Similarly.
6308         (record_temporary_equivalences_from_stmts_at_dest): Remove unused
6309         arguments in constructor call.
6310
6311 2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
6312
6313         * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
6314         temp path contains a '-'.
6315
6316 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6317             Petr Murzin  <petr.murzin@intel.com>
6318             Kirill Yukhin  <kirill.yukhin@intel.com>
6319
6320         * config/i386/i386-builtin-types.def
6321         (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
6322         (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
6323         (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
6324         (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
6325         * config/i386/i386.c
6326         (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
6327         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
6328         IX86_BUILTIN_SCATTERALTDIV16SI.
6329         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
6330         __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
6331         __builtin_ia32_scatteraltdiv8si.
6332         (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
6333         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
6334         IX86_BUILTIN_SCATTERALTDIV16SI.
6335         (ix86_vectorize_builtin_scatter): New.
6336         (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
6337         ix86_vectorize_builtin_scatter.
6338
6339 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6340             Petr Murzin  <petr.murzin@intel.com>
6341             Kirill Yukhin  <kirill.yukhin@intel.com>
6342
6343         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
6344         * doc/tm.texi: Regenerate.
6345         * target.def: Add scatter builtin.
6346         * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
6347         for loads/stores in case of gather/scatter accordingly.
6348         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
6349         STMT_VINFO_GATHER_P(S).
6350         (vect_check_gather): Rename to ...
6351         (vect_check_gather_scatter): this.
6352         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
6353         STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
6354         (vect_check_gather_scatter): Use it instead of vect_check_gather.
6355         (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
6356         variable and new checkings for it accordingly.
6357         * tree-vect-stmts.c
6358         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
6359         STMT_VINFO_GATHER_P(S).
6360         (vect_check_gather_scatter): Use it instead of vect_check_gather.
6361         (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
6362
6363 2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
6364
6365         * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
6366         define_insn.
6367         (mulv16qi3): New define_expand.
6368
6369 2015-09-03  Martin Sebor  <msebor@redhat.com>
6370
6371         PR c/66516
6372         * doc/extend.texi (Other Builtins): Document when the address
6373         of a built-in function can be taken.
6374
6375 2015-09-03  Richard Biener  <rguenther@suse.de>
6376
6377         * dwarf2out.c (flush_limbo_die_list): Split out from ...
6378         (dwarf2out_early_finish): ... here.
6379         (dwarf2out_finish): Do not call dwarf2out_early_finish but
6380         flush_limbo_die_list.  Assert we have no deferred asm names.
6381
6382 2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6383
6384         * optabs.c (expand_binop): Don't create a broadcast vector with a
6385         source element wider than the inner mode.
6386
6387 2015-09-03  Richard Biener  <rguenther@suse.de>
6388
6389         * varasm.c (output_constant): Use fold_convert instead of
6390         wide_int_to_tree.
6391
6392 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6393
6394         PR tree-optimization/65637
6395         * omp-low.c (expand_omp_for_static_chunk): Handle case that
6396         fin_bb has 2 predecessors.
6397
6398 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6399
6400         PR tree-optimization/65637
6401         * omp-low.c (find_phi_with_arg_on_edge): New function.
6402         (expand_omp_for_static_chunk): Fix inner loop phi.
6403
6404 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6405
6406         PR tree-optimization/65637
6407         * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
6408         that head is NULL.
6409
6410 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6411
6412         * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
6413
6414 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6415
6416         * doc/invoke.texi (parloops-chunk-size): Add item.
6417         * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
6418         * tree-parloops.c: Include params.h.
6419         (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
6420         param parloops-chunk-size is used.
6421
6422 2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6423
6424         PR middle-end/67351
6425         * fold-const.c (fold_binary_loc) : Move
6426         Transform (x >> c) << c into x & (-1<<c) or
6427         transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
6428         types using simplify and match.
6429         * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
6430         (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
6431
6432 2015-09-03  Richard Biener  <rguenther@suse.de>
6433
6434         PR ipa/66705
6435         * tree-ssa-structalias.c (ctor_for_analysis): New function.
6436         (create_variable_info_for_1): Use ctor_for_analysis instead
6437         of get_constructor.
6438         (create_variable_info_for): Likewise.
6439
6440 2015-09-02  Charles Baylis  <charles.baylis@linaro.org>
6441
6442         PR ipa/67280
6443         * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
6444         in new callgraph edge.
6445
6446 2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>
6447
6448         PR target/59810
6449         PR target/63652
6450         PR target/63653
6451         * config/aarch64/aarch64-simd.md
6452         (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
6453         gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
6454         (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
6455         gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
6456
6457 2015-09-02  Alan Modra  <amodra@gmail.com>
6458
6459         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
6460         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
6461         (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
6462
6463 2015-09-02  Alan Modra  <amodra@gmail.com>
6464
6465         PR target/67417
6466         * config/rs6000/predicates.md (current_file_function_operand): Don't
6467         return true for weak symbols.
6468         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
6469
6470 2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
6471             Andrew Bennett  <andrew.bennett@imgtec.com>
6472
6473         * config/mips/mips-opts.h (mips_cb_setting): New enum.
6474         * config/mips/mips-protos.h: Add definitions for
6475         mips_output_jump and mips_output_equal_conditional_branch
6476         * gcc/config/mips/mips.c (MIPS_JR): Change to support the
6477         JIC instruction.
6478         (mips_emit_compare): Add support for the MIPS R6 conditional
6479         compact branches.
6480         (mips_process_sync_loop): Likewise.
6481         (mips_output_order_conditional_branch): Likewise.
6482         (mips16_build_call_stub): Change MIPS_CALL to
6483         mips_output_jump.
6484         (mips_print_operand_punctuation): Update 's' case to only
6485         apply to micromips r2.
6486         (mips_adjust_insn_length): Add support for forbidden slot
6487         hazards.
6488         (mips_avoid_hazard): Likewise.
6489         (mips_reorg_process_insns): Likewise.
6490         (mips_output_jump): New function.
6491         (mips_output_equal_conditional_branch): Likewise.
6492         (mips_output_conditional_branch): Use jrc/bc if compact
6493         branch support is enabled.  Ensure the forbidden slots
6494         between the two branch instructions is filled with a nop.
6495         (mips_option_override): Add support to process the compact
6496         branch option and set the correct defaults.  Prevent
6497         non-explict relocs being using for MIPS R6.
6498         (mips_trampoline_init): Add compact branch support.
6499         (mips_mult_zero_zero_cost): Allow zero initialisation of
6500         accumulators with TARGET_DSP.
6501         * gcc/config/mips/mips.h (TARGET_CB_NEVER): New define.
6502         (TARGET_CB_MAYBE): New define.
6503         (TARGET_CB_ALWAYS): New define.
6504         (ISA_HAS_DELAY_SLOTS): New define.
6505         (ISA_HAS_COMPACT_BRANCHES): New define.
6506         (ISA_HAS_JRC): New define.
6507         (MIPS_BRANCH_C): New define.
6508         (MIPS_CALL): Removed.
6509         (MICROMIPS_J): Removed.
6510         * config/mips/mips.md (compact_form): New attr.
6511         (hazard): Add support for forbidden slots.
6512         (define_delay): Add support for compact branches.
6513         (*branch_order<mode>): Likewise.
6514         (*branch_order<mode>_inverted): Likewise.
6515         (*branch_equality<mode>): Likewise.
6516         (*branch_equality<mode>_inverted): Likewise.
6517         (*jump_absolute): Likewise.
6518         (*jump_pic): Likewise.
6519         (indirect_jump): Use mips_output_jump to produce assembly output.
6520         (tablejump_<mode>"): Likewise.
6521         (*<optab>"): Likewise.
6522         (<optab>_internal): Likewise.
6523         (sibcall_internal): Likewise.
6524         (sibcall_value_internal): Likewise.
6525         (sibcall_value_multiple_internal): Likewise.
6526         (call_internal): Likewise.
6527         (call_split): Likewise.
6528         (call_internal_direct): Likewise.
6529         (call_direct_split): Likewise.
6530         (call_value_internal): Likewise.
6531         (call_value_split): Likewise.
6532         (call_value_internal_direct): Likewise.
6533         (call_value_direct_split): Likewise.
6534         (call_value_multiple_internal): Likewise.
6535         (call_value_multiple_split): Likewise.
6536         (mips_get_fcsr_mips16_<mode>): Likewise.
6537         (mips_set_fcsr_mips16_<mode>): Likewise.
6538         (tls_get_tp_mips16_<mode>): Likewise.
6539         * config/mips/mips.opt: Add -mcompact-branches option.
6540         * config/mips/predicates.md (order_operator): Ensure the
6541         conditional compact branches are only used if the ISA them.
6542         * doc/invoke.texi: Document -mcompact-branches option.
6543
6544 2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>
6545
6546         PR target/61578
6547         * lra-lives.c (process_bb_lives): Process move pseudos with the
6548         same value for copies and preferences
6549         * lra-constraints.c (match_reload): Create match reload pseudo
6550         with the same value from single dying input pseudo.
6551
6552 2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
6553
6554         PR target/67405
6555         * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
6556
6557 2015-09-01  Aldy Hernandez  <aldyh@redhat.com>
6558
6559         * trans-mem.c: Add contributed-by.
6560         * trans-mem.h: Same.
6561
6562 2015-09-01  Richard Biener  <rguenther@suse.de>
6563
6564         * expr.c (expand_expr_real_1): For expanding TERed defs
6565         set the current location to that of the def if not UNKNOWN.
6566
6567 2015-09-01  David Sherwood  <david.sherwood@arm.com>
6568
6569         * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
6570
6571 2015-09-01  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6572
6573         * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
6574         then_cost, else_cost fields.  Change branch_cost field to unsigned int.
6575         (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
6576         Include rtl-iter.h.
6577         (noce_simple_bbs): New function.
6578         (noce_try_move): Bail if basic blocks are not simple.
6579         (noce_try_store_flag): Likewise.
6580         (noce_try_store_flag_constants): Likewise.
6581         (noce_try_addcc): Likewise.
6582         (noce_try_store_flag_mask): Likewise.
6583         (noce_try_cmove): Likewise.
6584         (noce_try_minmax): Likewise.
6585         (noce_try_abs): Likewise.
6586         (noce_try_sign_mask): Likewise.
6587         (noce_try_bitop): Likewise.
6588         (bbs_ok_for_cmove_arith): New function.
6589         (noce_emit_all_but_last): Likewise.
6590         (noce_emit_insn): Likewise.
6591         (noce_emit_bb): Likewise.
6592         (noce_try_cmove_arith): Handle non-simple basic blocks.
6593         (insn_valid_noce_process_p): New function.
6594         (contains_mem_rtx_p): Likewise.
6595         (bb_valid_for_noce_process_p): Likewise.
6596         (noce_process_if_block): Allow non-simple basic blocks
6597         where appropriate.
6598
6599 2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>
6600
6601         * tree-ssa-dom.c (record_equivalences_from_phis,
6602         record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
6603         (lookup_avail_expr): Likewise, and remove comment and unused temp.
6604
6605 2015-09-01  Nick Clifton  <nickc@redhat.com>
6606
6607         * config/msp430/msp430.opt (mcpu): Fix typo.
6608
6609 2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6610
6611         * config/aarch64/aarch64.c (aarch64_set_current_function):
6612         Re-layout any vector parameters have non-simd layout.
6613         * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
6614         Delete.
6615         (aarch64_simd_expand_args): Delete call to the above.
6616
6617 2015-08-31  Mike Frysinger  <vapier@gentoo.org>
6618
6619         * doc/invoke.texi (asan-stack): Add space before option.
6620
6621 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
6622
6623         * tree.h (zerop): New function.
6624         * tree.c (zerop): Likewise.
6625         (element_precision): Handle expressions.
6626         * match.pd (define_predicates): Add zerop.
6627         (x <= +Inf): Fix comment.
6628         (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
6629         * fold-const.c (fold_binary_loc): ... here. Remove.
6630
6631 2015-08-31  Richard Biener  <rguenther@suse.de>
6632
6633         PR middle-end/67381
6634         * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
6635
6636 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
6637
6638         * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
6639         (CEXPI): New operator list.
6640         (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
6641         imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
6642         Converted from ...
6643         * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
6644
6645 2015-08-31  Tom de Vries  <tom@codesourcery.com>
6646
6647         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
6648         (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
6649         parameter.
6650         (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
6651         (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
6652         (rewrite_into_loop_closed_ssa): ... here.
6653         (replace_uses_in_dominated_bbs): Remove function.
6654         (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
6655         rewrite_into_loop_closed_ssa_1.
6656
6657 2015-08-31  Michael Matz  <matz@suse.de>
6658
6659         * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
6660         enter entry and exit blocks for reverse post order.
6661
6662 2015-08-31  Richard Biener  <rguenther@suse.de>
6663
6664         * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
6665         (lto_location_cache::current_sysp): Likewise.
6666         (output_block::current_sysp): Likewise.
6667         * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
6668         (lto_location_cache::apply_location_cache): Properly record
6669         system header locations.
6670         (lto_location_cache::input_location): Input whether a file
6671         is a system header.
6672         * lto-streamer-out.c (lto_output_location): Stream whether a file
6673         is a system header.
6674
6675 2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6676
6677         PR bootstrap/67363
6678         * gcc.c (env_manager::xput): Replace strndup by xstrndup.
6679
6680 2015-08-31  Tom de Vries  <tom@codesourcery.com>
6681
6682         * tree-ssa-loop-manip.c (find_uses_to_rename_use)
6683         (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
6684         Improve function header comments.
6685
6686 2015-08-30  Michael Collison  <michael.collison@linaro.org>
6687
6688         PR other/67320
6689         * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
6690         standard names
6691
6692 2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6693
6694         * config/rs6000/rs6000.c (swap_web_entry): Enlarge
6695         special_handling bitfield.
6696         (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
6697         (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
6698         that represents a general xxpermdi.
6699         (insn_is_swappable_p): Add handling for vec_concat of two
6700         doublewords, which maps to a specific xxpermdi.
6701         (adjust_xxpermdi): New function.
6702         (adjust_concat): Likewise.
6703         (handle_special_swappables): Call adjust_xxpermdi and
6704         adjust_concat.
6705         (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
6706
6707 2015-08-30  Rich Felker <dalias@libc.org>
6708
6709         * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
6710         case instead of sh[123456ble]-*-*.
6711
6712 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
6713
6714         * ira.c (print_unform_and_important_classes,
6715         print_translated_classes): Remove reg_class_names static array.
6716         (print_unform_and_important_classes): Rename to ...
6717         (print_uniform_and_important_classes): ... this.
6718         (ira_debug_allocno_classes): Update accordingly.
6719
6720 2015-08-29  Tom de Vries  <tom@codesourcery.com>
6721
6722         PR tree-optimization/46193
6723         * omp-low.c (omp_reduction_init): Handle pointer type for min or max
6724         clause.
6725
6726 2015-08-28  Jeff Law  <law@redhat.com>
6727
6728         PR lto/66752
6729         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
6730         unable to find X NE 0 in the tables, return X as the simplified
6731         condition.
6732         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
6733         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
6734         to VISISTED_BBS.
6735         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
6736         after removing the control flow statement and unnecessary edges.
6737
6738 2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>
6739
6740         Revert:
6741         2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
6742
6743         PR tree-optimization/67283
6744         * tree-sra.c (type_consists_of_records_p): Rename to...
6745         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
6746
6747         (completely_scalarize_record): Rename to...
6748         (completely_scalarize): ...this, add ARRAY_TYPE case, move some
6749         code to:
6750         (scalarize_elem): New.
6751
6752 2015-08-28  Jiong Wang  <jiong.wang@arm.com>
6753
6754         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
6755         SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
6756         (aarch64_symbol_type): Likewise.
6757         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
6758         Likewise.
6759         (aarch64_expand_mov_immediate): Likewise.
6760         (aarch64_print_operand): Likewise.
6761         (aarch64_classify_tls_symbol): Likewise.
6762
6763 2015-08-28  Richard Biener  <rguenther@suse.de>
6764
6765         * cgraphunit.c (symbol_table::compile): Move early debug generation
6766         and finish...
6767         (symbol_table::finalize_compilation_unit): ... back here and
6768         add a !seen_error () guard.
6769
6770 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
6771
6772         * toplev.c (process_options): Do not use flag_loop_block,
6773         flag_loop_interchange, and flag_loop_strip_mine.  Add check for
6774         flag_loop_optimize_isl.
6775
6776 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
6777
6778         * Makefile.in (OBJS): Remove graphite-blocking.o and
6779         graphite-interchange.o.
6780         * common.opt (floop-strip-mine, floop-interchange, floop-block):
6781         Alias of floop-nest-optimize.
6782         * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
6783         Document as alias of -floop-nest-optimize.
6784         * graphite-blocking.c: Remove.
6785         * graphite-interchange.c: Remove.
6786         * graphite-optimize-isl.c: Include dumpfile.h.
6787         (getScheduleForBand): Add dump for tiled loops.  Use
6788         PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
6789         * graphite-poly.c (scop_max_loop_depth): Remove.
6790         (print_scattering_function_1): Remove.
6791         (print_scattering_function): Remove.
6792         (print_scattering_functions): Remove.
6793         (debug_scattering_function): Remove.
6794         (debug_scattering_functions): Remove.
6795         (apply_poly_transforms): Remove use of flag_loop_block,
6796         flag_loop_strip_mine, and flag_loop_interchange.
6797         (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
6798         PBB_ORIGINAL.
6799         (print_pdr_access_layout): Remove.
6800         (print_pdr): Print ISL representation.
6801         (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
6802         SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
6803         (free_scop): Same.
6804         (openscop_print_pbb_domain): Remove.
6805         (print_pbb): Remove call to print_scattering_function.
6806         (openscop_print_scop_context): Remove.
6807         (print_scop_context): Do not print matrices anymore.
6808         (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
6809         SCOP_TRANSFORMED_SCHEDULE.
6810         (print_isl_set): Add printing of a new line.
6811         (print_isl_map): Same.
6812         (print_isl_aff): Same.
6813         (print_isl_constraint): Same.
6814         (loop_to_lst): Remove.
6815         (scop_to_lst): Remove.
6816         (lst_indent_to): Remove.
6817         (print_lst): Remove.
6818         (debug_lst): Remove.
6819         (dot_lst_1): Remove.
6820         (dot_lst): Remove.
6821         (reverse_loop_at_level): Remove.
6822         (reverse_loop_for_pbbs): Remove.
6823         * graphite-poly.h (pdr_dim_iter_domain): Remove.
6824         (pdr_nb_params): Remove.
6825         (pdr_alias_set_dim): Remove.
6826         (pdr_subscript_dim): Remove.
6827         (pdr_iterator_dim): Remove.
6828         (pdr_parameter_dim): Remove.
6829         (same_pdr_p): Remove.
6830         (struct poly_scattering): Remove.
6831         (struct poly_bb): Remove _original, _transformed, _saved.
6832         (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
6833         (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
6834         (PBB_NB_LOCAL_VARIABLES): Remove.
6835         (PBB_NB_SCATTERING_TRANSFORM): Remove.
6836         (schedule_to_scattering): Remove.
6837         (number_of_write_pdrs): Remove.
6838         (pbb_dim_iter_domain): Remove.
6839         (pbb_nb_params): Remove.
6840         (pbb_nb_scattering_orig): Remove.
6841         (pbb_nb_scattering_transform): Remove.
6842         (pbb_nb_dynamic_scattering_transform): Remove.
6843         (pbb_nb_local_vars): Remove.
6844         (pbb_iterator_dim): Remove.
6845         (pbb_parameter_dim): Remove.
6846         (psco_scattering_dim): Remove.
6847         (psct_scattering_dim): Remove.
6848         (psct_local_var_dim): Remove.
6849         (psco_iterator_dim): Remove.
6850         (psct_iterator_dim): Remove.
6851         (psco_parameter_dim): Remove.
6852         (psct_parameter_dim): Remove.
6853         (psct_dynamic_dim): Remove.
6854         (psct_static_dim): Remove.
6855         (psct_add_local_variable): Remove.
6856         (new_lst_loop): Remove.
6857         (new_lst_stmt): Remove.
6858         (free_lst): Remove.
6859         (copy_lst): Remove.
6860         (lst_add_loop_under_loop): Remove.
6861         (lst_depth): Remove.
6862         (lst_dewey_number): Remove.
6863         (lst_dewey_number_at_depth): Remove.
6864         (lst_pred): Remove.
6865         (lst_succ): Remove.
6866         (lst_find_pbb): Remove.
6867         (find_lst_loop): Remove.
6868         (lst_find_first_pbb): Remove.
6869         (lst_empty_p): Remove.
6870         (lst_find_last_pbb): Remove.
6871         (lst_contains_p): Remove.
6872         (lst_contains_pbb): Remove.
6873         (lst_create_nest): Remove.
6874         (lst_remove_from_sequence): Remove.
6875         (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
6876         (lst_niter_for_loop): Remove.
6877         (pbb_update_scattering): Remove.
6878         (lst_update_scattering_under): Remove.
6879         (lst_update_scattering): Remove.
6880         (lst_insert_in_sequence): Remove.
6881         (lst_replace): Remove.
6882         (lst_substitute_3): Remove.
6883         (lst_distribute_lst): Remove.
6884         (lst_remove_all_before_including_pbb): Remove.
6885         (lst_remove_all_before_excluding_pbb): Remove.
6886         (struct scop): Remove original_schedule, transformed_schedule, and
6887         saved_schedule.
6888         (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
6889         (SCOP_SAVED_SCHEDULE): Remove.
6890         (poly_scattering_new): Remove.
6891         (poly_scattering_free): Remove.
6892         (poly_scattering_copy): Remove.
6893         (store_scattering_pbb): Remove.
6894         (store_lst_schedule): Remove.
6895         (restore_lst_schedule): Remove.
6896         (store_scattering): Remove.
6897         (restore_scattering_pbb): Remove.
6898         (restore_scattering): Remove.
6899         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
6900         Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
6901         compute the scattering polyhedron dimension from the dimension of
6902         pbb->domain.
6903         (build_scop_scattering): Update call to
6904         build_pbb_scattering_polyhedrons.
6905         (build_poly_scop): Remove call to scop_to_lst.
6906         * graphite.c (graphite_transform_loops): Add call to print_scop.
6907         (gate_graphite_transforms): Remove use of flag_loop_block,
6908         flag_loop_interchange, and flag_loop_strip_mine.
6909
6910 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
6911
6912         * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
6913         * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
6914         -floop-nest-optimize.
6915         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
6916         (generate_luj_sepclass): Remove.
6917         (generate_luj_options): Remove.
6918         (set_options): Remove opt_luj.
6919         (scop_to_isl_ast): Remove opt_luj.
6920         * graphite-optimize-isl.c (getScheduleForBand): Remove check for
6921         flag_loop_unroll_jam.
6922         (getPrevectorMap_full): Remove.
6923         (getScheduleForBandList): Remove map_sepcl.
6924         (getScheduleMap): Same.
6925         (apply_schedule_map_to_scop): Remove sepcl.
6926         (optimize_isl): Same.
6927         * graphite-poly.c (apply_poly_transforms): Remove check for
6928         flag_loop_unroll_jam.
6929         (new_poly_bb): Remove map_sepclass.
6930         * graphite-poly.h (struct poly_bb): Same.
6931         * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
6932         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
6933         (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
6934         * toplev.c (process_options): Remove flag_loop_unroll_jam.
6935
6936 2015-08-27  Uros Bizjak  <ubizjak@gmail.com>
6937
6938         PR target/67317
6939         * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
6940         (addqi3_cc): Ditto.
6941         (UNSPEC_ADD_CARRY): Remove.
6942         (addqi3_cconly_overflow): New expander.
6943         (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
6944         Adjust for changed add<mode>3_carry.
6945         (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
6946         (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
6947         (<plusminus_insn><mode>3_carry): Remove expander.
6948         (*<plusminus_insn><mode>3_carry): Split insn pattern to
6949         add<mode>3_carry and sub<mode>3_carry.
6950         (plusminus_carry_mnemonic): Remove code attribute.
6951         (add<mode>3_carry): Canonicalize insn pattern.
6952         (*addsi3_carry_zext): Ditto.
6953         (sub<mode>3_carry): Ditto.
6954         (*subsi3_carry_zext): Ditto.
6955         (adcx<mode>3): Remove insn pattern.
6956         (addcarry<mode>): New insn pattern.
6957         (subborrow<mode>): Ditto.
6958         * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
6959         gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
6960         (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
6961         case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
6962         case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
6963         CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
6964         Rewrite expander to not clobber carry flag chains.
6965
6966 2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>
6967
6968         * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
6969         instead of a rotate.
6970
6971 2015-08-27  Marek Polacek  <polacek@redhat.com>
6972
6973         PR middle-end/67005
6974         * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
6975         an entry into an irreducible region.
6976
6977 2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
6978
6979         * configure: Regenerate.
6980
6981 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
6982
6983         PR tree-optimization/67283
6984         * tree-sra.c (type_consists_of_records_p): Rename to...
6985         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
6986
6987         (completely_scalarize_record): Rename to...
6988         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
6989         (scalarize_elem): New.
6990
6991 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
6992
6993         * tree-sra.c (completely_scalarize_var): Rename to...
6994         (create_total_scalarization_access): ... Here. Drop call to
6995         completely_scalarize_record.
6996
6997         (analyze_all_variable_accesses): Replace completely_scalarize_var
6998         with create_total_scalarization_access and completely_scalarize_record.
6999
7000 2015-08-27  Alan Modra  <amodra@gmail.com>
7001
7002         PR target/67356
7003         * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
7004         for operand 1.
7005
7006 2015-08-27  Richard Biener  <rguenther@suse.de>
7007
7008         * passes.c (rest_of_decl_compilation): Guard early_global_decl
7009         call with !seen_error ().
7010         * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
7011         early debug generation and finish...
7012         (symbol_table::compile): ... here to put it after a !seen_error ()
7013         guard.
7014
7015 2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7016
7017         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
7018         Solaris 12+.
7019
7020 2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7021             Andre Vieira  <andre.simoesdiasvieira@arm.com>
7022
7023         * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
7024         (*cb<optab><mode>1): Likewise.
7025         (*tb<optab><mode>1): Likewise.
7026         (*cb<optab><mode>1): Likewise.
7027         * config/aarch64/iterators.md (inv_cb): New code attribute.
7028         (inv_tb): Likewise.
7029         * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
7030         * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
7031
7032 2015-08-27  Richard Biener  <rguenther@suse.de>
7033
7034         * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
7035
7036 2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7037
7038         * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
7039         trap to fix ICE.
7040
7041 2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7042
7043         * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
7044         Add declaration.
7045
7046         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
7047         comment.
7048         (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
7049         floating point in VSX registers.
7050         (rs6000_output_move_128bit): Always print out the set insn if we
7051         can't generate an appropriate 128-bit move.
7052         (rs6000_generate_compare): Add support for IEEE 128-bit floating
7053         point in VSX registers comparisons.
7054         (rs6000_expand_float128_convert): Likewise.
7055
7056         * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
7057         predicate for only GPR hard registers.
7058
7059         * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
7060         modes to iterators. Add new iterators for moving 128-bit values in
7061         scalar FPR registers and VSX registers.
7062         (FMOVE128): Likewise.
7063         (FMOVE128_FPR): Likewise.
7064         (FMOVE128_GPR): Likewise.
7065         (FMOVE128_VSX): Likewise.
7066         (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
7067         in VSX registers.
7068         (IFKF): Likewise.
7069         (IBM128): Likewise.
7070         (TFIFKF): Likewise.
7071         (RELOAD): Add IEEE 128-bit floating point modes.
7072         (signbittf2): Convert TF insns to add support for new IEEE 128-bit
7073         floating point in VSX registers modes.
7074         (signbit<mode>2, IBM128 iterator): Likewise.
7075         (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
7076         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
7077         (negtf2): Likewise.
7078         (neg<mode>2, TFIFKF iterator): Likewise.
7079         (negtf2_internal): Likewise.
7080         (abstf2): Likewise.
7081         (abs<mode>2, TFIFKF iterator): Likewise.
7082         (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
7083         VSX insn support for negate, absolute value, and negative absolute
7084         value.
7085         (ieee_128bit_vsx_neg<mode>2): Likewise.
7086         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
7087         (ieee_128bit_vsx_abs<mode>2): Likewise.
7088         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
7089         (ieee_128bit_vsx_nabs<mode>2): Likewise.
7090         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
7091         (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
7092         floating point in VSX registers.
7093         (unpack<mode>_dm): Likewise.
7094         (unpack<mode>_nodm): Likewise.
7095         (pack<mode>): Likewise.
7096         (unpackv1ti): Likewise.
7097         (unpack<mode>, FMOVE128_VSX iterator): Likewise.
7098         (packv1ti): Likewise.
7099         (pack<mode>, FMOVE128_VSX iterator): Likewise.
7100         (extenddftf2): Add support for IEEE 128-bit floating point in VSX
7101         registers.
7102         (extenddftf2_internal): Likewise.
7103         (trunctfdf2): Likewise.
7104         (trunctfdf2_internal2): Likewise.
7105         (fix_trunc_helper): Likewise.
7106         (fix_trunctfdi2"): Likewise.
7107         (floatditf2): Likewise.
7108         (floatuns<mode>tf2): Likewise.
7109         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
7110         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
7111         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
7112         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
7113         (float<SDI:mode><IFKF:mode>2): Likewise.
7114         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
7115
7116 2015-08-26  Renlin Li  <renlin.li@arm.com>
7117
7118         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
7119
7120 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7121             Jiong Wang  <jiong.wang@arm.com>
7122
7123         * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
7124         (tlsie_tiny_<mode>): New define_insn.
7125         (tlsie_tiny_sidi): Likewise.
7126         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
7127         SYMBOL_TINY_TLSIE.
7128         (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
7129         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
7130         SYMBOL_TINY_TLSIE.
7131         (aarch64_expand_mov_immediate): Likewise.
7132         (aarch64_print_operand): Likewise.
7133         (arch64_classify_tls_symbol): Likewise.
7134
7135 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7136
7137         * config/arm/arm-arches.def: Replace single value flags with
7138         an initializer built from ARM_FSET_MAKE_CPU1.
7139         * config/arm/arm-cores.def: Likewise.
7140         * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
7141         derivation from the ARM_CORE macro definition, use the given value
7142         instead.
7143         (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
7144         ARM_ARCH macro definition, use the given value instead.
7145
7146 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7147
7148         * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
7149         feature set.
7150         (struct builtin_description): Replace field mask with field
7151         features.
7152         (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
7153         (IWMMXT2_BUILTIN): Likewise.
7154         (IWMMXT2_BUILTIN2): Likewise.
7155         (FP_BUILTIN): Likewise.
7156         (CRC32_BUILTIN): Likewise.
7157         (CRYPTO_BUILTIN): Likewise.
7158         (iwmmx_mbuiltin): Likewise.
7159         (iwmmx2_mbuiltin): Likewise.
7160         (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
7161         struct builtin_description.
7162
7163 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7164
7165         * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
7166         (struct builtin_description): Change type of mask to unsigned
7167         long.
7168         * config/arm/arm-protos.h (insn_flags): Declare as type
7169         arm_feature_set.
7170         (tune_flags): Likewise.
7171         * config/arm/arm.c (feature_count): New.
7172         (insn_flags): Define as type arm_feature_set.
7173         (tune_flags): Likewise.
7174         (struct processors): Define field flags as type arm_feature_set.
7175         (all_cores): Update for change to struct processors.
7176         (all_architectures): Likewise.
7177         (arm_option_check_internal): Use arm_feature_set and ARM_FSET
7178         macros.
7179         (arm_option_override_internal): Likewise.
7180         (arm_option_override): Likewise.
7181
7182 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7183             Jiong Wang  <jiong.wang@arm.com>
7184
7185         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
7186         tls size for tiny, small, large memory model.
7187         (aarch64_load_symref_appropriately): Support new symbol types.
7188         (aarch64_expand_mov_immediate): Likewise.
7189         (aarch64_print_operand): Likewise.
7190         (aarch64_classify_tls_symbol): Likewise.
7191         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
7192         (aarch64_symbol_type): Likewise.
7193         * config/aarch64/aarch64.md (tlsle): Deleted.
7194         (tlsle12_<mode>): New define_insn.
7195         (tlsle24_<mode>): Likewise.
7196         (tlsle32_<mode>): Likewise.
7197         (tlsle48_<mode>): Likewise.
7198         * doc/sourcebuild.texi (AArch64-specific attributes): Document
7199         "aarch64_tlsle32".
7200
7201 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7202
7203         * config/arm/arm-protos.h (FL_NONE): New.
7204         (FL_ANY): New.
7205         (arm_feature_set): New.
7206         (ARM_FSET_MAKE): New.
7207         (ARM_FSET_MAKE_CPU1): New.
7208         (ARM_FSET_MAKE_CPU2): New.
7209         (ARM_FSET_CPU1): New.
7210         (ARM_FSET_CPU2): New.
7211         (ARM_FSET_EMPTY): New.
7212         (ARM_FSET_ANY): New.
7213         (ARM_FSET_HAS_CPU1): New.
7214         (ARM_FSET_HAS_CPU2): New.
7215         (ARM_FSET_HAS_CPU): New.
7216         (ARM_FSET_ADD_CPU1): New.
7217         (ARM_FSET_ADD_CPU2): New.
7218         (ARM_FSET_DEL_CPU1): New.
7219         (ARM_FSET_DEL_CPU2): New.
7220         (ARM_FSET_UNION): New.
7221         (ARM_FSET_INTER): New.
7222         (ARM_FSET_XOR): New.
7223         (ARM_FSET_EXCLUDE): New.
7224         (AFM_FSET_IS_EMPTY): New.
7225         (ARM_FSET_CPU_SUBSET): New.
7226
7227 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
7228
7229         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
7230         SYMBOL_TLSLE to SYMBOL_TLSLE24.
7231         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7232         Likewise.
7233         (aarch64_expand_mov_immediate): Likewise.
7234         (aarch64_print_operand): Likewise.
7235         (aarch64_classify_symbol): Likewise.
7236
7237 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
7238
7239         * config/aarch64/aarch64.opt (mtls-size): New entry.
7240         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
7241         (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
7242         * doc/invoke.texi (AArch64 Options): Document -mtls-size.
7243
7244 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7245
7246         * gcc/config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
7247         ARM_CORE entry.  Fix some white-space.
7248         * gcc/config/arm/arm.c: Remove FL_FOR_ARCH derivation from
7249         ARM_CORE definition.
7250
7251 2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7252
7253         * fold-const.c (fold_binary_loc) : Move Optimize
7254         root(x)*root(y) as root(x*y) to match.pd.
7255         Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
7256         Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
7257         Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
7258         Move Optimize x/expN(y) into x*expN(-y) to match.pd.
7259         * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
7260         (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
7261         (mult (exps:s @0) (exps:s @1)) : New simplifier.
7262         (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
7263         (rdiv @0 (exps:s @1)) : New simplifier.
7264
7265 2015-08-25  Joseph Myers  <joseph@codesourcery.com>
7266
7267         * gcc.c (driver::finalize): Only assign to extra_specs if
7268         [EXTRA_SPECS].
7269
7270 2015-08-25  Marek Polacek  <polacek@redhat.com>
7271
7272         PR middle-end/67330
7273         * varasm.c (declare_weak): Return after giving an error.
7274
7275 2015-08-25  David Malcolm  <dmalcolm@redhat.com>
7276
7277         * gcc-main.c (main): Add params to driver ctor.
7278         * gcc.c (class env_manager): New.
7279         (env): New global.
7280         (env_manager::init): New.
7281         (env_manager::get): New.
7282         (env_manager::xput): New.
7283         (env_manager::restore): New.
7284         Poison getenv and putenv.
7285         (DEFAULT_TARGET_SYSTEM_ROOT): New.
7286         (target_system_root): Update initialization to use
7287         DEFAULT_TARGET_SYSTEM_ROOT.
7288         (struct spec_list): Add field "default_ptr".
7289         (INIT_STATIC_SPEC): Initialize new field "default_ptr".
7290         (init_spec): Likewise.
7291         (set_spec): Clear field "default_ptr".
7292         (read_specs): Free "spec" and "buffer".
7293         (xputenv): Reimplement in terms of env_manager.
7294         (process_command): Replace ::getenv calls with calls to the
7295         env_manager singleton.
7296         (process_brace_body): Free string in three places.
7297         (driver::driver): New.
7298         (driver::~driver): New.
7299         (used_arg): Convert from a function to...
7300         (class used_arg_t): ...this class, and...
7301         (used_arg): ...this new global instance.
7302         (used_arg_t::finalize): New function.
7303         (getenv_spec_function): Add "const" to local "value".  Replace
7304         ::getenv call with call to the env_manager singleton.
7305         (path_prefix_reset): New function.
7306         (driver::finalize): New function.
7307         * gcc.h (driver::driver): New.
7308         (driver::~driver): New.
7309         (driver::finalize): New.
7310
7311 2015-08-25  Nathan Sidwell  <nathan@acm.org>
7312
7313         * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
7314         target doesn't have one.
7315
7316 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
7317
7318         PR target/67346
7319         * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
7320
7321 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
7322
7323         PR target/67344
7324         * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
7325         a define_insn, remove second alternative.
7326
7327 2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
7328             Joseph Myers  <joseph@codesourcery.com>
7329
7330         * gcc.c (struct switchstr): Expand comment.
7331
7332 2015-08-25  Nathan Sidwell  <nathan@acm.org>
7333
7334         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
7335         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
7336
7337 2015-08-25  Richard Biener  <rguenther@suse.de>
7338
7339         PR middle-end/67306
7340         * genmatch.c (expr::gen_transform): Verify the result of
7341         builtin_decl_implicit.
7342         (dt_simplify::gen_1): Likewise.
7343
7344 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7345
7346         * config/arm/constraints.md: Also list Cs and US ARM-specific
7347         constraints as used.
7348
7349 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
7350
7351         PR target/66609
7352         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
7353         UNSPEC_PCREL.
7354         (nonpic_symbol_mentioned_p): Likewise.
7355         (sh_delegitimize_address): Likewise.
7356         (sh_function_ok_for_sibcall): Take into account weak symbols.
7357         (sh_expand_sym_label2reg): New.
7358         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
7359         * config/sh/sh.md (UNSPEC_PCREL): New enum.
7360         (call_pcrel): Use sh_expand_sym_label2reg.
7361         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
7362         (symPCREL_label2reg) New expand.
7363
7364 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
7365
7366         * graphite-poly.c: Change type of region from void* to sese.
7367         * graphite-poly.h (struct scop): Changing the type of scop::region
7368         from void* to sese. Change accessor macro accordingly.
7369         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
7370
7371 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
7372
7373         * graphite-scop-detection.c (stmt_simple_for_scop_p):
7374         Constrain only on INTEGER_TYPE.
7375
7376 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7377
7378         PR target/67211
7379         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
7380         -mefficient-unaligned-vsx on ISA 2.7.
7381
7382         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
7383         option to a masked option.
7384
7385         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
7386         logic for -mefficient-unaligned-vsx so that it is set via an arch
7387         ISA option, instead of being set if -mtune=power8 is set. Move
7388         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
7389         near other default option handling.
7390
7391 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7392
7393         * genflags.c (gen_macro): Delete.
7394         (gen_proto): Don't create GEN.*CALL.* macros.
7395         * gensupport.h (get_file_location): Declare.
7396         * gensupport.c (rtx_locs): New variable.
7397         (read_md_rtx): Record rtx locations.
7398         (get_file_location): New function.
7399         * target-insns.def (call, call_pop, call_value, call_value_pop)
7400         (sibcall, sibcall_value): New patterns.
7401         * gentarget-def.c (parse_argument): New function.
7402         (def_target_insn): Use it.  Handle optional operands.  Raise an
7403         error if an .md pattern has the wrong number of operands for the
7404         pattern name.  Remove the names of unused operands from the prototype.
7405         * builtins.c (expand_builtin_apply): Use targetm functions
7406         instead of HAVE_call_value and GEN_CALL_VALUE.
7407         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
7408         and sibcall_value_pop.
7409         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
7410         of GEN_CALL.
7411         * config/alpha/alpha.md (untyped_call): Likewise.
7412         * config/iq2000/iq2000.md (untyped_call): Likewise.
7413         * config/m68k/m68k.md (untyped_call): Likewise.
7414         * config/mips/mips.md (untyped_call): Likewise.
7415         * config/pa/pa.md (untyped_call): Likewise.
7416         * config/rs6000/rs6000.md (untyped_call): Likewise.
7417         * config/sparc/sparc.md (untyped_call): Likewise.
7418         * config/tilegx/tilegx.md (untyped_call): Likewise.
7419         * config/tilepro/tilepro.md (untyped_call): Likewise.
7420         * config/visium/visium.md (untyped_call): Likewise.
7421         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
7422         gen_call_value instead of GEN_CALL_VALUE.
7423         * config/arm/arm.md (untyped_call): Likewise.
7424         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
7425         GEN_CALL.
7426
7427 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7428
7429         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
7430         (have_cbranchcc4): New variable.
7431         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
7432         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
7433         (if_convert): Initialize have_cbranchcc4.
7434
7435 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7436
7437         * builtins.c (expand_cmpstrn): Rename to...
7438         (expand_cmpstrn_or_cmpmem): ...this.
7439         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
7440         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
7441         Remove mode argument.
7442         (expand_builtin): Update accordingly.
7443
7444 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7445
7446         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
7447         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
7448         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
7449         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
7450         Add predicates for operands 0 and 3.
7451         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
7452         operand.
7453         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
7454         immediate_operand to nonmemory_operand.
7455
7456 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7457
7458         * df-scan.c (df_insn_info_init_fields): New function, split out
7459         from...
7460         (df_insn_create_insn_record): ...here.
7461         (df_insn_info_free_fields): New function, split out from...
7462         (df_insn_info_delete): ...here.
7463         (df_insn_rescan): Use the new functions instead of freeing and
7464         reallocating the df_insn_info.
7465
7466 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7467
7468         * doc/install.texi (Binaries): Remove links no longer valid.
7469
7470 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
7471
7472         * config/nvptx/mkoffload.c (process): Replace
7473         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
7474
7475 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
7476
7477         PR target/67329
7478         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
7479
7480 2015-08-24  Renlin Li  <renlin.li@arm.com>
7481
7482         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
7483         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
7484         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
7485         * config/arm/constraints.md ("j"): Add check for high code.
7486
7487 2015-08-24  Tom de Vries  <tom@codesourcery.com>
7488
7489         PR tree-optimization/65468
7490         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
7491         chunk_size is one.
7492
7493 2015-08-24  Nathan Sidwell  <nathan@acm.org>
7494
7495         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
7496         change to nvptx_type_from_mode call. Use arg_promotion for both
7497         split and non-split args.
7498
7499 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7500
7501         * target-insns.def (movstr): New pattern.
7502         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
7503         (expand_movstr): Use targetm rather than HAVE_movstr/
7504         CODE_FOR_movstr.
7505
7506 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7507
7508         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
7509         cast syntax.
7510
7511 2015-08-24  Andrew Pinski  <apinski@cavium.com>
7512
7513         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
7514         AARCH64_EXTRA_TUNING_OPTION.
7515         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
7516         New enum.
7517         (aarch64_extra_tuning_flags): Base the shifted value on the index
7518         instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
7519         * config/aarch64/aarch64.c: Remove the last argument to
7520         AARCH64_EXTRA_TUNING_OPTION.
7521
7522 2015-08-23  Nathan Sidwell  <nathan@acm.org>
7523
7524         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
7525         decls.
7526         (nvptx_declare_function_name): Insert formatting tabs for
7527         consistency.
7528
7529 2015-08-23  Tom de Vries  <tom@codesourcery.com>
7530
7531         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
7532         parm_decl, rather than generating a dummy default def in cfun.
7533         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
7534         ssa_name from cfun and child_fn do not share a stmt as def stmt.
7535         (move_stmt_op): Handle PARM_DECl.
7536         (gather_ssa_name_hash_map_from): New function.
7537         (move_sese_region_to_fn): Add default defs for function params, and add
7538         them to vars_map.  Release copied ssa names.
7539         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
7540
7541 2015-08-23  Tom de Vries  <tom@codesourcery.com>
7542
7543         * doc/sourcebuild.texi: Rename vect_no_int_max with
7544         vect_no_int_min_max.  Update description.
7545
7546 2015-08-22  Andrew Pinski  <apinski@cavium.com>
7547
7548          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
7549         * config/aarch64/aarch64-protos.h
7550         (aarch64_fusion_pairs_index): New enum.
7551         (aarch64_fusion_pairs): Base the shifted value on the index instead
7552         Rewrite AARCH64_FUSE_ALL to be based on the end index.
7553         of the argument to AARCH64_FUSION_PAIR.
7554         * config/aarch64/aarch64.c: Remove the last argument to
7555         AARCH64_FUSION_PAIR.
7556
7557 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
7558
7559         * dominance.c (new_zero_array): Define.
7560         (dom_info): Redefine as class with proper encapsulation.
7561         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
7562         Add new members.
7563         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
7564         allocations/deallocations.  Pass function as parameter (instead of
7565         using cfun).
7566         (dom_info::get_idom): Define accessor method.
7567         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
7568         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
7569         (calculate_dominance_info): Adjust to use dom_info class.
7570         (verify_dominators): Likewise.
7571
7572 2015-08-21  Alexandre Oliva  <aoliva@redhat.com>
7573
7574         * print-rtl.c (print_rtx): Check the correct range for
7575         flag_dump_unnumbered_links to behave as documented.
7576
7577         PR rtl-optimization/67227
7578         PR rtl-optimization/64164
7579         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
7580         (nonoverlapping_memrefs_p): Test offsets and sizes when given
7581         identical gimple_reg exprs.
7582
7583 2015-08-21  Nathan Sidwell  <nathan@acm.org>
7584
7585         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
7586         expansion.
7587         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
7588         crtl->stack_alignment_needed to determine alignment.
7589         (nvptx_get_drap_rtx): New.
7590         (TARGET_GET_DRAP_RTX): Override.
7591         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
7592
7593 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7594
7595         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
7596
7597 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7598
7599         * configure.ac: Remove uwin* cases.
7600         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
7601         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
7602         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
7603         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
7604         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
7605         i[34567]86-*-uwin*, powerpc-*-beos*.
7606
7607 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
7608
7609         * gencodes.c (gencodes): Print the comma for the preceding
7610         enum value rather than the current one.  Use aliased enum values
7611         rather than #defines for compiled-out patterns.
7612         (main): Update accordingly.  Replace LAST_INSN_CODE with
7613         NUM_INSN_CODES.
7614         * lra.c (insn_code_data): Update accordingly.
7615         (finish_insn_code_data_once, get_static_insn_data): Likewise.
7616         * recog.h (target_recog): Likewise.
7617         (preprocess_insn_constraints): Change parameter to unsigned int.
7618         * recog.c (preprocess_insn_constraints): Likewise.
7619         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
7620         * tree-vect-stmts.c (vectorizable_operation): Simplify.
7621
7622 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
7623
7624         PR rtl-optimization/61657
7625         * loop-iv.c (iv_number_of_iterations): Declare up and down as
7626         unsigned.  Remove superflous uint64_t cast.
7627
7628 2014-08-21  Felix Yang  <felix.yang@huawei.com>
7629             Jiji Jiang  <jiangjiji@huawei.com>
7630
7631         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
7632         argument and get builtin function code directly from CALL.
7633         (gimple_stringop_fixed_value): Modified accordingly.
7634         (gimple_stringops_transform, gimple_stringops_values_to_profile):
7635         Modified accordingly and only accept BUILT_IN_NORMAL string operations.
7636
7637 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7638
7639         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
7640
7641 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7642
7643         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
7644         to match.pd.
7645         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
7646         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
7647         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
7648         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
7649         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
7650         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
7651         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
7652         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
7653         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
7654         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
7655
7656         * match.pd (SIN ) : New Operator.
7657         (TAN) : New Operator.
7658         (mult (SQRT@1 @0) @1) : New simplifier.
7659         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
7660         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
7661         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
7662         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
7663         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
7664         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
7665         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
7666         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
7667         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
7668         (rdiv @0 (POW:s @1 @2)) : New simplifier.
7669
7670 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
7671
7672         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
7673         loop if EXPR is simplified to const value.
7674
7675 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
7676
7677         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
7678         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
7679
7680 2015-08-21  Richard Biener  <rguenther@suse.de>
7681
7682         PR middle-end/67285
7683         * gimple-fold.c (replace_stmt_with_simplification): Assert
7684         seq is empty when replacing a call with itself but different
7685         arguments.
7686         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
7687         a call require that it is const.
7688
7689 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7690
7691         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
7692         * builtins.c (get_object_alignment_2): Adjust.
7693         * varasm.c (align_variable): Likewise.
7694         (get_variable_align): Likewise.
7695         (build_constant_desc): Likewise.
7696         (force_const_mem): Likewise.
7697         * doc/tm.texi.in: Likewise.
7698         * doc/tm.texi: Regenerate.
7699
7700 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7701
7702         * genconfig.c (main): Always define HAVE_cc0.
7703         * recog.c (rest_of_handle_peephole2): Adjust.
7704
7705 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7706
7707         * reorg.c (relax_delay_slots): Don't use #if to check value of
7708         HAVE_cc0.
7709
7710 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7711
7712         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
7713         * targhooks.c (default_have_conditional_execution): Adjust.
7714
7715 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
7716
7717         * rtl.h (rtvec_all_equal_p): Declare.
7718         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
7719         * rtl.c (rtvec_all_equal_p): New function.
7720         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
7721         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
7722         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
7723         * config/arm/arm.c (neon_vdup_constant): Likewise.
7724         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
7725         * config/tilegx/constraints.md (W, Y): Likewise.
7726         * config/tilepro/constraints.md (W, Y): Likewise.
7727         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
7728         (classify_immediate): Use unwrap_const_vec_duplicate.
7729         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
7730         (reg_or_v2s8bit_operand): Likewise.
7731         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
7732         (reg_or_v4s8bit_operand): Likewise.
7733
7734 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7735
7736         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
7737         (vec_shasigma_be): New #define.
7738         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
7739         (VPMSUMH): Likewise.
7740         (VPMSUMW): Likewise.
7741         (VPMSUMD): Likewise.
7742         (VPMSUM): New BU_P8V_OVERLOAD_2.
7743         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
7744         entries for VEC_MADD and VEC_VPMSUM.
7745
7746 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
7747
7748         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
7749         Multiply argument avr_n_flash by 64 to match unit of "KiB".
7750         (avr_pgm_check_var_decl): Same.
7751
7752 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
7753
7754         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
7755         initialization of HFmode scalar type (float16_t) to...
7756         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
7757         code.
7758
7759         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
7760
7761         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
7762         having an -mfp16-format.
7763
7764 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
7765
7766         * config/i386/predicates.md (vector_all_ones_operand): Use
7767         CONSTM1_RTX to simplify definition.
7768
7769 2015-08-20  Richard Biener  <rguenther@suse.de>
7770
7771         * toplev.c (compile_file): Remove loop calling late_global_decl
7772         on all symbols.
7773         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
7774         on decls we assembled.
7775
7776 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
7777
7778         * common/config/aarch64/aarch64-common.c
7779         (AARCH64_CPU_NAME_LENGTH): Delete.
7780         (aarch64_option_extension): New.
7781         (all_extensions): Likewise.
7782         (processor_name_to_arch): Likewise.
7783         (arch_to_arch_name): Likewise.
7784         (all_cores): New.
7785         (all_architectures): Likewise.
7786         (aarch64_get_extension_string_for_isa_flags): Likewise.
7787         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
7788         architecture names.
7789         * config/aarch64/aarch64-protos.h
7790         (aarch64_get_extension_string_for_isa_flags): New.
7791         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
7792         (aarch64_option_print): Get the string to print from
7793         aarch64_get_extension_string_for_isa_flags.
7794         (aarch64_declare_function_name): Likewise.
7795         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
7796         (MCPU_TO_MARCH_SPEC): This.
7797         (ASM_CPU_SPEC): Use it.
7798         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
7799         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
7800         (EXTRA_SPEC_FUNCTIONS): Use it.
7801
7802 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
7803
7804         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
7805         expansion when !ISA_HAS_LWL_LWR.
7806         (mips_block_move_straight): Update the size of elements copied to
7807         account for alignment when !ISA_HAS_LWL_LWR.
7808         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
7809
7810 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
7811
7812         * expr.c (expand_expr_real_2): Check gimple statement during
7813         LSHIFT_EXPR expand.
7814
7815 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
7816
7817         * common.opt (fstack-protector): Initialize to -1.
7818         (fstack-protector-all): Likewise.
7819         (fstack-protector-strong): Likewise.
7820         (fstack-protector-explicit): Likewise.
7821         * configure.ac: Add --enable-default-ssp.
7822         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
7823         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
7824         -1.
7825         * doc/install.texi: Document --enable-default-ssp.
7826         * config.in: Regenerated.
7827         * configure: Likewise.
7828
7829 2015-08-19  Alexandre Oliva  <aoliva@redhat.com>
7830
7831         PR rtl-optimization/64164
7832         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
7833         (parm_in_stack_slot_p): ... this.  Disregard mode, what
7834         matters is whether the parm will live in a pseudo or a stack
7835         slot.
7836         (expand_one_ssa_partition): Deal with params without a default
7837         def.  Disregard mode.
7838         * cfgexpand.h: Renamed function declaration.
7839         * tree-ssa-coalesce.c: Adjust.
7840         * function.c (split_complex_args): Allocate stack slot for
7841         unassigned parms before splitting.
7842         (parm_in_unassigned_mem_p): New.  Use it instead of
7843         parm_maybe_byref_p throughout this file.
7844         (assign_parm_setup_block): Use it.  Accept pseudos in the
7845         expand-assigned rtl.
7846         (assign_parm_setup_reg): Drop BLKmode requirement.
7847         (assign_parm_setup_stack): Allocate and fill in the address of
7848         unassigned MEM parms.
7849
7850 2015-08-19  David Sherwood  <david.sherwood@arm.com>
7851
7852         * genmodes.c (emit_mode_unit_size_inline): New function.
7853         (emit_mode_unit_precision_inline): New function.
7854         (emit_insn_modes_h): Emit new #define.  Emit new functions.
7855         (emit_mode_unit_size): New function.
7856         (emit_mode_unit_precision): New function.
7857         (emit_mode_adjustments): Add mode_unit_size adjustments.
7858         (emit_insn_modes_c): Emit new arrays.
7859         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
7860         use new inline methods.
7861
7862 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7863
7864         * config/aarch64/aarch64.c (bit_count): Delete prototype
7865         and definition.
7866         (aarch64_print_operand): Use popcount_hwi instead of the above.
7867
7868 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7869
7870         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
7871         comment.
7872
7873 2015-08-19  Marek Polacek  <polacek@redhat.com>
7874
7875         PR middle-end/67133
7876         * gimple-ssa-isolate-paths.c
7877         (insert_trap_and_remove_trailing_statements): Rename to ...
7878         (insert_trap): ... this.  Don't remove trailing statements; split
7879         block instead.
7880         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
7881
7882 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
7883
7884         PR other/67042
7885         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
7886         conditionalize the whole on __GNUC__.  Add fallback code
7887         depending neither on undefined nor implementation-defined behaviour.
7888
7889 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
7890
7891         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
7892         whitespaces with tab.
7893
7894 2015-08-19  Florian Weimer  <fweimer@redhat.com>
7895
7896         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
7897         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
7898         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
7899         Move Name_Ids instantiation to the Prj.Proc package, to avoid
7900         trampolines.
7901
7902 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7903
7904         * config/arm/arm.c (bounds_check): Use %wd print format
7905         for HOST_WIDE_INT arguments.
7906
7907 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
7908
7909         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
7910         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
7911         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
7912         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
7913         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
7914         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
7915         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
7916         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
7917         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
7918         typedefs.
7919
7920 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
7921
7922         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
7923         function.c, graphite-scop-detection.c, haifa-sched.c,
7924         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
7925         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
7926         varasm.c: Remove typedefs of structs.
7927
7928 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
7929
7930         * config/rs6000/altivec.h (vec_adde): New define.
7931         (vec_addec): Likewise.
7932         (vec_double): Likewise.
7933         (vec_bperm): Likewise.
7934         (vec_gb): Likewise.
7935         * config/rs6000/rs6000-builtin.def (ADDE): New
7936         BU_ALTIVEC_OVERLOAD_3.
7937         (ADDEC): Likewise.
7938         (DOUBLE): New BU_VSX_OVERLOAD_1.
7939         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
7940         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
7941         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
7942         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
7943         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
7944         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
7945         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
7946         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
7947         and P8V_BUILTIN_VEC_VBPERMQ.
7948
7949 2015-08-18  Jason Merrill  <jason@redhat.com>
7950
7951         * print-tree.c (print_node): Handle TREE_BINFO.
7952
7953 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7954
7955         PR middle-end/36757
7956         * builtins.c (expand_builtin_signbit): Add asserts to make sure
7957         we can expand BUILT_IN_SIGNBIT inline.
7958         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
7959         * doc/extend.texi: Document the type-generic __builtin_signbit.
7960
7961 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
7962
7963         PR rtl-optimization/67218
7964         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
7965         (simplify_unary_operation_1): Use it.
7966
7967 2015-08-18  Marek Polacek  <polacek@redhat.com>
7968
7969         PR middle-end/67222
7970         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
7971         if the call isn't valid.
7972         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
7973         gimple_call_builtin_p.
7974         (call_may_clobber_ref_p_1): Likewise.
7975         (stmt_kills_ref_p): Likewise.
7976
7977 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
7978
7979         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
7980         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
7981         (mips_hard_regno_scratch_ok): Likewise.
7982         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
7983         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
7984
7985 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
7986
7987         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
7988         (determine_value_range): Call refine_value_range_using_guard for
7989         each loop initial condition to improve value range.
7990
7991 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
7992
7993         * config/i386/i386.c: Remove include of fibheap.h.
7994
7995 2015-08-17  Richard Biener  <rguenther@suse.de>
7996
7997         PR tree-optimization/67221
7998         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
7999         (sccvn_dom_walker::before_dom_children): Mark backedges of
8000         non-executable blocks as not executable.
8001
8002 2015-08-17  David Sherwood  <david.sherwood@arm.com>
8003
8004         * config/arm/arm.c (neon_element_bits): Replace call to
8005         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
8006         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
8007         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
8008         (neon_vdup_lane<mode>): Likewise.
8009         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
8010         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
8011         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
8012         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
8013         * config/spu/spu.c (arith_immediate_p): Likewise.
8014         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
8015         * expr.c (expand_expr_real_2): Likewise.
8016         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
8017         * simplify-rtx.c (simplify_immed_subreg): Likewise.
8018         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
8019         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
8020         New variable.
8021         * fold-const.c (fold_binary_loc): Replace call to
8022         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
8023         GET_MODE_UNIT_PRECISION (m).
8024
8025 2015-08-17  Mike Stump  <mikestump@comcast.net>
8026
8027         * config/arm/arm.c (arm_block_move_unaligned_straight):
8028         Emit normal move instead of unaligned load when source or destination
8029         are appropriately aligned.
8030
8031 2015-08-17  Richard Biener  <rguenther@suse.de>
8032             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8033
8034         PR middle-end/16107
8035         * match.pd (div (coss (op @0) : New simplifier.
8036
8037 2015-08-14  Alexandre Oliva  <aoliva@redhat.com>
8038
8039         PR rtl-optimization/64164
8040         PR bootstrap/66978
8041         PR middle-end/66983
8042         PR rtl-optimization/67000
8043         PR middle-end/67034
8044         PR middle-end/67035
8045         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
8046         * tree-ssa-copyrename.c: Removed.
8047         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
8048         -ftree-coalesce-vars.
8049         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
8050         * common.opt (ftree-copyrename): Ignore.
8051         (ftree-coalesce-inlined-vars): Likewise.
8052         * doc/invoke.texi: Remove the ignored options above.
8053         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
8054         * tree-ssa-coalesce.h: ... here.
8055         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
8056         headers required by it.
8057         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
8058         across variables when flag_tree_coalesce_vars.  Check register
8059         use and promoted modes to allow coalescing.  Do not coalesce
8060         maybe-byref parms with SSA_NAMEs of other variables, or
8061         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
8062         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
8063         with its member functions to tree-ssa-coalesce.c.
8064         (var_map_base_init): Likewise.  Renamed to
8065         compute_samebase_partition_bases.
8066         (partition_view_normal): Drop want_bases parameter.
8067         (partition_view_bitmap): Likewise.
8068         * tree-ssa-live.h: Adjust declarations.
8069         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
8070         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
8071         default defs at the entry point.
8072         (dump_part_var_map): New.
8073         (compute_optimized_partition_bases): New, called by...
8074         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
8075         of compute_samebase_partition_bases.  Adjust.
8076         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
8077         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
8078         (ssa_default_def_partition): New.
8079         (get_rtl_for_parm_ssa_default_def): New.
8080         (align_local_variable, add_stack_var): Support anonymous SSA
8081         names.
8082         (defer_stack_allocation): Likewise.  Declare earlier.
8083         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
8084         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
8085         Do no record deferred-allocation marker in
8086         SA.partition_to_pseudo.
8087         (expand_stack_vars): Adjust check for the marker in it.
8088         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
8089         redundant MEM attr setting.
8090         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
8091         from...
8092         (expand_one_stack_var): ... this.  New wrapper to check and
8093         skip already expanded SSA partitions.
8094         (record_alignment_for_reg_var): New, factored out of...
8095         (expand_one_var): ... this.
8096         (expand_one_ssa_partition): New.
8097         (adjust_one_expanded_partition_var): New.
8098         (expand_one_register_var): Check and skip already expanded SSA
8099         partitions.
8100         (expand_used_vars): Don't create DECLs for anonymous SSA
8101         names.  Expand all SSA partitions, then adjust all SSA names.
8102         (pass::execute): Replace the loops that set
8103         SA.partition_to_pseudo from partition leaders and cleared
8104         DECL_RTL for multi-location variables, and that which used to
8105         rename vars and set attrs, with one that clears DECL_RTL and
8106         checks that PARMs and RESULTs default_defs match DECL_RTL.
8107         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
8108         * emit-rtl.c: Include stor-layout.h.
8109         (set_reg_attrs_for_parm): Handle NULL decl.
8110         (set_reg_attrs_for_decl_rtl): Take mode from expression if
8111         it's not a DECL.
8112         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
8113         rather than its possibly-NULL DECL.
8114         * explow.c (promote_ssa_mode): New.
8115         * explow.h (promote_ssa_mode): Declare.
8116         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
8117         (read_complex_part): Export.
8118         * expr.h (read_complex_part): Declare.
8119         * cfgexpand.h (parm_maybe_byref_p): Declare.
8120         * function.c: Include cfgexpand.h.
8121         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
8122         (use_register_for_parm_decl): Wrapper for the above to
8123         special-case the result_ptr.
8124         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
8125         (split_complex_args): Take assign_parm_data_all argument.
8126         Pass it to rtl_for_parm.  Set up rtl and context for split
8127         args.  Reset complex parm before fetching its default decl
8128         rtl.
8129         (assign_parms_unsplit_complex): Use the default-def complex
8130         parm rtl if it matches the components.
8131         (assign_parms_augmented_arg_list): Adjust.
8132         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
8133         multiple locations.  Recognize split complex args.
8134         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
8135         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
8136         (assign_parm_setup_block): Prefer SSA-assigned location, and
8137         fill in its address if the memory location of a maybe-byref
8138         parm was not assigned by cfgexpand.
8139         (assign_parm_setup_reg): Likewise.  Adjust its mode as
8140         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
8141         sure passed_pointer parms don't need conversion.  Copy address
8142         or value as needed.
8143         (assign_parm_setup_stack): Prefer SSA-assigned location.
8144         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
8145         rtl before testing for pointer bounds.  Special-case result_ptr.
8146         (expand_function_start): Maybe reset DECL_RTL of result.
8147         Prefer SSA-assigned location for result and static chain.
8148         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
8149         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
8150         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
8151         anonymous SSA names.  Use promote_ssa_mode.
8152         (get_temp_reg): Likewise.
8153         (remove_ssa_form): Adjust.
8154         * stor-layout.c (layout_decl): Don't set mem attributes of
8155         non-MEMs.
8156         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
8157         and get its reg_usage for reg invalidation.
8158         (compute_bb_dataflow): Pass it insn.
8159         (emit_notes_in_bb): Likewise.
8160
8161 2015-08-14  Marek Polacek  <polacek@redhat.com>
8162
8163         * tree-core.h (tree_base): Fix typo.
8164
8165 2015-08-14  Marek Polacek  <polacek@redhat.com>
8166
8167         PR middle-end/67133
8168         * gimple.c (infer_nonnull_range_by_attribute): Check that the
8169         nonnull argument position is not outside function arguments.
8170
8171 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
8172
8173         PR target/67143
8174         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
8175         'lconst_atomic' with 'const_atomic'.
8176         (atomic_fetch_<optab><mode>): Likewise.
8177         (atomic_<optab>_fetch<mode>): Likewise.
8178         * config/aarch64/iterators.md (lconst-atomic): Move below
8179         'const_atomic'.
8180         (const_atomic): New.
8181
8182 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
8183             Bernd Schmidt  <bernds@codesourcery.com>
8184
8185         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
8186         debug options.
8187         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
8188         (DWARF2_DEBUGGING_INFO): Don't define.
8189         * debug.h (dwarf2_lineno_debug_hooks): Declare.
8190         * toplev.c (process_options): Add a case for it.
8191         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
8192         (dwarf2out_init): Skip most initializations if
8193         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
8194         case.
8195         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
8196         DWARF2_LINENO_DEBUGGING_INFO.
8197         * opts.c (set_debug_level): Likewise.
8198
8199 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
8200
8201         * config/arm/types.md (is_neon_type): Add missing types.
8202
8203 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
8204
8205         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
8206         for skylake.
8207         * config/i386/i386.c (PTA_SKYLAKE): New macros.
8208         (processor_alias_table): Add skylake description.
8209         (enum processor_model): Add skylake processor.
8210         (arch_names_table): Add skylake record.
8211         * doc/invoke.texi: Add skylake item.
8212
8213 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
8214
8215         * ira-int.h: Include recog.h.
8216         * ira-build.c: Don't include recog.h.
8217         * ira-color.c: Likewise.
8218         * ira-conflicts.c: Likewise.
8219         * ira-costs.c: Likewise.
8220         * ira-emit.c: Likewise.
8221         * ira-lives.c: Likewise.
8222         * ira.c: Likewise.
8223         * sched-deps.c: Likewise.
8224         * sel-sched.c: Likewise.
8225         * target-globals.c: Likewise.
8226
8227 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
8228
8229         PR bootstrap/55035
8230         * reload1.c (elimination_costs_in_insn): Make it obvious to the
8231         compiler that the n_dups and n_operands loop bounds are invariant.
8232
8233 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8234
8235         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
8236         expressions in A and B.
8237
8238 2015-08-13  Richard Biener  <rguenther@suse.de>
8239
8240         * tree.c (nonnull_arg_p): Move from ...
8241         * tree-vrp.c (nonnull_arg_p): ... here.
8242         * tree.h (nonnull_arg_p): Declare.
8243         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
8244         here, register ptr != 0 for nonnull_arg_p pointer arguments.
8245         Properly initialize static chain and by-reference result pointer.
8246         (run_scc_vn): Adjust.
8247
8248 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
8249
8250         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
8251         TUNE_I6400.
8252
8253 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
8254
8255         * config/aarch64/aarch64-protos.h
8256         (aarch64_gen_atomic_cas): Declare.
8257         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
8258         Choose appropriate instruction pattern for the target.
8259         (aarch64_gen_atomic_cas): New.
8260         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
8261         (atomic_compare_and_swap<mode>_1): Rename to
8262         aarch64_compare_and_swap<mode>.  Fix some indentation.
8263         (aarch64_compare_and_swap<mode>_lse): New.
8264         (aarch64_atomic_cas<mode>): New.
8265
8266 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
8267
8268         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
8269         (TARGET_LSE): New.
8270
8271 2015-08-13  Richard Biener  <rguenther@suse.de>
8272
8273         PR tree-optimization/67191
8274         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
8275         assert we value-numbered last stmts operand because it can validly
8276         trigger for unreachable code.
8277
8278 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8279
8280         PR rtl-optimization/67103
8281         * ifcvt.c (noce_try_store_flag_constants): Move
8282         x = (-(test != 0) & (b - a)) + a transformation to...
8283         (noce_try_cmove): ... Here.  Try it if normal conditional
8284         move fails.
8285
8286 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
8287
8288         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
8289         pseudo-processors.
8290         * config/mips/mips.md (processor): Remove w32 and w64.
8291
8292 2015-08-13  Richard Biener  <rguenther@suse.de>
8293
8294         PR tree-optimization/66502
8295         PR tree-optimization/67167
8296         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
8297         backedge arguments.
8298         (vn_phi_lookup): Adjust.
8299         (vn_phi_insert): Likewise.
8300         (visit_phi): Prefer to value-number to another PHI node
8301         over value-numbering to a PHI argument.
8302         (init_scc_vn): Mark DFS back edges.
8303
8304 2015-08-13  Richard Biener  <rguenther@suse.de>
8305
8306         * gimple.h (gcall::code_): New constant static member.
8307         (gcond::code_): Likewise.
8308         * gimple.c (gcall::code_): Define.
8309         (gcond::code_): Likewise.
8310         (is_a_helper <const gcond *>): Add.
8311         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
8312         and forward to a new gcall overload with less checking and a
8313         cheaper way to access the operand.
8314         (gimple_call_lhs_ptr): Likewise.
8315         (gimple_call_set_lhs): Likewise.
8316         (gimple_call_internal_p): Likewise.
8317         (gimple_call_with_bounds_p): Likewise.
8318         (gimple_call_set_with_bounds): Likewise.
8319         (gimple_call_internal_fn): Likewise.
8320         (gimple_call_set_ctrl_altering): Likewise.
8321         (gimple_call_ctrl_altering_p): Likewise.
8322         (gimple_call_fntype): Likewise.
8323         (gimple_call_fn): Likewise.
8324         (gimple_call_fn_ptr): Likewise.
8325         (gimple_call_set_fndecl): Likewise.
8326         (gimple_call_fndecl): Likewise.
8327         (gimple_call_chain): Likewise.
8328         (gimple_call_num_args): Likewise.
8329         (gimple_call_arg): Likewise.
8330         (gimple_call_arg_ptr): Likewise.
8331         (gimple_call_set_arg): Likewise.
8332         (gimple_call_noreturn_p): Likewise.
8333         (gimple_cond_code): Likewise.
8334         (gimple_cond_lhs): Likewise.
8335         (gimple_cond_rhs): Likewise.
8336         (gimple_has_lhs): Reduce checking.
8337
8338 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8339
8340         PR middle-end/25529
8341         * match.pd (div (mult @0 @1) @1) : New simplifier.
8342
8343 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8344
8345         PR target/67071
8346         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
8347         predicate to allow construction of vector constants using the
8348         VSLDOI vector shift instruction.
8349
8350         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
8351         declaration.
8352
8353         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
8354         the number of bytes to be shifted left and filled in with either
8355         all zero or all one bits.
8356         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
8357         methods exist.
8358         (output_vec_const_move): On power8, generate XXLORC to generate
8359         a vector constant with all 1's. Do a split if we need to use a
8360         VSLDOI instruction.
8361
8362         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
8363         properly test for the MSB.
8364
8365         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
8366         vector constants that can be created with VSLDOI.
8367
8368 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
8369
8370         revert:
8371         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
8372         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
8373         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
8374         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
8375         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
8376         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8377         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
8378         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
8379         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
8380
8381 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
8382
8383         * config/xtensa/constraints.md (define_constraint "Y"): New
8384         constraint.
8385         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
8386         * config/xtensa/linux.h (ASM_SPEC): Likewise.
8387         * config/xtensa/predicates.md (move_operand): Match constants
8388         and symbols in the presence of TARGET_AUTO_LITPOOLS.
8389         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
8390         immediate references to TLS data.
8391         (xtensa_emit_move_sequence): Don't force constants to memory in
8392         the presence of TARGET_AUTO_LITPOOLS.
8393         (print_operand): Add 'y' format, same as default, but capable of
8394         printing SF mode constants as well.
8395         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
8396         (movsf_internal): Add movi pattern that loads literal.
8397         (movsf, movdf): Don't force constants to memory in the presence
8398         of TARGET_AUTO_LITPOOLS.
8399         (movdf_internal): Add 'Y' constraint.
8400         * config/xtensa/xtensa.opt (mauto-litpools): New option.
8401         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
8402
8403 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
8404
8405         * config/arm/arm-fpus.def: Replace booleans with feature flags.
8406         Update comment.
8407         * config/arm/arm.c (ARM_FPU): Update macro.
8408         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
8409         (TARGET_FP16): Likewise.
8410         (TARGET_CRYPTO): Likewise.
8411         (TARGET_NEON): Likewise.
8412         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
8413         field features.
8414
8415 2015-08-12  Tom de Vries  <tom@codesourcery.com>
8416
8417         PR other/67092
8418         PR other/67098
8419         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
8420         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
8421         accordingly.  Mention default for --with-stage1-ldflags.
8422
8423 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
8424
8425         * config/arm/arm.h (arm_fpu_feature_set): New.
8426         (ARM_FPU_FSET_HAS): New.
8427         (FPU_FL_NONE): New.
8428         (FPU_FL_NEON): New.
8429         (FPU_FL_FP16): New.
8430         (FPU_FL_CRYPTO): New.
8431
8432 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8433
8434         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
8435         after -mcmodel=large -fPIC sorry.
8436
8437 2015-08-12  Richard Biener  <rguenther@suse.de>
8438
8439         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
8440         comparison operand order and commutative ternary op operand order.
8441         (sccvn_dom_walker::cond_stack): New state to track temporary
8442         expressions.
8443         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
8444         no longer valid.
8445         (sccvn_dom_walker::record_cond): Add a single temporary conditional
8446         expression.
8447         (sccvn_dom_walker::record_conds): Add a temporary conditional
8448         expressions and all related expressions also true/false.
8449         (sccvn_dom_walker::before_dom_children): Record temporary
8450         expressions based on the controlling condition of a single
8451         predecessor.  When trying to simplify a conditional statement
8452         lookup expressions we might have inserted earlier.
8453
8454 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
8455
8456         PR target/67127
8457         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
8458         to ARM core registers.
8459
8460 2015-08-12  Nathan Sidwell  <nathan@acm.org>
8461
8462         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
8463         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
8464
8465 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
8466
8467         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
8468         line with comments.
8469         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
8470
8471 2015-08-12  Richard Biener  <rguenther@suse.de>
8472
8473         * gimple.h (remove_pointer): New trait.
8474         (GIMPLE_CHECK2): New inline template function.
8475         (gassign::code_): New constant static member.
8476         (is_a_helper<const gassign *>): Add.
8477         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
8478         and forward to a new gassign overload with less checking and a
8479         cheaper way to access the operand.
8480         (gimple_assign_lhs_ptr): Likewise.
8481         (gimple_assign_set_lhs): Likewise.
8482         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
8483         Likewise.
8484         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
8485         Likewise.
8486         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
8487         Likewise.
8488         (gimple_assign_rhs_code): Likewise.
8489         * gimple.c (gassign::code_): Define.
8490
8491 2015-08-12  Richard Biener  <rguenther@suse.de>
8492
8493         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
8494         Eliminate edges marked as not executable by SCCVN.
8495         * tree-ssa-sccvn.c: Include gimple-iterator.h.
8496         (cond_dom_walker): Rename to sccvn_dom_walker.
8497         (sccvn_dom_walker::before_dom_children): Value-number defs
8498         of all stmts.
8499         (run_scc_vn): Remove loop value-numbering all SSA names.
8500         Drop not visited SSA names to varying.
8501
8502 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
8503
8504         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
8505         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
8506         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
8507         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
8508         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
8509         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8510         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
8511         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
8512         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
8513
8514 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
8515
8516         PR target/66954
8517         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
8518         to enum feature_priority and feature_list.
8519         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
8520         and isa_names_table.
8521
8522 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
8523
8524         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
8525         vect_induction_def.
8526
8527 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8528
8529         PR c/66098
8530         PR c/66711
8531         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
8532         account when deciding what was the command-line status.
8533
8534 2015-08-11  Nathan Sidwell  <nathan@acm.org>
8535
8536         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
8537
8538         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
8539         we're not the only contributor to target phi.
8540
8541 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
8542
8543         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
8544         FIXED_REG0.
8545
8546 2015-08-11  Tom de Vries  <tom@codesourcery.com>
8547
8548         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
8549
8550 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
8551
8552         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
8553         with CPU_SLM.
8554         * config/i386/i386.md (cpu): Remove knl.
8555
8556 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
8557
8558         PR libgomp/65742
8559         PR middle-end/66332
8560         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
8561         open-coded sequence.
8562         * omp-low.c (oacc_process_reduction_data): Remove handline of
8563         GOMP_DEVICE_HOST_NONSHM.
8564
8565         * lto-streamer-in.c (lto_input_mode_table): Adjust to
8566         GET_MODE_INNER changes.
8567
8568 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
8569             Ilya Verbin  <ilya.verbin@intel.com>
8570
8571         * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
8572
8573 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8574
8575         * doc/options.texi (EnabledBy): Document that the argument must be
8576         a Common option.
8577         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
8578         Not enabled by -Wall.
8579         * optc-gen.awk: Give nicer error messages. Detect if the argument
8580         of EnabledBy is not a Common option.
8581         * common.opt (Wnull-dereference): Not enabled by -Wall.
8582         * opt-functions.awk (lang_enabled_by): Nicer error messages.
8583
8584 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
8585
8586         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
8587         model == 0x4f as Broadwell.
8588
8589 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
8590
8591         PR rtl-optimization/67028
8592         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
8593         Add test to see if a const_int fits in the new mode.
8594
8595 2015-08-07  DJ Delorie  <dj@redhat.com>
8596
8597         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
8598
8599 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
8600
8601         PR rtl-optimization/67029
8602         * ira-color.c: Include "recog.h" before including "ira-int.h".
8603         * target-globals.c: Likewise.
8604         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
8605         adds an alternative_mask argument and use it instead of
8606         preferred_alternatives.
8607         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
8608         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
8609         * sched-deps.c: Include "ira-int.h" after including "ira.h".
8610         (sched_analyze_insn): Update call to
8611         ira_implicitly_set_insn_hard_regs.
8612         * sel-sched.c: Include "ira-int.h" after including "ira.h".
8613         (implicit_clobber_conflict_p): Update call to
8614         ira_implicitly_set_insn_hard_regs.
8615
8616 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
8617
8618         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
8619
8620 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
8621
8622         PR target/67002
8623         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
8624         currently_expanding_to_rtl is set.
8625
8626 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
8627
8628         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
8629         * configure: Regenerate.
8630
8631 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8632             Jiong Wang  <jiong.wang@arm.com>
8633
8634         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
8635         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
8636         (REG_CLASS_NAMES): Likewise.
8637         (REG_CLASS_CONTENTS): Likewise.
8638         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
8639         (aarch64_register_move_cost): Likewise.
8640         (aarch64_load_symref_appropriately): Invoke the new added pattern if
8641         possible.
8642         * config/aarch64/constraints.md (Uc0): New constraint.
8643
8644 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
8645
8646         * config/aarch64/constraints.md (Usf): Add the test of
8647         aarch64_is_noplt_call_p.
8648
8649 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
8650
8651         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
8652         declaration.
8653         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
8654         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
8655         (call_symbol): Likewise.
8656
8657 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
8658
8659         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
8660         for vectorizing multiplication patterns.
8661         * tree-vectorizer.h: Adjust the number of patterns.
8662
8663 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
8664
8665         * config/i386/sse.md (*vec_concatv2df): Declare added
8666         alternatives as sselog type.
8667
8668 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8669
8670         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
8671         all GPRs.
8672
8673 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8674
8675         * config/s390/s390.c (s390_expand_tbegin): Expand either
8676         tbegin_1_z13 or tbegin_1 depending on VX flag.
8677         * config/s390/s390.md ("tbegin_1_z13"): New expander.
8678
8679 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8680
8681         * config/s390/s390.opt: Clarify description for -mzvector
8682         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
8683         -mzvector.
8684
8685 2015-08-06  Richard Biener  <rguenther@suse.de>
8686
8687         * gimple.h (gimple_call_set_fn): Access op member directly.
8688         (gimple_call_chain_ptr): Likewise.
8689         (gimple_call_set_chain): Likewise.
8690         (gimple_cond_lhs_ptr): Likewise.
8691         (gimple_cond_set_lhs): Likewise.
8692         (gimple_cond_rhs_ptr): Likewise.
8693         (gimple_cond_set_rhs): Likewise.
8694         (gimple_cond_true_label): Likewise.
8695         (gimple_cond_set_true_label): Likewise.
8696         (gimple_cond_set_false_label): Likewise.
8697         (gimple_cond_false_label): Likewise.
8698         (gimple_label_label): Likewise.
8699         (gimple_label_set_label): Likewise.
8700         (gimple_goto_set_dest): Likewise.
8701         (gimple_asm_input_op): Likewise.
8702         (gimple_asm_input_op_ptr): Likewise.
8703         (gimple_asm_set_input_op): Likewise.
8704         (gimple_asm_output_op): Likewise.
8705         (gimple_asm_output_op_ptr): Likewise.
8706         (gimple_asm_set_output_op): Likewise.
8707         (gimple_asm_clobber_op): Likewise.
8708         (gimple_asm_set_clobber_op): Likewise.
8709         (gimple_asm_label_op): Likewise.
8710         (gimple_asm_set_label_op): Likewise.
8711         (gimple_switch_index): Likewise.
8712         (gimple_switch_index_ptr): Likewise.
8713         (gimple_return_retval_ptr): Likewise.
8714         (gimple_return_retval): Likewise.
8715         (gimple_return_set_retval): Likewise.
8716         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
8717         (gimple_switch_label): Likewise.
8718         (gimple_switch_set_label): Likewise.
8719
8720 2015-08-06  Richard Biener  <rguenther@suse.de>
8721
8722         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
8723         bool comparison canonicalization and restrict to integers.
8724
8725 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
8726
8727         * coretypes.h (enum symbol_visibility): Relocate here.
8728         * flag-types.h (enum symbol_visibility): Remove.
8729         * tree-core.h (enum symbol_visibility): Remove.
8730
8731 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
8732
8733         PR target/66870
8734         * gcc/config/rs6000/rs6000.c (rs6000_emit_prologue): Check
8735         for no_split_stack function attribute along with
8736         flag_split_stack.
8737         (rs6000_expand_split_stack_prologue): Likewise.
8738
8739 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8740             Jeff Law  <law@redhat.com>
8741
8742         PR c/16351
8743         * doc/invoke.texi (Wnull-dereference): New.
8744         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
8745         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
8746         Warn for potential NULL dereferences.
8747         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
8748         * ubsan.c (instrument_nonnull_arg): Call
8749         infer_nonnull_range_by_attribute.
8750         (instrument_nonnull_return): Likewise.
8751         * common.opt (Wnull-dereference); New.
8752         * gimple.c (infer_nonnull_range): Remove bool arguments.
8753         (infer_nonnull_range_by_dereference): New.
8754         (infer_nonnull_range_by_attribute): New.
8755         * gimple.h: Update declarations.
8756
8757 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
8758
8759         * gensupport.c (sequence_num): Replace with...
8760         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
8761         ...these new variables.
8762         (init_rtx_reader_args_cb): Update accordingly.
8763         (get_num_code_insns): Likewise.
8764         (read_md_rtx): Rework to use a while loop and get_c_test.
8765         Use the new counters.  Remove redundant DEFINE_SUBST case.
8766         * genoutput.c (gen_split): Delete.
8767         (main): Don't call it.
8768
8769 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
8770
8771         * gensupport.h (get_c_test): Declare.
8772         * gensupport.c (get_c_test): New function.
8773         * genconditions.c (main): Use it.
8774         * genrecog.c (validate_pattern): Likewise.
8775         (match_pattern_1): Likewise.  Remove c_test argument.
8776         (match_pattern): Update accordingly and remove c_test argument.
8777         (main): Update accordingly.
8778
8779 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
8780
8781         * gensupport.h (get_num_insn_codes): Declare.
8782         * gensupport.c (get_num_insn_codes): New function.
8783         * genattrtab.c (optimize_attrs): Rename max_insn_code to
8784         num_insn_codes.
8785         (main): Likewise.  Use get_num_insn_codes.
8786         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
8787
8788 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
8789
8790         PR middle-end/66311
8791         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
8792         is zero- rather than sign-extended.
8793
8794 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
8795
8796         * target-insns.def (can_extend): Delete.
8797
8798 2015-08-05  Richard Biener  <rguenther@suse.de>
8799
8800         PR tree-optimization/67121
8801         * tree-if-conv.c (combine_blocks): Clear range-info produced
8802         by stmts no longer executed conditionally.
8803
8804 2015-08-05  Nick Clifton  <nickc@redhat.com>
8805
8806         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
8807         to allow identical far pointers to remain.
8808
8809 2015-08-05  Richard Biener  <rguenther@suse.de>
8810
8811         PR middle-end/67120
8812         * match.pd: Compare address bases with == if they are decls
8813         or SSA names, not operand_equal_p.  Otherwise fail.
8814
8815 2015-08-05  Richard Biener  <rguenther@suse.de>
8816
8817         PR tree-optimization/67055
8818         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
8819         NULL gimple_block.
8820
8821         * g++.dg/torture/pr67055.C: New testcase.
8822
8823 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
8824
8825         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
8826         noavx512vl.
8827         (define_attr "enabled"): Handle avx521vl and noavx512vl.
8828         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
8829         AVX-512 alternative out of SSE.
8830         (define_insn "*vec_concatv2df"): Ditto.
8831
8832 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
8833
8834         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
8835         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
8836         CODE_FOR_avx_ptestv4di.
8837         * config/i386/sse.md (define_mode_iterator V_AVX): New.
8838         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
8839         (define_insn "avx_ptest256"): Merge this ...
8840         (define_insn "sse4_1_ptest"): And this ...
8841         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
8842
8843 2015-08-05  Richard Biener  <rguenther@suse.de>
8844
8845         PR tree-optimization/67109
8846         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
8847         against too big groups.  Print whether this is a load or store
8848         group.  Rename from ...
8849         (vect_analyze_group_access): ... this which is now a wrapper
8850         dissolving an invalid group.
8851         (vect_analyze_data_ref_accesses): Print whether this is a load
8852         or store group.
8853
8854 2015-08-05  Richard Biener  <rguenther@suse.de>
8855
8856         PR middle-end/67107
8857         * match.pd: Guard const_binop result checking against NULL_TREE
8858         result.
8859
8860 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
8861
8862         * cse.c (cse_insn): Restoring old behaviour for src_eqv
8863          when dest and value in the REG_EQUAL are same and dest
8864          is STRICT_LOW_PART.
8865
8866 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
8867
8868         * config/moxie/moxie.h (PRINT_OPERAND,
8869           PRINT_OPERAND_ADDRESS): Remove macros.
8870         * config/moxie/moxie-protos.h (moxie_print_operand,
8871           moxie_print_operand_address): Remove declaration.
8872         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
8873           TARGET_PRINT_OPERAND_ADDRESS): Define.
8874           (moxie_print_operand, moxie_print_operand_address): Make static.
8875
8876 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8877
8878         PR target/66731
8879         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
8880         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
8881
8882 2015-08-04  Richard Biener  <rguenther@suse.de>
8883
8884         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
8885         generated code.
8886         (dt_operand::gen_gimple_expr): Adjust.
8887
8888 2015-08-04  Richard Biener  <rguenther@suse.de>
8889
8890         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
8891         bool compares on RHS.
8892         * match.pd: Add X ==/!= !X is false/true pattern.
8893
8894 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
8895
8896         * config/aarch64/aarch64.c: Change inner loop statement cost
8897         to be consistent with other targets.
8898
8899 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
8900
8901         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
8902         targets.
8903
8904 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
8905
8906         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
8907         (machine_function): Remove pseudos field.
8908
8909 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8910
8911         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
8912         Exit early and use target_option_current_node if processing current
8913         pragma.
8914
8915 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8916
8917         * doc/extend.texi (AArch64 Function Attributes): New node.
8918         (AArch64 Pragmas): Likewise.
8919
8920 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8921
8922         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
8923         Initialize simd builtins if TARGET_SIMD.
8924         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
8925         Make sure that the builtins are initialized only once no matter how
8926         many times the function is called.
8927         (aarch64_init_builtins): Unconditionally initialize crc builtins.
8928         (aarch64_relayout_simd_param): New function.
8929         (aarch64_simd_expand_args): Use above during argument expansion.
8930         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
8931         simd builtins if TARGET_SIMD.
8932         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
8933         prototype.
8934         (aarch64_relayout_simd_types): Likewise.
8935
8936 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8937
8938         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
8939         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
8940         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
8941         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
8942         static keyword.
8943         (aarch64_reset_previous_fndecl): New function.
8944         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
8945         the string.
8946         * config/aarch64/aarch64-c.c: New file.
8947         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
8948         Push and pop options at beginning and end.  Remove ifdef
8949         __ARM_FEATURE_CRC32.
8950         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
8951         Add pragma +nothing+simd and +nothing+crypto where appropriate.
8952         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
8953         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
8954         Define prototype.
8955         (aarch64_register_pragmas): Likewise.
8956         (aarch64_reset_previous_fndecl): Likewise.
8957         (aarch64_process_target_attr): Likewise.
8958         (aarch64_override_options_internal): Likewise.
8959
8960 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8961
8962         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
8963         New function.
8964         (aarch64_can_inline_p): Likewise.
8965         (TARGET_CAN_INLINE_P): Define.
8966
8967 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8968
8969         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
8970         Remove static.  Handle OPT_mgeneral_regs_only,
8971         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
8972         OPT_momit_leaf_frame_pointer.
8973         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
8974         (aarch64_attr_opt_type): New enum.
8975         (aarch64_attribute_info): New struct.
8976         (aarch64_handle_attr_arch): New function.
8977         (aarch64_handle_attr_cpu): Likewise.
8978         (aarch64_handle_attr_tune): Likewise.
8979         (aarch64_handle_attr_isa_flags): Likewise.
8980         (aarch64_attributes): New table.
8981         (aarch64_process_one_target_attr): New function.
8982         (num_occurences_in_str): Likewise.
8983         (aarch64_process_target_attr): Likewise.
8984         (aarch64_option_valid_attribute_p): Likewise.
8985         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
8986         * config/aarch64/aarch64-protos.h: Include input.h
8987         (aarch64_handle_option): Declare prototype.
8988
8989 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8990
8991         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
8992         * config/aarch64/aarch64.c: Include target-globals.h
8993         (aarch64_previous_fndecl): New variable.
8994         (aarch64_set_current_function): New function.
8995         (TARGET_SET_CURRENT_FUNCTION): Define.
8996
8997 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8998
8999         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
9000         (explicit_arch): Likewise.
9001         (x_aarch64_isa_flags): Likewise.
9002         (mgeneral-regs-only): Mark as Save.
9003         (mfix-cortex-a53-835769): Likewise.
9004         (mcmodel=): Likewise.
9005         (mstrict-align): Likewise.
9006         (momit-leaf-frame-pointer): Likewise.
9007         (mtls-dialect): Likewise.
9008         (master=): Likewise.
9009         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
9010         (aarch64_isa_flags): Remove extern declaration.
9011         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
9012         to indicate success or failure.
9013         (aarch64_validate_march): Likewise.
9014         (aarch64_validate_mtune): Likewise.
9015         (aarch64_isa_flags): Delete.
9016         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
9017         instead of aarch64_isa_flags.
9018         (aarch64_get_tune_cpu): New function.
9019         (aarch64_get_arch): Likewise.
9020         (aarch64_override_options): Use above and set up explicit_tune_core
9021         and explicit_arch.
9022         (aarch64_print_extension): Move earlier in file.  Add isa_flags
9023         argument and use that instead of the global aarch64_isa_flags.
9024         (aarch64_option_save): New function.
9025         (aarch64_option_restore): Likewise.
9026         (aarch64_option_print): Likewise.
9027         (aarch64_declare_function_name): Likewise.
9028         (aarch64_start_file): Delete.
9029         (TARGET_ASM_FILE_START): Do not define.
9030         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
9031         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
9032         Declare prototype.
9033
9034 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9035
9036         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
9037         flag_omit_leaf_frame_pointer to 2.
9038
9039 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9040
9041         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
9042         define to 0 or 1.
9043         (TARGET_FIX_ERR_A53_835769): New macro.
9044         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
9045         handling of opts->x_aarch64_fix_a53_err835769.
9046         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
9047         than aarch64_fix_a53_err835769.
9048         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
9049         * config/aarch64/aarch64-linux.h: Likewise.
9050
9051 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
9052
9053         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
9054         ix86_expand_int_movcc as boolean.
9055
9056 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9057
9058         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
9059         (aarch64_cpu_string): Likewise.
9060         (aarch64_tune_string): Likewise.
9061         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
9062         (aarch64_parse_extension): Return aarch64_parse_opt_result.
9063         Add extra argument to put result into.
9064         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
9065         (aarch64_parse_cpu): Add arguments to put results into. Return
9066         aarch64_parse_opt_result.
9067         (aarch64_parse_tune): Likewise.
9068         (aarch64_override_options_after_change_1): New function.
9069         (aarch64_override_options_internal): New function.
9070         (aarch64_validate_mcpu): Likewise.
9071         (aarch64_validate_march): Likewise.
9072         (aarch64_validate_mtune): Likewise.
9073         (aarch64_override_options): Update to reflect above changes.
9074         Move some logic into aarch64_override_options_internal.
9075         Initialize target_option_default_node and target_option_current_node.
9076         (aarch64_override_options_after_change): Move logic into
9077         aarch64_override_options_after_change_1 and call it with global_options.
9078         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
9079         flag values from that.
9080
9081 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9082
9083         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
9084         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
9085         * config/aarch64/aarch64.c (struct processor): Add arch field.
9086         (all_architectures): Handle above, move above all_cores.
9087         (all_cores): Handle above.
9088         (aarch64_parse_arch): Handle above changes.
9089         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
9090         above.  Update comments.
9091         (armv8.1-a): Likewise.
9092         * config/aarch64/aarch64-cores.def: Update according to above.
9093         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
9094         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
9095         aarch64_arch_driver_info.
9096
9097 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9098
9099         * config/aarch64/aarch64.c (struct processor): Add ident field.
9100         Rename core sched_core.
9101         (all_cores): Handle above changes.
9102         (all_architectures): Likewise.
9103         (aarch64_parse_arch): Likewise.
9104         (aarch64_override_options): Likewise.
9105
9106 2015-08-04  Richard Biener  <rguenther@suse.de>
9107
9108         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
9109         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
9110         comparisons embedded in [VEC_]COND_EXPRs.
9111
9112 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
9113
9114         * tree-if-conv.c: Fix various typos in comments.
9115         * tree-vect-stmts.c: Likewise.
9116
9117 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9118
9119         PR tree-optimization/67043
9120         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
9121         preheader after hoisting invariant in it.
9122         (find_defs): Force recomputation of all luids.
9123
9124 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
9125
9126         * config/rs6000/htm.md (tabort.): Restrict the source operand to
9127         using a base register.
9128
9129 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
9130
9131         * main.c (main): Pass in NULL for toplev's external_timer.
9132         * timevar.c: Include coretypes.h.
9133         (class timer::named_items): New.
9134         (timer::named_items::named_items): New.
9135         (timer::named_items::~named_items): New.
9136         (timer::named_items::push): New.
9137         (timer::named_items::pop): New.
9138         (timer::named_items::print): New.
9139         (timer::timer): Initialize field "m_jit_client_items".
9140         (timer::~timer): New.
9141         (timer::push): Move bulk of implementation to...
9142         (timer::push_internal): ...here.  New function.
9143         (timer::pop): Move bulk of implementation to...
9144         (timer::pop_internal): ...here.  New function.
9145         (timer::push_client_item): New.
9146         (timer::pop_client_item): New.
9147         (timer::print_row): New function, taken from timer::print.
9148         (timer::print): Print "GCC items" header if we also have client
9149         items.  Move row-printing to timer::print_row.  Print any client
9150         items.
9151         (timer::get_topmost_item_name): New method.
9152         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
9153         (TV_JIT_CLIENT_CODE): New.
9154         * timevar.h (timer::push_client_item): New declaration.
9155         (timer::pop_client_item): New declaration.
9156         (timer::get_topmost_item_name): New method.
9157         (timer::push_internal): New declaration.
9158         (timer::pop_internal): New declaration.
9159         (timer::print_row): New declaration.
9160         (timer::named_items): New declaration.
9161         (timer::m_jit_client_items): New field.
9162         (timer): Add friend class named_items.
9163         (auto_timevar::auto_timevar): Add timer param.
9164         (auto_timevar::~auto_timevar): Use field "m_timer".
9165         (auto_timevar::m_timer): New field.
9166         * toplev.c (initialize_rtl): Add g_timer as param when
9167         constructing auto_timevar instance.
9168         (toplev::toplev): Add "external_timer" param, and use it to
9169         initialize the "g_timer" global if non-NULL.
9170         (toplev::~toplev): If this created "g_timer", delete it.
9171         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
9172         with "external_timer" timer *.
9173
9174 2015-08-03  Alexander Basov <coohpt@gmail.com>
9175
9176         PR middle-end/64744
9177         PR middle-end/48470
9178         PR middle-end/43404
9179         * cfgexpand.c (expand_one_var): Add check if stack is going to
9180         be used in naked function.
9181         * expr.c (expand_expr_addr_expr_1): Remove excess checking
9182         whether expression should not reside in MEM.
9183         * function.c (use_register_for_decl): Do not use registers for
9184         non-register things (volatile, float, BLKMode) in naked functions.
9185
9186 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
9187
9188         PR target/67060
9189         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
9190         Adjust splits to match new pattern.
9191
9192 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
9193
9194         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
9195         (VEC_M): Likewise.
9196         (VEC_N): Likewise.
9197         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
9198         point in VSX registers.
9199
9200         * config/rs6000/constraints.md (wb constraint): Document unused
9201         w<x> constraint.
9202         (we constraint): Likewise.
9203         (wo constraint): Likewise.
9204         (wp constraint): New constraint for IEEE 128-bit floating point in
9205         VSX registers.
9206         (wq constraint): Likewise.
9207
9208         * config/rs6000/predicates.md (easy_fp_constant): Add support for
9209         IEEE 128-bit floating point in VSX registers.
9210         (easy_scalar_constant): Likewise.
9211
9212         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
9213         constraints (wp, wq) for IEEE 128-bit floating point in VSX
9214         registers.
9215         (rs6000_init_hard_regno_mode_ok): Likewise.
9216
9217         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
9218         floating point in VSX registers.
9219         (VSX_L): Likewise.
9220         (VSX_M): Likewise.
9221         (VSX_M2): Likewise.
9222         (VSm): Likewise.
9223         (VSs): Likewise.
9224         (VSr): Likewise.
9225         (VSa): Likewise.
9226         (VSv): Likewise.
9227         (vsx_le_permute_<mode>): Add support to properly swap bytes for
9228         IEEE 128-bit floating point in VSX registers on little endian.
9229         (vsx_le_undo_permute_<mode>): Likewise.
9230         (vsx_le_perm_load_<mode>): Likewise.
9231         (vsx_le_perm_store_<mode>): Likewise.
9232         (splitters for IEEE 128-bit fp moves): Likewise.
9233
9234         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
9235         wq constraints.
9236
9237         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
9238         floating point in VSX registers.
9239         (VM2): Likewise.
9240
9241         * doc/md.text (Machine Constraints): Document wp and wq
9242         constraints on PowerPC.
9243
9244 2015-08-03  Jeff Law  <law@redhat.com>
9245
9246         PR middle-end/66314
9247         PR gcov-profile/66899
9248         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
9249         iterate over the jump threading paths when an element in the
9250         jump threading paths array is eliminated.
9251
9252 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
9253
9254         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
9255
9256 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
9257
9258         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
9259         is_use_properly_guarded the variable def_preds.  Free its
9260         contents before returning.
9261         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
9262         (is_use_properly_guarded): Replace local variable def_preds with
9263         a parameter.  Adjust accordingly.  Only update *def_preds if it's
9264         the empty vector.
9265
9266 2015-08-03  Richard Biener  <rguenther@suse.de>
9267
9268         * genmatch.c (simplify::for_subst_vec): New member.
9269         (binary_ok): New helper for for lowering.
9270         (lower_for): Delay substituting operators into result expressions
9271         if we can merge the results eventually again.
9272         (capture_info::walk_result): Adjust for user_id appearing as
9273         result expression operator.
9274         (expr::gen_transform): Likewise.
9275         (dt_simplify::gen_1): Likewise.
9276         (dt_simplify::gen): Pass not substituted operators to tail
9277         functions or initialize local variable with it.
9278         (decision_tree::gen): Adjust function signature.
9279         * match.pd: Fix tests against global code and add default
9280         cases to switch stmts.
9281
9282 2015-08-03  Richard Biener  <rguenther@suse.de>
9283
9284         * genmatch.c (dt_simplify::gen): Create captures array
9285         with an initializer.
9286
9287 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9288
9289         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
9290         the host compiler is affected by placement new aliasing bug.
9291         * configure: Regenerate.
9292         * Makefile.in (ALIASING_FLAGS): New variable.
9293         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
9294
9295 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9296
9297         PR target/66731
9298         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
9299         (negmulsf3_vfp): Likewise.
9300         (muldf3negdf_vfp): Disable for -frounding-math.
9301         (mulsf3negsf_vfp): Likewise.
9302         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
9303         fix MULT cost with -frounding-math.
9304
9305 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9306
9307         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
9308         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
9309         explicit.  Prefer to add the flag whenever possible.
9310         (noce_process_if_block): Try noce_try_store_flag_constants before
9311         noce_try_cmove.
9312
9313 2015-08-03  Richard Biener  <rguenther@suse.de>
9314
9315         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
9316         New hash-map to record equivalent transforms.
9317         (dt_node::analyze): Populate the equivalent transforms hash-map.
9318         (dt_simplify::info): Add reference to hash-map entry.
9319         (dt_simplify::gen): If we have split out a function for the
9320         transform, generate a call to it.
9321         (sinfo_hashmap_traits::hash): New function.
9322         (compare_op): New helper function for ...
9323         (sinfo_hashmap_traits::equal_keys): ... this new function.
9324         (decision_tree::gen): Split out common equivalent transforms
9325         into functions.
9326
9327 2015-08-03  Richard Biener  <rguenther@suse.de>
9328
9329         * gimple-fold.c (fold_gimple_assign): Remove folding of
9330         the comparison in COND_EXPRs.
9331
9332 2015-08-03  Richard Biener  <rguenther@suse.de>
9333
9334         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
9335         on the rhs of assignments first simplify the embedded
9336         GENERIC condition.
9337
9338 2015-08-03  Richard Biener  <rguenther@suse.de>
9339
9340         PR tree-optimization/66917
9341         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
9342         field.
9343         (DR_VECT_AUX): New macro.
9344         (set_dr_misalignment): Adjust.
9345         (dr_misalignment): Likewise.
9346         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
9347         Compute whether the base is at least element aligned.
9348         * tree-vect-stmts.c (ensure_base_align): Adjust.
9349         (vectorizable_store): If the base is not element aligned
9350         preserve alignment of the original access if misalignment is unknown.
9351         (vectorizable_load): Likewise.
9352
9353 2015-08-02  Martin Sebor  <msebor@redhat.com>
9354
9355         * c-family/c.opt (-Wframe-address): New warning option.
9356         * doc/invoke.texi (Wframe-address): Document it.
9357         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
9358         Clarify possible effects of calling the functions with non-zero
9359         arguments and mention -Wframe-address.
9360         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
9361
9362 2015-08-01  Michael Collison  <michael.collison@linaro.org
9363             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9364
9365         * gcc/config/arm/arm.md (*arm_smin_cmp): New pattern.
9366         (*arm_umin_cmp): Likewise.
9367
9368 2015-08-01  Caroline Tice  <cmtice@google.com>
9369
9370         PR 66521
9371         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
9372         global variables.
9373         (vtbl_find_mangled_name):  New function.
9374         (vtbl_register_mangled_name):  New function.
9375         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
9376         mangled name in mangled name vectors.
9377         (find_or_create_vtbl_map_node):  Ditto.
9378         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
9379         update recursion_depth on function entry; pass it to every recursive
9380         call; automatically exit if depth > 25 (give up looking at that point).
9381         (verify_bb_vtables):  Initialize recursion_depth and pass it to
9382         var_is_used_for_virtual_call_p.
9383         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
9384         global variable decls.
9385         (vtbl_register_mangled_name): New extern function decl.
9386
9387 2015-08-01  Tom de Vries  <tom@codesourcery.com>
9388
9389         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
9390         function.
9391         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
9392         Declare.
9393         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
9394         operation_no_trapping_overflow.  Allow non-overflow operations.
9395         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
9396         operations.
9397
9398 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
9399
9400         PR target/67049
9401         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
9402
9403 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9404
9405         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
9406         Enable for TARGET_32BIT.
9407         (*if_move_neg): Likewise.
9408
9409 2015-07-31  Nick Clifton  <nickc@redhat.com>
9410
9411         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
9412         Returns true for __model__.
9413         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
9414
9415 2015-07-31  Alan Modra  <amodra@gmail.com>
9416
9417         PR target/66870
9418         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
9419         (rs6000_emit_prologue): Set it.
9420         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
9421
9422 2015-07-31  Richard Biener  <rguenther@suse.de>
9423
9424         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
9425         -> X == (C1 ^ C2) which is already implemented in match.pd.
9426         Remove redundant dispatching to fold_relational_const.
9427         Move unordered self and NaN compares ...
9428         * match.pd: ... as patterns here.  Remove some stray captures
9429         and add a comment.
9430
9431 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
9432
9433         * config/i386/i386.c
9434         (bdesc_special_args): Convert mask type from signed to unsigned for
9435         masked builtins.
9436         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
9437         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
9438         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
9439         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
9440         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
9441         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
9442         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
9443         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
9444         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
9445         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
9446         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
9447         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
9448         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
9449         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
9450         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
9451         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
9452         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
9453         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
9454         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
9455         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
9456         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
9457         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
9458         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
9459         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
9460         * config/i386/i386-builtin-types.def
9461         (V16QI_FTYPE_V16SI): Remove.
9462         (V8DF_FTYPE_V8SI): Ditto.
9463         (V8HI_FTYPE_V8DI): Ditto.
9464         (V8SI_FTYPE_V8DI): Ditto.
9465         (V8SF_FTYPE_V8DF): Ditto.
9466         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
9467         (V16HI_FTYPE_V16SI): Ditto.
9468         (V16SF_FTYPE_V16HI): Ditto.
9469         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
9470         (V16SF_FTYPE_V16SI): Ditto.
9471         (V4DI_FTYPE_V4DI): Ditto.
9472         (V16SI_FTYPE_V16SF): Ditto.
9473         (V16SF_FTYPE_FLOAT): Ditto.
9474         (V8DF_FTYPE_DOUBLE): Ditto.
9475         (V8DI_FTYPE_INT64): Ditto.
9476         (V8DI_FTYPE_V4DI): Ditto.
9477         (V16QI_FTYPE_V8DI): Ditto.
9478         (UINT_FTYPE_V4SF): Ditto.
9479         (UINT64_FTYPE_V4SF): Ditto.
9480         (UINT_FTYPE_V2DF): Ditto.
9481         (UINT64_FTYPE_V2DF): Ditto.
9482         (V16SI_FTYPE_V16SI): Ditto.
9483         (V8DI_FTYPE_V8DI): Ditto.
9484         (V16SI_FTYPE_PV4SI): Ditto.
9485         (V16SF_FTYPE_PV4SF): Ditto.
9486         (V8DI_FTYPE_PV2DI): Ditto.
9487         (V8DF_FTYPE_PV2DF): Ditto.
9488         (V4DI_FTYPE_PV2DI): Ditto.
9489         (V4DF_FTYPE_PV2DF): Ditto.
9490         (V16SI_FTYPE_PV2SI): Ditto.
9491         (V16SF_FTYPE_PV2SF): Ditto.
9492         (V8DI_FTYPE_PV4DI): Ditto.
9493         (V8DF_FTYPE_PV4DF): Ditto.
9494         (V8SF_FTYPE_FLOAT): Ditto.
9495         (V4SF_FTYPE_FLOAT): Ditto.
9496         (V4DF_FTYPE_DOUBLE): Ditto.
9497         (V8SF_FTYPE_PV4SF): Ditto.
9498         (V8SI_FTYPE_PV4SI): Ditto.
9499         (V4SI_FTYPE_PV2SI): Ditto.
9500         (V8SF_FTYPE_PV2SF): Ditto.
9501         (V8SI_FTYPE_PV2SI): Ditto.
9502         (V16SF_FTYPE_PV8SF): Ditto.
9503         (V16SI_FTYPE_PV8SI): Ditto.
9504         (V8DI_FTYPE_V8SF): Ditto.
9505         (V4DI_FTYPE_V4SF): Ditto.
9506         (V2DI_FTYPE_V4SF): Ditto.
9507         (V64QI_FTYPE_QI): Ditto.
9508         (V32HI_FTYPE_HI): Ditto.
9509         (V8UHI_FTYPE_V8UHI): Ditto.
9510         (V16UHI_FTYPE_V16UHI): Ditto.
9511         (V32UHI_FTYPE_V32UHI): Ditto.
9512         (V2UDI_FTYPE_V2UDI): Ditto.
9513         (V4UDI_FTYPE_V4UDI): Ditto.
9514         (V8UDI_FTYPE_V8UDI): Ditto.
9515         (V4USI_FTYPE_V4USI): Ditto.
9516         (V8USI_FTYPE_V8USI): Ditto.
9517         (V16USI_FTYPE_V16USI): Ditto.
9518         (V2DF_FTYPE_V2DF_UINT64): Ditto.
9519         (V2DI_FTYPE_V2DF_V2DF): Ditto.
9520         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
9521         (V8DF_FTYPE_V8DF_V8DI): Ditto.
9522         (V4SF_FTYPE_V4SF_UINT64): Ditto.
9523         (V4SI_FTYPE_V4SF_V4SF): Ditto.
9524         (V16SF_FTYPE_V16SF_V16SI): Ditto.
9525         (V64QI_FTYPE_V32HI_V32HI): Ditto.
9526         (V32HI_FTYPE_V16SI_V16SI): Ditto.
9527         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
9528         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
9529         (V32HI_FTYPE_V64QI_V64QI): Ditto.
9530         (V32HI_FTYPE_V32HI_V32HI): Ditto.
9531         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
9532         (V16SI_FTYPE_V16SI_V4SI): Ditto.
9533         (V16SI_FTYPE_V16SI_V16SI): Ditto.
9534         (V16SI_FTYPE_V32HI_V32HI): Ditto.
9535         (V16SI_FTYPE_V16SI_SI): Ditto.
9536         (V8DI_FTYPE_V8DI_V8DI): Ditto.
9537         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
9538         (V8DI_FTYPE_V16SI_V16SI): Ditto.
9539         (V8DI_FTYPE_V8DI_V2DI): Ditto.
9540         (QI_FTYPE_QI): Ditto.
9541         (SI_FTYPE_SI): Ditto.
9542         (DI_FTYPE_DI): Ditto.
9543         (QI_FTYPE_QI_QI): Ditto.
9544         (QI_FTYPE_QI_INT): Ditto.
9545         (HI_FTYPE_HI_INT): Ditto.
9546         (SI_FTYPE_SI_INT): Ditto.
9547         (DI_FTYPE_DI_INT): Ditto.
9548         (HI_FTYPE_V16QI_V16QI): Ditto.
9549         (SI_FTYPE_V32QI_V32QI): Ditto.
9550         (DI_FTYPE_V64QI_V64QI): Ditto.
9551         (QI_FTYPE_V8HI_V8HI): Ditto.
9552         (HI_FTYPE_V16HI_V16HI): Ditto.
9553         (SI_FTYPE_V32HI_V32HI): Ditto.
9554         (QI_FTYPE_V4SI_V4SI): Ditto.
9555         (QI_FTYPE_V8SI_V8SI): Ditto.
9556         (QI_FTYPE_V2DI_V2DI): Ditto.
9557         (QI_FTYPE_V4DI_V4DI): Ditto.
9558         (QI_FTYPE_V8DI_V8DI): Ditto.
9559         (HI_FTYPE_V16SI_V16SI): Ditto.
9560         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
9561         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
9562         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
9563         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
9564         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
9565         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
9566         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
9567         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
9568         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
9569         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
9570         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
9571         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
9572         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
9573         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
9574         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
9575         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
9576         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
9577         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
9578         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
9579         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
9580         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
9581         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
9582         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
9583         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
9584         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
9585         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
9586         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
9587         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
9588         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
9589         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
9590         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
9591         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
9592         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
9593         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
9594         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
9595         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
9596         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
9597         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
9598         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
9599         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
9600         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
9601         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
9602         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
9603         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
9604         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
9605         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
9606         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
9607         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
9608         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
9609         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
9610         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
9611         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
9612         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
9613         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
9614         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
9615         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
9616         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
9617         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
9618         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
9619         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
9620         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
9621         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
9622         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
9623         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
9624         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
9625         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
9626         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
9627         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
9628         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
9629         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
9630         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
9631         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
9632         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
9633         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
9634         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
9635         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
9636         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
9637         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
9638         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
9639         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
9640         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
9641         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
9642         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
9643         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
9644         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
9645         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
9646         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
9647         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
9648         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
9649         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
9650         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
9651         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
9652         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
9653         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
9654         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
9655         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
9656         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
9657         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
9658         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
9659         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
9660         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
9661         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
9662         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
9663         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
9664         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
9665         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
9666         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
9667         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
9668         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
9669         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
9670         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
9671         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
9672         (HI_FTYPE_HI): Ditto.
9673         (HI_FTYPE_V16QI): Ditto.
9674         (SI_FTYPE_V32QI): Ditto.
9675         (DI_FTYPE_V64QI): Ditto.
9676         (QI_FTYPE_V8HI): Ditto.
9677         (HI_FTYPE_V16HI): Ditto.
9678         (SI_FTYPE_V32HI): Ditto.
9679         (QI_FTYPE_V4SI): Ditto.
9680         (QI_FTYPE_V8SI): Ditto.
9681         (HI_FTYPE_V16SI): Ditto.
9682         (QI_FTYPE_V2DI): Ditto.
9683         (QI_FTYPE_V4DI): Ditto.
9684         (QI_FTYPE_V8DI): Ditto.
9685         (V16QI_FTYPE_HI): Ditto.
9686         (V32QI_FTYPE_SI): Ditto.
9687         (V64QI_FTYPE_DI): Ditto.
9688         (V8HI_FTYPE_QI): Ditto.
9689         (V16HI_FTYPE_HI): Ditto.
9690         (V32HI_FTYPE_SI): Ditto.
9691         (V4SI_FTYPE_QI): Ditto.
9692         (V4SI_FTYPE_HI): Ditto.
9693         (V8SI_FTYPE_QI): Ditto.
9694         (V8SI_FTYPE_HI): Ditto.
9695         (V2DI_FTYPE_QI): Ditto.
9696         (V4DI_FTYPE_QI): Ditto.
9697         (HI_FTYPE_HI_HI): Ditto.
9698         (SI_FTYPE_SI_SI): Ditto.
9699         (DI_FTYPE_DI_DI): Ditto.
9700         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
9701         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
9702         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
9703         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
9704         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
9705         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
9706         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
9707         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
9708         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
9709         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
9710         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
9711         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
9712         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
9713         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
9714         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
9715         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
9716         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
9717         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
9718         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
9719         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
9720         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
9721         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
9722         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
9723         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
9724         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
9725         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
9726         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
9727         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
9728         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
9729         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
9730         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
9731         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
9732         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
9733         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
9734         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
9735         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
9736         (V16SI_FTYPE_HI): Ditto.
9737         (V8DI_FTYPE_QI): Ditto.
9738         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
9739         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
9740         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
9741         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
9742         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
9743         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
9744         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
9745         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
9746         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
9747         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
9748         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
9749         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
9750         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
9751         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
9752         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
9753         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
9754         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
9755         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
9756         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
9757         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
9758         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
9759         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
9760         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
9761         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
9762         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
9763         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
9764         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
9765         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
9766         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
9767         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
9768         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
9769         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
9770         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
9771         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
9772         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
9773         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
9774         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
9775         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
9776         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
9777         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
9778         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
9779         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
9780         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
9781         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
9782         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
9783         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
9784         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
9785         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
9786         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
9787         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
9788         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
9789         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
9790         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
9791         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
9792         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
9793         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
9794         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
9795         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
9796         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
9797         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
9798         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
9799         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
9800         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
9801         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
9802         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
9803         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
9804         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
9805         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
9806         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
9807         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
9808         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
9809         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
9810         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
9811         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
9812         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
9813         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
9814         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
9815         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
9816         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
9817         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
9818         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
9819         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
9820         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
9821         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
9822         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
9823         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
9824         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
9825         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
9826         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
9827         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
9828         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
9829         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
9830         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
9831         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
9832         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
9833         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
9834         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
9835         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
9836         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
9837         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
9838         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
9839         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
9840         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
9841         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
9842         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
9843         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
9844         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
9845         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
9846         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
9847         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
9848         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
9849         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
9850         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
9851         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
9852         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
9853         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
9854         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
9855         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
9856         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
9857         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
9858         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
9859         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
9860         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
9861         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
9862         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
9863         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
9864         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
9865         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
9866         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
9867         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
9868         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
9869         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
9870         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
9871         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
9872         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
9873         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
9874         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
9875         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
9876         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
9877         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
9878         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
9879         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
9880         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
9881         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
9882         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
9883         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
9884         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
9885         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
9886         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
9887         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
9888         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
9889         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
9890         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
9891         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
9892         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
9893         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
9894         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
9895         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
9896         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
9897         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
9898         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
9899         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
9900         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
9901         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
9902         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
9903         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
9904         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
9905         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
9906         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
9907         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
9908         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
9909         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
9910         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
9911         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
9912         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
9913         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
9914         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
9915         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
9916         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
9917         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
9918         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
9919         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
9920         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
9921         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
9922         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
9923         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
9924         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
9925         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
9926         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
9927         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
9928         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
9929         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
9930         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
9931         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
9932         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
9933         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
9934         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
9935         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
9936         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
9937         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
9938         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
9939         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
9940         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
9941         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
9942         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
9943         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
9944         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
9945         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
9946         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
9947         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
9948         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
9949         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
9950         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
9951         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
9952         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
9953         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
9954         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
9955         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
9956         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
9957         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
9958         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
9959         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
9960         (QI_FTYPE_V8DF_INT_QI): Ditto.
9961         (QI_FTYPE_V4DF_INT_QI): Ditto.
9962         (QI_FTYPE_V2DF_INT_QI): Ditto.
9963         (HI_FTYPE_V16SF_INT_HI): Ditto.
9964         (QI_FTYPE_V8SF_INT_QI): Ditto.
9965         (QI_FTYPE_V4SF_INT_QI): Ditto.
9966         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
9967
9968 2015-07-31  Richard Biener  <rguenther@suse.de>
9969
9970         * gimple-fold.c (fold_gimple_assign): Remove folding of
9971         GIMPLE_BINARY_RHS.
9972
9973 2015-07-31  Tom de Vries  <tom@codesourcery.com>
9974
9975         PR tree-optimization/66846
9976         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
9977         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
9978         (expand_omp_target) [ENABLE_CHECKING]: Same.
9979         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
9980         cfun if !LOOPS_NEED_FIXUP.
9981         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
9982         that omp_for already has its own loop struct.
9983         * tree-parloops.c (create_phi_for_local_result)
9984         (create_call_for_reduction): Handle simple latch bb.
9985         (create_parallel_loop): Add simple latch bb to preserve
9986         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
9987         (gen_parallel_loop): Remove call to cancel_loop_tree.
9988         (parallelize_loops): Skip loops that are inner loops of parallelized
9989         loops.
9990         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
9991         verify_loop_structure.
9992
9993 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
9994
9995         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
9996         * config/v850/v850.md (RV_REGNUM): New constants.
9997         * config/v850/v850.c (v850_libcall_value): New functions.
9998         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
9999         (TARGET_LIBCALL_VALUE): Define.
10000
10001 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
10002
10003         * rtl.h (lowpart_subreg): Move in file.
10004         * loop-iv.c (lowpart_subreg): Move to...
10005         * simplify-rtx.c (lowpart_subreg): ...here.
10006           (simplify_binary_operation_1): Use lowpart_subreg instead of
10007           simplify_gen_subreg.
10008         * expr.c (expand_expr_real_2): Ditto.
10009         * emit-rtl.c (gen_lowpart_common): Ditto.
10010         * combine.c (gen_lowpart_for_combine): Ditto.
10011         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
10012           expand_debug_source_expr): Ditto.
10013
10014 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
10015
10016         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
10017         (expand_builtin_atomic_clear): Remove support for atomic_clear
10018         pattern.
10019
10020 2015-07-30  Richard Biener  <rguenther@suse.de>
10021
10022         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
10023         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
10024         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
10025         redundant operand canonicalization.
10026
10027 2015-07-30  David Sherwood  <david.sherwood@arm.com>
10028
10029         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
10030         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
10031         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
10032         * config/arm/arm.c (neon_valid_immediate): Likewise.
10033         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
10034         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
10035         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
10036         (expand_vec_perm_vpshufb2_vpermq): Likewise.
10037         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
10038         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
10039         * config/i386/sse.md
10040         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
10041         (*ssse3_palignr<mode>_perm): Likewise.
10042         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
10043         * config/spu/spu.c (arith_immediate_p): Likewise.
10044         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10045         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
10046
10047 2015-07-30  Richard Biener  <rguenther@suse.de>
10048
10049         * genmatch.c (decision_tree::gen_gimple): Merge with ...
10050         (decision_tree::gen_generic): ... this into ...
10051         (decision_tree::gen): ... this.
10052         (main): Adjust callers.
10053
10054 2015-07-30  Richard Biener  <rguenther@suse.de>
10055
10056         * genmatch.c (verbose): New global.
10057         (warning_at): Add overload with source_location.
10058         (capture_info::capture_info): Add bool whether generating gimple
10059         or generic.  Add gimple member.
10060         (capture_info::cinfo): Add capture member.
10061         (capture_info::walk_match): Record capture.  Warn on
10062         non-captured leafs.
10063         (capture_info::walk_c_expr): Add more fragments captures cannot
10064         escape through.  Warn on escaped captures.
10065         (dt_simplify::gen_1): Warn on operands we force to have no
10066         side-effects.
10067         (main): Initialize verbose.
10068         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
10069
10070 2015-07-30  Richard Biener  <rguenther@suse.de>
10071
10072         PR middle-end/67053
10073         * match.pd: Allow both operands to independently have conversion
10074         when simplifying compares of addresses.
10075
10076 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
10077
10078         PR target/66217
10079         PR target/67045
10080         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
10081         around those cases that need one.
10082
10083 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
10084
10085         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
10086
10087 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
10088
10089         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
10090         New.  Copied from config/i386/gnu-user.h.
10091         (ASM_COMMENT_START): Likewise.
10092         (DBX_REGISTER_NUMBER): Likewise.
10093
10094 2015-07-29  Richard Biener  <rguenther@suse.de>
10095
10096         * gimple-fold.c (fold_gimple_cond): Remove.
10097         (fold_stmt_1): Do not call it.
10098
10099 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
10100
10101         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
10102         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
10103
10104         * config/aarch64/aarch64-modes.def: Add HFmode.
10105
10106         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
10107         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
10108
10109         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
10110         aarch64_promoted_type): New.
10111
10112         (aarch64_float_const_representable_p): Disable HFmode.
10113         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
10114         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
10115         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
10116
10117         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
10118         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
10119
10120         * config/aarch64/iterators.md (GPF_F16): New.
10121
10122 2015-07-29  Richard Biener  <rguenther@suse.de>
10123
10124         * match.pd: Merge address comparison patterns and make them
10125         handle some more cases.
10126
10127 2015-07-29  Richard Biener  <rguenther@suse.de>
10128
10129         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
10130         (parser::parse_capture): Add bool argument on whether to reject
10131         unknown captures.
10132         (parser::parse_expr): Adjust.
10133         (parser::parse_op): Likewise.
10134         (parser::parse_pattern): Likewise.
10135
10136 2015-07-29  Richard Biener  <rguenther@suse.de>
10137
10138         * gimple-fold.c (has_use_on_stmt): New function.
10139         (replace_stmt_with_simplification): Use it to allow
10140         abnormals originally referenced in the stmt.
10141         (fold_stmt_1): Canonicalize operand order.
10142
10143 2015-07-28  David Sherwood  <david.sherwood@arm.com>
10144
10145         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
10146         GET_MODE_INNER unconditionally.
10147         * config/spu/spu.c (arith_immediate_p): Likewise.
10148         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
10149         * expmed.c (synth_mult): Remove check for VOIDmode result from
10150         GET_MODE_INNER.
10151         (expand_mult_const): Likewise.
10152         * fold-const.c (fold_binary_loc): Replace call to element_precision
10153         with call to GET_MODE_PRECISION.
10154         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
10155         m->name.
10156         (emit_mode_inner): Likewise.
10157         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
10158         result check.
10159         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
10160         (GET_MODE_UNIT_PRECISION): Likewise.
10161         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
10162         * simplify-rtx.c (simplify_immed_subreg): Likewise.
10163         * stor-layout.c (bitwise_type_for_mode): Update assert.
10164         (element_precision): Remove.
10165
10166 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10167
10168         * target-insns.def (reload_load_address): New targetm instruction
10169         pattern.
10170         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
10171
10172 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10173
10174         * target-insns.def (atomic_test_and_set): New targetm instruction
10175         pattern.
10176         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
10177         HAVE_*/gen_* interface.
10178
10179 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10180
10181         * target-insns.def (can_extend, ptr_extend): New targetm instruction
10182         patterns.
10183         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
10184         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10185         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
10186         * rtlanal.c (nonzero_bits1): Likewise.
10187         (num_sign_bit_copies1): Likewise.
10188
10189 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10190
10191         * target-insns.def (eh_return): New targetm instruction pattern.
10192         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
10193         interface.
10194         * function.c (thread_prologue_and_epilogue_insns): Remove
10195         preprocessor condition.
10196
10197 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10198
10199         * target-insns.def (indirect_jump): New targetm instruction pattern.
10200         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
10201         interface.
10202
10203 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10204
10205         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
10206         instead of nonimmediate_operand.  Remove C condiition.
10207
10208 2015-07-28  Richard Biener  <rguenther@suse.de>
10209
10210         * match.pd: Add more simplification of address comparisons.
10211
10212 2015-07-28  Richard Biener  <rguenther@suse.de>
10213
10214         * match.pd: Re-order two cases in comparison with max/min
10215         value simplification to make it apply for bools.
10216
10217 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10218
10219         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
10220         Handle simple SIGN_EXTEND or ZERO_EXTEND.
10221         (aarch64_rtx_costs): Properly strip extend or extract before
10222         passing down to rtx costs again.
10223
10224 2015-07-28  Nick Clifton  <nickc@redhat.com>
10225
10226         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
10227         Optimizes the case where -mes0 is active and a constant symbolic
10228         address is used.
10229         * config/rl78/rl78-protos.h: Prototype the new function.
10230         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
10231
10232 2015-07-28  Tom de Vries  <tom@codesourcery.com>
10233
10234         * tree-parloops.c (reduc_stmt_res): New function.
10235         (initialize_reductions, add_field_for_reduction)
10236         (create_phi_for_local_result, create_loads_for_reductions)
10237         (create_stores_for_reduction, build_new_reduction): Handle case that
10238         reduc_stmt is a phi.
10239         (gather_scalar_reductions): Allow double_reduc reductions.
10240
10241 2015-07-28  Richard Biener  <rguenther@suse.de>
10242
10243         * fold-const.c (fold_comparison): Remove equality folding
10244         of decl addresses ...
10245         * match.pd: ... here and merge with existing pattern.
10246
10247 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10248
10249         PR tree-optimization/66828
10250         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
10251         from int64_t to uint64_t.
10252
10253 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10254
10255         * opts-common.c (read_cmdline_option): List DriverOnly enum values
10256         as valid only in the error message of the driver, not in the
10257         messages of the language compilers.
10258
10259 2015-07-27  Tom de Vries  <tom@codesourcery.com>
10260
10261         * tree-parloops.c (gather_scalar_reductions): Simplify function
10262         structure.
10263
10264 2015-07-27  Marek Polacek  <polacek@redhat.com>
10265
10266         * ipa-devirt.c (types_same_for_odr): Fix typo.
10267
10268 2015-07-27  Jason Merrill  <jason@redhat.com>
10269
10270         PR debug/66468
10271         * dwarf2out.c (gen_inlined_subroutine_die): Check
10272         cgraph_function_possibly_inlined_p.
10273
10274 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
10275
10276         * gcc/config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
10277         Place integer variant first.
10278         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
10279
10280 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
10281
10282         PR/63870
10283         * config/arm/arm-builtins.c (enum arm_builtins):
10284         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
10285         (ARM_BUILTIN_NEON_BASE): Rename macro to....
10286         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
10287         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
10288         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
10289
10290 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
10291
10292         PR/63870
10293         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
10294         Add qualifier_lane_index.
10295         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
10296         (arm_getlane_qualifiers): Use qualifier_lane_index.
10297         (arm_lanemac_qualifiers): Rename to...
10298         (arm_mac_n_qualifiers): ...this.
10299         (LANEMAC_QUALIFIERS): Rename to...
10300         (MAC_N_QUALIFIERS): ...this.
10301         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
10302         (arm_setlane_qualifiers): Use qualifier_lane_index.
10303         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
10304         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
10305         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
10306         (arm_expand_neon_builtin): Handle qualifier_lane_index.
10307
10308         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
10309         * config/arm/arm.c (bounds_check): Likewise, improve error message.
10310         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
10311         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
10312         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
10313         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
10314         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
10315         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
10316         qualifiers to TERNOP_IMM.
10317         (vdup_lane): Change qualifiers to GETLANE.
10318         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
10319         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
10320         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
10321         vqdmlsl_n): Change qualifiers to MAC_N.
10322
10323         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
10324         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
10325         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
10326         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
10327         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
10328         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
10329         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
10330         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
10331         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
10332         Remove call to neon_lane_bounds.
10333
10334 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
10335
10336         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
10337         Place integer variant first.
10338
10339 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
10340
10341         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
10342         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
10343         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
10344         for armv6kz targets.
10345         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
10346         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
10347         (FL_FOR_ARCH6ZK): Remove.
10348         (FL_FOR_ARCH6KZ): New.
10349         (arm_arch6zk): New declaration.
10350         * config/arm/arm-tables.opt: Regenerate.
10351         * config/arm/arm.c (arm_arch6kz): New.
10352         (arm_option_override): Set arm_arch6kz.
10353         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
10354         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
10355         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
10356
10357 2015-07-27  Marek Polacek  <polacek@redhat.com>
10358
10359         PR c++/66555
10360         PR c/54979
10361         * doc/invoke.texi: Document -Wtautological-compare.
10362
10363 2015-07-27  Richard Biener  <rguenther@suse.de>
10364
10365         * genmatch.c (decision_tree::gen_gimple): Split out large
10366         subtrees into separate functions.
10367         (decision_tree::gen_generic): Likewise.
10368
10369 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
10370
10371         * config/alpha/alpha.c: Use SUBREG_P predicate.
10372         * config/alpha/predicates.md: Ditto.
10373
10374 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10375
10376         * config.host (s390*-*-*): Include driver-native.c only when
10377         building with s390* as host *and* target.
10378
10379 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
10380
10381         PR target/66930
10382         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
10383         T bit register modified_between_p check.
10384
10385 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10386
10387         * config/i386/i386.c: Use SUBREG_P predicate.
10388         * config/i386/i386.md: Ditto.
10389         * config/i386/sse.md: Ditto.
10390         * config/i386/predicates.md: Ditto.
10391
10392 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10393
10394         PR target/67004
10395         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
10396         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
10397
10398 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10399
10400         * Makefile.in: Remove use of TREEBROWSER.
10401         * config.in: Regenerated.
10402         * configure: Regenerated.
10403         * configure.ac: Remove definition of TREEBROWSER.
10404         * tree-browser.c: Removed.
10405         * tree-browser.def: Removed.
10406
10407 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10408
10409         * graphite-scop-detection.c: Include gimple-pretty-print.h.
10410         (stmt_simple_for_scop_p): Print when a stmt is not handled in
10411         Graphite.
10412         (scopdet_basic_block_info): Print when a loop or bb cannot be
10413         represented in Graphite.
10414
10415 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10416
10417         PR target/66648
10418         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
10419         execution guard when min_size is less than size_needed.
10420
10421 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10422
10423         * doc/install.texi: Document supported versions of ISL.
10424
10425 2015-07-25  Jeff Law  <law@redhat.com>
10426
10427         Revert:
10428         PR lto/66752
10429         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
10430         unable to find X NE 0 in the tables, return X as the simplified
10431         condition.
10432         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
10433         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
10434         to VISISTED_BBS.  */
10435         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
10436         after removing the control flow statement and unnecessary edges.
10437
10438 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
10439
10440         Revert:
10441         2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
10442
10443         PR rtl-optimization/64164
10444         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
10445         * tree-ssa-copyrename.c: Removed.
10446         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
10447         -ftree-coalesce-vars.
10448         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
10449         * common.opt (ftree-copyrename): Ignore.
10450         (ftree-coalesce-inlined-vars): Likewise.
10451         * doc/invoke.texi: Remove the ignored options above.
10452         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
10453         * tree-ssa-coalesce.h: ... here.
10454         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
10455         headers required by it.
10456         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
10457         across variables when flag_tree_coalesce_vars.  Check register
10458         use and promoted modes to allow coalescing.  Moved to
10459         tree-ssa-coalesce.c.
10460         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
10461         with its member functions to tree-ssa-coalesce.c.
10462         (var_map_base_init): Likewise.  Renamed to
10463         compute_samebase_partition_bases.
10464         (partition_view_normal): Drop want_bases parameter.
10465         (partition_view_bitmap): Likewise.
10466         * tree-ssa-live.h: Adjust declarations.
10467         * tree-ssa-coalesce.c: Include explow.h.
10468         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
10469         default defs at the entry point.
10470         (dump_part_var_map): New.
10471         (compute_optimized_partition_bases): New, called by...
10472         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
10473         of compute_samebase_partition_bases.  Adjust.
10474         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
10475         * cfgexpand.c (leader_merge): New.
10476         (get_rtl_for_parm_ssa_default_def): New.
10477         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
10478         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
10479         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
10480         redundant MEM attr setting.
10481         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
10482         from...
10483         (expand_one_stack_var): ... this.  New wrapper to check and
10484         skip already expanded SSA partitions.
10485         (record_alignment_for_reg_var): New, factored out of...
10486         (expand_one_var): ... this.
10487         (expand_one_ssa_partition): New.
10488         (adjust_one_expanded_partition_var): New.
10489         (expand_one_register_var): Check and skip already expanded SSA
10490         partitions.
10491         (expand_used_vars): Don't create DECLs for anonymous SSA
10492         names.  Expand all SSA partitions, then adjust all SSA names.
10493         (pass::execute): Replace the loops that set
10494         SA.partition_to_pseudo from partition leaders and cleared
10495         DECL_RTL for multi-location variables, and that which used to
10496         rename vars and set attrs, with one that clears DECL_RTL and
10497         checks that PARMs and RESULTs default_defs match DECL_RTL.
10498         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
10499         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
10500         * explow.c (promote_ssa_mode): New.
10501         * explow.h (promote_ssa_mode): Declare.
10502         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
10503         * function.c: Include cfgexpand.h.
10504         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
10505         (use_register_for_parm_decl): Wrapper for the above to
10506         special-case the result_ptr.
10507         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
10508         (split_complex_args): Take assign_parm_data_all argument.
10509         Pass it to rtl_for_parm.  Set up rtl and context for split
10510         args.
10511         (assign_parms_augmented_arg_list): Adjust.
10512         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
10513         multiple locations.  Recognize split complex args.
10514         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
10515         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
10516         (assign_parm_setup_block): Prefer SSA-assigned location.
10517         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
10518         if stack_parm is NULL.
10519         (assign_parm_setup_stack): Prefer SSA-assigned location.
10520         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
10521         rtl before testing for pointer bounds.  Special-case result_ptr.
10522         (expand_function_start): Maybe reset DECL_RTL of result.
10523         Prefer SSA-assigned location for result and static chain.
10524         Factor out DECL_RESULT and SET_DECL_RTL.
10525         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
10526         anonymous SSA names.  Use promote_ssa_mode.
10527         (get_temp_reg): Likewise.
10528         (remove_ssa_form): Adjust.
10529         * stor-layout.c (layout_decl): Don't set mem attributes of
10530         non-MEMs.
10531         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
10532         and get its reg_usage for reg invalidation.
10533         (compute_bb_dataflow): Pass it insn.
10534         (emit_notes_in_bb): Likewise.
10535
10536 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10537
10538         * config/i386/i386.c (ix86_va_start): Remove
10539         unneeded !TARGET_64BIT check.
10540         (ix86_gimplify_va_arg): Ditto.
10541
10542 2015-07-24  Tom de Vries  <tom@codesourcery.com>
10543
10544         * graphite-sese-to-poly.c (build_poly_scop): Always call
10545         rewrite_commutative_reductions_out_of_ssa.
10546
10547 2015-07-24  Tom de Vries  <tom@codesourcery.com>
10548
10549         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
10550         flag_associative_math to FLOAT_TYPE_P.  Honour
10551         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
10552
10553 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10554
10555         PR c++/64079
10556         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
10557         and "%qD" in warning_at instead of "%q+D" in warning.
10558
10559 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
10560
10561         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
10562         (ix86_function_abi): Cleanup.
10563
10564 2015-07-24  Michael Darling  <darlingm@gmail.com>
10565
10566         PR other/66259
10567         * acinclude.m4: Reflects renaming of configure.in to configure.ac
10568         * configure: Likewise
10569         * configure.ac: Likewise
10570         * doc/install.texi: Likewise
10571         * doc/tm.texi: Likewise
10572         * doc/tm.texi.in: Likewise
10573
10574 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10575
10576         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
10577         manually swapping values.
10578         * cse.c (fold_rtx): Likewise.
10579         * lra-eliminations.c (form_sum): Likewise.
10580
10581 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
10582
10583         PR target/64003
10584         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
10585         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
10586         (*jcc_1, *jcc_2, jump, simple_return_internal)
10587         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
10588         Set length_nobnd attribute instead of length attribute.
10589         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
10590         (length_nobnd): Remove attribute.
10591         (length): Remove length_nobnd processing.
10592
10593 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
10594
10595         * gimplify.c (omp_default_clause): New function.  Reorganize flow
10596         for clarity. Broken out of ...
10597         (omp_notice_variable): ... here.
10598
10599 2015-07-24  Gary Funck  <gary@intrepid.com>
10600
10601         PR middle-end/66984
10602         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
10603         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
10604
10605 2015-07-24  Tom de Vries  <tom@codesourcery.com>
10606
10607         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
10608         exit-first loop transform.
10609
10610 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
10611
10612         PR 66714
10613         * tree-cfg.c (struct replace_decls_d): New struct.
10614         (replace_block_vars_by_duplicates_1): New function.
10615         (replace_block_vars_by_duplicates): Use it to replace the decls
10616         in the value exprs by duplicates.
10617
10618 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
10619
10620         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
10621         -shared, -symbolic, -rdynamic.
10622
10623 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
10624
10625         PR target/65711
10626         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
10627         -dynamic-linker within %{!static %{!shared, and -rdynamic within
10628         %{!static.
10629
10630 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
10631
10632         PR ipa/66566
10633         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
10634         edge summary is available.
10635
10636 2015-07-24  Richard Biener  <rguenther@suse.de>
10637
10638         * genmatch.c (struct dt_node): Add statistic fields.
10639         (dt_node::analyze): New method.
10640         (decision_tree::gen_gimple): Call analyze on the root node
10641         and print statistics to stderr.
10642         (decision_tree::gen_generic): Likewise.
10643
10644 2015-07-24  Richard Biener  <rguenther@suse.de>
10645
10646         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
10647         against the highest or lowest possible integer ...
10648         * match.pd: ... as patterns here.
10649
10650 2015-07-24  Richard Biener  <rguenther@suse.de>
10651
10652         * genmatch.c (struct capture_info): Add same_as field.
10653         (capture_info::capture_info): Initialize same_as.
10654         (capture_info::walk_match): Compute same_as.
10655         (capture_info::walk_result): Compute stuff for the leader.
10656         (capture_info::walk_c_expr): Likewise.
10657         (dt_simplify::gen_1): Only look at leaders when deciding
10658         to force no side-effects or emit side-effects of omitted operands.
10659
10660 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10661
10662         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
10663         reg note to the GPR -> FPR save instructions.
10664
10665 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10666
10667         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
10668         cheaper.
10669         (s390_expand_insv): Don't generate risbg pattern for constant zero
10670         sources.
10671         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
10672         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
10673         splitters.
10674
10675 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10676
10677         * config/s390/s390.c (s390_reorg): Clean up handling of processors
10678         with
10679         -mtune=
10680         (s390_issue_rate): Likewise.
10681         (s390_sched_reorder): Likewise.
10682         (s390_sched_variable_issue): Likewise.
10683         (s390_loop_unroll_adjust): Likewise.
10684         (s390_option_override):  Likewise.
10685
10686 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10687
10688         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
10689         processor capabilities with -march=native.
10690         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
10691         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
10692         (S390_TARGET_BITS_STRING): Macro to simplify specs.
10693
10694 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10695
10696         * config/s390/s390.c (s390_issue_rate): Handle
10697         PROCESSOR_2094_Z9_EC.
10698         (s390_option_override): Likewise.
10699         (s390_adjust_priority): Likewise.
10700
10701 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10702
10703         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
10704         when cross compiling.
10705
10706 2015-07-24  Richard Biener  <rguenther@suse.de>
10707
10708         * fold-const.c (maybe_canonicalize_comparison_1): Move
10709         A code CST canonicalization ...
10710         * match.pd: ... to a pattern here.
10711
10712 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
10713
10714         Revert:
10715         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
10716         PR target/63521
10717         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
10718         (HONOR_REG_ALLOC_ORDER): Define.
10719
10720 2015-07-24  Richard Biener  <rguenther@suse.de>
10721
10722         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
10723         * fold-const.c (fold_comparison): Move parameter does not
10724         alias &local simplification ...
10725         * match.pd: ... as a pattern here.
10726
10727 2015-07-24  Richard Biener  <rguenther@suse.de>
10728
10729         * gimple-fold.c (replace_stmt_with_simplification): Special-case
10730         valueizing call operands.
10731         * gimple-match-head.c (maybe_push_res_to_seq): Take
10732         number of call arguments from ops array.
10733         (do_valueize): New function.
10734         (gimple_simplify): Return true if valueization changed
10735         any operand even if the result didn't simplify further.
10736
10737 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
10738
10739         PR middle-end/25530
10740         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
10741
10742 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
10743
10744         PR middle-end/25529
10745         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
10746
10747 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
10748
10749         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
10750         instruction.
10751
10752 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
10753
10754         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
10755         clean up.
10756
10757 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
10758
10759         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
10760         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
10761         targets here.
10762         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
10763         ms_va_list_type_node initialization.
10764
10765 2015-07-23  Jeff Law  <law@redhat.com>
10766
10767         PR lto/66752
10768         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
10769         unable to find X NE 0 in the tables, return X as the simplified
10770         condition.
10771         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
10772         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
10773         to VISISTED_BBS.  */
10774         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
10775         after removing the control flow statement and unnecessary edges.
10776
10777 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10778
10779         * tree-pass.h (get_current_pass_name): Removed.
10780
10781 2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
10782
10783         PR rtl-optimization/64164
10784         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
10785         * tree-ssa-copyrename.c: Removed.
10786         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
10787         -ftree-coalesce-vars.
10788         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
10789         * common.opt (ftree-copyrename): Ignore.
10790         (ftree-coalesce-inlined-vars): Likewise.
10791         * doc/invoke.texi: Remove the ignored options above.
10792         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
10793         * tree-ssa-coalesce.h: ... here.
10794         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
10795         headers required by it.
10796         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
10797         across variables when flag_tree_coalesce_vars.  Check register
10798         use and promoted modes to allow coalescing.  Moved to
10799         tree-ssa-coalesce.c.
10800         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
10801         with its member functions to tree-ssa-coalesce.c.
10802         (var_map_base_init): Likewise.  Renamed to
10803         compute_samebase_partition_bases.
10804         (partition_view_normal): Drop want_bases parameter.
10805         (partition_view_bitmap): Likewise.
10806         * tree-ssa-live.h: Adjust declarations.
10807         * tree-ssa-coalesce.c: Include explow.h.
10808         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
10809         default defs at the entry point.
10810         (dump_part_var_map): New.
10811         (compute_optimized_partition_bases): New, called by...
10812         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
10813         of compute_samebase_partition_bases.  Adjust.
10814         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
10815         * cfgexpand.c (leader_merge): New.
10816         (get_rtl_for_parm_ssa_default_def): New.
10817         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
10818         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
10819         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
10820         redundant MEM attr setting.
10821         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
10822         from...
10823         (expand_one_stack_var): ... this.  New wrapper to check and
10824         skip already expanded SSA partitions.
10825         (record_alignment_for_reg_var): New, factored out of...
10826         (expand_one_var): ... this.
10827         (expand_one_ssa_partition): New.
10828         (adjust_one_expanded_partition_var): New.
10829         (expand_one_register_var): Check and skip already expanded SSA
10830         partitions.
10831         (expand_used_vars): Don't create DECLs for anonymous SSA
10832         names.  Expand all SSA partitions, then adjust all SSA names.
10833         (pass::execute): Replace the loops that set
10834         SA.partition_to_pseudo from partition leaders and cleared
10835         DECL_RTL for multi-location variables, and that which used to
10836         rename vars and set attrs, with one that clears DECL_RTL and
10837         checks that PARMs and RESULTs default_defs match DECL_RTL.
10838         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
10839         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
10840         * explow.c (promote_ssa_mode): New.
10841         * explow.h (promote_ssa_mode): Declare.
10842         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
10843         * function.c: Include cfgexpand.h.
10844         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
10845         (use_register_for_parm_decl): Wrapper for the above to
10846         special-case the result_ptr.
10847         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
10848         (split_complex_args): Take assign_parm_data_all argument.
10849         Pass it to rtl_for_parm.  Set up rtl and context for split
10850         args.
10851         (assign_parms_augmented_arg_list): Adjust.
10852         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
10853         multiple locations.  Recognize split complex args.
10854         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
10855         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
10856         (assign_parm_setup_block): Prefer SSA-assigned location.
10857         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
10858         if stack_parm is NULL.
10859         (assign_parm_setup_stack): Prefer SSA-assigned location.
10860         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
10861         rtl before testing for pointer bounds.  Special-case result_ptr.
10862         (expand_function_start): Maybe reset DECL_RTL of result.
10863         Prefer SSA-assigned location for result and static chain.
10864         Factor out DECL_RESULT and SET_DECL_RTL.
10865         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
10866         anonymous SSA names.  Use promote_ssa_mode.
10867         (get_temp_reg): Likewise.
10868         (remove_ssa_form): Adjust.
10869         * stor-layout.c (layout_decl): Don't set mem attributes of
10870         non-MEMs.
10871         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
10872         and get its reg_usage for reg invalidation.
10873         (compute_bb_dataflow): Pass it insn.
10874         (emit_notes_in_bb): Likewise.
10875
10876 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
10877
10878         PR target/66217
10879         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
10880         prototype.
10881         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
10882         (rs6000_emit_2insn_and): Handle dot forms.
10883         * config/rs6000/rs6000.md (and<mode>3): Adjust.
10884         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
10885         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
10886
10887 2015-07-23  Richard Biener  <rguenther@suse.de>
10888
10889         * generic-match-head.c: Include cgraph.h.
10890         * gimple-match-head.c: Likewise.
10891         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
10892         SSA names.
10893         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
10894         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
10895         pattern.
10896
10897 2015-07-23  Richard Biener  <rguenther@suse.de>
10898
10899         * gimple-fold.c (fold_gimple_cond): Do not require folding
10900         results to pass valid_gimple_rhs_p.
10901         * tree-cfg.h (fold_cond_expr_cond): Remove.
10902         * tree-cfg.c (fold_cond_expr_cond): Likewise.
10903         (make_edges): Do not call it.
10904         * tree-inline.c (tree_function_versioning): Likewise.
10905
10906 2015-07-23  Tom de Vries  <tom@codesourcery.com>
10907
10908         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
10909         vect_force_simple_reduction.
10910         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
10911         (vect_is_simple_reduction_1): Add and handle
10912         need_wrapping_integral_overflow parameter.
10913         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
10914         need_wrapping_integral_overflow parameter.
10915         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
10916         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
10917         decl.
10918
10919 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
10920
10921         PR tree-optimization/66926,66951
10922         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
10923         INNER_LOOP and fix up condition for renaming virtual operands.
10924
10925 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10926
10927         * combine.c (try_combine): Use std::swap instead of manually
10928         swapping.
10929
10930 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
10931
10932         * config/mips/i6400.md: New file.
10933         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
10934         (mips64r6): Likewise.
10935         (i6400): Define.
10936         * config/mips/mips-tables.opt: Regenerate.
10937         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
10938         (mips_issue_rate): Add support for i6400.
10939         (mips_multipass_dfa_lookahead): Likewise.
10940         * config/mips/mips.h (TUNE_I6400): Define.
10941         * config/mips/mips.md: Include i6400.md.
10942         (processor): Add i6400.
10943         * doc/invoke.texi (-march=@var{arch}): Add i6400.
10944
10945 2015-07-23  Richard Biener  <rguenther@suse.de>
10946
10947         PR middle-end/66916
10948         * match.pd: Guard widen and sign-change comparison simplification
10949         with single_use.
10950
10951 2015-07-23  Richard Biener  <rguenther@suse.de>
10952
10953         PR tree-optimization/66945
10954         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
10955         ::before_dom_children): Force the propagators idea of
10956         non-executable edges to materialize, not what the folder
10957         chooses.
10958
10959 2015-07-23  Richard Biener  <rguenther@suse.de>
10960
10961         * gimple.h (gimple_cond_make_false): Use 0 != 0.
10962         (gimple_cond_make_true): Use 1 != 0.
10963
10964 2015-07-22  DJ Delorie  <dj@redhat.com>
10965
10966         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
10967         slashes.
10968
10969         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
10970         (ashrhi3): Likewise.
10971         (lshrhi3): Likewise.
10972         (movhi): Take advantage of zero-extend to load small constants.
10973         (movpsi): Likewise.
10974         (and<mode>3): Likewise.
10975         (zero_extendqihi2): Likewise.
10976         (zero_extendqisi2): New.
10977         * config/msp430/constraints.md (N,O): New.
10978         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
10979
10980 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
10981
10982         PR target/66954
10983         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
10984         to enum feature_priority and feature_list.
10985         (fold_builtin_cpu): Add F_AES to enum processor_features
10986         and isa_names_table.
10987
10988 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
10989
10990         PR driver/66737
10991         * config/i386/linux-common.h (MPX_SPEC): Use linker option
10992         for 64bit target only.
10993
10994 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
10995
10996         * config/nvptx/nvptx.c: Expand some comments.
10997
10998 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
10999
11000         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
11001         (cortex_a53_advsimd): ...This.
11002
11003 2015-07-22  Richard Biener  <rguenther@suse.de>
11004
11005         * genmatch.c (expr::gen_transform): Clarify error message
11006         and display location.
11007
11008 2015-07-22  Richard Biener  <rguenther@suse.de>
11009
11010         * genmatch.c (struct operand): Add location member.
11011         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
11012         constructors.
11013         (struct simplify): Remove match_location and result_location
11014         members.
11015         (elsehwere): Adjust.
11016
11017 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
11018
11019         * config/mips/m5100.md: New file.
11020         * config/mips/mips-cpus.def (m5100, m5101): Define.
11021         * config/mips/mips-tables.opt: Regenerate.
11022         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
11023         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
11024         -march=m5101 to -mips32r5.
11025         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
11026         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
11027         !-msoft-float.
11028         * config/mips/mips.md: Include m5100.md.
11029         (processor): Add m5100.
11030         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
11031
11032 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
11033
11034         * config/mips/mips-cpus.def (interaptiv): Define.
11035         * config/mips/mips-tables.opt: Regenerate.
11036         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
11037         -mips32r2.
11038         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
11039         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
11040
11041 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
11042
11043         PR target/63521
11044         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
11045         (HONOR_REG_ALLOC_ORDER): Define.
11046
11047 2015-07-22  Richard Biener  <rguenther@suse.de>
11048
11049         PR tree-optimization/66952
11050         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
11051         blocks we end up executing unconditionally reset all SSA
11052         info such as range and alignment.
11053         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
11054         * tree-ssanames.c (reset_flow_sensitive_info): New function.
11055
11056 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
11057
11058         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
11059         typo in attribute.
11060
11061 2015-07-22  Richard Biener  <rguenther@suse.de>
11062
11063         * genmatch.c (parser::parse_result): Properly handle
11064         match with result operands and conditions.
11065
11066 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
11067
11068         PR target/63870
11069         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
11070         Add qualifier_struct_load_store_lane_index.
11071         (aarch64_types_loadstruct_lane_qualifiers): Use
11072         qualifier_struct_load_store_lane_index for lane index argument for
11073         last argument.
11074         (aarch64_types_storestruct_lane_qualifiers): Ditto.
11075         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11076         (aarch64_simd_expand_args): Add new argument describing mode of
11077         builtin. Check lane bounds for arguments with
11078         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11079         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
11080         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11081         (aarch64_simd_expand_builtin): Handle arguments with
11082         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
11083         aarch64_simd_expand_args.
11084         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
11085         vst[234]_lane with BUILTIN_VALLDIF.
11086         * config/aarch64/aarch64-simd.md:
11087         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
11088         endianness reversal on lane index.
11089         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
11090         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
11091         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
11092         (vec_store_lanesci_lane<mode>): Ditto.
11093         (vec_store_lanesxi_lane<mode>): Ditto.
11094         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
11095         reversal of lane index.
11096         (aarch64_ld3_lane<mode>): Ditto.
11097         (aarch64_ld4_lane<mode>): Ditto.
11098         (aarch64_st2_lane<mode>): Ditto.
11099         (aarch64_st3_lane<mode>): Ditto.
11100         (aarch64_st4_lane<mode>): Ditto.
11101         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
11102         to qmode. Add new mode parameter. Update uses.
11103         (__LD3_LANE_FUNC): Ditto.
11104         (__LD4_LANE_FUNC): Ditto.
11105         (__ST2_LANE_FUNC): Ditto.
11106         (__ST3_LANE_FUNC): Ditto.
11107         (__ST4_LANE_FUNC): Ditto.
11108
11109 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
11110
11111         * doc/invoke.texi (Language Independent Options): Rename node to
11112         Diagnostic Message Formatting Options.
11113
11114 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
11115
11116         PR ipa/66424.
11117         * lra-remat.c (operand_to_remat): Prevent using insns with input
11118         subregs processed separately by IRA.
11119
11120 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
11121
11122         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
11123         straight loops.
11124         (single_imm_use): Check for iterator node.
11125         (num_imm_uses): Likewise.
11126         * tree-ssa-operands.c (has_zero_uses_1): Delete.
11127         (single_imm_use_1): Check for iterator node.
11128
11129 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
11130             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
11131
11132         * configure.ac: Add check for new options in isl-0.15.
11133         * config.in, configure: Rebuilt.
11134         * graphite-blocking.c: Include <isl/constraint.h>
11135         * graphite-interchange.c,  graphite-poly.c: Likewise.
11136         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
11137         * graphite.c: Likewise.
11138         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
11139         <isl/union_set.h>.
11140         * graphite-dependences.c: Include <isl/constraint.h>.
11141         (max_number_of_out_dimensions): Returns isl_stat.
11142         (extend_schedule_1): Likewise
11143         (extend_schedule): Corresponding changes.
11144         * graphite-optimize-isl.c: Include <isl/constraint.h> and
11145         <isl/union_set.h>.
11146         (getSingleMap): Change return type of isl_stat.
11147         (optimize_isl): Conditionally use
11148         isl_options_set_schedule_serialize_sccs.
11149         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
11150         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
11151
11152 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
11153
11154         PR target/66956
11155         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
11156         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
11157
11158 2015-07-21  Richard Biener  <rguenther@suse.de>
11159
11160         PR tree-optimization/66948
11161         * genmatch.c (capture_info::walk_match): Also recurse to
11162         captures.  Properly compute expr state from captures of
11163         captures.
11164         * match.pd: Add single-use guards to
11165         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
11166
11167 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
11168
11169         * config/nvptx/mkoffload.c (process): Add static destructor call.
11170
11171 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11172
11173         PR middle-end/66915
11174         * match.pd (A - B -> A + (-B)): Don't allow folding
11175         when type if a fixed-point type.
11176
11177 2015-07-20  DJ Delorie  <dj@redhat.com>
11178
11179         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
11180         (iorqi3_real): Likewise for set1.
11181
11182 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
11183
11184         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
11185         for !TARGET_64BIT.
11186
11187 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
11188
11189         * graphite-isl-ast-to-gimple.c:
11190         Refactor so that each function can access 'region'. This will help
11191         maintain a parameter rename_map within a region.
11192
11193 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
11194
11195         * config/rs6000/rs6000.md (*lt0_disi): New.
11196
11197 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
11198
11199         PR target/66217
11200         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
11201         "available letters" comment.
11202         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
11203         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
11204         and_2rld_operand):  Delete.
11205         (and_operand): Adjust.
11206         (rotate_mask_operator): New.
11207         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
11208         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
11209         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
11210         extract_ME): Delete.
11211         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
11212         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
11213         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
11214         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
11215         rs6000_emit_2insn_and): New.
11216         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
11217         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
11218         includes_rldic_lshift_p, includes_rldicr_lshift_p,
11219         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
11220         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
11221         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
11222         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
11223         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
11224         rs6000_emit_2insn_and): New.
11225         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
11226         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
11227         handling.
11228         <NOT>: Don't fall through to next case.
11229         <AND>: Handle the various rotate-and-mask cases directly.
11230         <IOR>: Always cost as one insn.
11231         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
11232         (and<mode>3): Adjust expander for the new patterns.
11233         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
11234         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
11235         (*and<mode>3_imm_dot_shifted): New.
11236         (*and<mode>3_mask): Delete, rewrite as ...
11237         (and<mode>3_mask): ... New.
11238         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
11239         (andsi3_internal0_nomc): Delete.
11240         (*andsi3_internal6): Delete.
11241         (*and<mode>3_2insn): New.
11242         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
11243         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
11244         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
11245         *insvdi_internal3): Delete.
11246         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
11247         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
11248         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
11249         *ior<mode>_mask): New.
11250         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
11251         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
11252         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
11253         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
11254         Delete.
11255         (ashr<mode>3): Delete expander.
11256         (*ashr<mode>3): Rename to ...
11257         (ashr<mode>3): ... This.
11258         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
11259         (*rotldi3_internal4, *rotldi3_internal5 and split,
11260         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
11261         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
11262         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
11263         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
11264         (splitter for loading a mask): Adjust.
11265         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
11266
11267 2015-07-20  Marek Polacek  <polacek@redhat.com>
11268
11269         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
11270         output_add_clobbers, output_added_clobbers_hard_reg_p,
11271         gen_rtx_scratch): Remove declarations.
11272
11273 2015-07-20  Marek Polacek  <polacek@redhat.com>
11274
11275         PR c++/55095
11276         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
11277
11278 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11279
11280         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
11281         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
11282
11283 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11284
11285         * combine.c (combine_simplify_rtx): Move simplification step
11286         before various transformations/substitutions.
11287
11288 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
11289
11290         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
11291         (struct int_traits): Likewise.
11292
11293 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11294
11295         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
11296         function to vmsdbgout_function_decl.
11297
11298 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
11299
11300         PR target/66922
11301         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
11302         from misaligned positions.
11303         (ix86_expand_pinsr): Reject insertions to misaligned positions.
11304
11305 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
11306
11307         PR middle-end/46851
11308         PR middle-end/60340
11309         * Makefile.in: Removed omega.o.
11310         * common.opt: Document flag fcheck-data-deps as deprecated.
11311         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
11312         its associated params: omega-max-vars, omega-max-geqs,
11313         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
11314         omega-max-keys, omega-eliminate-redundant-constraints.
11315         * doc/loop.texi: Remove all the section on Omega.
11316         * graphite-blocking.c: Include missing params.h: it used to be
11317         included through tree-data-ref.h and omega.h.
11318         * graphite-isl-ast-to-gimple.c: Same.
11319         * graphite-optimize-isl.c: Same.
11320         * graphite-sese-to-poly.c: Same.
11321         * graphite.c: Same.
11322         * omega.c: Remove.
11323         * omega.h: Remove.
11324         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
11325         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
11326         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
11327         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
11328         * passes.def: Remove pass_check_data_deps.
11329         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
11330         (dump_conflict_function): Same.
11331         (dump_subscript): Same.
11332         (print_direction_vector): Same.
11333         (print_dir_vectors): Same.
11334         (print_lambda_vector): Same.
11335         (print_dist_vectors): Same.
11336         (dump_data_dependence_relation): Same.
11337         (dump_data_dependence_relations): Same.
11338         (dump_dist_dir_vectors): Same.
11339         (dump_ddrs): Same.
11340         (init_omega_eq_with_af): Removed.
11341         (omega_extract_distance_vectors): Removed.
11342         (omega_setup_subscript): Removed.
11343         (init_omega_for_ddr_1): Removed.
11344         (init_omega_for_ddr): Removed.
11345         (ddr_consistent_p): Removed.
11346         (compute_affine_dependence): Do not use omega to check data
11347         dependences.
11348         (compute_data_dependences_for_bb): Removed.
11349         (analyze_all_data_dependences): Removed.
11350         (tree_check_data_deps): Removed.
11351         * tree-data-ref.h: Do not include omega.h.
11352         (compute_data_dependences_for_bb): Removed.
11353         (tree_check_data_deps): Removed.
11354         * tree-ssa-loop.c (pass_check_data_deps): Removed.
11355         (make_pass_check_data_deps): Removed.
11356         * tree-ssa-phiopt.c: Include params.h.
11357         * tree-vect-data-refs.c: Same.
11358         * tree-vect-slp.c: Same.
11359
11360 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
11361
11362         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
11363         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
11364         (mem->fpreg splitters): Ditto.
11365         (general_operand->nonimmediate_operand splitter): Use explicit modes.
11366         Disable DFmode for TARGET_64BIT.
11367
11368 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
11369
11370         PR target/66906
11371         * config/i386/i386.c (ix86_expand_prologue): Replicate static
11372         chain on the stack.
11373
11374 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
11375
11376         * config/nvptx/mkoffload.c (process): Constify host data.
11377         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
11378         Constify host data.
11379         (generate_host_descr_file): Likewise.
11380
11381 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
11382             Sebastian Pop  <s.pop@samsung.com>
11383
11384         PR middle-end/61929
11385         * graphite-dependences.c (add_pdr_constraints): Renamed
11386         pdr->extent to pdr->subscript_sizes.
11387         * graphite-interchange.c (build_linearized_memory_access): Add
11388         back all gcc_assert's that the "isl_int to isl_val conversion"
11389         patch has removed.  Refactored.
11390         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
11391         * graphite-poly.c (new_poly_dr): Same.
11392         (free_poly_dr): Same.
11393         * graphite-poly.h (struct poly_dr): Same.
11394         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
11395         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
11396         * graphite-scop-detection.h: Fix space.
11397         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
11398         back all gcc_assert's removed by a previous patch.
11399         (wrap): Remove the_isl_ctx global variable that the same patch has
11400         added.
11401         (build_loop_iteration_domains): Same.
11402         (add_param_constraints): Same.
11403         (pdr_add_data_dimensions): Same.  Refactored.
11404         (build_poly_dr): Renamed extent to subscript_sizes.
11405
11406 2015-07-17  Marek Polacek  <polacek@redhat.com>
11407
11408         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
11409         * match.pd: ... here.
11410
11411 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
11412
11413         * config/nvptx/mkoffload.c (process): Constify target data.
11414         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
11415         Constify target data.
11416         (generate_target_offloadend_file): Likewise.
11417
11418 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
11419
11420         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
11421         to allow renaming of PHI arguments on edges incoming from outer
11422         loop header, add corresponding check before start PHI iterator.
11423         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
11424         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
11425         with true force_vectorize.  Set-up dominator for outer loop too.
11426         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
11427         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
11428         was marked with force_vectorize and has restricted cfg.
11429         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
11430         inner loop.
11431         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
11432         do peeling for outer loops.
11433
11434 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
11435             Matthias Klose  <doko@ubuntu.com>
11436
11437         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
11438         build-sysroot, sysroot from the `Miscenalleous configure options' to
11439         the `Directories' section and strip trailing `/' from with_sysroot.
11440         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
11441         * configure: Regenerated.
11442
11443 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
11444
11445         PR target/66824
11446         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
11447         (TARGET_HARD_DF_REGS): Ditto.
11448         (TARGET_HARD_XF_REGS): Ditto.
11449         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
11450         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
11451         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
11452         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
11453         (*movsf_internal): Add alternatives 16 and 17. Enable
11454         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
11455
11456 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
11457
11458         PR rtl-optimization/66891
11459         * calls.c (expand_call): Wrap precompute_register_parameters with
11460         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
11461
11462 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
11463
11464         * config/nvptx/mkoffload.c (process): Constify mapping variables.
11465         Define target data struct and initialize it.
11466
11467 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
11468
11469         PR rtl-optimization/66626
11470         * ira.h (emit-rtl.h): Include.
11471         (non_spilled_static_chain_regno_p): New.
11472         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
11473         unless it is non spilled static chain pseudo.
11474         (assign_hard_rego): Spill memory profitable allocno unless it is
11475         non spilled static chain pseudo.
11476         (allocno_spill_priority_compare): Put non spilled static chain
11477         pseudo at the end of sorted array.
11478         (improve_allocation): Do nothing if we have static chain and
11479         non-local goto.
11480         (allocno__priority_compare_func): Put non spilled static chain
11481         pseudo at the beginning of sorted array.
11482         (move_spill_restore): Ignore non spilled static chain pseudo.
11483         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
11484         to non spilled static chain pseudo.
11485         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
11486         pseudo at the beginning of sorted array.
11487         (spill_for): Spill non spilled static chain pseudo last.
11488         * lra-constraints.c (lra_constraints): Remove static chain pseudo
11489         check for equivalence.
11490
11491 2015-07-16  Martin Liska  <mliska@suse.cz>
11492
11493         PR ipa/66896.
11494         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
11495         dst_ctx if it does not exist.
11496
11497 2015-07-16  Martin Liska  <mliska@suse.cz>
11498
11499         * hash-set.h (remove): New function.
11500         (iterator): New iteration class for hash_set.
11501
11502 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11503
11504         * genattrtab.c (make_canonical): Add a file_location parameter.
11505         Use fatal_at rather than fatal.
11506         (get_attr_value): Likewise.  Update call to make_canonical.
11507         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
11508         (make_internal_attr): Update calls accordingly.
11509
11510 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11511
11512         * read-md.h (message_with_line, error_with_line): Delete.
11513         * read-md.c (message_with_line, error_with_line): Delete.
11514         * gensupport.h: Include read-md.h.
11515         (md_rtx_info): New structure.
11516         (read_md_rtx): Use it.  Return a bool success value.
11517         * gensupport.c (read_md_rtx): Likewise.
11518         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
11519         (main): Update after interface changes.
11520         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
11521         (main): Update after interface changes.
11522         * genattrtab.c (insn_code_number): Delete.
11523         (optimize_attrs): Add a max_insn_code parameter and use it instead
11524         of insn_code_number.
11525         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
11526         Use *_at rather than *_with_line functions.
11527         (gen_insn): Likewise.
11528         (gen_delay): Likewise.
11529         (gen_insn_reserv): Likewise.
11530         (gen_bypass): Take an md_rtx_info rather than an rtx.
11531         (main): Update after interface changes.  Use a local max_insn_code
11532         variable instead of insn_code_number.
11533         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
11534         an rtx.  Use fatal_at rather than fatal.
11535         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
11536         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
11537         (gen_absence_set, gen_final_absence_set, gen_automaton)
11538         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
11539         (main): Update after interface changes.
11540         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
11541         and code number.
11542         (main): Update after interface changes.
11543         * genconditions.c (main): Use new read_md_rtx interface.
11544         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
11545         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
11546         (main): Update after interface changes.
11547         * genemit.c (insn_code_number, insn_index_number): Delete.
11548         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
11549         Use fatal_at rather than fatal.
11550         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
11551         rather than fatal.
11552         (gen_split): Likewise.
11553         (main): Update after interface changes.
11554         * genextract.c (line_no): Delete.
11555         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
11556         Update call to walk_rtx.
11557         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
11558         rather than message_with_line.
11559         (walk_rtx): Add an md_rtx_info argument.  Update call to
11560         VEC_safe_set_locstr.
11561         (main): Update after interface changes.
11562         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
11563         and lineno.  Use error_at rather than separate message_with_line
11564         calls and have_error assignments.
11565         (main): Update after interface changes.
11566         * genmddump.c (main): Use new read_md_rtx interface.
11567         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
11568         (main): Update after interface changes.
11569         * genoutput.c (next_code_number): Delete.
11570         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
11571         (gen_peephole, gen_expand, gen_split): Likewise.
11572         (note_constraint): Likewise.  Use *_at rather than *_with_line
11573         functions.
11574         (main): Update after interface changes.
11575         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
11576         rtx and lineno.
11577         (main): Update after interface changes.
11578         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
11579         than an rtx and lineno.
11580         (process_define_constraint): Likewise.
11581         (process_define_register_constraint): Likewise.
11582         (main): Update after interface changes.
11583         * genrecog.c (next_insn_code, pattern_lineno): Delete.
11584         (validate_pattern): Replace top-level rtx with an md_rtx_info.
11585         Use *_at rather than *_with_line functions.
11586         (match_pattern_2): Likewise.
11587         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
11588         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
11589         Use *_at rather than *_with_line functions.
11590         * gentarget-def.c (add_insn): New function.
11591         (main): Use it.  Use new read_md_rtx interface.
11592
11593 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11594
11595         * gensupport.h (compute_test_codes): Take a file_location rather
11596         than a line number.
11597         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
11598         rather than *_with_line functions.
11599         (process_define_predicate): Update call to compute_test_codes.
11600         * genpreds.c (validate_exp): Take a file_location rather than a
11601         line number.  Use *_at functions rather than *_with_line functions.
11602         (process_define_predicate): Update call to validate_exp.
11603         (constraint_data): Replace lineno field with a file_location.
11604         (add_constraint): Take a file_location rather than a line number.
11605         Use *_at functions rather than *_with_line functions.  Fix error
11606         message for address constraints.  Update after changes to
11607         validate_exp, constraint_data and compute_test_codes.
11608         (process_define_constraint): Update accordingly.
11609         (process_define_register_constraint): Likewise.
11610
11611 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11612
11613         * genoutput.c (data): Use a file_location to record the source
11614         position.
11615         (nothing): Delete.
11616         (idata, idata_end): Remove initialization.
11617         (constraint_data): Replace lineno with a file_location.
11618         (output_insn_data): Update after changes to data.
11619         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
11620         (scan_operands): Likewise, using *_at rather than *_with_line
11621         functions.
11622         (process_template): Likewise.
11623         (validate_insn_alternatives): Likewise.
11624         (validate_insn_operands): Likewise.
11625         (validate_optab_operands): Likewise.
11626         (init_insn_for_nothing): Initialize idata and idata_end.
11627         (note_constraint): Update after changes to constraint_data,
11628         using at rather than with_line functions.
11629         (mdep_constraint_len): Take a file_location rather than a
11630         line number.  Use at rather than with_line functions.
11631
11632 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11633
11634         * read-md.h (fatal_at): Declare.
11635         * read-md.c (fatal_at): New function.
11636         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
11637         to record the source position.
11638         (check_attr_test): Take a file_location instead of a line number.
11639         Use fatal_at instead of fatal.
11640         (check_attr_value): Update after above changes, using "at"
11641         rather than "with_line" reporting functions.
11642         (convert_set_attr_alternative): Likewise.
11643         (gen_attr): Likewise.
11644         (check_defs): Likewise.  Don't assign to read_md_filename.
11645         (gen_insn): Update initialization after above changes.
11646         (gen_delay): Likewise.
11647         (write_insn_cases): Print the filename for a define_peephole.
11648         (gen_insn_reserv): Take a line number as argument and update
11649         the call to check_attr_test.
11650         (main): Pass a line number to gen_insn_reserv.
11651
11652 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11653
11654         * read-md.h (file_location): New structure.
11655         (directive_handler_t): Take a file_location rather than a line number.
11656         (message_at, error_at): Declare.
11657         (read_skip_construct): Delete.
11658         * read-md.c (message_with_line_1): Replace with...
11659         (message_at_1): ...this new function.
11660         (message_at, error_at): New functions.
11661         (message_with_line, error_with_line): Update to use message_at_1.
11662         (handle_enum): Take a file_location rather than a line number
11663         and use error_at for error reporting.
11664         (handle_include): Likewise.
11665         (read_skip_construct): Likewise.  Make static.
11666         (handle_file): Update after above changes.  Pass a file_location
11667         rather than a line number to handle_directive.
11668         * gensupport.c (queue_elem): Replace separate filename and lineno
11669         with a file_location.
11670         (queue_pattern): Replace filename and lineno arguments with a
11671         file_location.  Update after change to queue_elem.
11672         (process_define_predicate): Replace lineno argument with a
11673         file_location and use error_at for error reporting.  Update
11674         after above changes.
11675         (process_rtx): Likewise.
11676         (subst_pattern_match): Likewise.
11677         (get_alternatives_number): Likewise.
11678         (alter_predicate_for_insn): Likewise.
11679         (rtx_handle_directive): Likewise.
11680         (is_predicable): Update after above changes, using error_at rather
11681         than error_with_line.
11682         (has_subst_attribute): Likewise.
11683         (identify_predicable_attribute): Likewise.
11684         (alter_attrs_for_subst_insn): Likewise.
11685         (process_one_cond_exec): Likewise.
11686         (process_substs_on_one_elem): Likewise.
11687         (process_define_subst): Likewise.
11688         (check_define_attr_duplicates): Likewise.
11689         (read_md_rtx): Update after change to queue_elem.
11690
11691 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11692
11693         * genoutput.c (next_index_number): Delete.
11694         (data): Remove index_number.
11695         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
11696         (main): Remove manipulation of next_index_number.
11697
11698 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11699
11700         * genattrtab.c (check_attr_value): Remove handling of null attrs.
11701         (make_canonical): Likewise.
11702
11703 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
11704
11705         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
11706         instead of adjust_address_nv.
11707         (restore_stack_nonlocal): Likewise.
11708         (nonlocal_goto): Likewise.
11709
11710 2015-07-16  Tom de Vries  <tom@codesourcery.com>
11711
11712         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
11713         not have a corresponding loop header phi.
11714
11715 2015-07-16  Tom de Vries  <tom@codesourcery.com>
11716
11717         * tree-parloops.c (create_loads_for_reductions): Handle case that
11718         reduction is unused.
11719
11720 2015-07-16  Richard Biener  <rguenther@suse.de>
11721
11722         PR tree-optimization/66894
11723         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
11724         about deriving NE_EXPR from truncated values.
11725
11726 2015-07-16  Martin Liska  <mliska@suse.cz>
11727
11728         * alloc-pool.h
11729         (object_allocator): Add new class.
11730         (pool_allocator::initialize): Use the underlying class.
11731         (pool_allocator::allocate): Likewise.
11732         (pool_allocator::remove): Likewise.
11733         (operator new): A new generic allocator.
11734         * asan.c (struct asan_mem_ref): Remove unused members.
11735         (asan_mem_ref_new): Replace new operator with
11736         object_allocator::allocate.
11737         (free_mem_ref_resources): Change deallocation.
11738         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
11739         with object_allocator.
11740         * config/sh/sh.c (add_constant): Replace new operator with
11741         object_allocator::allocate.
11742         (sh_reorg): Change call to a release method.
11743         * cselib.c (struct elt_list): Remove unused members.
11744         (new_elt_list): Replace new operator with
11745         object_allocator::allocate.
11746         (new_elt_loc_list): Likewise.
11747         (new_cselib_val): Likewise.
11748         (unchain_one_elt_list): Change delete operator with remove method.
11749         (unchain_one_elt_loc_list): Likewise.
11750         (unchain_one_value): Likewise.
11751         (cselib_finish): Release newly added static allocators.
11752         * cselib.h (struct cselib_val): Remove unused members.
11753         (struct elt_loc_list): Likewise.
11754         * df-problems.c (df_chain_alloc): Replace pool_allocator with
11755         object_allocator.
11756         * df-scan.c (struct df_scan_problem_data): Likewise.
11757         (df_scan_alloc): Likewise.
11758         * df.h (struct dataflow): Likewise.
11759         * dse.c (struct read_info_type): Likewise.
11760         (struct insn_info_type): Likewise.
11761         (struct dse_bb_info_type): Likewise.
11762         (struct group_info): Likewise.
11763         (struct deferred_change): Likewise.
11764         (get_group_info): Likewise.
11765         (delete_dead_store_insn): Likewise.
11766         (free_read_records): Likewise.
11767         (replace_read): Likewise.
11768         (check_mem_read_rtx): Likewise.
11769         (scan_insn): Likewise.
11770         (dse_step1): Likewise.
11771         (dse_step7): Likewise.
11772         * et-forest.c (struct et_occ): Remove unused members.
11773         (et_new_occ): Use allocate instead of new operator.
11774         (et_new_tree): Likewise.
11775         (et_free_tree): Call release method explicitly.
11776         (et_free_tree_force): Likewise.
11777         (et_free_pools): Likewise.
11778         (et_split): Use remove instead of delete operator.
11779         * et-forest.h (struct et_node): Remove unused members.
11780         * ipa-cp.c: Change pool_allocator to object_allocator.
11781         * ipa-inline-analysis.c: Likewise.
11782         * ipa-profile.c: Likewise.
11783         * ipa-prop.c: Likewise.
11784         * ipa-prop.h: Likewise.
11785         * ira-build.c (initiate_cost_vectors): Cast return value.
11786         (ira_allocate_cost_vector): Likewise.
11787         * ira-color.c (struct update_cost_record): Remove unused members.
11788         * lra-int.h (struct lra_live_range): Likewise.
11789         (struct lra_copy): Likewise.
11790         (struct lra_insn_reg): Likewise.
11791         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
11792         * lra.c (new_insn_reg): Replace new operator with allocate method.
11793         (free_insn_regs): Same for operator delete.
11794         (finish_insn_regs): Release new static allocator.
11795         (finish_insn_recog_data): Likewise.
11796         (lra_free_copies): Replace delete operator with remove method.
11797         (lra_create_copy): Replace operator new with allocate method.
11798         (invalidate_insn_data_regno_info): Same for remove method.
11799         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
11800         (free_debug_insn_changes): Replace delete operator with remove method.
11801         (replace_oldest_value_reg): Replace operator new with allocate method.
11802         (pass_cprop_hardreg::execute): Release new static variable.
11803         * sched-deps.c (sched_deps_init): Change pool_allocator to
11804         object_allocator.
11805         * sel-sched-ir.c: Likewise.
11806         * sel-sched-ir.h: Likewise.
11807         * stmt.c (expand_case): Likewise.
11808         (expand_sjlj_dispatch_table): Likewise.
11809         * tree-sra.c (struct access): Remove unused members.
11810         (struct assign_link): Likewise.
11811         (sra_deinitialize): Release newly added static pools.
11812         (create_access_1):Replace operator new with allocate method.
11813         (build_accesses_from_assign): Likewise.
11814         (create_artificial_child_access): Likewise.
11815         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
11816         pool_allocator to object_allocator.
11817         * tree-ssa-pre.c: Likewise.
11818         * tree-ssa-reassoc.c: Likewise.
11819         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
11820         * tree-ssa-strlen.c: Likewise.
11821         * tree-ssa-structalias.c: Likewise.
11822         * var-tracking.c (onepart_pool_allocate): New function.
11823         (unshare_variable): Use the newly added function.
11824         (variable_merge_over_cur): Likewise.
11825         (variable_from_dropped): Likewise.
11826         (variable_was_changed): Likewise.
11827         (set_slot_part): Likewise.
11828         (emit_notes_for_differences_1): Likewise.
11829         (vt_finalize): Release newly added static pools.
11830
11831 2015-07-16  Martin Jambor  <mjambor@suse.cz>
11832
11833         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
11834         all uses.  Fix two typos in its general comment.
11835         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
11836
11837 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
11838
11839         * config/i386/linux-common.h (LINK_MPX): New.
11840         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
11841         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
11842         indicating '-z bndplt' support by linker.
11843         * configure: Regenerate.
11844         * config.in: Regenerate.
11845
11846 2015-07-16  Richard Biener  <rguenther@suse.de>
11847
11848         * fold-const.c (fold_widened_comparison): Remove.
11849         (fold_sign_changed_comparison): Likewise.
11850         (fold_comparison): Move widened and sign-changed comparison
11851         simplification ...
11852         * match.pd: ... to patterns here.
11853         * generic-match-head.c: Include target.h.
11854         * gimple-match-head.c: Likewise.
11855
11856 2015-07-16  Richard Biener  <rguenther@suse.de>
11857
11858         * tree-ssa-dom.c (dom_valueize): New function.
11859         (record_temporary_equivalences): Also record equivalences
11860         for dominating stmts that have uses of equivalences we are
11861         about to record.
11862
11863 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
11864
11865         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
11866         add_autoinc_candidates.
11867         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
11868         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
11869         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
11870         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
11871         Call new function.
11872         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
11873         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
11874         Remove parameter struct iv*.  Call add_autoinc_candidates here.
11875         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
11876         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
11877         Call new function.
11878         (find_iv_candidates): Call new functions.
11879
11880 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
11881
11882         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
11883         uninitialized-variable warning.
11884
11885 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
11886
11887         PR target/65249
11888         * config/sh/sh.md (movdi): Split simple reg move to two movsi
11889         when the destination is R0.
11890
11891 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
11892
11893         PR target/66866
11894         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
11895         * config/i386/i386.c (ix86_expand_pextr): New function.
11896         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
11897         for non-lowpart subregs.
11898         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
11899         (insv<mode>): Use SWI248 mode iterator.
11900         (insv<mode>_1): Ditto.
11901
11902 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
11903             Sebastian Pop  <s.pop@samsung.com>
11904
11905         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
11906         iterator to use_stmt.
11907
11908 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
11909             Sebastian Pop <s.pop@samsung.com>
11910
11911         * graphite-scop-detection.c (build_scops_1): Discard scops for
11912         which entry==exit.
11913
11914 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
11915             Sebastian Pop <s.pop@samsung.com>
11916
11917         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
11918         case of a return statement in scop.
11919
11920 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
11921             Sebastian Pop <s.pop@samsung.com>
11922
11923         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
11924         INTEGER_TYPE parameters.
11925         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
11926         VECTOR_CST in scan_tree_for_params.
11927         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
11928
11929 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
11930
11931         * gimple-pretty-print.h: Don't include pretty-print.h.
11932         * tree-streamer.h: Don't include lto-streamer.h.
11933         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
11934         * gimple-streamer-in.c: Remove redundant includes.
11935         * gimple-streamer-out.c: Likewise.
11936         * ipa-devirt.c: Likewise.
11937         * ipa-icf.c: Likewise.
11938         * ipa-inline-analysis.c: Likewise.
11939         * ipa-polymorphic-call.c: Likewise.
11940         * ipa-profile.c: Likewise.
11941         * ipa-prop.c: Likewise.
11942         * ipa-pure-const.c: Likewise.
11943         * lto-cgraph.c: Likewise.
11944         * lto-streamer-in.c: Likewise.
11945         * lto-streamer-out.c: Likewise.
11946         * lto-streamer.c: Likewise.
11947         * tree-streamer-in.c: Likewise.
11948         * tree-streamer-out.c: Likewise.
11949         * tree-streamer.c: Likewise.
11950
11951 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
11952
11953         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
11954         include input.h.
11955         * opts.c: Remove multiline #include comment.
11956
11957 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
11958
11959         * config/nvptx/mkoffload.c (process): Add C++ protection to
11960         emitted code.
11961
11962 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11963
11964         PR target/66854
11965         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
11966         null before IEEE 128-bit floating point support patch.
11967
11968 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11969
11970         * simplify-rtx.c (simplify_ternary_operation): Add simplification
11971         for (!c) != {0,...,0} ? a : b for vector modes.
11972
11973 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
11974             Martin Jambor  <mjambor@suse.cz>
11975
11976         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
11977         struct func_body_info* instead of struct ipa_node_params*, expecting
11978         fbi->info to be filled in.  Replace throughout.  Adjust call to
11979         ipa_load_from_parm_agg.
11980         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
11981         instead of struct ipa_node_params*.  Adjust calls to other functions
11982         so that they pass either fbi or fbi->info.
11983         (set_switch_stmt_execution_predicate): Likewise.
11984         (will_be_nonconstant_predicate): Likewise.
11985         (compute_bb_predicates): Likewise.
11986         (estimate_function_body_sizes): Move asserts earlier.  Fill in
11987         struct func_body_info, replace parms_info with fbi.info.  Adjust
11988         calls to functions that now accept struct func_body_info.
11989         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
11990         (struct func_body_info): Likewise.
11991         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
11992         remove static.  Adjust callers.
11993         (ipa_load_from_parm_agg): Remove.
11994         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
11995         (func_body_info): Likewise.
11996         (ipa_load_from_parm_agg): Adjust prototype.
11997
11998 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11999
12000         * gensupport.c (rtx_handle_directive): Adjust.
12001         * read-rtl.c (apply_iterators): Take vector to add rtxs to
12002         instead of expr list rtx.
12003         (add_define_attr_for_define_subst): Likewise.
12004         (add_define_subst_attr): Likewise.
12005         (read_subst_mapping): Likewise.
12006         (read_rtx): Likewise.
12007         * rtl.h (read_rtx): Adjust.
12008
12009 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12010
12011         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
12012
12013 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12014
12015         PR target/58066
12016         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
12017         (*tls_local_dynamic_base_64_<mode>): Ditto.
12018         (*tls_local_dynamic_base_64_largepic): Ditto.
12019         (tls_global_dynamic_64_<mode>): Update expander pattern.
12020         (tls_local_dynamic_base_64_<mode>): Ditto.
12021
12022 2015-07-15  Richard Biener  <rguenther@suse.de>
12023
12024         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
12025         and bool_var == 1 -> bool_var simplifications ...
12026         * match.pd: ... to patterns here.  Factor out negate_expr_p
12027         cases from the A - B -> A + (-B) patterns as negate_expr_p
12028         predicate and add a -(A + B) -> (-B) - A pattern.
12029
12030 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
12031
12032         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
12033
12034 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
12035             Robert Suchanek  <robert.suchanek@imgtec.com>
12036
12037         * config/mips/mips.c (mips_int_mask): New enum.
12038         (mips_shadow_set): Likewise.
12039         (int_mask): New variable.
12040         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
12041         (machine_function): Add int_mask and use_shadow_register_set.
12042         (mips_attribute_table): Add attribute handlers for interrupt and
12043         use_shadow_register_set.
12044         (mips_interrupt_mask): New static function.
12045         (mips_handle_interrupt_attr): Likewise.
12046         (mips_handle_use_shadow_register_set_attr): Likewise.
12047         (mips_use_shadow_register_set): Change return type to enum
12048         mips_shadow_set.  Add argument handling for use_shadow_register_set
12049         attribute.
12050         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
12051         compare with mips_shadow_set enum.
12052         (mips_compute_frame_info): Add interrupt mask and
12053         use_shadow_register_set to per-function information structure.
12054         Add a stack slot for EPC unconditionally.
12055         (mips_expand_prologue): Compare use_shadow_register_set value
12056         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
12057         masked interrupt register but in EIC mode use K0 and save Cause in K0.
12058         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
12059         copying the stack pointer from the shadow register set.
12060         * config/mips/mips.h (SR_IM0): New define.
12061         * config/mips/mips.md (mips_rdpgpr): Rename to...
12062         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
12063         * doc/extend.texi (Declaring Attributes of Functions): Document
12064         optional arguments for interrupt and use_shadow_register_set
12065         attributes.
12066
12067 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
12068
12069         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
12070         interrupt attribute.
12071         (mips_expand_prologue): Disable the floating point unit in an ISR.
12072         * config/mips/mips.h (SR_COP1): New define.
12073
12074 2015-07-15  Richard Biener  <rguenther@suse.de>
12075
12076         * genmatch.c (parser::peek, parser::peek_ident): Add argument
12077         to tell how many tokens to peek ahead (default 1).
12078         (parser::eat_token, parser::eat_ident): Return token consumed.
12079         (parser::parse_result): Parse new switch statement.
12080         * match.pd: Use case statements where appropriate.
12081
12082 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12083
12084         PR rtl-optimization/58066
12085         * calls.c (expand_call): Precompute register parameters before stack
12086         alignment is performed.
12087
12088 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12089
12090         PR rtl-optimization/66838
12091         * postreload.c (reload_cse_move2add): Also process
12092         CALL_INSN_FUNCTION_USAGE when resetting information of
12093         call-clobbered registers.
12094
12095 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12096             Cesar Philippidis  <cesar@codesourcery.com>
12097             Chung-Lin Tang  <cltang@codesourcery.com>
12098
12099         * config/nios2/constraints.md (U, v): New constraints.
12100         * config/nios2/predicates.md (rdprs_dcache_operand): New.
12101         (ldstex_memory_operand): New.
12102         * config/nios2/sync.md: New file.
12103         * config/nios2/nios2.md (unspecv): Add new builtin function
12104         UNSPECV codes.
12105         (rdprs, flushd, flushda, wrpie, eni): New patterns.
12106         (top-level): Include sync.md.
12107         * config/nios2/nios2.c (N2_FTYPES): Add function types for
12108         new builtins.
12109         (N2_BUILTINS): Add arch field setting, add new builtins.
12110         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
12111         for arch field.
12112         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
12113         Also handle ldex/stex/ldsex/stsex builtins.
12114         (nios2_expand_rdprs_builtin): New function.
12115         (nios2_expand_cache_builtin): New function.
12116         (nios2_expand_wrpie_builtin): New function.
12117         (nios2_expand_eni_builtin): New function.
12118         (nios2_expand_builtin): Add arch field handling and new builtin
12119         cases.
12120         * doc/extend.texi (Altera Nios II Built-in Functions): Document
12121         new builtins.
12122         * doc/md.texi (Machine Constraints): Document U and v constraints.
12123
12124 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12125             Cesar Philippidis  <cesar@codesourcery.com>
12126             Chung-Lin Tang  <cltang@codesourcery.com>
12127
12128         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
12129         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
12130         callee_save_reg_size and uses_anonymous_args fields.
12131         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
12132         (nios2_create_cfa_notes): New function.
12133         (nios2_adjust_stack): New function for adjusting stack.
12134         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
12135         Use nios2_adjust_stack.
12136         (nios2_expand_epilogue): Likewise.
12137         (nios2_expand_return): New function.
12138         (nios2_can_use_return_insn): Update for CDX pop.n usage.
12139         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
12140         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
12141         * config/nios2/nios2.md (return): Use nios2_expand_return.
12142
12143 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12144             Cesar Philippidis  <cesar@codesourcery.com>
12145             Chung-Lin Tang  <cltang@codesourcery.com>
12146
12147         * config/nios2/predicates.md (pop_operation): New.
12148         (ldwm_operation, stwm_operation): New.
12149         (nios2_hard_register_operand): New.
12150         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
12151         (ldstwm_operation_p): Declare.
12152         (gen_ldstwm_peep): Declare.
12153         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
12154         (base_reg_adjustment_p): New.
12155         (pop_operation_p): New.
12156         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
12157         (nios2_ldstwm_regset_p): New.
12158         (ldstwm_operation_p): New.
12159         (gen_ldst): New.
12160         (nios2_ldst_parallel): New.
12161         (struct ldswm_operand): Declare.
12162         (compare_ldstwm_operands): New.
12163         (can_use_cdx_ldstw): New.
12164         (gen_ldstwm_peep): New.
12165         * config/nios2/nios2-ldstwm.sml: New.
12166         * config/nios2/nios2.md: Include ldstwm.md.
12167         * config/nios2/ldstwm.md: Generated.
12168
12169 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12170             Cesar Philippidis  <cesar@codesourcery.com>
12171             Chung-Lin Tang  <cltang@codesourcery.com>
12172
12173         * config/nios2/nios2.h (LABEL_ALIGN): Define.
12174         (REG_ALLOC_ORDER): Define.
12175         (ADJUST_REG_ALLOC_ORDER): Define.
12176         (HONOR_REG_ALLOC_ORDER): Define.
12177         (CDX_REG_P): Define.
12178         (ANDCLEAR_INT): Define.
12179         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
12180         (nios2_label_align): Declare.
12181         (nios2_cdx_narrow_form_p): Declare.
12182         (nios2_adjust_reg_alloc_order): Declare.
12183         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
12184         operation.
12185         (nios2_large_unspec_reloc_p): New function, split from...
12186         (nios2_legitimate_pic_operand_p): ...here.
12187         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
12188         (nios2_print_operand_punct_valid_p): New.
12189         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
12190         (split_mem_address): New.
12191         (split_alu_insn): New.
12192         (cdxreg): New.
12193         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
12194         (enum nios2_add_insn_kind): New.
12195         (nios2_add_insn_names, nios2_add_insn_narrow): New.
12196         (nios2_add_insn_classify): New.
12197         (nios2_add_insn_asm): New.
12198         (nios2_cdx_narrow_form_p): New.
12199         (label_align, min_labelno, max_labelno): New.
12200         (nios2_reorg): New.
12201         (nios2_label_align): New.
12202         (nios2_adjust_reg_alloc_order): New.
12203         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12204         (TARGET_MACHINE_DEPENDENT_REORG): Define.
12205         * config/nios2/constraints.md (P): New constraint.
12206         * config/nios2/predicates.md (const_and_operand): New.
12207         (and_operand): New.
12208         (stack_memory_operand): New.
12209         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
12210         (length): Update to use nios2_cdx_narrow_form_p().
12211         (type): Add new insn type values.
12212         (control, alu, st, ld, shift): Update insn reservations with
12213         new insn type values.
12214         (*high, *lo_sum): Define new insn patterns for constant generation.
12215         (movqi_internal, movhi_internal, movsi_internal): Reduce
12216         alternatives, update asm template to handle CDX variants, update
12217         type attributes.
12218         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
12219         template, update type attributes.
12220         (extendhisi2, extendqi<mode>2): Likewise.
12221         (addsi3): Change to use function for asm string.
12222         (subsi3): Add CDX notation to asm template, update type attributes.
12223         (negsi3, one_cmplsi3): Likewise.
12224         (andsi3): New pattern, specialized from logical patterns.
12225         (<code>si3): Remove and case, combine alternatives, update asm
12226         template.
12227         (<shift_op>si3): Add CDX notation, update type attributes.
12228         (rotrsi3): Update type attribute.
12229         (*merge, extzv, insv): New insn patterns.
12230         (return): Change to define_expand.
12231         (simple_return): Add CDX notation, update type attributes.
12232         (indirect_jump): Add CDX notation.
12233         (jump): Update asm cases, update length attribute expression.
12234         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
12235         (nios2_cbranch): Update asm cases and length attribute expression
12236         to handle CDX variants.
12237         (nios2_cmp<code>): Update asm template.
12238         (nop): Add CDX notation, update type attributes.
12239         (trap): Add CDX notation.
12240         (ctrapsi4): Update asm cases and length attribute expression to
12241         handle CDX variant.
12242         * doc/md.texi (Machine Constraints): Document P constraint.
12243
12244 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12245             Cesar Philippidis  <cesar@codesourcery.com>
12246             Chung-Lin Tang  <cltang@codesourcery.com>
12247
12248         * config/nios2/nios2.h (SMALL_INT12): New macro.
12249         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
12250         (nios2_valid_addr_expr_p): Use it.
12251         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
12252         with implicit "io" instructions on R2.
12253         * config/nios2/constraints.md (w): New constraint.
12254         * config/nios2/predicates.md (ldstio_memory_operand): New.
12255         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
12256         operand predicate and constraint.
12257         (ld<bh>io_signed, st<bhw>io>): Likewise.
12258         * doc/md.texi (Machine Constraints): Document w constraint.
12259
12260 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12261             Cesar Philippidis  <cesar@codesourcery.com>
12262             Chung-Lin Tang  <cltang@codesourcery.com>
12263
12264         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
12265         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
12266         Nios II architecture level.
12267         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
12268         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
12269         (OPTION_DEFAULT_SPECS): Define.
12270         (ASM_SPEC): Add -march= spec strings.
12271         * config/nios2/nios2.c (nios2_option_override): Check for
12272         conflicts involving new options.
12273         * config.gcc (nios2*-*-*): Support --with-arch=.
12274         * doc/invoke.texi (Option Summary, Nios II Options): Document
12275         -march=, -mbmx, and -mcdx.
12276
12277 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
12278
12279         PR rtl-optimization/66626
12280         * lra-constraints.c (lra_constraints): Prevent equivalence
12281         substitution for static chain pseudo in functions with nonlocal
12282         goto.
12283
12284 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12285
12286         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
12287         (nios2_emit_stack_limit_check): Add size parameter.  Handle
12288         -fstack-limit-symbol as well as -fstack-limit-register.
12289         (nios2_expand_prologue): Emit only a single stack limit check,
12290         even if multiple stack adjustments are required.
12291         (nios2_option_override): Diagnose unsupported combination of -fpic
12292         and -stack-limit-symbol.
12293
12294 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
12295
12296         * Makefile.in (top_srcdir): New.
12297         * configure.ac: Use AM_ZLIB.
12298         * configure: Regeneated.
12299
12300 2015-07-14  Matthias Klose  <doko@ubuntu.com>
12301
12302         PR target/66840
12303         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
12304
12305 2015-07-14  Richard Biener  <rguenther@suse.de>
12306
12307         PR tree-optimization/66863
12308         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
12309         what we record for conversion use stmt lhs inequalities.
12310
12311 2015-07-14  Richard Biener  <rguenther@suse.de>
12312
12313         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
12314         (decision_tree::gen_gimple): Likewise.
12315
12316 2015-07-14  Tom de Vries  <tom@codesourcery.com>
12317
12318         * gcc.c (greater_than_spec_func): Declare forward.
12319         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
12320         -ftree-parallelize-loops={0,1}.
12321         (static_spec_functions): Add greater_than_spec_func function with name
12322         "gt".
12323         (greater_than_spec_func): New function.
12324
12325 2015-07-14  Richard Biener  <rguenther@suse.de>
12326
12327         * tree-ssa-dom.c (record_temporary_equivalences): Merge
12328         wideing type conversion case from record_equivalences_from_incoming_edge
12329         and use record_equality to record equivalences.
12330         (record_equivalences_from_incoming_edge): Call
12331         record_temporary_equivalences.
12332
12333 2015-07-14  Richard Biener  <rguenther@suse.de>
12334
12335         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
12336         (struct if_expr): New.
12337         (struct with_expr): Likewise.
12338         (is_a_helper): Add helpers for if_expr and with_expr.
12339         (struct simplify): Add simplify_kind enum and member.  Remove
12340         ifexpr_vec member.
12341         (simplify::simplify): Adjust.
12342         (lower_commutative): Adjust.
12343         (lower_opt_convert): Likewise.
12344         (lower_cond): Likewise.
12345         (replace_id): Handle with_expr and if_expr.
12346         (lower_for): Adjust.
12347         (dt_simplify::gen_1): New recursive worker, split out from ...
12348         (dt_simplify::gen): ... here.  Deal with if and with expansion
12349         recursively.
12350         (capture_info::capture_info): Take context argument
12351         (capture_info::walk_result): Only analyze specific result.
12352         (parser::parse_result): New function.
12353         (parser::parse_simplify): Adjust to parse ifs with then end
12354         else case.
12355         (parser::parse_if): Simplify.
12356         (parser::parse_pattern): Pass down simplify kind.
12357         * match.pd: Convert if structure to new syntax.
12358
12359 2015-07-13  Marek Polacek  <polacek@redhat.com>
12360
12361         * rtl.c (rtx_equal_p_cb): Fix typo.
12362
12363 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
12364
12365         * omega.h: Don't include config.h, don't include params.h again if
12366         omega.h has already been included.
12367         * graphite-poly.h: Include sese.h.
12368         * graphite.c: Don't include sese.h, remove needless includes and
12369         minimize includes outside #ifdef HAVE_isl block.
12370         * graphite-blocking.c: Don't include sese.h, remove needless includes,
12371         and wrap entire file in #ifdef HAVE_isl
12372         * graphite-dependences.c: Likewise.
12373         * graphite-interchange.c: Likewise.
12374         * graphite-isl-ast-to-gimple.c: Likewise.
12375         * graphite-optimize-isl.c: Likewise.
12376         * graphite-poly.c: Likewise.
12377         * graphite-scop-detection.c: Likewise.
12378         * graphite-sese-to-poly.c: Likewise.
12379
12380 2015-07-13  Tom de Vries  <tom@codesourcery.com>
12381
12382         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
12383
12384 2015-07-13  Renlin Li  <renlin.li@arm.com>
12385
12386         PR rtl/66556
12387         * simplify-rtx.c (simplify_const_relational_operation): Add
12388         side_effects_p checks.
12389
12390 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
12391
12392         * bitmap.h: Fix double word typos.
12393         * builtins.c: Same.
12394         * calls.c: Same.
12395         * cfgloopmanip.c: Same.
12396         * cgraph.c: Same.
12397         * cgraph.h: Same.
12398         * cgraphclones.c: Same.
12399         * combine.c: Same.
12400         * config/aarch64/aarch64-protos.h: Same.
12401         * config/aarch64/aarch64.c: Same.
12402         * config/aarch64/aarch64.md: Same.
12403         * config/arm/arm.md: Same.
12404         * config/arm/arm1020e.md: Same.
12405         * config/arm/arm1026ejs.md: Same.
12406         * config/arm/arm926ejs.md: Same.
12407         * config/arm/fa526.md: Same.
12408         * config/arm/fa606te.md: Same.
12409         * config/arm/fa626te.md: Same.
12410         * config/arm/fa726te.md: Same.
12411         * config/arm/fmp626.md: Same.
12412         * config/darwin.c: Same.
12413         * config/epiphany/epiphany.c: Same.
12414         * config/frv/frv.c: Same.
12415         * config/ft32/ft32.c: Same.
12416         * config/gnu-user.h: Same.
12417         * config/h8300/constraints.md: Same.
12418         * config/i386/i386.c: Same.
12419         * config/i386/i386.md: Same.
12420         * config/iq2000/iq2000.md: Same.
12421         * config/mips/mips.c: Same.
12422         * config/mmix/mmix.md: Same.
12423         * config/moxie/moxie.c: Same.
12424         * config/nds32/nds32.md: Same.
12425         * config/pa/pa.h: Same.
12426         * config/rs6000/aix.h: Same.
12427         * config/rs6000/rs6000.h: Same.
12428         * config/sh/sh.c: Same.
12429         * config/tilegx/tilegx.md: Same.
12430         * config/tilepro/gen-mul-tables.cc: Same.
12431         * cse.c: Same.
12432         * dbxout.c: Same.
12433         * doc/invoke.texi: Same.
12434         * dse.c: Same.
12435         * dwarf2out.c: Same.
12436         * final.c: Same.
12437         * gcc.c: Same.
12438         * genmatch.c: Same.
12439         * gimplify.c: Same.
12440         * hash-table.h: Same.
12441         * internal-fn.c: Same.
12442         * ipa-cp.c: Same.
12443         * ipa-devirt.c: Same.
12444         * ipa-icf.c: Same.
12445         * ipa-icf.h: Same.
12446         * ipa-profile.c: Same.
12447         * ipa-prop.c: Same.
12448         * ipa-prop.h: Same.
12449         * ira.c: Same.
12450         * omp-low.c: Same.
12451         * reg-stack.c: Same.
12452         * regcprop.c: Same.
12453         * reorg.c: Same.
12454         * rtl.h: Same.
12455         * sbitmap.h: Same.
12456         * tree-eh.c: Same.
12457         * tree-inline.c: Same.
12458         * tree-sra.c: Same.
12459         * tree-ssa-dom.c: Same.
12460         * tree-ssa-loop-ivopts.c: Same.
12461         * tree-ssa-structalias.c: Same.
12462         * tree-ssa-tail-merge.c: Same.
12463         * tree-ssa-ter.c: Same.
12464         * tree-ssa-threadupdate.c: Same.
12465         * tree-ssa-uninit.c: Same.
12466         * tree-ssanames.c: Same.
12467         * tree-vect-loop-manip.c: Same.
12468         * tree-vrp.c: Same.
12469         * tree.c: Same.
12470         * valtrack.c: Same.
12471         * vec.h: Same.
12472
12473 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12474
12475         PR middle-end/66726
12476         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
12477         tree_ssa_phiopt_worker): Call it.
12478
12479 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12480
12481         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
12482         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
12483         REG_EQUAL note.
12484
12485 2015-07-11  Marek Polacek  <polacek@redhat.com>
12486
12487         PR middle-end/66353
12488         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
12489         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
12490         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
12491         rather than bb_has_abnormal_call_pred.
12492         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
12493         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
12494         rather than bb_has_abnormal_call_pred.
12495
12496 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
12497
12498         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
12499         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
12500         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
12501         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
12502         v850_legitimate_address_p): New functions.
12503         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
12504
12505 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
12506
12507         PR target/66819
12508         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
12509         indirect sibcall with register arguments if register available
12510         for argument passing.
12511         (init_cumulative_args): Set cfun->machine->arg_reg_available
12512         to (cum->nregs > 0) or to true if function has a variable
12513         argument list.
12514         (function_arg_advance_32): Set cfun->machine->arg_reg_available
12515         to false if cum->nregs <= 0.
12516         * config/i386/i386.h (machine_function): Add arg_reg_available.
12517
12518 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
12519
12520         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
12521         and gen_higpart instead of gen_rtx_SUBREG.
12522         * config/i386/i386.md
12523         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
12524         (read-modify peephole2): Use gen_lowpart instead of
12525         gen_rtx_SUBREG for operand 5.
12526
12527 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
12528
12529         * config/tilepro/gen-mul-tables.cc (main): Change include list for
12530         generated files.
12531         * config/tilepro/mul-tables.c: Regenerate.
12532         * config/tilegx/mul-tables.c: Regenerate.
12533
12534 2015-07-10  Richard Biener  <rguenther@suse.de>
12535
12536         * fold-const.c (distribute_bit_expr): Remove.
12537         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
12538         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
12539         to A & (B | C) and simplifying A << C1 << C2 to ...
12540         * match.pd: ... patterns here.
12541
12542 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
12543
12544         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
12545         Mark mem as READONLY and NOTRAP for PIC symbol.
12546
12547 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
12548
12549         * gimple-predict.h: New file.
12550         (gimple_predict_predictor, gimple_predict_set_predictor,
12551         gimple_predict_outcome, gimple_predict_set_outcome,
12552         gimple_build_predict): Relocate here.
12553         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
12554         gimple_predict_outcome, gimple_predict_set_outcome): Move to
12555         gimple-predict.h.
12556         * gimple.c (gimple_build_predict): Move to gimple-predict.h
12557         * basic-block.h: Don't include cfghooks.h.
12558         * backend.h: Don't include predict.h.
12559         * cfghooks.h: Include predict.h.
12560         * gimple-pretty-print.c: Include gimple-predict.h.
12561         * gimplify.c: Likwise.
12562         * predict.c: Adjust includes.
12563         * tree-inline.c: Likewise.
12564         * asan.c: Likewise.
12565         * auto-inc-dec.c: Likewise.
12566         * auto-profile.c: Likewise.
12567         * bb-reorder.c: Likewise.
12568         * builtins.c: Likewise.
12569         * caller-save.c: Likewise.
12570         * calls.c: Likewise.
12571         * cfganal.c: Likewise.
12572         * cfgbuild.c: Likewise.
12573         * cfg.c: Likewise.
12574         * cfgcleanup.c: Likewise.
12575         * cfgexpand.c: Likewise.
12576         * cfghooks.c: Likewise.
12577         * cfgloopanal.c: Likewise.
12578         * cfgloop.c: Likewise.
12579         * cfgloopmanip.c: Likewise.
12580         * cfgrtl.c: Likewise.
12581         * cgraph.c: Likewise.
12582         * cgraphunit.c: Likewise.
12583         * combine.c: Likewise.
12584         * cprop.c: Likewise.
12585         * cse.c: Likewise.
12586         * dce.c: Likewise.
12587         * dojump.c: Likewise.
12588         * dse.c: Likewise.
12589         * except.c: Likewise.
12590         * expmed.c: Likewise.
12591         * expr.c: Likewise.
12592         * final.c: Likewise.
12593         * fold-const.c: Likewise.
12594         * function.c: Likewise.
12595         * fwprop.c: Likewise.
12596         * gcc-plugin.h: Likewise.
12597         * gcse.c: Likewise.
12598         * genattrtab.c: Likewise.
12599         * genemit.c: Likewise.
12600         * gengtype.c: Likewise.
12601         * genopinit.c: Likewise.
12602         * genoutput.c: Likewise.
12603         * genpreds.c: Likewise.
12604         * genrecog.c: Likewise.
12605         * gimple-fold.c: Likewise.
12606         * gimple-iterator.c: Likewise.
12607         * gimple-ssa-isolate-paths.c: Likewise.
12608         * gimple-ssa-strength-reduction.c: Likewise.
12609         * graph.c: Likewise.
12610         * graphite-blocking.c: Likewise.
12611         * graphite.c: Likewise.
12612         * graphite-dependences.c: Likewise.
12613         * graphite-interchange.c: Likewise.
12614         * graphite-isl-ast-to-gimple.c: Likewise.
12615         * graphite-optimize-isl.c: Likewise.
12616         * graphite-poly.c: Likewise.
12617         * graphite-scop-detection.c: Likewise.
12618         * graphite-sese-to-poly.c: Likewise.
12619         * haifa-sched.c: Likewise.
12620         * ifcvt.c: Likewise.
12621         * internal-fn.c: Likewise.
12622         * ipa-cp.c: Likewise.
12623         * ipa-profile.c: Likewise.
12624         * ipa-split.c: Likewise.
12625         * ipa-utils.c: Likewise.
12626         * ira-build.c: Likewise.
12627         * ira-color.c: Likewise.
12628         * ira-conflicts.c: Likewise.
12629         * ira-costs.c: Likewise.
12630         * ira-emit.c: Likewise.
12631         * ira-lives.c: Likewise.
12632         * jump.c: Likewise.
12633         * loop-doloop.c: Likewise.
12634         * loop-init.c: Likewise.
12635         * loop-invariant.c: Likewise.
12636         * loop-unroll.c: Likewise.
12637         * lower-subreg.c: Likewise.
12638         * lra-assigns.c: Likewise.
12639         * lra.c: Likewise.
12640         * lra-coalesce.c: Likewise.
12641         * lra-constraints.c: Likewise.
12642         * lra-lives.c: Likewise.
12643         * lto-cgraph.c: Likewise.
12644         * lto-streamer-in.c: Likewise.
12645         * mode-switching.c: Likewise.
12646         * modulo-sched.c: Likewise.
12647         * omp-low.c: Likewise.
12648         * optabs.c: Likewise.
12649         * passes.c: Likewise.
12650         * postreload.c: Likewise.
12651         * postreload-gcse.c: Likewise.
12652         * profile.c: Likewise.
12653         * recog.c: Likewise.
12654         * regstat.c: Likewise.
12655         * reload1.c: Likewise.
12656         * reorg.c: Likewise.
12657         * rtlanal.c: Likewise.
12658         * sched-ebb.c: Likewise.
12659         * sel-sched-ir.c: Likewise.
12660         * sese.c: Likewise.
12661         * shrink-wrap.c: Likewise.
12662         * simplify-rtx.c: Likewise.
12663         * stmt.c: Likewise.
12664         * store-motion.c: Likewise.
12665         * tracer.c: Likewise.
12666         * trans-mem.c: Likewise.
12667         * tree-call-cdce.c: Likewise.
12668         * tree-cfg.c: Likewise.
12669         * tree-cfgcleanup.c: Likewise.
12670         * tree-chkp.c: Likewise.
12671         * tree-complex.c: Likewise.
12672         * tree-eh.c: Likewise.
12673         * tree-if-conv.c: Likewise.
12674         * tree-loop-distribution.c: Likewise.
12675         * tree-outof-ssa.c: Likewise.
12676         * tree-parloops.c: Likewise.
12677         * tree-predcom.c: Likewise.
12678         * tree-pretty-print.c: Likewise.
12679         * tree-profile.c: Likewise.
12680         * tree-sra.c: Likewise.
12681         * tree-ssa.c: Likewise.
12682         * tree-ssa-coalesce.c: Likewise.
12683         * tree-ssa-dce.c: Likewise.
12684         * tree-ssa-dom.c: Likewise.
12685         * tree-ssa-forwprop.c: Likewise.
12686         * tree-ssa-ifcombine.c: Likewise.
12687         * tree-ssa-loop-ch.c: Likewise.
12688         * tree-ssa-loop-im.c: Likewise.
12689         * tree-ssa-loop-ivcanon.c: Likewise.
12690         * tree-ssa-loop-ivopts.c: Likewise.
12691         * tree-ssa-loop-manip.c: Likewise.
12692         * tree-ssa-loop-prefetch.c: Likewise.
12693         * tree-ssa-loop-unswitch.c: Likewise.
12694         * tree-ssa-math-opts.c: Likewise.
12695         * tree-ssa-phiopt.c: Likewise.
12696         * tree-ssa-pre.c: Likewise.
12697         * tree-ssa-reassoc.c: Likewise.
12698         * tree-ssa-sink.c: Likewise.
12699         * tree-ssa-tail-merge.c: Likewise.
12700         * tree-ssa-threadedge.c: Likewise.
12701         * tree-ssa-threadupdate.c: Likewise.
12702         * tree-switch-conversion.c: Likewise.
12703         * tree-tailcall.c: Likewise.
12704         * tree-vect-data-refs.c: Likewise.
12705         * tree-vect-loop.c: Likewise.
12706         * tree-vect-loop-manip.c: Likewise.
12707         * tree-vectorizer.c: Likewise.
12708         * tree-vrp.c: Likewise.
12709         * ubsan.c: Likewise.
12710         * value-prof.c: Likewise.
12711         * varasm.c: Likewise.
12712         * var-tracking.c: Likewise.
12713         * config/aarch64/aarch64-builtins.c: Likewise.
12714         * config/aarch64/aarch64.c: Likewise.
12715         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
12716         * config/alpha/alpha.c: Likewise.
12717         * config/arc/arc.c: Likewise.
12718         * config/arm/arm.c: Likewise.
12719         * config/avr/avr.c: Likewise.
12720         * config/bfin/bfin.c: Likewise.
12721         * config/c6x/c6x.c: Likewise.
12722         * config/cr16/cr16.c: Likewise.
12723         * config/cris/cris.c: Likewise.
12724         * config/darwin.c: Likewise.
12725         * config/darwin-c.c: Likewise.
12726         * config/epiphany/epiphany.c: Likewise.
12727         * config/epiphany/mode-switch-use.c: Likewise.
12728         * config/epiphany/resolve-sw-modes.c: Likewise.
12729         * config/fr30/fr30.c: Likewise.
12730         * config/frv/frv.c: Likewise.
12731         * config/ft32/ft32.c: Likewise.
12732         * config/h8300/h8300.c: Likewise.
12733         * config/i386/i386.c: Likewise.
12734         * config/i386/winnt.c: Likewise.
12735         * config/ia64/ia64.c: Likewise.
12736         * config/iq2000/iq2000.c: Likewise.
12737         * config/lm32/lm32.c: Likewise.
12738         * config/m32c/m32c.c: Likewise.
12739         * config/m32r/m32r.c: Likewise.
12740         * config/m68k/m68k.c: Likewise.
12741         * config/mcore/mcore.c: Likewise.
12742         * config/mep/mep.c: Likewise.
12743         * config/microblaze/microblaze.c: Likewise.
12744         * config/mips/mips.c: Likewise.
12745         * config/mmix/mmix.c: Likewise.
12746         * config/mn10300/mn10300.c: Likewise.
12747         * config/moxie/moxie.c: Likewise.
12748         * config/msp430/msp430.c: Likewise.
12749         * config/nds32/nds32.c: Likewise.
12750         * config/nds32/nds32-cost.c: Likewise.
12751         * config/nds32/nds32-fp-as-gp.c: Likewise.
12752         * config/nds32/nds32-intrinsic.c: Likewise.
12753         * config/nds32/nds32-isr.c: Likewise.
12754         * config/nds32/nds32-md-auxiliary.c: Likewise.
12755         * config/nds32/nds32-memory-manipulation.c: Likewise.
12756         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
12757         * config/nds32/nds32-predicates.c: Likewise.
12758         * config/nios2/nios2.c: Likewise.
12759         * config/nvptx/nvptx.c: Likewise.
12760         * config/pa/pa.c: Likewise.
12761         * config/pdp11/pdp11.c: Likewise.
12762         * config/rl78/rl78.c: Likewise.
12763         * config/rs6000/rs6000.c: Likewise.
12764         * config/rx/rx.c: Likewise.
12765         * config/s390/s390.c: Likewise.
12766         * config/sh/sh.c: Likewise.
12767         * config/sh/sh-mem.cc: Likewise.
12768         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
12769         * config/sh/sh_treg_combine.cc: Likewise.
12770         * config/sparc/sparc.c: Likewise.
12771         * config/spu/spu.c: Likewise.
12772         * config/stormy16/stormy16.c: Likewise.
12773         * config/tilegx/tilegx.c: Likewise.
12774         * config/tilepro/tilepro.c: Likewise.
12775         * config/v850/v850.c: Likewise.
12776         * config/vax/vax.c: Likewise.
12777         * config/visium/visium.c: Likewise.
12778         * config/xtensa/xtensa.c: Likewise.
12779
12780 2015-07-10  Richard Biener  <rguenther@suse.de>
12781
12782         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
12783         (decision_tree::gen_gimple): Likewise.
12784         (decision_tree::gen_generic): Likewise.
12785
12786 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
12787
12788         PR target/66813
12789         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
12790         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
12791
12792 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
12793
12794         PR middle-end/66820
12795         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
12796         or ORT_TASK contexts.
12797         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
12798         is non-zero.
12799
12800 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12801
12802         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
12803         above function.
12804
12805 2015-07-10  Tom de Vries  <tom@codesourcery.com>
12806
12807         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
12808         insert nit + 1 bound.
12809
12810 2015-07-10  Richard Biener  <rguenther@suse.de>
12811
12812         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
12813         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
12814         (if_convertible_loop_p_1): For this always compute bb predicates.
12815         (if_convertible_loop_p): And free them.
12816
12817 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
12818
12819         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
12820         in dump message.
12821
12822 2015-07-10  Richard Biener  <rguenther@suse.de>
12823
12824         PR tree-optimization/66823
12825         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
12826         inverted predicate.
12827
12828 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
12829
12830         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
12831         to handle mips[32|64]r3 and mips[32|64]r5.
12832
12833 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
12834
12835         PR middle-end/66633
12836         * tree-nested.c (get_static_chain): Or in a flag into
12837         info->static_chain_added.
12838         (get_frame_field, get_nonlocal_debug_decl): Likewise.
12839         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
12840         2015-07-01 changes.
12841         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
12842         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
12843         add it to clauses.
12844
12845         PR tree-optimization/66718
12846         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
12847         field.
12848         (vect_simd_lane_linear): New function.
12849         (vectorizable_simd_clone_call): Support using linear arguments for
12850         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
12851
12852 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
12853
12854         PR target/66821
12855         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
12856
12857 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
12858
12859         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
12860         Use machine mode, not enum machine_mode in the prototype.
12861
12862         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
12863         classify 128-bit floating point support.
12864         (FLOAT128_IBM_P): Likewise.
12865         (FLOAT128_VECTOR_P): Likewise.
12866         (FLOAT128_2REG_P): Likewise.
12867         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
12868         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
12869         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
12870         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
12871
12872         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
12873         tests against TFmode/TDmode, since those modes do not use VSX
12874         addresses.
12875         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
12876         support.
12877         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
12878         tests against TFmode, etc.
12879         (invalid_e500_subreg): Add tests against IFmode/KFmode.
12880         (reg_offset_addressing_ok_p): Likewise.
12881         (rs6000_legitimate_offset_address_p): Likewise.
12882         (rs6000_legitimize_address): Likewise.
12883         (rs6000_legitimize_reload_address): Likewise.
12884         (rs6000_legitimate_address_p): Clean up tests against TFmode and
12885         TDmode to use the new helper macros, which will include IFmode and
12886         KFmode.
12887         (rs6000_emit_move): Likewise.
12888         (rs6000_darwin64_record_arg_recurse): Likewise.
12889         (print_operand): Likewise.
12890         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
12891         that uses a single vector register as a vector and not as a
12892         floating point register in terms of the calling sequence.
12893         (rs6000_discover_homogeneous_aggregate): Likewise.
12894         (rs6000_return_in_memory): Likewise.
12895         (init_cumulative_args): Likewise.
12896         (rs6000_function_arg_boundary): Likewise.
12897         (rs6000_function_arg_advance_1): Likewise.
12898         (rs6000_function_arg): Likewise.
12899         (rs6000_pass_by_reference): Likewise.
12900         (rs6000_gimplify_va_arg): Likewise.
12901         (rs6000_secondary_reload_memory): Use machine_mode not enum
12902         machine mode.
12903         (rs6000_split_multireg_move): Use new helper macros.
12904         (spe_func_has_64bit_regs_p): Likewise.
12905         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
12906         (output_toc): Use new helper macros.
12907         (rs6000_register_move_cost): Likewise.
12908         (rs6000_function_value): Add IEEE 128-bit floating point calling
12909         sequence support.
12910         (rs6000_libcall_value): Likewise.
12911         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
12912         floating point support.
12913         (rs6000_vector_mode_supported_p): Likewise.
12914
12915 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
12916
12917         PR rtl-optimization/66782
12918         * lra-int.h (struct lra_insn_recog_data): Add comment about
12919         clobbered hard regs for arg_hard_regs.
12920         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
12921         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
12922         Add condition for processing used hard regs.
12923         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
12924         Process clobbered hard regs.
12925
12926 2015-07-09  Michael Matz  <matz@suse.de>
12927
12928         * genmatch.c (fprintf_indent): New function.
12929         (operand::gen_transform): Add indent parameter.
12930         (expr::gen_transform, c_expr::gen_transform,
12931         capture::gen_transform): Ditto and use fprintf_indent.
12932         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
12933         (dt_operand::gen, dt_operand::gen_predicate,
12934         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
12935         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
12936         (decision_tree::gen_gimple): Adjust calls and indent generated
12937         code.
12938         (decision_tree::gen_generic): Ditto.
12939         (write_predicate): Ditto.
12940
12941 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
12942
12943         PR target/66814
12944         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
12945         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
12946         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
12947         {GENERAL,SSE,MMX}_REG_P where appropriate.
12948
12949 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
12950
12951         * lto-streamer.h: Don't include target.h and alloc-pool.h.
12952         * builtins.c: Adjust includes.
12953         * gimple.c: Likewise.
12954         * ipa-icf.c: Likewise.
12955         * lto-opts.c: Likewise.
12956         * ipa-reference.c: Likewise.
12957         * lto-section-out.c: Likewise.
12958         * lto-streamer-in.c: Likewise.
12959         * lto-streamer-out.c: Likewise.
12960         * opts-global.c: Likewise.
12961         * symtab.c: Likewise.
12962         * tree-chkp.c: Likewise.
12963         * tree-ssa-live.c: Likewise.
12964         * tree-streamer-in.c: Likewise.
12965         * tree-streamer-out.c: Likewise.
12966         * config/darwin.c: Likewise.
12967         * config/i386/winnt.c: Likewise.
12968
12969 2015-07-09  Richard Biener  <rguenther@suse.de>
12970
12971         * genmatch.c (struct expr): Add force_single_use flag.
12972         (expr::expr): Add copy constructor.
12973         (capture_info::walk_match): Gather force_single_use captures.
12974         (expr::gen_transform): Use possibly NULLified sequence.
12975         (dt_simplify::gen): Apply single-use restrictions by NULLifying
12976         seq if any constrained expr is not single-use.
12977         (parser::parse_expr): Refactor to allow multiple flags.  Handle
12978         's' flag to force an expression have a single-use if the pattern
12979         simplifies to more than one statement.
12980         * match.pd: Convert most single_use conditionals to :s flags.
12981
12982 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
12983
12984         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
12985         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
12986         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
12987
12988 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
12989
12990         * flags.h: Don't include flag-types.h or options.h.
12991         * opts-common.c: Adjust includes.
12992         * opts-global.c: Likewise.
12993         * common/config/epiphany/epiphany-common.c: Likewise.
12994
12995 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
12996
12997         PR target/66818
12998         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
12999         for IA MCU.
13000
13001 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13002
13003         PR target/66817
13004         * config/i386/i386.c (ix86_return_in_memory): Return true
13005         if int_size_in_bytes returns negative for IA MCU.
13006
13007 2015-07-09  Marek Polacek  <polacek@redhat.com>
13008
13009         PR tree-optimization/66718
13010         * Makefile.in (OBJS): Add gimple-laddress.o.
13011         * passes.def: Schedule pass_laddress.
13012         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
13013         * tree-pass.h (make_pass_laddress): Declare.
13014         * gimple-laddress.c: New file.
13015
13016 2015-07-09  Richard Biener  <rguenther@suse.de>
13017
13018         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
13019
13020 2015-07-09  Richard Biener  <rguenther@suse.de>
13021
13022         PR tree-optimization/66807
13023         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
13024
13025 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
13026
13027         * function.c (stack_protect_epilogue): Use if rather than switch for
13028         check targetm.have_stack_protect_test.
13029
13030 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13031
13032         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
13033         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
13034         * config/arc/arc.h: Likewise.
13035         * config/arm/arm.h: Likewise.
13036         * config/bfin/bfin.h: Likewise.
13037         * config/epiphany/epiphany.h: Likewise.
13038         * config/frv/frv.h: Likewise.
13039         * config/ia64/ia64.h: Likewise.
13040         * config/iq2000/iq2000.h: Likewise.
13041         * config/lm32/lm32.h: Likewise.
13042         * config/m32r/m32r.h: Likewise.
13043         * config/mcore/mcore.h: Likewise.
13044         * config/mep/mep.h: Likewise.
13045         * config/microblaze/microblaze.h: Likewise.
13046         * config/mips/mips.h: Likewise.
13047         * config/mmix/mmix.h: Likewise.
13048         * config/mn10300/mn10300.h: Likewise.
13049         * config/nds32/nds32.h: Likewise.
13050         * config/nios2/nios2.h: Likewise.
13051         * config/pa/pa.h: Likewise.
13052         * config/rl78/rl78.h: Likewise.
13053         * config/sh/sh.h: Likewise.
13054         * config/sparc/sparc.h: Likewise.
13055         * config/stormy16/stormy16.h: Likewise.
13056         * config/tilegx/tilegx.h: Likewise.
13057         * config/tilepro/tilepro.h: Likewise.
13058         * config/v850/v850.h: Likewise.
13059         * config/xtensa/xtensa.h: Likewise.
13060         * doc/tm.texi: Regenerate.
13061         * doc/tm.texi.in: Adjust.
13062         * combine.c (simplify_set): Likewise.
13063         (simplify_comparison): Likewise.
13064         * expr.c (store_constructor): Likewise.
13065         * internal-fn.c (expand_arith_overflow): Likewise.
13066         * reload.c (push_reload): Likewise.
13067         (find_reloads): Likewise.
13068         (find_reloads_subreg_address): Likewise.
13069         * reload1.c (eliminate_regs_1): Likewise.
13070         * rtlanal.c (nonzero_bits1): Likewise.
13071         (num_sign_bit_copies1): Likewise.
13072         * simplify-rtx.c (simplify_truncation): Likewise.
13073
13074 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13075
13076         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
13077         of AUTO_INC_DEC with the preprocessor.
13078         * combine.c (combine_instructions): Likewise.
13079         (can_combine_p): Likewise.
13080         (try_combine): Likewise.
13081         * emit-rtl.c (try_split): Likewise.
13082         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
13083         * lower-subreg.c (resolve_simple_move): Likewise.
13084         * lra.c (update_inc_notes): Likewise.
13085         * recog.c (asm_operand_ok): Likewise.
13086         (constrain_operands): Likewise.
13087         * regrename.c (scan_rtx_address): Likewise.
13088         * reload.c (update_auto_inc_notes): Likewise.
13089         (reg_inc_found_and_valid_p): Likewise.
13090         * reload1.c (reload): Likewise.
13091         (emit_input_reload_insns): Likewise.
13092         (delete_output_reload): Likewise.
13093         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
13094         * valtrack.c (cleanup_auto_inc_dec): Likewise.
13095
13096 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13097
13098         * rtl.h: Always define AUTO_INC_DEC.
13099         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
13100         * combine.c (combine_instructions): Likewise.
13101         (can_combine_p): Likewise.
13102         (try_combine): Likewise.
13103         * emit-rtl.c (try_split): Likewise.
13104         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
13105         * lower-subreg.c (resolve_simple_move): Likewise.
13106         * lra.c (update_inc_notes): Likewise.
13107         * recog.c (asm_operand_ok): Likewise.
13108         (constrain_operands): Likewise.
13109         * regrename.c (scan_rtx_address): Likewise.
13110         * reload.c (update_auto_inc_notes): Likewise.
13111         (find_equiv_reg): Likewise.
13112         * reload1.c (reload): Likewise.
13113         (reload_as_needed): Likewise.
13114         (choose_reload_regs): Likewise.
13115         (emit_input_reload_insns): Likewise.
13116         (delete_output_reload): Likewise.
13117         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
13118         * valtrack.c (cleanup_auto_inc_dec): Likewise.
13119
13120 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13121
13122         * combine.c (can_combine_def_p): Don't check the value of
13123         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
13124         (combinable_i3pat): Likewise.
13125         (mark_used_regs_combine): Likewise.
13126         * regrename.c (rename_chains): Likewise.
13127         * reload.c (find_reloads_address): Likewise.
13128         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
13129
13130 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13131
13132         * combine.c (update_rsp_from_reg_equal): Don't check if
13133         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
13134         (reg_nonzero_bits_for_combine): Likewise.
13135         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
13136         1.
13137         * config/frv/frv.h: Likewise.
13138         * config/lm32/lm32.h: Likewise.
13139         * config/mep/mep.h: Likewise.
13140         * config/mips/mips.h: Likewise.
13141         * config/rs6000/rs6000.h: Likewise.
13142         * config/sh/sh.h: Likewise.
13143         * config/tilegx/tilegx.h (enum reg_class): Likewise.
13144         * config/tilepro/tilepro.h: Likewise.
13145         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
13146         * doc/tm.texi: Regenerate.
13147         * doc/tm.texi.in: Adjust.
13148         * rtlanal.c (nonzero_bits1): Likewise.
13149
13150 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13151
13152         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
13153         with the preprocessor.
13154         (combine_instructions): Likewise.
13155         (try_combine): Likewise.
13156         (subst): Likewise.
13157         (distribute_notes): Likewise.
13158
13159 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13160
13161         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
13162         defined.
13163         (simplify_set): Likewise.
13164         * cse.c (cse_insn): Likewise.
13165         * fold-const.c (fold_single_bit_test): Likewise.
13166         (fold_unary_loc): Likewise.
13167         * postreload.c (reload_cse_simplify_set): Likewise.
13168         (reload_cse_simplify_operands): Likewise.
13169
13170 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
13171
13172         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
13173         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
13174
13175 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
13176
13177         PR target/66746
13178         * config/i386/x86intrin.h: Include <adxintrin.h> even if
13179         __iamcu__ is defined.
13180
13181 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13182
13183         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
13184
13185 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
13186
13187         PR target/66523
13188         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
13189         names from preservation.
13190
13191 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
13192
13193         PR target/66806
13194         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
13195         change for IAMCU.
13196         (function_arg_advance_32): Don't pass vectors in registers for
13197         IAMCU.
13198         (function_arg_32): Likewise.
13199         (ix86_return_in_memory): Don't return vectors in registers for
13200         IAMCU.
13201
13202 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
13203
13204         PR middle-end/66334
13205         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
13206         hard regno live at the start of BB with incoming abnormal edges.
13207         * lra-lives.c (process_bb_lives): Ditto.
13208
13209 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
13210
13211         PR libgomp/65099
13212         * config/nvptx/mkoffload.c (main): Create an offload image only in
13213         64-bit configurations.
13214
13215 2015-07-08  Martin Liska  <mliska@suse.cz>
13216
13217         PR bootstrap/66744
13218         * tree-sra.c (create_access_1): Call ctor without brackets.
13219         (create_artificial_child_access): Likewise.
13220
13221 2015-07-08  Richard Biener  <rguenther@suse.de>
13222
13223         PR tree-optimization/66793
13224         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
13225         Properly split the block after stmts ending it.
13226
13227 2015-07-08  Richard Biener  <rguenther@suse.de>
13228
13229         PR tree-optimization/66794
13230         * passes.c (execute_function_todo): Assert that post-dominators
13231         are not computed.
13232         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
13233         Free post-dominators.
13234
13235 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13236
13237         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
13238         with early exit.
13239
13240 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13241
13242         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
13243         more than or equal 8 and less than 32 when optimizing for size.
13244
13245 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13246
13247         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
13248         COSTS_N_INSNS (1) and increment it appropriately throughout the
13249         function.
13250
13251 2015-07-08  Richard Biener  <rguenther@suse.de>
13252
13253         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
13254
13255 2015-07-08  Alan Modra  <amodra@gmail.com>
13256
13257         * target.def (rtx_costs): Remove "code" param, add "mode".
13258         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
13259         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
13260         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
13261         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
13262         call.  Track mode when given in rtx.
13263         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
13264         (default_address_cost): Pass Pmode to rtx_cost.
13265         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
13266         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
13267         with NULL set.
13268         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
13269         (notreg_cost): Add mode param.  Use it.
13270         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
13271         mode param and pass to set_src_cost.  Update all calls.
13272         (hash_scan_set): Formatting.
13273         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
13274         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
13275         * hooks.h: Ditto.
13276         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
13277         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
13278         emit_store_flag): Update set_src_cost and rtx_cost calls.
13279         * auto-inc-dec.c (attempt_change): Likewise.
13280         * calls.c (precompute_register_parameters): Likewise.
13281         * combine.c (expand_compound_operation, make_extraction,
13282         force_to_mode, distribute_and_simplify_rtx): Likewise.
13283         * dojump.c (prefer_and_bit_test): Likewise.
13284         * dse.c (find_shift_sequence): Likewise.
13285         * expr.c (compress_float_constant): Likewise.
13286         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
13287         * ifcvt.c (noce_try_sign_mask): Likewise.
13288         * loop-doloop.c (doloop_optimize): Likewise.
13289         * loop-invariant.c (create_new_invariant): Likewise.
13290         * lower-subreg.c (shift_cost, compute_costs): Likewise.
13291         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
13292         lshift_cheap_p): Likewise.
13293         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
13294         try_replace_in_use, reload_cse_move2add): Likewise.
13295         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
13296         Likewise.
13297         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13298         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
13299         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
13300         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
13301         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
13302         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
13303         to rtx_cost calls.
13304         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
13305         * config/arc/arc.c (arc_rtx_costs): Likewise.
13306         * config/arm/arm.c (arm_rtx_costs): Likewise.
13307         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
13308         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
13309         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
13310         * config/cris/cris.c (cris_rtx_costs): Likewise.
13311         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
13312         * config/frv/frv.c (frv_rtx_costs): Likewise.
13313         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
13314         * config/i386/i386.c (ix86_rtx_costs): Likewise.
13315         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
13316         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
13317         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
13318         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
13319         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
13320         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
13321         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
13322         * config/mep/mep.c (mep_rtx_cost): Likewise.
13323         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
13324         * config/mips/mips.c (mips_rtx_costs): Likewise.
13325         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
13326         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
13327         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
13328         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
13329         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
13330         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
13331         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
13332         * config/pa/pa.c (hppa_rtx_costs): Likewise.
13333         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
13334         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
13335         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
13336         * config/s390/s390.c (s390_rtx_costs): Likewise.
13337         * config/sh/sh.c (sh_rtx_costs): Likewise.
13338         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
13339         * config/spu/spu.c (spu_rtx_costs): Likewise.
13340         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
13341         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
13342         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
13343         * config/v850/v850.c (v850_rtx_costs): Likewise.
13344         * config/vax/vax.c (vax_rtx_costs): Likewise.
13345         * config/visium/visium.c (visium_rtx_costs): Likewise.
13346         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
13347         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
13348         "code" param, and pass as outer_code to first rtx_cost call.  Pass
13349         mode to rtx_cost calls.
13350         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
13351         calls.
13352         (aarch64_rtx_costs_wrapper): Update.
13353         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
13354         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
13355         rtx_cost calls.
13356         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
13357         and rtx_cost calls.
13358         (avr_operand_rtx_cost): Similarly.
13359         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
13360         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
13361         * config/mips/mips.c (mips_stack_address_p): Comment typo.
13362         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
13363         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
13364         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
13365         rtx_cost.
13366         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
13367         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
13368         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
13369         * doc/tm.texi: Regenerate.
13370
13371 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
13372
13373         * tree-core.h: Include symtab.h.
13374         * rtl.h: Include hard-reg-set.h but not flags.h.
13375         (HARD_CONST): Remove condition compilation involving HARD_CONST since
13376         hard-reg-set.h is always included.
13377         * regs.h: Don't include hard-reg-set.h or rtl.h.
13378         * cfg.h: Include dominance.h.
13379         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
13380         * backend.h: New.  Aggregate commonly used backend header files.
13381         * gimple-ssa.h: Don't include tree-hasher.h.
13382         * ssa.h: New.  Aggregate commonly used SSA header files.
13383         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
13384         * sel-sched-ir.h: Flatten includes.
13385         * lra-int.h: Flatten completely.
13386         * sel-sched-dump.h: Flatten includes.
13387         * ira-int.h: Flatten includes.
13388         * gimple-streamer.h: Remove all includes.
13389         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
13390         * resource.h: Flatten hard-reg-set.h and df.h.
13391         * sched-int.h: Flatten insn-arrt.h and df.h.
13392         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
13393         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
13394         * genattrtab.c (write_header): Adjust generated includes.
13395         * genautomata.c (main): Likewise.
13396         * genconditions.c (write-header): Likewise.
13397         * genemit.c (main): Likewise.
13398         * gengtype.c (open_base_files): Likewise.
13399         * genopinit.c (main): Likewise.
13400         * genoutput.c (output_prologue): Likewise.
13401         * genpeep.c (main): Likewise.
13402         * genpreds.c (write_insn_preds_c): Likewise.
13403         * genrecog.c (write_header): Likewise.
13404         * alias.c: Adjust includes.
13405         * asan.c: Likewise.
13406         * attribs.c: Likewise.
13407         * auto-inc-dec.c: Likewise.
13408         * auto-profile.c: Likewise.
13409         * bb-reorder.c: Likewise.
13410         * bt-load.c: Likewise.
13411         * builtins.c: Likewise.
13412         * caller-save.c: Likewise.
13413         * calls.c: Likewise.
13414         * ccmp.c: Likewise.
13415         * cfg.c: Likewise.
13416         * cfganal.c: Likewise.
13417         * cfgbuild.c: Likewise.
13418         * cfgcleanup.c: Likewise.
13419         * cfgexpand.c: Likewise.
13420         * cfghooks.c: Likewise.
13421         * cfgloop.c: Likewise.
13422         * cfgloopanal.c: Likewise.
13423         * cfgloopmanip.c: Likewise.
13424         * cfgrtl.c: Likewise.
13425         * cgraph.c: Likewise.
13426         * cgraphbuild.c: Likewise.
13427         * cgraphclones.c: Likewise.
13428         * cgraphunit.c: Likewise.
13429         * cilk-common.c: Likewise.
13430         * combine-stack-adj.c: Likewise.
13431         * combine.c: Likewise.
13432         * compare-elim.c: Likewise.
13433         * convert.c: Likewise.
13434         * coverage.c: Likewise.
13435         * cppbuiltin.c: Likewise.
13436         * cprop.c: Likewise.
13437         * cse.c: Likewise.
13438         * cselib.c: Likewise.
13439         * data-streamer-in.c: Likewise.
13440         * data-streamer-out.c: Likewise.
13441         * data-streamer.c: Likewise.
13442         * dbxout.c: Likewise.
13443         * dce.c: Likewise.
13444         * ddg.c: Likewise.
13445         * debug.c: Likewise.
13446         * df-core.c: Likewise.
13447         * df-problems.c: Likewise.
13448         * df-scan.c: Likewise.
13449         * dfp.c: Likewise.
13450         * dojump.c: Likewise.
13451         * dominance.c: Likewise.
13452         * domwalk.c: Likewise.
13453         * double-int.c: Likewise.
13454         * dse.c: Likewise.
13455         * dumpfile.c: Likewise.
13456         * dwarf2asm.c: Likewise.
13457         * dwarf2cfi.c: Likewise.
13458         * dwarf2out.c: Likewise.
13459         * emit-rtl.c: Likewise.
13460         * et-forest.c: Likewise.
13461         * except.c: Likewise.
13462         * explow.c: Likewise.
13463         * expmed.c: Likewise.
13464         * expr.c: Likewise.
13465         * final.c: Likewise.
13466         * fixed-value.c: Likewise.
13467         * fold-const.c: Likewise.
13468         * function.c: Likewise.
13469         * fwprop.c: Likewise.
13470         * gcc-plugin.h: Likewise.
13471         * gcse-common.c: Likewise.
13472         * gcse.c: Likewise.
13473         * generic-match-head.c: Likewise.
13474         * ggc-page.c: Likewise.
13475         * gimple-builder.c: Likewise.
13476         * gimple-expr.c: Likewise.
13477         * gimple-fold.c: Likewise.
13478         * gimple-iterator.c: Likewise.
13479         * gimple-low.c: Likewise.
13480         * gimple-match-head.c: Likewise.
13481         * gimple-pretty-print.c: Likewise.
13482         * gimple-ssa-isolate-paths.c: Likewise.
13483         * gimple-ssa-strength-reduction.c: Likewise.
13484         * gimple-streamer-in.c: Likewise.
13485         * gimple-streamer-out.c: Likewise.
13486         * gimple-walk.c: Likewise.
13487         * gimple.c: Likewise.
13488         * gimplify-me.c: Likewise.
13489         * gimplify.c: Likewise.
13490         * godump.c: Likewise.
13491         * graph.c: Likewise.
13492         * graphite-blocking.c: Likewise.
13493         * graphite-dependences.c: Likewise.
13494         * graphite-interchange.c: Likewise.
13495         * graphite-isl-ast-to-gimple.c: Likewise.
13496         * graphite-optimize-isl.c: Likewise.
13497         * graphite-poly.c: Likewise.
13498         * graphite-scop-detection.c: Likewise.
13499         * graphite-sese-to-poly.c: Likewise.
13500         * graphite.c: Likewise.
13501         * haifa-sched.c: Likewise.
13502         * hw-doloop.c: Likewise.
13503         * ifcvt.c: Likewise.
13504         * init-regs.c: Likewise.
13505         * internal-fn.c: Likewise.
13506         * ipa-chkp.c: Likewise.
13507         * ipa-comdats.c: Likewise.
13508         * ipa-cp.c: Likewise.
13509         * ipa-devirt.c: Likewise.
13510         * ipa-icf-gimple.c: Likewise.
13511         * ipa-icf.c: Likewise.
13512         * ipa-inline-analysis.c: Likewise.
13513         * ipa-inline-transform.c: Likewise.
13514         * ipa-inline.c: Likewise.
13515         * ipa-polymorphic-call.c: Likewise.
13516         * ipa-profile.c: Likewise.
13517         * ipa-prop.c: Likewise.
13518         * ipa-pure-const.c: Likewise.
13519         * ipa-ref.c: Likewise.
13520         * ipa-reference.c: Likewise.
13521         * ipa-split.c: Likewise.
13522         * ipa-utils.c: Likewise.
13523         * ipa-visibility.c: Likewise.
13524         * ipa.c: Likewise.
13525         * ira-build.c: Likewise.
13526         * ira-color.c: Likewise.
13527         * ira-conflicts.c: Likewise.
13528         * ira-costs.c: Likewise.
13529         * ira-emit.c: Likewise.
13530         * ira-lives.c: Likewise.
13531         * ira.c: Likewise.
13532         * jump.c: Likewise.
13533         * langhooks.c: Likewise.
13534         * lcm.c: Likewise.
13535         * loop-doloop.c: Likewise.
13536         * loop-init.c: Likewise.
13537         * loop-invariant.c: Likewise.
13538         * loop-iv.c: Likewise.
13539         * loop-unroll.c: Likewise.
13540         * lower-subreg.c: Likewise.
13541         * lra-assigns.c: Likewise.
13542         * lra-coalesce.c: Likewise.
13543         * lra-constraints.c: Likewise.
13544         * lra-eliminations.c: Likewise.
13545         * lra-lives.c: Likewise.
13546         * lra-remat.c: Likewise.
13547         * lra-spills.c: Likewise.
13548         * lra.c: Likewise.
13549         * lto-cgraph.c: Likewise.
13550         * lto-compress.c: Likewise.
13551         * lto-opts.c: Likewise.
13552         * lto-section-in.c: Likewise.
13553         * lto-section-out.c: Likewise.
13554         * lto-streamer-in.c: Likewise.
13555         * lto-streamer-out.c: Likewise.
13556         * lto-streamer.c: Likewise.
13557         * mcf.c: Likewise.
13558         * mode-switching.c: Likewise.
13559         * modulo-sched.c: Likewise.
13560         * omega.c: Likewise.
13561         * omp-low.c: Likewise.
13562         * optabs.c: Likewise.
13563         * opts-global.c: Likewise.
13564         * passes.c: Likewise.
13565         * plugin.c: Likewise.
13566         * postreload-gcse.c: Likewise.
13567         * postreload.c: Likewise.
13568         * predict.c: Likewise.
13569         * print-rtl.c: Likewise.
13570         * print-tree.c: Likewise.
13571         * profile.c: Likewise.
13572         * real.c: Likewise.
13573         * realmpfr.c: Likewise.
13574         * recog.c: Likewise.
13575         * ree.c: Likewise.
13576         * reg-stack.c: Likewise.
13577         * regcprop.c: Likewise.
13578         * reginfo.c: Likewise.
13579         * regrename.c: Likewise.
13580         * regstat.c: Likewise.
13581         * reload.c: Likewise.
13582         * reload1.c: Likewise.
13583         * reorg.c: Likewise.
13584         * resource.c: Likewise.
13585         * rtl-chkp.c: Likewise.
13586         * rtlanal.c: Likewise.
13587         * rtlhooks.c: Likewise.
13588         * sanopt.c: Likewise.
13589         * sched-deps.c: Likewise.
13590         * sched-ebb.c: Likewise.
13591         * sched-rgn.c: Likewise.
13592         * sched-vis.c: Likewise.
13593         * sdbout.c: Likewise.
13594         * sel-sched-dump.c: Likewise.
13595         * sel-sched-ir.c: Likewise.
13596         * sel-sched.c: Likewise.
13597         * sese.c: Likewise.
13598         * shrink-wrap.c: Likewise.
13599         * simplify-rtx.c: Likewise.
13600         * stack-ptr-mod.c: Likewise.
13601         * stmt.c: Likewise.
13602         * stor-layout.c: Likewise.
13603         * store-motion.c: Likewise.
13604         * stringpool.c: Likewise.
13605         * symtab.c: Likewise.
13606         * target-globals.c: Likewise.
13607         * targhooks.c: Likewise.
13608         * toplev.c: Likewise.
13609         * tracer.c: Likewise.
13610         * trans-mem.c: Likewise.
13611         * tree-affine.c: Likewise.
13612         * tree-browser.c: Likewise.
13613         * tree-call-cdce.c: Likewise.
13614         * tree-cfg.c: Likewise.
13615         * tree-cfgcleanup.c: Likewise.
13616         * tree-chkp-opt.c: Likewise.
13617         * tree-chkp.c: Likewise.
13618         * tree-chrec.c: Likewise.
13619         * tree-complex.c: Likewise.
13620         * tree-data-ref.c: Likewise.
13621         * tree-dfa.c: Likewise.
13622         * tree-diagnostic.c: Likewise.
13623         * tree-dump.c: Likewise.
13624         * tree-eh.c: Likewise.
13625         * tree-emutls.c: Likewise.
13626         * tree-if-conv.c: Likewise.
13627         * tree-inline.c: Likewise.
13628         * tree-into-ssa.c: Likewise.
13629         * tree-iterator.c: Likewise.
13630         * tree-loop-distribution.c: Likewise.
13631         * tree-nested.c: Likewise.
13632         * tree-nrv.c: Likewise.
13633         * tree-object-size.c: Likewise.
13634         * tree-outof-ssa.c: Likewise.
13635         * tree-parloops.c: Likewise.
13636         * tree-phinodes.c: Likewise.
13637         * tree-predcom.c: Likewise.
13638         * tree-pretty-print.c: Likewise.
13639         * tree-profile.c: Likewise.
13640         * tree-scalar-evolution.c: Likewise.
13641         * tree-sra.c: Likewise.
13642         * tree-ssa-address.c: Likewise.
13643         * tree-ssa-alias.c: Likewise.
13644         * tree-ssa-ccp.c: Likewise.
13645         * tree-ssa-coalesce.c: Likewise.
13646         * tree-ssa-copy.c: Likewise.
13647         * tree-ssa-copyrename.c: Likewise.
13648         * tree-ssa-dce.c: Likewise.
13649         * tree-ssa-dom.c: Likewise.
13650         * tree-ssa-dse.c: Likewise.
13651         * tree-ssa-forwprop.c: Likewise.
13652         * tree-ssa-ifcombine.c: Likewise.
13653         * tree-ssa-live.c: Likewise.
13654         * tree-ssa-loop-ch.c: Likewise.
13655         * tree-ssa-loop-im.c: Likewise.
13656         * tree-ssa-loop-ivcanon.c: Likewise.
13657         * tree-ssa-loop-ivopts.c: Likewise.
13658         * tree-ssa-loop-manip.c: Likewise.
13659         * tree-ssa-loop-niter.c: Likewise.
13660         * tree-ssa-loop-prefetch.c: Likewise.
13661         * tree-ssa-loop-unswitch.c: Likewise.
13662         * tree-ssa-loop.c: Likewise.
13663         * tree-ssa-math-opts.c: Likewise.
13664         * tree-ssa-operands.c: Likewise.
13665         * tree-ssa-phiopt.c: Likewise.
13666         * tree-ssa-phiprop.c: Likewise.
13667         * tree-ssa-pre.c: Likewise.
13668         * tree-ssa-propagate.c: Likewise.
13669         * tree-ssa-reassoc.c: Likewise.
13670         * tree-ssa-sccvn.c: Likewise.
13671         * tree-ssa-scopedtables.c: Likewise.
13672         * tree-ssa-sink.c: Likewise.
13673         * tree-ssa-strlen.c: Likewise.
13674         * tree-ssa-structalias.c: Likewise.
13675         * tree-ssa-tail-merge.c: Likewise.
13676         * tree-ssa-ter.c: Likewise.
13677         * tree-ssa-threadedge.c: Likewise.
13678         * tree-ssa-threadupdate.c: Likewise.
13679         * tree-ssa-uncprop.c: Likewise.
13680         * tree-ssa-uninit.c: Likewise.
13681         * tree-ssa.c: Likewise.
13682         * tree-ssanames.c: Likewise.
13683         * tree-stdarg.c: Likewise.
13684         * tree-streamer-in.c: Likewise.
13685         * tree-streamer-out.c: Likewise.
13686         * tree-streamer.c: Likewise.
13687         * tree-switch-conversion.c: Likewise.
13688         * tree-tailcall.c: Likewise.
13689         * tree-vect-data-refs.c: Likewise.
13690         * tree-vect-generic.c: Likewise.
13691         * tree-vect-loop-manip.c: Likewise.
13692         * tree-vect-loop.c: Likewise.
13693         * tree-vect-patterns.c: Likewise.
13694         * tree-vect-slp.c: Likewise.
13695         * tree-vect-stmts.c: Likewise.
13696         * tree-vectorizer.c: Likewise.
13697         * tree-vrp.c: Likewise.
13698         * tree.c: Likewise.
13699         * tsan.c: Likewise.
13700         * ubsan.c: Likewise.
13701         * valtrack.c: Likewise.
13702         * value-prof.c: Likewise.
13703         * var-tracking.c: Likewise.
13704         * varasm.c: Likewise.
13705         * varpool.c: Likewise.
13706         * vmsdbgout.c: Likewise.
13707         * vtable-verify.c: Likewise.
13708         * web.c: Likewise.
13709         * wide-int.cc: Likewise.
13710         * xcoffout.c: Likewise.
13711         * config/aarch64/aarch64-builtins.c: Likewise.
13712         * config/aarch64/aarch64.c: Likewise.
13713         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
13714         * config/alpha/alpha.c: Likewise.
13715         * config/arc/arc.c: Likewise.
13716         * config/arm/aarch-common.c: Likewise.
13717         * config/arm/arm-builtins.c: Likewise.
13718         * config/arm/arm-c.c: Likewise.
13719         * config/arm/arm.c: Likewise.
13720         * config/avr/avr-c.c: Likewise.
13721         * config/avr/avr-log.c: Likewise.
13722         * config/avr/avr.c: Likewise.
13723         * config/bfin/bfin.c: Likewise.
13724         * config/c6x/c6x.c: Likewise.
13725         * config/cr16/cr16.c: Likewise.
13726         * config/cris/cris.c: Likewise.
13727         * config/darwin-c.c: Likewise.
13728         * config/darwin.c: Likewise.
13729         * config/epiphany/epiphany.c: Likewise.
13730         * config/epiphany/mode-switch-use.c: Likewise.
13731         * config/epiphany/resolve-sw-modes.c: Likewise.
13732         * config/fr30/fr30.c: Likewise.
13733         * config/frv/frv.c: Likewise.
13734         * config/ft32/ft32.c: Likewise.
13735         * config/h8300/h8300.c: Likewise.
13736         * config/i386/i386-c.c: Likewise.
13737         * config/i386/i386.c: Likewise.
13738         * config/i386/msformat-c.c: Likewise.
13739         * config/i386/winnt-cxx.c: Likewise.
13740         * config/i386/winnt-stubs.c: Likewise.
13741         * config/i386/winnt.c: Likewise.
13742         * config/ia64/ia64-c.c: Likewise.
13743         * config/ia64/ia64.c: Likewise.
13744         * config/iq2000/iq2000.c: Likewise.
13745         * config/lm32/lm32.c: Likewise.
13746         * config/m32c/m32c-pragma.c: Likewise.
13747         * config/m32c/m32c.c: Likewise.
13748         * config/m32r/m32r.c: Likewise.
13749         * config/m68k/m68k.c: Likewise.
13750         * config/mcore/mcore.c: Likewise.
13751         * config/mep/mep-pragma.c: Likewise.
13752         * config/mep/mep.c: Likewise.
13753         * config/microblaze/microblaze-c.c: Likewise.
13754         * config/microblaze/microblaze.c: Likewise.
13755         * config/mips/mips.c: Likewise.
13756         * config/mmix/mmix.c: Likewise.
13757         * config/mn10300/mn10300.c: Likewise.
13758         * config/moxie/moxie.c: Likewise.
13759         * config/msp430/msp430-c.c: Likewise.
13760         * config/msp430/msp430.c: Likewise.
13761         * config/nds32/nds32-cost.c: Likewise.
13762         * config/nds32/nds32-fp-as-gp.c: Likewise.
13763         * config/nds32/nds32-intrinsic.c: Likewise.
13764         * config/nds32/nds32-isr.c: Likewise.
13765         * config/nds32/nds32-md-auxiliary.c: Likewise.
13766         * config/nds32/nds32-memory-manipulation.c: Likewise.
13767         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
13768         * config/nds32/nds32-predicates.c: Likewise.
13769         * config/nds32/nds32.c: Likewise.
13770         * config/nios2/nios2.c: Likewise.
13771         * config/nvptx/nvptx.c: Likewise.
13772         * config/pa/pa.c: Likewise.
13773         * config/pdp11/pdp11.c: Likewise.
13774         * config/rl78/rl78-c.c: Likewise.
13775         * config/rl78/rl78.c: Likewise.
13776         * config/rs6000/rs6000-c.c: Likewise.
13777         * config/rs6000/rs6000.c: Likewise.
13778         * config/rx/rx.c: Likewise.
13779         * config/s390/s390-c.c: Likewise.
13780         * config/s390/s390.c: Likewise.
13781         * config/sh/sh-c.c: Likewise.
13782         * config/sh/sh-mem.cc: Likewise.
13783         * config/sh/sh.c: Likewise.
13784         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
13785         * config/sh/sh_treg_combine.cc: Likewise.
13786         * config/sol2-c.c: Likewise.
13787         * config/sol2-cxx.c: Likewise.
13788         * config/sol2-stubs.c: Likewise.
13789         * config/sol2.c: Likewise.
13790         * config/sparc/sparc-c.c: Likewise.
13791         * config/sparc/sparc.c: Likewise.
13792         * config/spu/spu-c.c: Likewise.
13793         * config/spu/spu.c: Likewise.
13794         * config/stormy16/stormy16.c: Likewise.
13795         * config/tilegx/mul-tables.c: Likewise.
13796         * config/tilegx/tilegx-c.c: Likewise.
13797         * config/tilegx/tilegx.c: Likewise.
13798         * config/tilepro/mul-tables.c: Likewise.
13799         * config/tilepro/tilepro-c.c: Likewise.
13800         * config/tilepro/tilepro.c: Likewise.
13801         * config/v850/v850-c.c: Likewise.
13802         * config/v850/v850.c: Likewise.
13803         * config/vax/vax.c: Likewise.
13804         * config/visium/visium.c: Likewise.
13805         * config/vms/vms-c.c: Likewise.
13806         * config/vms/vms.c: Likewise.
13807         * config/vxworks.c: Likewise.
13808         * config/xtensa/xtensa.c: Likewise.
13809
13810 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
13811
13812         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
13813         Remove operand constraints.  Change operand 2 predicate to
13814         nonmemory operand.  Limit const_int values to mode bitsize.  Only
13815         allow const_int values less than 32 when optimizing for size.
13816         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
13817         Remove operand constraints.
13818         (*bt<mode>): Use SImode for const_int values less than 32.
13819         (regmode): Remove mode attribute.
13820
13821 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
13822
13823         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
13824         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
13825           moxie_legitimate_address_p): New functions.
13826           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
13827
13828 2015-07-07  Tom de Vries  <tom@codesourcery.com>
13829
13830         PR tree-optimization/66642
13831         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
13832         header comment.  Rename split_edge variable to edge_at_split.  Split
13833         exit edge to create new loop exit bb.  Insert loop exit phis in new
13834         loop exit bb.
13835
13836 2015-07-07  Tom de Vries  <tom@codesourcery.com>
13837
13838         * tree-cfg.c (get_virtual_phi): New function.
13839         * tree-cfg.h (get_virtual_phi): Declare.
13840         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
13841         (rewrite_virtuals_into_loop_closed_ssa): New function.
13842         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
13843         Declare.
13844         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
13845         (transform_to_exit_first_loop_alt): Use
13846         rewrite_virtuals_into_loop_closed_ssa.
13847
13848 2015-07-07  Richard Biener  <rguenther@suse.de>
13849
13850         * fold-const.c (fold_binary_loc): Move
13851         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
13852         * match.pd: ... here.
13853         Add (X * C1) % C2 -> 0 simplification pattern derived from
13854         extract_muldiv_1.
13855
13856 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
13857
13858         PR target/66780
13859         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
13860         change for target/65249.
13861
13862 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
13863
13864         * symtab.c (address_matters_1): Fix typo in comment above.
13865         (can_increase_alignment_p): Likewise.
13866
13867 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
13868
13869         * function.c (free_after_compilation): Clear PROP_cfg in
13870         f->curr_properties.
13871
13872 2015-07-07  Richard Biener  <rguenther@suse.de>
13873
13874         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
13875         add which use to.
13876         (add_control_edge): Remove excessive vertical space in dumping.
13877         (process_ssa_edge_worklist): Simulate at most one statement and
13878         return whether we did.  Do not simulate PHIs if they are in a
13879         BB not yet simulated.
13880         (ssa_propagate): Adjust to always drain the BB worklist whenever
13881         a BB is available there, likewise the VARYING edges list before
13882         the interesting edge list.
13883
13884 2015-07-07  Christian Bruel  <christian.bruel@st.com>
13885
13886         PR target/52144
13887         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
13888
13889 2015-07-07  Richard Biener  <rguenther@suse.de>
13890
13891         PR middle-end/66739
13892         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
13893         A - B.
13894
13895 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
13896
13897         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
13898         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
13899         Copy operand 0 to a temporary if !ext_register_operand.  Remove
13900         ancient extract_bit_field workaround.
13901         (insv<mode>_1): Rename from mov<mode>_insv_1.
13902         (*insvqi): Rename from *movqi_insv_2.
13903         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
13904         for renamed insvsi_1.
13905         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
13906
13907 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
13908
13909         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
13910         call to nvptx_reorg_subreg.
13911
13912 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
13913
13914         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
13915         * graphite-dependencies.c, graphite-interchange.c,
13916         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
13917         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
13918         Likewise.
13919
13920 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
13921
13922         * match.pd: Remove element_mode inside HONOR_*.
13923         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
13924         (~X | X -> -1, ~X ^ X -> -1): Merge.
13925         * tree.c (build_each_one_cst): New function.
13926         * tree.h (build_each_one_cst): Likewise.
13927
13928 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
13929
13930         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
13931         PROCESSOR_IAMCU.
13932
13933 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
13934
13935         * config.gcc <mips*-*-*>: Add fused-madd.opt.
13936         * config/mips/mips.opt (mfused-madd): Remove.
13937         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
13938         * config/mips/mips.h (TARGET_MIPS8000): New.
13939         (ISA_HAS_FP_MADD4_MSUB4): Remove.
13940         (ISA_HAS_FP_MADDF_MSUBF): Remove.
13941         (ISA_HAS_FP_MADD3_MSUB3): Remove.
13942         (ISA_HAS_NMADD4_NMSUB4): Remove.
13943         (ISA_HAS_NMADD3_NMSUB3): Remove.
13944         (ISA_HAS_FUSED_MADD4): New.
13945         (ISA_HAS_UNFUSED_MADD4): New.
13946         (ISA_HAS_FUSED_MADDF): New.
13947         (ISA_HAS_FUSED_MADD3): New.
13948         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
13949         (*fma<mode>4_madd3) New.
13950         (*fma<mode>4_madd4) New.
13951         (*fma<mode>4_maddf) New.
13952         (fms<mode>4) New.
13953         (*fms<mode>4_msub3) New.
13954         (*fms<mode>4_msub4) New.
13955         (fnma<mode>4) New.
13956         (*fnma<mode>4_nmadd3) New.
13957         (*fnma<mode>4_nmadd4) New.
13958         (fnms<mode>4) New.
13959         (*fnms<mode>4_nmsub3) New.
13960         (*fnms<mode>4_nmsub4) New.
13961         (*madd4<mode>) Modify to be unfused only.
13962         (*msub4<mode>) Modify to be unfused only.
13963         (*nmadd4<mode>) Modify to be unfused only.
13964         (*nmsub4<mode>) Modify to be unfused only.
13965         (*madd3<mode>) Remove.
13966         (*msub3<mode>) Remove.
13967         (*nmadd3<mode>) Remove.
13968         (*nmsub3<mode>) Remove.
13969         (*nmadd3<mode>_fastmath) Remove.
13970         (*nmsub3<mode>_fastmath) Remove.
13971         (*nmadd4<mode>_fastmath) Update condition.
13972         (*nmsub4<mode>_fastmath) Update condition.
13973
13974 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
13975
13976         PR target/65956
13977         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
13978         alignment attribute, exploring one level down for records and arrays.
13979
13980 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
13981
13982         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
13983         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
13984         Copy operand 1 to a temporary if !ext_register_operand.  Remove
13985         ancient extract_bit_field workaround.
13986         (*extv<mode>): Rename from *mov<mode>_extv_1.
13987         (*extvqi): Rename from *movqi_extv_1.
13988         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
13989         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
13990         to a temporary if !ext_register_operand.  Remove ancient
13991         extract_bit_field workaround.
13992         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
13993         (*extzvqi): Rename from *movqi_extzv_2.
13994         (*testqi_ext_3): Remove modes from const_int_operand predicated
13995         operands.  Add "n" constraint.
13996         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
13997         operand.  Add "J" constraint.
13998         (*btsq, *btrq, *btcq peephole2s): Remove mode from
13999         const_0_to_63 predicated operand.
14000         (regmode): New insn attribute.
14001         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
14002         to nonmemory_operand.  Use regmode insn attribute.
14003         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
14004         (*jcc_bt<mode>_mask): Remove mode from operand 3.
14005         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
14006         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
14007         operands.  Use "N" constraint instead of "n".
14008
14009 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
14010
14011         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
14012
14013 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14014
14015         PR target/66749
14016         * config/i386/i386.c (iamcu_cost): New.
14017         (m_IAMCU): Likewise.
14018         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
14019         (processor_target_table): Add an entry for "iamcu".
14020         (processor_alias_table): Likewise.
14021         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
14022         (ix86_adjust_cost): Likewise.
14023         (ia32_multipass_dfa_lookahead): Likewise.
14024         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
14025         * config/i386/x86-tune.def: Updated for m_IAMCU.
14026
14027 2015-07-06  Richard Biener  <rguenther@suse.de>
14028
14029         PR tree-optimization/66772
14030         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
14031         values are available in the PHI node BB when there are
14032         still unexecutable edges.
14033
14034 2015-07-06  Richard Biener  <rguenther@suse.de>
14035
14036         PR tree-optimization/66767
14037         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
14038         Make sure to build the alignment test on a SSA name without
14039         final alignment info valid only if the alignment test
14040         evaluates to true.
14041
14042 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
14043
14044         PR target/66620
14045         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
14046         loop start when inserting LSETUP.
14047
14048 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14049
14050         PR target/53383
14051         * config/i386/i386.c (ix86_option_override_internal): Allow
14052         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
14053
14054 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14055
14056         * read-md.c (decimal_string): Rename to ...
14057         (md_decimal_string): ... this.
14058         (handle_enum): Reflect this.
14059
14060 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
14061
14062         PR target/66731
14063         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
14064
14065 2015-07-06  Richard Biener  <rguenther@suse.de>
14066
14067         PR middle-end/66759
14068         * match.pd: Add missing constraint of y to REAL_CST in
14069         REAL_CST - x CMP y to y - CST CMP x simplification.
14070
14071 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
14072
14073         PR tree-optimization/66757
14074         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
14075
14076 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
14077             Sandra Loosemore <sandra@codesourcery.com>
14078
14079         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
14080         Delete extern declaration.
14081         (gprel_constant_p): Add extern declaration.
14082         * config/nios2/constraints.md ("S"): Use gprel_constant_p
14083         instead of nios2_symbol_ref_in_small_data_p.
14084         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
14085         (nios2_symbol_ref_in_small_data_p): Make static.
14086         (gprel_constant_p): Make non-static.
14087
14088 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
14089
14090         * doc/fragments.texi (Target Fragment): Convert debian.org
14091         link to use https.
14092         * doc/install.texi (Configuration): Ditto.
14093
14094 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
14095
14096         PR tree-optimization/66718
14097         * tree-vect-stmts.c (vectorizable_call): Replace uses of
14098         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
14099
14100         PR tree-optimization/66718
14101         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
14102         vectorizable_load, vectorizable_condition): Move vectype,
14103         nunits, ncopies computation after checking what kind of statement
14104         stmt is.
14105
14106 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14107
14108         * target-insns.def (extv, extzv, insv): New targetm instruction
14109         patterns.
14110         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
14111         interface.
14112         * recog.c (simplify_while_replacing): Likewise.
14113
14114 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14115
14116         * target-insns.def (doloop_begin, doloop_end): New targetm
14117         instruction patterns.
14118         * loop-init.c: Include target.h.
14119         (pass_loop2::gate): Use the new targetm patterns instead of
14120         HAVE_*/gen_* interface.
14121         (pass_rtl_doloop::gate): Likewise.
14122         (pass_rtl_doloop::execute): Remove preprocessor condition.
14123         * hw-doloop.c: Build unconditionally.
14124         * loop-doloop.c: Likewise.
14125         (doloop_optimize): Use the new targetm patterns instead of
14126         HAVE_*/gen_* interface.
14127         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
14128         * modulo-sched.c (doloop_register_get): Likewise.
14129
14130 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14131
14132         * target-insns.def (clear_cache): New targetm instruction pattern.
14133         * builtins.c (expand_builtin___clear_cache): Use it instead of
14134         HAVE_*/gen_* interface.
14135
14136 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14137
14138         * target-insns.def (allocate_stack, check_stack, probe_stack)
14139         (probe_stack_address, split_stack_prologue, split_stack_space_check):
14140         New targetm instruction patterns.
14141         * explow.c (allocate_dynamic_stack_space): Use them instead of
14142         HAVE_*/gen_* interface.
14143         (emit_stack_probe): Likewise.
14144         (probe_stack_range): Likewise.
14145         * function.c (thread_prologue_and_epilogue_insns): Likewise.
14146
14147 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14148
14149         * target-insns.def (stack_protect_set, stack_protect_test): New
14150         targetm instruction patterns.
14151         * cfgexpand.c (stack_protect_prologue): Use them instead of
14152         HAVE_*/gen_* interface.
14153         * function.c (stack_protect_epilogue): Likewise.
14154
14155 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14156
14157         * expr.h (gen_move_insn_uncast): Delete.
14158         * expr.c (gen_move_insn_uncast): Delete.
14159
14160 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14161
14162         * target-insns.def (restore_stack_block, restore_stack_function)
14163         (restore_stack_nonlocal, save_stack_block, save_stack_function)
14164         (save_stack_nonlocal): New targetm instruction patterns.
14165         * builtins.c (expand_builtin_apply): Use them instead of
14166         HAVE_*/gen_* interface.
14167         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
14168
14169 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14170
14171         * target-insns.def (trap): New targetm instruction pattern.
14172         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
14173         interface.
14174         * explow.c (allocate_dynamic_stack_space): Likewise.
14175         * ifcvt.c (find_if_header): Likewise.
14176
14177 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14178
14179         * target-insns.def (prefetch): New targetm instruction pattern.
14180         * tree-ssa-loop-prefetch.c: Include targeth.
14181         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
14182         of HAVE_*/gen_* interface.
14183         * builtins.c (expand_builtin_prefetch): Likewise.
14184         * toplev.c (process_options): Likewise.
14185
14186 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14187
14188         * target-insns.def (untyped_call, untyped_return): New targetm
14189         instruction patterns.
14190         * builtins.c (expand_builtin_apply): Use them instead of
14191         HAVE_*/gen_* interface.
14192         (result_vector): Define unconditionally.
14193
14194 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14195
14196         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
14197         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
14198         (nonlocal_goto_receiver): New targetm instruction patterns.
14199         * builtins.c (expand_builtin_setjmp_setup): Use them instead
14200         of HAVE_*/gen_* interface.
14201         (expand_builtin_setjmp_receiver): Likewise.
14202         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
14203         * except.c (expand_dw2_landing_pad_for_region): Likewise.
14204
14205 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14206
14207         * target.def: Add code_for_* hooks.
14208         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
14209         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
14210         * target-insns.def (casesi, tablejump): New targetm instruction
14211         patterns.
14212         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
14213         (do_tablejump): Likewise.
14214         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
14215         (expand_sjlj_dispatch_table): Likewise.
14216         * targhooks.c (default_case_values_threshold): Likewise.
14217
14218 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
14219
14220         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
14221         Use rtx_insn * instead of rtx.
14222         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
14223         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
14224         (nios2_call_tls_get_addr): Likewise.
14225         (nios2_emit_expensive_div): Likewise.
14226         (nios2_emit_move_sequence): Change return type to bool.
14227         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
14228         Change return type to bool.
14229
14230 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14231
14232         PR target/66747
14233         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
14234
14235 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
14236
14237         PR target/66114
14238         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
14239         of register_operand.  Remove constraint.
14240
14241 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
14242
14243         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
14244         the first argument.
14245
14246 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
14247
14248         * attribs.c (decl_attributes): Guard inform with the return value
14249         of the preceding warning.
14250
14251 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
14252
14253         * doc/invoke.texi (moverride): Move to correct section.
14254
14255 2015-07-03  Richard Biener  <rguenther@suse.de>
14256
14257         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
14258         Copy from tree.c
14259         (dt_operand::gen_gimple_expr): After valueizing operands
14260         re-canonicalize operand order for commutative tree codes.
14261
14262 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
14263
14264         PR target/66746.
14265         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
14266         is defined.
14267         (__crc32w): Likewise.
14268         (__crc32d): Likewise.
14269         (__rdpmc): Likewise.
14270         (__rdtscp): Likewise.
14271         (_rdpmc): Likewise.
14272         (_rdtscp): Likewise.
14273         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
14274         is defined.
14275
14276 2015-07-03  Richard Biener  <rguenther@suse.de>
14277
14278         * fold-const.c (fold_mathfn_compare): Remove.
14279         (fold_inf_compare): Likewise.
14280         (fold_comparison): Move floating point comparison simplifications...
14281         * match.pd: ... to patterns here.  Introduce simple_comparisons
14282         operator list and use it for patterns formerly in fold_comparison.
14283
14284 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
14285
14286         PR tree-optimization/66119
14287         * toplev.c (process_options): Don't set up default values for
14288         the sra_max_scalarization_size_{speed,size} parameters.
14289         * tree-sra (analyze_all_variable_accesses): If no values
14290         have been set for the sra_max_scalarization_size_{speed,size}
14291         parameters, call get_move_ratio to get target defaults.
14292
14293 2015-07-03  Richard Biener  <rguenther@suse.de>
14294
14295         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
14296         * match.pd: ... here.
14297
14298 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
14299
14300         PR target/37072
14301         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
14302         is not actually the default on FreeBSD.
14303
14304 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14305
14306         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
14307         definition.
14308         (CMPGE_8HI): Likewise.
14309         (CMPGE_4SI): Likewise.
14310         (CMPGE_2DI): Likewise.
14311         (CMPGE_U16QI): Likewise.
14312         (CMPGE_U8HI): Likewise.
14313         (CMPGE_U4SI): Likewise.
14314         (CMPGE_U2DI): Likewise.
14315         (CMPLE_16QI): Likewise.
14316         (CMPLE_8HI): Likewise.
14317         (CMPLE_4SI): Likewise.
14318         (CMPLE_2DI): Likewise.
14319         (CMPLE_U16QI): Likewise.
14320         (CMPLE_U8HI): Likewise.
14321         (CMPLE_U4SI): Likewise.
14322         (CMPLE_U2DI): Likewise.
14323         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14324         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
14325         ALTIVEC_BUILTIN_VEC_CMPLE.
14326         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
14327         floating-point vector modes.
14328         (vector_nlt<mode>): New define_expand.
14329         (vector_nltu<mode>): Likewise.
14330         (vector_ngt<mode>): Likewise.
14331         (vector_ngtu<mode>): Likewise.
14332
14333 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
14334
14335         PR rtl-optimization/66706
14336         * combine.c (make_compound_operation): If an AND of SUBREG of
14337         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
14338
14339 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
14340
14341         * tree-pass.h (make_pass_ch_vect): New.
14342         * passes.def: Add pass_ch_vect just before pass_if_conversion.
14343
14344         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
14345         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
14346         make_pass_ch_vect): New.
14347         (pass_ch): Extend ch_base.
14348
14349         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
14350         (ch_base::copy_headers): ...here.
14351
14352 2015-07-02  Richard Biener  <rguenther@suse.de>
14353
14354         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
14355         * fold-const.c (get_pointer_modulus_and_residue): Remove.
14356         (fold_binary_loc): Implement (T)ptr & CST in terms of
14357         get_pointer_alignment_1.
14358         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
14359         Make sure to build the alignment test on a SSA name without
14360         final alignment info valid only after the prologue.
14361
14362 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
14363
14364         * config/cris/cris.md ("epilogue"): Remove condition.
14365         ("prologue"): Ditto.
14366
14367 2015-07-02  Richard Biener  <rguenther@suse.de>
14368
14369         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
14370         parameter to record a condition that is false.
14371         (record_conditions): When recording an extra NE_EXPR that is
14372         true also record a EQ_EXPR that is false.
14373
14374 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
14375
14376         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
14377         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
14378         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
14379         (set_iv, find_interesting_uses_address, add_candidate_1): New
14380         argument to alloc_iv.
14381         (find_interesting_uses_op, find_interesting_uses_cond): Don't
14382         duplicate struct iv.
14383         (free_loop_data): Don't free struct iv explicitly.
14384         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
14385
14386 2015-07-01  DJ Delorie  <dj@redhat.com>
14387
14388         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
14389         (LIB_SPEC): Add.
14390         (SUPPORTS_DISCRIMINATOR): Define.
14391
14392 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
14393
14394         PR bootstrap/66685
14395         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
14396         there are no CALLs in the same pattern.
14397
14398 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14399
14400         PR rtl-optimization/61047
14401         * rtlanal.c (get_initial_register_offset): New function.
14402         (rtx_addr_can_trap_p_1): Check offsets of stack references.
14403
14404 2015-07-01  Richard Biener  <rguenther@suse.de>
14405
14406         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
14407         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
14408         ~X CMP C -> X CMP' ~C to ...
14409         * match.pd: ... patterns here.
14410
14411 2015-07-01  Nick Clifton  <nickc@redhat.com>
14412
14413         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
14414         a 16-bit value into a 20-bit memory slot.
14415
14416 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14417
14418         * doc/sourcebuild.texi (AArch64-specific attributes): Document
14419         "aarch64_tiny", "aarch64_small", "aarch64_large",
14420         "aarch64_little_endian", "aarch64_big_endian".
14421
14422 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14423
14424         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
14425         Document "aarch64_small_fpic".
14426
14427 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14428
14429         * configure.ac: Add check for aarch64 assembler -fpic relocation
14430         modifier support.
14431         * configure: Regenerate.
14432         * config.in: Regenerate.
14433         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
14434         to -fPIC if not support of -fpic relocation modifier in assembler.
14435
14436 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
14437
14438         PR bootstrap/66685
14439         * rtl.c (classify_insn): Handle returns in PARALLELs.
14440
14441 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
14442
14443         PR middle-end/66633
14444         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
14445         to true if the function is nested and if not optimizing.
14446         (convert_local_omp_clauses): Initialize need_frame to true if the
14447         function contains nested functions and if not optimizing.
14448
14449 2015-07-01  Richard Biener  <rguenther@suse.de>
14450
14451         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
14452         (X & Y) ^ Y -> ~X & Y transforms to ...
14453         * match.pd: ... here.
14454
14455 2015-07-01  Richard Biener <rguenther@suse.de>
14456
14457         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
14458         of converts to avoid uninteresting noise from the conversion
14459         simplifying patterns.
14460
14461 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
14462
14463         * config/c6x/c6x.c (try_rename_operands): Do not depend on
14464         gcc_assert evaluating its argument for side-effect.
14465
14466 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
14467
14468         PR target/64833
14469         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
14470         flag_pic is set.
14471
14472 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
14473
14474         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
14475         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
14476         (hash_scc): Add this_ref_p and ref_p parameters and pass them
14477         to the inner DFS walk.
14478
14479 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14480
14481         * target-insns.def (jump): New targetm instruction pattern.
14482         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
14483         instead of gen_jump.
14484         (fix_up_crossing_landing_pad): Likewise.
14485         (add_labels_and_missing_jumps): Likewise.
14486         (fix_crossing_conditional_branches): Likewise.
14487         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
14488         (force_nonfallthru_and_redirect): Likewise.
14489         * cse.c (cse_insn): Likewise.
14490         * expmed.c (expand_divmod): Likewise.
14491         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
14492         * haifa-sched.c (init_before_recovery): Likewise.
14493         (sched_create_recovery_edges): Likewise.
14494         * ifcvt.c (find_cond_trap): Likewise.
14495         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
14496         (expand_float, expand_fix): Likewise.
14497         * stmt.c (emit_jump): Likewise.
14498
14499 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14500
14501         * defaults.h (HAVE_load_multiple, gen_load_multiple)
14502         (HAVE_store_multiple, gen_store_multiple): Delete.
14503         * target-insns.def (load_multiple, store_multiple): New targetm
14504         instruction patterns.
14505         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
14506         of HAVE_*/gen_* interface.
14507
14508 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14509
14510         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
14511         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
14512         (gen_mem_signal_fence): Delete.
14513         * target-insns.def (mem_signal_fence, mem_thread_fence)
14514         (memory_barrier): New targetm instruction patterns.
14515         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
14516         interface.
14517         (expand_mem_signal_fence): Likewise.
14518
14519 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14520
14521         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
14522         * target-insns.def (epilogue, prologue, sibcall_prologue): New
14523         targetm instruction patterns.
14524         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
14525         interface.
14526         * calls.c (expand_call): Likewise.
14527         * cfgrtl.c (cfg_layout_finalize): Likewise.
14528         * df-scan.c (df_get_entry_block_def_set): Likewise.
14529         (df_get_exit_block_use_set): Likewise.
14530         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
14531         * final.c (final_start_function): Likewise.
14532         * function.c (thread_prologue_and_epilogue_insns): Likewise.
14533         (reposition_prologue_and_epilogue_notes): Likewise.
14534         * reorg.c (find_end_label): Likewise.
14535         * toplev.c (process_options): Likewise.
14536
14537 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
14538
14539         * typed-splay-tree.h: New file.
14540
14541 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
14542
14543         PR debug/66691
14544         * lra-int.h (lra_substitute_pseudo): Add a parameter.
14545         (lra_substitute_pseudo_within_insn): Ditto.
14546         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
14547         of constant.
14548         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
14549         to lra_substitute_pseudo.
14550         * lra-lives.c (process_bb_lives): Add an argument to
14551         lra_substitute_pseudo_within_insn call.
14552         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
14553         argument to lra_substitute_pseudo and
14554         lra_substitute_pseudo_within_insn calls.
14555         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
14556
14557 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
14558
14559         * configure: Regenerated.
14560
14561 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
14562
14563         * config.gcc: Support i[34567]86-*-elfiamcu target.
14564         * config/i386/iamcu.h: New.
14565         * config/i386/i386.opt: Add -miamcu.
14566         * doc/invoke.texi: Document -miamcu.
14567         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
14568         off x87/MMX/SSE/AVX codegen for -miamcu.
14569         * config/i386/i386-c.c (ix86_target_macros_internal): Define
14570         __iamcu/__iamcu__ for -miamcu.
14571         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
14572         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
14573         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
14574         * config/i386/i386.c (ix86_option_override_internal): Ignore and
14575         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
14576         MCU by default.  Default long double to 64-bit for Intel MCU.
14577         Turn on -freg-struct-return for Intel MCU.  Issue an error when
14578         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
14579         AVX is turned on.
14580         (function_arg_advance_32): Pass value whose size is no larger
14581         than 8 bytes in registers for Intel MCU.
14582         (function_arg_32): Likewise.
14583         (ix86_return_in_memory): Return value whose size is no larger
14584         than 8 bytes in registers for Intel MCU.
14585         (iamcu_alignment): New function.
14586         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
14587         true.
14588         (ix86_local_alignment): Don't increase alignment for Intel MCU.
14589         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
14590         true.
14591
14592 2015-06-30  Marek Polacek  <polacek@redhat.com>
14593
14594         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
14595         both operands of the resulting expression.
14596
14597         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
14598         the final expression with the operand's type and then convert
14599         it to the type of the expression.
14600
14601 2015-06-30  Richard Biener  <rguenther@suse.de>
14602
14603         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
14604         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
14605         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
14606         * match.pd: ... to patterns here.
14607
14608 2015-06-30  Richard Biener  <rguenther@suse.de>
14609
14610         PR tree-optimization/66704
14611         * tree-vect-data-refs.c (vect_setup_realignment): Use
14612         make_ssa_name for non-SSA name source.
14613
14614 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
14615
14616         PR middle-end/66702
14617         * omp-low.c (simd_clone_adjust): Handle addressable linear
14618         or uniform parameters or non-gimple type uniform parameters.
14619
14620 2015-06-30  Richard Biener  <rguenther@suse.de>
14621
14622         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
14623         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
14624         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
14625         * match.pd: ... here.
14626         Add a few cases of A - B -> A + (-B) when B "easily" negates.
14627         Move (x & y) | x -> x and friends before
14628         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
14629
14630 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
14631
14632         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
14633         -mfix-ut699 is not specified.
14634         (leon3_load): Rename into...
14635         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
14636         is specified.
14637
14638 2015-06-30  Marek Polacek  <polacek@redhat.com>
14639
14640         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
14641         * match.pd: ... here.
14642
14643 2015-06-30  Richard Biener  <rguenther@suse.de>
14644
14645         * target-insns.def (canonicalize_funcptr_for_compare): Add.
14646         * fold-const.c (build_range_check): Replace uses of
14647         HAVE_canonicalize_funcptr_for_compare.
14648         (fold_widened_comparison): Likewise.
14649         (fold_sign_changed_comparison): Likewise.
14650         * dojump.c: Include "target.h".
14651         (do_compare_and_jump): Replace uses of
14652         HAVE_canonicalize_funcptr_for_compare and
14653         gen_canonicalize_funcptr_for_compare.
14654         * expr.c (do_store_flag): Likewise.
14655
14656 2015-06-30  Tom de Vries  <tom@codesourcery.com>
14657
14658         PR tree-optimization/66652
14659         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
14660         max_loop_iterations to determine if nit + 1 overflows.
14661
14662 2015-06-30  Richard Biener  <rguenther@suse.de>
14663
14664         * tree-vrp.c (register_edge_assert_for_2): Also register
14665         asserts for dominating conversion results.
14666
14667 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
14668
14669         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
14670         field in struct iv.
14671
14672 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
14673
14674         PR target/66509
14675         * configure.ac: Fix filds and fildq test for 64-bit.
14676         * configure: Regenerated.
14677
14678 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
14679
14680         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
14681         (nvptx_reorg): Here.  Keep the non-subreg pieces.
14682
14683 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
14684
14685         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
14686         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
14687
14688 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
14689
14690         * config/i386/i386.md (*jcc_1): Use %! in asm template.
14691         Set attribute "length_nobnd" instead of "length".
14692         (*jcc_2): Ditto.
14693         (jump): Ditto.
14694         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
14695
14696 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
14697
14698         * config/nios2/nios2.c (nios2_delegitimize_address): Make
14699         assert less restrictive.
14700
14701 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14702
14703         PR fortran/66605
14704         * cgraphunit.c (cgraph_node::finalize_function): Do not call
14705         do_warn_unused_parameter.
14706         * function.c (do_warn_unused_parameter): Move from here.
14707         * function.h (do_warn_unused_parameter): Do not declare.
14708
14709 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
14710
14711         PR target/65697
14712         * gcc.target/arm/armv-sync-comp-swap.c: New.
14713         * gcc.target/arm/armv-sync-op-acquire.c: New.
14714         * gcc.target/arm/armv-sync-op-full.c: New.
14715         * gcc.target/arm/armv-sync-op-release.c: New.
14716
14717 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
14718
14719         PR target/65697
14720         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
14721         initial acquire barrier with final barrier.
14722
14723 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
14724
14725         PR target/65697
14726         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
14727         initial acquire barrier with final barrier.
14728
14729 2015-06-29  Richard Henderson  <rth@redhat.com>
14730
14731         * config/i386/constraints.md (Bf): New constraint.
14732         * config/i386/i386-c.c (ix86_target_macros): Define
14733         __GCC_ASM_FLAG_OUTPUTS__.
14734         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
14735         as flags outputs.
14736         * doc/extend.texi (FlagOutputOperands): Document them.
14737
14738 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
14739
14740         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
14741         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
14742         unspec name.
14743         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
14744         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
14745         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
14746         (aarch64_symbol_context): Ditto.
14747         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
14748         and use new pattern name.
14749         (aarch64_expand_mov_immediate): Ditto.
14750         (aarch64_print_operand): Ditto.
14751         (aarch64_classify_tls_symbol): Ditto.
14752
14753 2015-06-29  Marek Polacek  <polacek@redhat.com>
14754             Marc Glisse  <marc.glisse@inria.fr>
14755
14756         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
14757         * match.pd: ... pattern here.
14758
14759 2015-06-29  Tom de Vries  <tom@codesourcery.com>
14760
14761         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
14762         function structure.
14763
14764 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
14765
14766         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
14767         feature description, split out the native option, add a link to
14768         the feature documentation, rearrange and slightly rewrite text.
14769         (Aarch64 options, -mcpu): Likewise.
14770         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
14771         +rdma implies Adv. SIMD.
14772
14773 2015-06-29  Marek Polacek  <polacek@redhat.com>
14774
14775         PR c/66322
14776         * function.c (stack_protect_epilogue): Remove a cast to int.
14777         * doc/invoke.texi: Update -Wswitch-bool description.
14778
14779 2015-06-29  Richard Biener  <rguenther@suse.de>
14780
14781         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
14782         * fold-const.c (fold_binary_loc): Move &A - &B simplification
14783         via ptr_difference_const ...
14784         * match.pd: ... here.
14785         When matching (X ^ Y) == Y also match with swapped operands.
14786
14787 2015-06-29  Richard Biener  <rguenther@suse.de>
14788
14789         * lto-streamer.h (LTO_major_version): Bump to 5.
14790
14791 2015-06-29  Richard Biener  <rguenther@suse.de>
14792
14793         PR tree-optimization/66677
14794         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
14795         STMT_VINFO_VEC_STMT clobbering less strict.
14796
14797 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
14798
14799         PR middle-end/64130
14800         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
14801         division, compute max and min when value ranges for dividend and
14802         divisor are available.
14803
14804 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
14805             Sandra Loosemore <sandra@codesourcery.com>
14806
14807         * regrename.h (regrename_do_replace): Change to return bool.
14808         * regrename.c (rename_chains): Check return value of
14809         regname_do_replace.
14810         (regrename_do_replace): Re-validate the modified insns and
14811         return bool status.
14812         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
14813         Update to match rename_chains changes.
14814         * config/c6x/c6x.c (try_rename_operands): Assert that
14815         regrename_do_replace returns true.
14816
14817 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
14818
14819         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
14820         operand 2 here.  Use copy_addr_to_reg to copy non-index
14821         register operand 2 to a temporary.
14822         (<mode>_stx): Ditto for operand 1.
14823         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
14824         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
14825         (ix86_store_bounds): Ditto.
14826
14827 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
14828
14829         * print-tree.c (print_node) [TREE_VEC]: Print its length.
14830
14831 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
14832
14833         * gimple.c (gimple_call_set_fndecl): Remove.
14834         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
14835         build1_loc directly instead of build_fold_addr_expr_loc.
14836
14837 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
14838
14839         * hash-map.h (hash_map::traverse): Use the definition of the
14840         Key typedef rather than the typedef itself.
14841
14842 2015-06-26  Martin Jambor  <mjambor@suse.cz>
14843
14844         PR debug/66301
14845         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
14846         NULL instead of calling dump_enabled_p.
14847
14848 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
14849
14850         * config/aarch64/aarch64.opt: (override): New.
14851         * doc/invoke.texi (override): Document.
14852         * config/aarch64/aarch64.c (aarch64_flag_desc): New
14853         (aarch64_fusible_pairs): Likewise.
14854         (aarch64_tuning_flags): Likewise.
14855         (aarch64_tuning_override_function): Likewise.
14856         (aarch64_tuning_override_functions): Likewise.
14857         (aarch64_parse_one_option_token): Likewise.
14858         (aarch64_parse_boolean_options): Likewise.
14859         (aarch64_parse_fuse_string): Likewise.
14860         (aarch64_parse_tune_string): Likewise.
14861         (aarch64_parse_one_override_token): Likewise.
14862         (aarch64_parse_override_string): Likewise.
14863         (aarch64_override_options): Parse the -override string if it
14864         is present.
14865
14866 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
14867
14868         * config/aarch64/aarch64-protos.h (tune_params): Remove
14869         const from members.
14870         (aarch64_tune_params): Remove const, change to no longer be
14871         a pointer.
14872         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
14873         change to no longer be a pointer, initialize to generic_tunings.
14874         (aarch64_min_divisions_for_recip_mul): Change dereference of
14875         aarch64_tune_params to member access.
14876         (aarch64_reassociation_width): Likewise.
14877         (aarch64_rtx_mult_cost): Likewise.
14878         (aarch64_address_cost): Likewise.
14879         (aarch64_branch_cost): Likewise.
14880         (aarch64_rtx_costs): Likewise.
14881         (aarch64_register_move_cost): Likewise.
14882         (aarch64_memory_move_cost): Likewise.
14883         (aarch64_sched_issue_rate): Likewise.
14884         (aarch64_builtin_vectorization_cost): Likewise.
14885         (aarch64_override_options): Take a copy of the selected tuning
14886         struct in to aarch64_tune_params, rather than just setting
14887         a pointer, change dereferences of aarch64_tune_params to member
14888         accesses.
14889         (aarch64_override_options_after_change): Change dereferences of
14890         aarch64_tune_params to member access.
14891         (aarch64_macro_fusion_p): Likewise.
14892         (aarch_macro_fusion_pair_p): Likewise.
14893         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
14894
14895 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
14896
14897         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
14898         (aarch64_tune_flags): Likewise.
14899         (AARCH64_TUNE_FMA_STEERING): Likewise.
14900         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
14901         to AARCH64_FL_USE_FMA_STEERING_PASS.
14902         (cortex-a57.cortex-a53): Likewise.
14903         (cortex-a72): Use cortexa72_tunings.
14904         (cortex-a72.cortex-a53): Likewise.
14905         (exynos-m1): Likewise.
14906         * config/aarch64/aarch64-protos.h (tune_params): Add
14907         a field: extra_tuning_flags.
14908         * config/aarch64/aarch64-tuning-flags.def: New.
14909         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
14910         (aarch64_extra_tuning_flags): Likewise.
14911         (aarch64_tune_params): Declare here.
14912         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
14913         (cortexa53_tunings): Likewise.
14914         (cortexa57_tunings): Likewise.
14915         (thunderx_tunings): Likewise.
14916         (xgene1_tunings): Likewise.
14917         (cortexa72_tunings): New.
14918         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
14919          (gate): Check against aarch64_tune_params.
14920         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
14921         aarch64-protos.h.
14922
14923 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
14924
14925         * config/aarch64/aarch64-fusion-pairs.def: New.
14926         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
14927         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
14928         aarch64_fusion_pairs.
14929         (AARCH64_FUSE_MOV_MOVK): Likewise.
14930         (AARCH64_FUSE_ADRP_ADD): Likewise.
14931         (AARCH64_FUSE_MOVK_MOVK): Likewise.
14932         (AARCH64_FUSE_ADRP_LDR): Likewise.
14933         (AARCH64_FUSE_CMP_BRANCH): Likewise.
14934
14935 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
14936
14937         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
14938         SYMBOL_SMALL_GOT_28K.
14939         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
14940         relocation modifiers.
14941         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
14942         (ldr_got_small_28k_<mode>): New.
14943         (ldr_got_small_28k_sidi): New.
14944         * config/aarch64/iterators.md (got_modifier): New mode iterator.
14945         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
14946         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
14947         SYMBOL_SMALL_GOT_28K.
14948         (aarch64_rtx_costs): Add costs for new instruction sequences.
14949         (initialize_aarch64_code_model): Initialize new model.
14950         (aarch64_classify_symbol): Recognize new model and new symbol classification.
14951         (aarch64_asm_preferred_eh_data_format): Support new model.
14952         (aarch64_load_symref_appropriately): Generate new instruction
14953         sequences for -fpic.
14954         (TARGET_USE_PSEUDO_PIC_REG): New definition.
14955         (aarch64_use_pseudo_pic_reg): New function.
14956
14957 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
14958
14959         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
14960         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
14961         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
14962         (aarch64_expand_mov_immediate): Ditto.
14963         (aarch64_print_operand): Ditto.
14964         (aarch64_classify_symbol): Ditto.
14965
14966 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
14967
14968         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
14969
14970 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
14971
14972         PR bootstrap/66638
14973         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
14974         assertion failed.  Remove assertion itself.
14975
14976 2015-06-26  Richard Biener  <rguenther@suse.de>
14977
14978         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
14979         and -A CMP CST -> A CMP -CST which is redundant with a pattern
14980         in match.pd.
14981         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
14982         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
14983         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
14984         * match.pd: ... patterns here.
14985
14986 2015-06-26  Marek Polacek  <polacek@redhat.com>
14987
14988         * match.pd ((x | y) & ~(x & y) -> x ^ y,
14989         (x | y) & (~x ^ y) -> x & y): New patterns.
14990
14991 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
14992
14993         * rtl.h (emit): Add an optional boolean parameter to control
14994         whether barriers are emitted.
14995         * emit-rtl.c (emit): Likewise.
14996         * gensupport.c (get_emit_function): Return null rather than "emit".
14997         * genemit.c (gen_emit_seq): Handle the null return value.
14998         Don't emit barriers after the final instruction in the sequence.
14999         * gentarget-def.c (main): Don't emit barriers after the instruction.
15000
15001 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15002
15003         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
15004         TARGET_UNIFIED_ASM.
15005
15006 2015-06-26  Richard Biener  <rguenther@suse.de>
15007
15008         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
15009
15010 2015-06-26  Richard Biener  <rguenther@suse.de>
15011
15012         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
15013         irrespective on whether the inner operation has a single use
15014         of both off are constant.
15015
15016 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
15017             Segher Boessenkool  <segher@kernel.crashing.org>
15018
15019         PR target/66412
15020         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
15021         before doing PUT_MODE or PUT_CODE on operands to avoid
15022         in-place RTX modification.
15023
15024 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
15025
15026         * gentarget-def.c (def_target_insn): Cast return of strtol to
15027         unsigned int.
15028
15029 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15030
15031         * gimple.h (gimple_call_set_fn): Move inline function.
15032         * gimple.c (gimple_call_set_fn): Relocate here.
15033
15034 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
15035
15036         PR target/65979
15037         PR target/66611
15038         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
15039         the replacement insn will work.
15040
15041 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
15042
15043         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
15044         by default.
15045
15046 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15047
15048         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
15049         * cgraph.h: Include ipa-ref.h and plugin-api.h.
15050         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
15051         (symtab_node::address_can_be_compared_p): Move function.
15052         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
15053         definition here.
15054         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
15055         * auto-profile.c: Likewise.
15056         * bb-reorder.c: Likewise.
15057         * builtins.c: Likewise.
15058         * calls.c: Likewise.
15059         * cfgexpand.c: Likewise.
15060         * cgraphbuild.c: Likewise.
15061         * cgraphclones.c: Likewise.
15062         * cgraphunit.c: Likewise.
15063         * combine.c: Likewise.
15064         * coverage.c: Likewise.
15065         * data-streamer-in.c: Likewise.
15066         * data-streamer-out.c: Likewise.
15067         * data-streamer.c: Likewise.
15068         * dbxout.c: Likewise.
15069         * dwarf2out.c: Likewise.
15070         * except.c: Likewise.
15071         * expr.c: Likewise.
15072         * final.c: Likewise.
15073         * fold-const.c: Likewise.
15074         * ggc-page.c: Likewise.
15075         * gimple-fold.c: Likewise.
15076         * gimple-iterator.c: Likewise.
15077         * gimple-pretty-print.c: Likewise.
15078         * gimple-streamer-in.c: Likewise.
15079         * gimple-streamer-out.c: Likewise.
15080         * gimple.c: Likewise.
15081         * gimplify.c: Likewise.
15082         * ipa-chkp.c: Likewise.
15083         * ipa-comdats.c: Likewise.
15084         * ipa-cp.c: Likewise.
15085         * ipa-devirt.c: Likewise.
15086         * ipa-icf-gimple.c: Likewise.
15087         * ipa-icf.c: Likewise.
15088         * ipa-inline-analysis.c: Likewise.
15089         * ipa-inline-transform.c: Likewise.
15090         * ipa-inline.c: Likewise.
15091         * ipa-polymorphic-call.c: Likewise.
15092         * ipa-profile.c: Likewise.
15093         * ipa-prop.c: Likewise.
15094         * ipa-pure-const.c: Likewise.
15095         * ipa-ref.c: Likewise.
15096         * ipa-reference.c: Likewise.
15097         * ipa-split.c: Likewise.
15098         * ipa-utils.c: Likewise.
15099         * ipa-visibility.c: Likewise.
15100         * ipa.c: Likewise.
15101         * langhooks.c: Likewise.
15102         * lto-cgraph.c: Likewise.
15103         * lto-compress.c: Likewise.
15104         * lto-opts.c: Likewise.
15105         * lto-section-in.c: Likewise.
15106         * lto-section-out.c: Likewise.
15107         * lto-streamer-in.c: Likewise.
15108         * lto-streamer-out.c: Likewise.
15109         * lto-streamer.c: Likewise.
15110         * omp-low.c: Likewise.
15111         * opts-global.c: Likewise.
15112         * passes.c: Likewise.
15113         * predict.c: Likewise.
15114         * print-tree.c: Likewise.
15115         * profile.c: Likewise.
15116         * ree.c: Likewise.
15117         * sanopt.c: Likewise.
15118         * stor-layout.c: Likewise.
15119         * symtab.c: Likewise.
15120         * toplev.c: Likewise.
15121         * trans-mem.c: Likewise.
15122         * tree-cfg.c: Likewise.
15123         * tree-chkp.c: Likewise.
15124         * tree-eh.c: Likewise.
15125         * tree-emutls.c: Likewise.
15126         * tree-inline.c: Likewise.
15127         * tree-nested.c: Likewise.
15128         * tree-parloops.c: Likewise.
15129         * tree-pretty-print.c: Likewise.
15130         * tree-profile.c: Likewise.
15131         * tree-sra.c: Likewise.
15132         * tree-ssa-alias.c: Likewise.
15133         * tree-ssa-live.c: Likewise.
15134         * tree-ssa-loop-ivcanon.c: Likewise.
15135         * tree-ssa-loop-ivopts.c: Likewise.
15136         * tree-ssa-pre.c: Likewise.
15137         * tree-ssa-sccvn.c: Likewise.
15138         * tree-ssa-strlen.c: Likewise.
15139         * tree-ssa-structalias.c: Likewise.
15140         * tree-streamer-in.c: Likewise.
15141         * tree-streamer-out.c: Likewise.
15142         * tree-streamer.c: Likewise.
15143         * tree-switch-conversion.c: Likewise.
15144         * tree-tailcall.c: Likewise.
15145         * tree-vect-data-refs.c: Likewise.
15146         * tree-vect-stmts.c: Likewise.
15147         * tree-vectorizer.c: Likewise.
15148         * tree.c: Likewise.
15149         * tsan.c: Likewise.
15150         * ubsan.c: Likewise.
15151         * value-prof.c: Likewise.
15152         * varasm.c: Likewise.
15153         * varpool.c: Likewise.
15154         * config/arm/arm.c: Likewise.
15155         * config/bfin/bfin.c: Likewise.
15156         * config/c6x/c6x.c: Likewise.
15157         * config/cris/cris.c: Likewise.
15158         * config/darwin-c.c: Likewise.
15159         * config/darwin.c: Likewise.
15160         * config/i386/i386.c: Likewise.
15161         * config/i386/winnt.c: Likewise.
15162         * config/microblaze/microblaze.c: Likewise.
15163         * config/mips/mips.c: Likewise.
15164         * config/rs6000/rs6000.c: Likewise.
15165         * config/rx/rx.c: Likewise.
15166         * config/s390/s390.c: Likewise.
15167         * config/tilegx/mul-tables.c: Likewise.
15168
15169 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15170
15171         * config/aarch64/aarch64.c, config/alpha/alpha.c,
15172         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
15173         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
15174         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
15175         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
15176         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
15177         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
15178         config/microblaze/microblaze.c, config/mips/mips.c,
15179         config/mmix/mmix.c, config/mn10300/mn10300.c,
15180         config/moxie/moxie.c, config/msp430/msp430.c,
15181         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
15182         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
15183         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
15184         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
15185         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
15186         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
15187         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
15188         target-def.h include.
15189         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
15190
15191 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15192
15193         * Makefile.in (TARGET_DEF): Add target-insns.def.
15194         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
15195         (build/gentarget-def.o): New rule.
15196         (genprogrtl): Add target-def.
15197         * target-insns.def, gentarget-def.c: New files.
15198         * target.def: Add targetm.have_* and targetm.gen_* hooks,
15199         based on the contents of target-insns.def.
15200         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
15201         (HAVE_return, gen_return): Delete.
15202         * target-def.h: Include insn-target-def.h.
15203         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
15204         instead of direct calls.  Rely on them to do the appropriate assertions.
15205         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
15206         (convert_jumps_to_returns): Use targetm interface instead of
15207         direct calls.
15208         (thread_prologue_and_epilogue_insns): Likewise.
15209         * reorg.c (find_end_label, dbr_schedule): Likewise.
15210         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
15211         * shrink-wrap.c (convert_to_simple_return): Likewise.
15212         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
15213
15214 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15215
15216         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
15217         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
15218         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
15219         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
15220         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
15221         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
15222         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
15223         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
15224         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
15225         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
15226         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
15227         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
15228         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
15229         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
15230         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
15231         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
15232         includes to end.
15233
15234 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15235
15236         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
15237         (unbounded_int_hashmap_traits::key_type): Likewise.
15238         * hash-map.h (hash_map): Get the key type from the traits.
15239         * hash-traits.h (default_hash_traits): By default, inherit from the
15240         template parameter.
15241         * alias.c (alias_set_traits): Delete.
15242         (alias_set_entry_d::children): Use alias_set_hash as the first
15243         template parameter.
15244         (record_alias_subset): Update accordingly.
15245         * except.c (tree_hash_traits): Delete.
15246         (type_to_runtime_map): Use tree_hash as the first template parameter.
15247         (init_eh): Update accordingly.
15248         * genmatch.c (capture_id_map_hasher): Delete.
15249         (cid_map_t): Use nofree_string_hash as first template parameter.
15250         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
15251         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
15252         Use symbol_compare_hash as the first template parameter in
15253         subdivide_hash_map.
15254         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
15255         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
15256         template parameter.
15257         * passes.c (pass_registry_hasher): Delete.
15258         (name_to_pass_map): Use nofree_string_hash as the first template
15259         parameter.
15260         (register_pass_name): Update accordingly.
15261         * sanopt.c (sanopt_tree_map_traits): Delete.
15262         (sanopt_tree_triplet_map_traits): Delete.
15263         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
15264         template parameter.
15265         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
15266         the first template parameter.
15267         * sese.c (rename_map_hasher): Delete.
15268         (rename_map_type): Use tree_ssa_name_hash as the first template
15269         parameter.
15270         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
15271         (function_summary::m_map): Use map_hash as the first template
15272         parameter.
15273         (function_summary::release): Update accordingly.
15274         * tree-if-conv.c (phi_args_hash_traits): Delete.
15275         (predicate_scalar_phi): Use tree_operand_hash as the first template
15276         parameter to phi_arg_map.
15277         * tree-inline.h (dependence_hasher): Delete.
15278         (copy_body_data::dependence_map): Use dependence_hash as the first
15279         template parameter.
15280         * tree-inline.c (remap_dependence_clique): Update accordingly.
15281         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
15282         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
15283         parameter.
15284         (addr_stridxptr): Update accordingly.
15285         * value-prof.c (profile_id_traits): Delete.
15286         (cgraph_node_map): Use profile_id_hash as the first template
15287         parameter.
15288         (init_node_map): Update accordingly.
15289         * config/alpha/alpha.c (string_traits): Delete.
15290         (machine_function::links): Use nofree_string_hash as the first
15291         template parameter.
15292         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
15293         * config/m32c/m32c.c (pragma_traits): Delete.
15294         (pragma_htab): Use nofree_string_hash as the first template parameter.
15295         (m32c_note_pragma_address): Update accordingly.
15296         * config/mep/mep.c (pragma_traits): Delete.
15297         (pragma_htab): Use nofree_string_hash as the first template parameter.
15298         (mep_note_pragma_flag): Update accordingly.
15299         * config/mips/mips.c (mips16_flip_traits): Delete.
15300         (mflip_mips16_htab): Use nofree_string_hash as the first template
15301         parameter.
15302         (mflip_mips16_use_mips16_p): Update accordingly.
15303         (local_alias_traits): Delete.
15304         (mips16_local_aliases): Use nofree_string_hash as the first template
15305         parameter.
15306         (mips16_local_alias): Update accordingly.
15307
15308 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15309
15310         * hash-map-traits.h (default_hashmap_traits): Delete.
15311
15312 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15313
15314         * hash-map-traits.h (unbounded_hashmap_traits): New class.
15315         (unbounded_int_hashmap_traits): Likewise.
15316         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
15317
15318 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15319
15320         * ipa-icf.h (symbol_compare_hash): New class.
15321         (symbol_compare_hashmap_traits): Use it.
15322         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
15323         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
15324         (mem_alloc_description::reverse_mem_map_t): Remove redundant
15325         default_hashmap_traits.
15326         * sanopt.c (sanopt_tree_triplet_hash): New class.
15327         (sanopt_tree_triplet_map_traits): Use it.
15328
15329 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15330
15331         * gengtype-parse.c (require_template_declaration): Allow '+' in
15332         template parameters.  Consolidate cases.
15333         * hash-traits.h (int_hash): New class.
15334         * alias.c (alias_set_hash): New structure.
15335         (alias_set_traits): Use it.
15336         * symbol-summary.h (function_summary::map_hash): New class.
15337         (function_summary::summary_hashmap_traits): Use it.
15338         * tree-inline.h (dependence_hash): New class.
15339         (dependence_hasher): Use it.
15340         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
15341         * value-prof.c (profile_id_hash): New class.
15342         (profile_id_traits): Use it.
15343
15344 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15345
15346         * config/mips/mips.c (mips16_flip_traits): Use it.
15347         (local_alias_traits, mips16_local_aliases): Convert from a map of
15348         rtxes to a map of symbol names.
15349         (mips16_local_alias): Update accordingly.
15350
15351 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15352
15353         * hash-traits.h (string_hash, nofree_string_hash): New classes.
15354         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
15355         * passes.c (pass_registry_hasher): Likewise.
15356         * config/alpha/alpha.c (string_traits): Likewise.
15357         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
15358         * config/m32c/m32c.c (pragma_traits): Likewise.
15359         * config/mep/mep.c (pragma_traits): Likewise.
15360
15361 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15362
15363         * tree-hash-traits.h (tree_hash): New class.
15364         * except.c: Include tree-hash-traits.h.
15365         (tree_hash_traits): Use tree_hash.
15366
15367 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15368
15369         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
15370         * sese.c: Include tree-hash-traits.h.
15371         (rename_map_hasher): Use tree_ssa_name_hasher.
15372
15373 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15374
15375         * tree-hash-traits.h (tree_decl_hash): New class.
15376         * tree-ssa-strlen.c: Include tree-hash-traits.h.
15377         (stridxlist_hash_traits): Use tree_decl_hash.
15378
15379 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15380
15381         * tree-hash-traits.h: New file.
15382         (tree_operand_hash): New class.
15383         * sanopt.c: Include tree-hash-traits.h.
15384         (sanopt_tree_map_traits): Use tree_operand_hash.
15385         * tree-if-conv.c: Include tree-hash-traits.h.
15386         (phi_args_hash_traits): Use tree_operand_hash.
15387         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
15388         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
15389
15390 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15391
15392         * hash-map-traits.h: Include hash-traits.h.
15393         (simple_hashmap_traits): New class.
15394         * mem-stats.h (hash_map): Change the default traits to
15395         simple_hashmap_traits<default_hash_traits<Key> >.
15396
15397 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15398
15399         * hash-table.h: Update comments.
15400
15401 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15402
15403         * hash-traits.h (default_hash_traits): New structure.
15404         * hash-set.h (default_hashset_traits): Delete.
15405         (hash_set): Use default_hash_traits<Key> instead of
15406         default_hashset_traits.  Delete hash_entry type and use Key directly.
15407         * ipa-devirt.c (pair_traits): Delete.
15408         (default_hash_traits <type_pair>): Override.
15409         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
15410         (odr_types_equivalent_p, add_type_duplicate): Likewise.
15411
15412 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15413
15414         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
15415
15416 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15417
15418         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
15419         (has_is_empty, is_empty_helper): Delete.
15420         (has_mark_deleted, mark_deleted_helper): Delete.
15421         (has_mark_empty, mark_empty_helper): Delete.
15422         (hash_table::is_deleted): Call the Descriptor unconditionally.
15423         (hash_table::is_empty): Likewise.
15424         (hash_table::mark_deleted): Likewise.
15425         (hash_table::mark_empty): Likewise.
15426
15427 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15428
15429         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
15430         redundant typedefs and members.
15431         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
15432         redundant typedefs.
15433         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
15434         * ipa-devirt.c (odr_name_hasher): Likewise.
15435         (polymorphic_call_target_hasher): Likewise.
15436         * ira-costs.c (cost_classes_hasher): Likewise.
15437         * statistics.c (stats_counter_hasher): Likewise.
15438         * trans-mem.c (log_entry_hasher): Likewise.
15439         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
15440         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
15441         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
15442         * var-tracking.c (variable_hasher): Likewise.
15443         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
15444         Remove redundant typedefs and members.
15445
15446 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15447
15448         * hash-traits.h (ggc_cache_hasher): Rename to...
15449         (ggc_cache_remove): ...this and remove typedefs.
15450         (ggc_cache_ptr_hash): New class.
15451         * hash-table.h: Update commentary.
15452         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
15453         rather than ggc_cache_hasher.
15454         (const_wide_int_hasher, reg_attr_hasher): Likewise.
15455         (const_double_hasher, const_fixed_hasher): Likewise.
15456         * function.c (insn_cache_hasher): Likewise.
15457         * trans-mem.c (tm_wrapper_hasher): Likewise.
15458         * tree.h (tree_decl_map_cache_hasher): Likewise.
15459         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
15460         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
15461         * ubsan.c (tree_type_map_cache_hasher): Likewise.
15462         * varasm.c (tm_clone_hasher): Likewise.
15463         * config/i386/i386.c (dllimport_hasher): Likewise.
15464         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
15465         (tree_hasher): Likewise.
15466
15467 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15468
15469         * hash-traits.h (ggc_hasher): Rename to...
15470         (ggc_remover): ...this and remove typedefs.
15471         (ggc_cache_hasher): Update accordingly.  Add typedefs.
15472         (ggc_ptr_hash): New class.
15473         * hash-table.h: Update comment.
15474         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
15475         ggc_hasher.
15476         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
15477         (tree_descriptor_hasher): Likewise.
15478         * cgraph.c (function_version_hasher): Likewise.
15479         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
15480         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
15481         (dw_loc_list_hasher, addr_hasher): Likewise.
15482         * function.h (used_type_hasher): Likewise.
15483         * function.c (temp_address_hasher): Likewise.
15484         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
15485         * libfuncs.h (libfunc_hasher): Likewise.
15486         * lto-streamer.h (decl_state_hasher): Likewise.
15487         * optabs.c (libfunc_decl_hasher): Likewise.
15488         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
15489         * varasm.c (section_hasher, object_block_hasher): Likewise.
15490         (const_rtx_desc_hasher): Likewise.
15491         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
15492         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
15493
15494 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15495
15496         * hash-traits.h (free_ptr_hash): New class.
15497         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
15498         rather than typed_free_remove.  Remove redudant typedefs.
15499         (external_ref_hasher): Likewise.
15500         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
15501         (ehspec_hasher): Likewise.
15502         * ggc-common.c (saving_hasher): Likewise.
15503         * gimplify.c (gimplify_hasher): Likewise.
15504         * haifa-sched.c (delay_i2_hasher): Likewise.
15505         * loop-invariant.c (invariant_expr_hasher): Likewise.
15506         * loop-iv.c (biv_entry_hasher): Likewise.
15507         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
15508         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
15509         * tree-cfg.c (locus_discrim_hasher): Likewise.
15510         * tree-eh.c (finally_tree_hasher): Likewise.
15511         * tree-into-ssa.c (var_info_hasher): Likewise.
15512         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
15513         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
15514         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
15515         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
15516         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
15517         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
15518         (shared_bitmap_hasher): Likewise.
15519         * tree-ssa-threadupdate.c (redirection_data): Likewise.
15520         * tree-vectorizer.h (peel_info_hasher): Likewise.
15521         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
15522         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
15523
15524 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15525
15526         * hash-table.h: Update comments.
15527         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
15528         (nofree_ptr_hash): New class.
15529         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
15530         than typed_noop_remove.  Remove redudant typedefs.
15531         * attribs.c (attribute_hasher): Likewise.
15532         * cfg.c (bb_copy_hasher): Likewise.
15533         * cselib.c (cselib_hasher): Likewise.
15534         * dse.c (invariant_group_base_hasher): Likewise.
15535         * dwarf2cfi.c (trace_info_hasher): Likewise.
15536         * dwarf2out.c (macinfo_entry_hasher): Likewise.
15537         (comdat_type_hasher, loc_list_hasher): Likewise.
15538         * gcse.c (pre_ldst_expr_hasher): Likewise.
15539         * genmatch.c (id_base): Likewise.
15540         * genrecog.c (test_pattern_hasher): Likewise.
15541         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
15542         * haifa-sched.c (delay_i1_hasher): Likewise.
15543         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
15544         * ipa-icf.h (congruence_class_group_hash): Likewise.
15545         * ipa-profile.c (histogram_hash): Likewise.
15546         * ira-color.c (allocno_hard_regs_hasher): Likewise.
15547         * lto-streamer.h (string_slot_hasher): Likewise.
15548         * lto-streamer.c (tree_entry_hasher): Likewise.
15549         * plugin.c (event_hasher): Likewise.
15550         * postreload-gcse.c (expr_hasher): Likewise.
15551         * store-motion.c (st_expr_hasher): Likewise.
15552         * tree-sra.c (uid_decl_hasher): Likewise.
15553         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
15554         (ssa_name_var_hash): Likewise.
15555         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
15556         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
15557         * tree-ssa-pre.c (pre_expr_d): Likewise.
15558         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
15559         * vtable-verify.h (registration_hasher): Likewise.
15560         * vtable-verify.c (vtbl_map_hasher): Likewise.
15561         * config/arm/arm.c (libcall_hasher): Likewise.
15562         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
15563         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
15564         * config/sol2.c (comdat_entry_hasher): Likewise.
15565         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
15566         (print_fold_checksum, fold_checksum_tree): Likewise.
15567         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
15568         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
15569         (fold_build_call_array_loc): Likewise.
15570         * tree-ssa-ccp.c (gimple_htab): Likewise.
15571         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
15572         rather than pointer_type.
15573
15574 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15575
15576         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
15577         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
15578
15579 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15580
15581         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
15582         (ggc_hasher::ggc_mx): Likewise.
15583         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
15584         that duplicate ggc_hasher ones.
15585
15586 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15587
15588         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
15589         (gt_cleare_cache): Check here for deleted and empty entries.
15590         Replace handle_cache_entry with a call to keep_cache_entry.
15591         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
15592         (ggc_cache_hasher::keep_cache_entry): New function.
15593         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
15594         (tm_wrapper_hasher::keep_cache_entry): New function.
15595         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
15596         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
15597         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
15598         (type_cache_hasher::keep_cache_entry): New function.
15599         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
15600         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
15601         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
15602         (tree_type_map_cache_hasher::keep_cache_entry): New function.
15603         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
15604         (tm_clone_hasher::keep_cache_entry): New function.
15605         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
15606         (dllimport_hasher::keep_cache_entry): New function.
15607
15608 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15609
15610         * hash-table.h: Include hash-traits.h.
15611         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
15612         (ggc_cache_hasher): Move to...
15613         * hash-traits.h: ...this new file.
15614
15615 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15616
15617         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
15618         struct cl_optimization.
15619         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
15620         * tree.c (make_node_stat): Allocate cl_optimization struct.
15621         (copy_node_stat): Allocate and copy cl_optimization struct.
15622
15623 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15624
15625         * function.h (struct incoming_args): Move struct.
15626         (pass_by_reference, reference_callee_copied): Remove prototypes.
15627         * emit-rtl.h (struct incoming_args): Relocate struct here.
15628         * calls.h (pass_by_reference, reference_callee_copied): Relocate
15629         prototypes here.
15630         * function.c (pass_by_reference, reference_callee_copied): Move.
15631         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
15632         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
15633         * ipa-chkp.c: Include calls.h.
15634
15635 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
15636
15637         * alias.h (alias_set_type): Move typedef.
15638         * coretypes.h (alias_set_type): Relocate typedef here.
15639         * rtl.h: Don't include alias.h.
15640
15641 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15642
15643         * cgraph.h (cgraph_rtl_info): Move to rtl.h
15644         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
15645         and instance.
15646         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
15647         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
15648         doesn't exist.
15649         * calls.c: Include hard-reg-set.h before rtl.h.
15650         * ira.c: Likewise.
15651
15652 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
15653             Vladimir Makarov  <vmakarov@redhat.com>
15654
15655         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
15656         Add assert.
15657
15658 2015-06-25  Richard Biener  <rguenther@suse.de>
15659
15660         * fold-const.c (fold_binary_loc): Move simplification of
15661         (X <<>> C1) & C2 ...
15662         * match.pd: ... here.
15663
15664 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
15665
15666         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
15667
15668 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15669
15670         * match.pd: Add patterns for vec_conds between 1 and 0.
15671
15672 2015-06-25  Richard Biener  <rguenther@suse.de>
15673
15674         * tree-vect-stmts.c (vectorizable_conversion): Do not set
15675         STMT_VINFO_VEC_STMT for SLP.
15676         (vectorizable_store): Likewise.
15677         (vectorizable_load): Likewise.
15678         (vect_transform_stmt): Catch SLP vectorization clobbering
15679         STMT_VINFO_VEC_STMT.
15680
15681 2015-06-25  Richard Biener  <rguenther@suse.de>
15682
15683         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
15684         dumping.
15685         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
15686         cleanup resulting dead code and parameters.
15687         (vect_transform_slp_perm_load): Adjust.
15688
15689 2015-06-25  Nick Clifton  <nickc@redhat.com>
15690
15691         * config/bfin/bfin.c (bfin_expand_prologue): Set
15692         current_function_static_stack_size if flag_stack_usage_info is set.
15693         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
15694         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
15695         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
15696         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
15697
15698 2015-06-25  Tom de Vries  <tom@codesourcery.com>
15699
15700         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
15701         comment that the generated IV is unsigned.
15702
15703 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15704
15705         PR target/29693
15706         * config/arm/arm.c (arm_dbx_register_number): Return
15707         DWARF_FRAME_REGISTERS by default.
15708
15709 2015-06-25  Tom de Vries  <tom@codesourcery.com>
15710
15711         * dominance.c (calculate_dominance_info): Fix verify_dominators call
15712         argument.  Call verify_dominator when reusing dominator info.
15713
15714 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
15715
15716         PR target/66563
15717         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
15718         an additional element of the unspec vector.  Modify indices
15719         of operands.
15720         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
15721         * config/sh/sh.c (prepare_move_operands): Pass incremented
15722         const_int to gen_GOTaddr2picreg.
15723         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
15724
15725 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
15726
15727         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
15728         Condition on TARGET_FLOAT.
15729
15730 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
15731
15732         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
15733         and (no)crypto.
15734
15735 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
15736
15737         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
15738
15739         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
15740         aarch64_err_no_fpadvsimd.
15741
15742         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
15743         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
15744         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
15745         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
15746         Turn error into assert, test TARGET_FLOAT.
15747         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
15748         TARGET_FLOAT.
15749
15750 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
15751
15752         PR debug/66482
15753         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
15754
15755 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
15756
15757         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
15758
15759 2015-06-24  Renlin Li <renlin.li@arm.com>
15760
15761         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
15762         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
15763
15764 2015-06-24  Richard Biener  <rguenther@suse.de>
15765
15766         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
15767         (main): Likewise.
15768         (lower_opt_convert): Support lowering of conditional view_convert.
15769         (parser::parse_operation): Likewise.
15770         (parser::parse_for): Likewise.
15771
15772 2015-06-24  Renlin Li  <renlin.li@arm.com>
15773
15774         * varasm.c (emit_local): Use unsigned int for align variable.
15775
15776 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15777
15778         PR target/63408
15779         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
15780         for negative numbers.
15781
15782 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15783
15784         PR rtl-optimization/66306
15785         * reload.c (find_reloads): Swap the match_dup info for
15786         commutative operands.
15787
15788 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15789
15790         * config/s390/vx-builtins.md
15791         ("vec_scatter_element<mode>_<non_vec_int>")
15792         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
15793         attribute with bhfgq.
15794
15795 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15796
15797         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
15798
15799 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15800
15801         * config/s390/s390-builtin-types.def: Add flag to indicate the
15802         options under which the function type is needed.
15803         * config/s390/s390-builtins.def: Add flag to indicate the options
15804         under which the builtin is enabled.
15805         * config/s390/s390-builtins.h: Add flags parameter to macro
15806         definitions.
15807         (bflags_for_builtin): New function.
15808         (flags_for_builtin): Renamed to ...
15809         (opflags_for_builtin): ... this.
15810         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
15811         flags_for_builtin to bflags_for_builtin and
15812         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
15813         * config/s390/s390.c: Add initialization of bflags_builtin and
15814         opflags_builtin arrays.
15815         Remove code for flags_builtin.
15816         (s390_init_builtins): Only create builtin function types if one of
15817         their flags is active.
15818         Only create builtins if all of their flags are active.
15819         (s390_expand_builtin): Rename flags_for_builtin to
15820         opflags_for_builtin.
15821
15822 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15823
15824         * config/s390/vecintrin.h: Remove internal builtins.
15825
15826 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15827
15828         * config/s390/s390.c (s390_secondary_reload): Fix check for
15829         GENERAL_REGS register class.
15830
15831 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15832
15833         * config/s390/s390.c (s390_support_vector_misalignment): Call
15834         default implementation for !TARGET_VX.
15835
15836 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15837
15838         * config/s390/s390.c (s390_legitimate_constant_p): Add
15839         TARGET_VX check.
15840
15841 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15842
15843         * config/s390/s390.c (s390_vector_abi): New variable definition.
15844         (s390_check_type_for_vector_abi): New function.
15845         (TARGET_ASM_FILE_END): New macro definition.
15846         (s390_asm_file_end): New function.
15847         (s390_function_arg): Call s390_check_type_for_vector_abi.
15848         (s390_gimplify_va_arg): Likewise.
15849         * configure: Regenerate.
15850         * configure.ac: Check for .gnu_attribute Binutils feature.
15851
15852 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
15853
15854         PR target/65803
15855         * config/bfin/bfin.c (hwloop_optimize): Initialize
15856         JUMP_LABEL for newly created jump.
15857
15858 2015-06-23  Tristan Gingold  <gingold@adacore.com>
15859
15860         * collect-utils.c (collect_wait): Unlink the response file here
15861         instead of...
15862         (do_wait): ...here.
15863         (utils_cleanup): ...and here.
15864
15865 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
15866
15867         * df-scan.c: Don't include target-def.h.
15868         * targhooks.c: Likewise.
15869         * config/arm/arm-c.c: Likewise.
15870         * config/i386/i386-c.c: Likewise.
15871         * config/nds32/nds32-cost.c: Likewise.
15872         * config/nds32/nds32-fp-as-gp.c: Likewise.
15873         * config/nds32/nds32-intrinsic.c: Likewise.
15874         * config/nds32/nds32-isr.c: Likewise.
15875         * config/nds32/nds32-md-auxiliary.c: Likewise.
15876         * config/nds32/nds32-memory-manipulation.c: Likewise.
15877         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
15878         * config/nds32/nds32-predicates.c: Likewise.
15879
15880 2015-06-23  Richard Biener  <rguenther@suse.de>
15881
15882         PR tree-optimization/66636
15883         * tree-vect-stmts.c (vectorizable_store): Properly compute the
15884         def type for further defs for strided stores.
15885
15886 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
15887
15888         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
15889         conditional selects.
15890         (setcc_int<mode>, setcc_float<mode>): Reformat.
15891
15892 2015-06-23  Marek Polacek  <polacek@redhat.com>
15893
15894         * match.pd ((x + y) - (x | y) -> x & y,
15895         (x + y) - (x & y) -> x | y): New patterns.
15896
15897 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
15898
15899         PR 65711
15900         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
15901         '-dynamic-linker' within %{!shared: ...}.
15902
15903 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
15904
15905         PR target/66560
15906         * config/i386/predicates.md (addsub_vm_operator): New predicate.
15907         (addsub_vs_operator): Ditto.
15908         (addsub_vs_parallel): Ditto.
15909         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
15910         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
15911         Put minus RTX before plus and adjust vec_merge selector.
15912         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
15913         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
15914         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
15915         (addsub vec_merge splitters): New combiner splitters.
15916         (addsub vec_select/vec_concat splitters): Ditto.
15917
15918 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
15919
15920         PR tree-optimization/66449
15921         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
15922         POINTER_PLUS_EXPR for pointers.
15923
15924 2015-06-23  Alan Modra  <amodra@gmail.com>
15925
15926         * rtlanal.c (commutative_operand_precedence): Correct comments.
15927         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
15928         declaration.  Return an int.  Distinguish REG,REG return from
15929         others.
15930         (struct simplify_plus_minus_op_data): Make local to function.
15931         (simplify_plus_minus): Don't set canonicalized if merely sorting
15932         registers.  Avoid packing ops if nothing changes.  White space fixes.
15933
15934 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
15935
15936         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
15937         -fdump-ada-spec is passed but not if -fsyntax-only is.
15938
15939 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
15940
15941         PR bootstrap/63740
15942         * lra-lives.c (process_bb_lives): Check insn copying the same
15943         reload pseudo and don't create a copy for it.
15944
15945 2015-06-22  Tom de Vries  <tom@codesourcery.com>
15946
15947         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
15948         for cond_stmt.
15949
15950 2015-06-22  Tom de Vries  <tom@codesourcery.com>
15951
15952         * builtins.def (DEF_GOMP_BUILTIN): Test
15953         'flag_tree_parallelize_loops > 1' instead of
15954         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
15955
15956 2015-06-22  Tom de Vries  <tom@codesourcery.com>
15957
15958         * dominance.c (calculate_dominance_info): Verify dominators if
15959         early-out.
15960
15961 2015-06-22  Marek Polacek  <polacek@redhat.com>
15962
15963         * match.pd ((x ^ y) ^ (x | y) -> x & y,
15964         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
15965         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
15966         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
15967
15968 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
15969
15970         PR target/65871
15971         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
15972         cost of embedded comparison.
15973
15974 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15975
15976         PR target/65914
15977         * config/rs6000/predicates.md (altivec_register_operand): Permit
15978         virtual stack registers.
15979         (vsx_register_operand): Likewise.
15980         (vfloat_operand): Likewise.
15981         (vint_operand): Likewise.
15982         (vlogical_operand): Likewise.
15983
15984 2015-06-22  Richard Biener  <rguenther@suse.de>
15985
15986         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
15987         and single_scalar_iteration_cost members.
15988         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
15989         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
15990         (vect_get_single_scalar_iteration_cost): Remove.
15991         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
15992         Use LOOP_VINFO_SCALAR_ITERATION_COST.
15993         * tree-vect-loop.c (destroy_loop_vec_info): Free
15994         scalar_cost_vec.
15995         (vect_get_single_scalar_iteration_cost): Compute result into
15996         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
15997         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
15998         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
15999         (vect_estimate_min_profitable_iters): Use them.
16000
16001 2015-06-22  Christian Bruel  <christian.bruel@st.com>
16002
16003         PR target/52144
16004         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
16005         (TARGET_INSERT_ATTRIBUTES): Define.
16006         (thumb_flipper): New var.
16007         * config/arm/arm.opt (-mflip-thumb): New switch.
16008
16009 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
16010             Martin Liska  <mliska@suse.cz>
16011
16012         PR ipa/65908
16013         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
16014         construction of arg_types.
16015         (sem_function::sem_function): Likewise.
16016         (sem_function::~sem_function): Remove destruction of arg_types.
16017         (sem_function::compatible_parm_types_p): New function.
16018         (sem_function::equals_wpa): Reorg matching of return values
16019         and parameter types.
16020         (sem_function::equals_private): Reorg mathcing of argument types.
16021         (sem_function::parse_tree_args): Remove.
16022         * ipa-icf.h (init_wpa): Do not call it.
16023         (parse_tree_args): Remove.
16024         (compatible_parm_types_p): Declare.
16025         (result_type): Remove.
16026         (arg_types): Remove.
16027
16028 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
16029
16030         PR ipa/66351
16031         * ipa-polymorphic-call.c
16032         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
16033         initializing alias oracle; fix formating; set base_alias_set if it
16034         is known.
16035
16036 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
16037
16038         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
16039         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
16040         (find_inc): Likewise.
16041         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
16042         swapping.
16043         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
16044         * df-scan.c (df_swap_refs): Remove.
16045         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
16046         * dominance.c (link_roots): Use std::swap instead of manually swapping.
16047         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
16048         * fold-const.c (fold_relational_const): Likewise.
16049         * genattrtab.c (simplify_test_exp): Likewise.
16050         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
16051         gimple_simplify): Likewise.
16052         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
16053         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
16054         * ipa-devirt.c (add_type_duplicate): Likewise.
16055         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
16056         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
16057         * lra.c (lra_create_copy): Likewise.
16058         * lto-streamer-out.c (DFS::DFS): Likewise.
16059         * modulo-sched.c (get_sched_window): Likewise.
16060         * omega.c (omega_pretty_print_problem): Likewise.
16061         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
16062         * reload1.c (reloads_unique_chain_p): Likewise.
16063         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
16064         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
16065         use std::swap.
16066         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
16067         manually swapping.
16068         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
16069         predicate_mem_writes): Likewise.
16070         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
16071         * tree-predcom.c (combine_chains): Likewise.
16072         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
16073         refs_may_alias_p_1): Likewise.
16074         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
16075         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
16076         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
16077         number_of_iterations_cond): Likewise.
16078         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
16079         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
16080         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
16081         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
16082         * tree-vrp.c (extract_range_from_binary_expr_1,
16083         extract_range_from_unary_expr_1): Likewise.
16084
16085 2015-06-20  Marek Polacek  <polacek@redhat.com>
16086
16087         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
16088
16089 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
16090
16091         PR target/66591
16092         * config/sh/sh.c (prepare_move_operands): Replace subreg
16093         index term with R0 for base and index addressing.
16094
16095 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
16096
16097         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
16098         op1 is an fp zero.
16099         (movsf_aarch64): Change condition from register_operand to
16100         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
16101         load1.  Change type for alternative 7 to store1.
16102         (movdf_aarch64): Likewise.
16103
16104 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
16105
16106         * config/vax/vax.md: Adjust sign/zero extend patterns to
16107         handle SUBREGs in operands[1].
16108
16109 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16110
16111         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
16112         of manually swapping.
16113         (expand_vec_perm_interleave2): Likewise.
16114
16115 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
16116
16117         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
16118         reuse bounds created for abnormal ssa names.
16119
16120 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
16121
16122         * config/nvptx/nvptx.md (allocate_stack): Rename to...
16123         (allocate_stack_<mode>): ... this, and add :P on both
16124         match_operand and unspec.
16125         (allocate_stack): New expander.
16126
16127 2015-06-19  Christian Bruel  <christian.bruel@st.com>
16128
16129         PR target/66541
16130         PR target/52144
16131         * config/arm/arm.c (arm_set_current_function): Handle
16132         explicit default options.
16133
16134 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
16135
16136         * config/i386/i386.md (*movsicc_noc_zext): New insn.
16137         (zero-extended cmove with mem peephole2): New pattern.
16138         (cmove with mem peephole2): Merge patterns.
16139
16140 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
16141
16142         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
16143
16144 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
16145
16146         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
16147         * config/mips/mips.md (*madd4<mode>): Ditto.
16148         (*nmadd3<mode>) Ditto.
16149         (*nmadd4<mode>_fastmath): Ditto.
16150         (*nmadd3<mode>_fastmath): Ditto.
16151         (*nmsub4<mode>): Ditto.
16152         (*nmsub3<mode>): Ditto.
16153         (*nmsub4<mode>_fastmath): Ditto.
16154         (*nmsub3<mode>_fastmath): Ditto.
16155
16156 2015-06-18  Michael Matz  <matz@suse.de>
16157
16158         PR middle-end/66253
16159         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
16160         grouped strided stores.
16161         (vectorizable_load): Don't use the DR from first_stmt in
16162         the non-SLP grouped strided case.
16163
16164 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16165
16166         PR target/66569
16167         * function.c (assign_bounds): Add arguments assign_regs,
16168         assign_special, assign_bt.
16169         (assign_parms): For vararg functions handle bounds in BT
16170         and special slots after incoming vararg bounds.
16171
16172 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16173
16174         PR middle-end/66568
16175         * cfgexpand.c (expand_return): Handle missing bounds.
16176         (expand_gimple_stmt_1): Likewise.
16177         * tree-chkp.c (chkp_expand_zero_bounds): New.
16178         * tree-chkp.h (chkp_expand_zero_bounds): New.
16179
16180 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16181
16182         PR middle-end/66567
16183         * ipa-chkp.c (chkp_maybe_create_clone): Require
16184         functions to be instrumentable.
16185         * tree-chkp.c (chkp_replace_function_pointer): Use
16186         chkp_instrumentable_p instead of attribute check.
16187
16188 2015-06-18  Richard Biener  <rguenther@suse.de>
16189
16190         PR tree-optimization/66510
16191         * tree-vect-stmts.c (vectorizable_load): Properly compute the
16192         number of vector loads for SLP permuted loads.
16193         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
16194         check the stride for loop vectorization.
16195         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
16196         vectorization factor.
16197         (vect_analyze_group_access): If the group size is not a power
16198         of two require a epilogue loop.
16199         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
16200         compute and optimizing and alias test pruning after final
16201         vectorization factor computation.
16202         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
16203         vector alignment.
16204         (vect_transform_slp_perm_load): Properly compute the original
16205         number of vector load stmts.
16206
16207 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
16208
16209         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
16210         "unlikely character , in @var" warning.
16211
16212 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
16213
16214         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
16215         (ix86_function_arg_advance): Ditto.
16216         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
16217
16218 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16219
16220         * function.h (struct rtl_data): Remove struct and accessor macros.
16221         * emit-rtl.h (struct rtl_data): Relocate to here.
16222         * Makefile.in (GTFILES): Add emit-rtl.h.
16223         * df-core.c: Include emit-rtl.h.
16224         * genattrtab.c: Likewise.
16225         * genconditions.c: Likewise.
16226         * genpreds.c: Likewise.
16227         * genrecog.c: Likewise.
16228         * regcprop.c: Likewise.
16229         * resource.c: Likewise.
16230         * sched-rgn.c: Likewise.
16231         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
16232         * config/i386/winnt.c: Likewise.
16233
16234 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
16235
16236         PR middle-end/66429
16237         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
16238         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
16239         and has_force_vectorize_loops flags from cfun into
16240         child_cfun.
16241         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
16242         if simduid is non-NULL.
16243         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
16244         * passes.def (pass_simduid_cleanup): Add new pass after loop
16245         passes.
16246         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
16247         indirection from htab argument's type.
16248         (shrink_simd_arrays): New function.
16249         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
16250         Don't call adjust_simduid_builtins if there are no loops.
16251         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
16252         (pass_simduid_cleanup::execute): New method.
16253         (make_pass_simduid_cleanup): New function.
16254
16255 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
16256
16257         * tree-core.h (tree_target_option): Make opts field a pointer to a
16258         cl_target_option instead of an instance of the struct.
16259         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
16260         the structure.
16261         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
16262         TARGET_OPTION_NODE.
16263         (copy_node_stat): Allocate and copy struct cl_target_option.
16264
16265 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16266
16267         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
16268         Remove conditional exposure of prototypes.
16269         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
16270         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
16271         definitions in tree.h with functions.
16272         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
16273         anon_aggrname_p.
16274         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
16275
16276 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
16277
16278         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
16279         (*cmp<mode>_signed): ... this.
16280         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
16281         (*cmp<mode>_unsigned): ... this.  Remove %b.
16282
16283 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16284
16285         * coretypes.h: Include input.h and as-a.h.
16286         * rtl.h: Include input.h and as-a.h for generator files.
16287         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
16288         * vec.c: Don't include diagnostic-core.h.
16289         * alias.c: Do not include input.h, line-map.h or is-a.h.
16290         * asan.c: Likewise.
16291         * attribs.c: Likewise.
16292         * auto-inc-dec.c: Likewise.
16293         * auto-profile.c: Likewise.
16294         * bb-reorder.c: Likewise.
16295         * bt-load.c: Likewise.
16296         * builtins.c: Likewise.
16297         * caller-save.c: Likewise.
16298         * calls.c: Likewise.
16299         * ccmp.c: Likewise.
16300         * cfg.c: Likewise.
16301         * cfganal.c: Likewise.
16302         * cfgbuild.c: Likewise.
16303         * cfgcleanup.c: Likewise.
16304         * cfgexpand.c: Likewise.
16305         * cfghooks.c: Likewise.
16306         * cfgloop.c: Likewise.
16307         * cfgloop.h: Likewise.
16308         * cfgloopanal.c: Likewise.
16309         * cfgloopmanip.c: Likewise.
16310         * cfgrtl.c: Likewise.
16311         * cgraph.c: Likewise.
16312         * cgraphbuild.c: Likewise.
16313         * cgraphclones.c: Likewise.
16314         * cgraphunit.c: Likewise.
16315         * cilk-common.c: Likewise.
16316         * combine-stack-adj.c: Likewise.
16317         * combine.c: Likewise.
16318         * compare-elim.c: Likewise.
16319         * convert.c: Likewise.
16320         * coverage.c: Likewise.
16321         * cppbuiltin.c: Likewise.
16322         * cprop.c: Likewise.
16323         * cse.c: Likewise.
16324         * cselib.c: Likewise.
16325         * data-streamer-in.c: Likewise.
16326         * data-streamer-out.c: Likewise.
16327         * data-streamer.c: Likewise.
16328         * dbxout.c: Likewise.
16329         * dce.c: Likewise.
16330         * ddg.c: Likewise.
16331         * debug.c: Likewise.
16332         * df-core.c: Likewise.
16333         * df-problems.c: Likewise.
16334         * df-scan.c: Likewise.
16335         * df.h: Likewise.
16336         * dfp.c: Likewise.
16337         * diagnostic-core.h: Likewise.
16338         * diagnostic.c: Likewise.
16339         * dojump.c: Likewise.
16340         * dominance.c: Likewise.
16341         * domwalk.c: Likewise.
16342         * double-int.c: Likewise.
16343         * dse.c: Likewise.
16344         * dumpfile.c: Likewise.
16345         * dumpfile.h: Likewise.
16346         * dwarf2asm.c: Likewise.
16347         * dwarf2cfi.c: Likewise.
16348         * dwarf2out.c: Likewise.
16349         * emit-rtl.c: Likewise.
16350         * et-forest.c: Likewise.
16351         * except.c: Likewise.
16352         * explow.c: Likewise.
16353         * expmed.c: Likewise.
16354         * expr.c: Likewise.
16355         * final.c: Likewise.
16356         * fixed-value.c: Likewise.
16357         * fold-const.c: Likewise.
16358         * function.c: Likewise.
16359         * fwprop.c: Likewise.
16360         * gcc-plugin.h: Likewise.
16361         * gcse.c: Likewise.
16362         * generic-match-head.c: Likewise.
16363         * ggc-page.c: Likewise.
16364         * gimple-builder.c: Likewise.
16365         * gimple-expr.c: Likewise.
16366         * gimple-fold.c: Likewise.
16367         * gimple-iterator.c: Likewise.
16368         * gimple-low.c: Likewise.
16369         * gimple-match-head.c: Likewise.
16370         * gimple-pretty-print.c: Likewise.
16371         * gimple-ssa-isolate-paths.c: Likewise.
16372         * gimple-ssa-strength-reduction.c: Likewise.
16373         * gimple-streamer-in.c: Likewise.
16374         * gimple-streamer-out.c: Likewise.
16375         * gimple-streamer.h: Likewise.
16376         * gimple-walk.c: Likewise.
16377         * gimple.c: Likewise.
16378         * gimplify-me.c: Likewise.
16379         * gimplify.c: Likewise.
16380         * godump.c: Likewise.
16381         * graph.c: Likewise.
16382         * graphite-blocking.c: Likewise.
16383         * graphite-dependences.c: Likewise.
16384         * graphite-interchange.c: Likewise.
16385         * graphite-isl-ast-to-gimple.c: Likewise.
16386         * graphite-optimize-isl.c: Likewise.
16387         * graphite-poly.c: Likewise.
16388         * graphite-scop-detection.c: Likewise.
16389         * graphite-sese-to-poly.c: Likewise.
16390         * graphite.c: Likewise.
16391         * haifa-sched.c: Likewise.
16392         * hw-doloop.c: Likewise.
16393         * ifcvt.c: Likewise.
16394         * init-regs.c: Likewise.
16395         * input.c: Likewise.
16396         * internal-fn.c: Likewise.
16397         * ipa-chkp.c: Likewise.
16398         * ipa-comdats.c: Likewise.
16399         * ipa-cp.c: Likewise.
16400         * ipa-devirt.c: Likewise.
16401         * ipa-icf-gimple.c: Likewise.
16402         * ipa-icf.c: Likewise.
16403         * ipa-inline-analysis.c: Likewise.
16404         * ipa-inline-transform.c: Likewise.
16405         * ipa-inline.c: Likewise.
16406         * ipa-polymorphic-call.c: Likewise.
16407         * ipa-profile.c: Likewise.
16408         * ipa-prop.c: Likewise.
16409         * ipa-pure-const.c: Likewise.
16410         * ipa-ref.c: Likewise.
16411         * ipa-reference.c: Likewise.
16412         * ipa-split.c: Likewise.
16413         * ipa-utils.c: Likewise.
16414         * ipa-visibility.c: Likewise.
16415         * ipa.c: Likewise.
16416         * ira-build.c: Likewise.
16417         * ira-color.c: Likewise.
16418         * ira-conflicts.c: Likewise.
16419         * ira-costs.c: Likewise.
16420         * ira-emit.c: Likewise.
16421         * ira-lives.c: Likewise.
16422         * ira.c: Likewise.
16423         * jump.c: Likewise.
16424         * langhooks.c: Likewise.
16425         * lcm.c: Likewise.
16426         * loop-doloop.c: Likewise.
16427         * loop-init.c: Likewise.
16428         * loop-invariant.c: Likewise.
16429         * loop-iv.c: Likewise.
16430         * loop-unroll.c: Likewise.
16431         * lower-subreg.c: Likewise.
16432         * lra-assigns.c: Likewise.
16433         * lra-coalesce.c: Likewise.
16434         * lra-constraints.c: Likewise.
16435         * lra-eliminations.c: Likewise.
16436         * lra-lives.c: Likewise.
16437         * lra-remat.c: Likewise.
16438         * lra-spills.c: Likewise.
16439         * lra.c: Likewise.
16440         * lto-cgraph.c: Likewise.
16441         * lto-compress.c: Likewise.
16442         * lto-opts.c: Likewise.
16443         * lto-section-in.c: Likewise.
16444         * lto-section-out.c: Likewise.
16445         * lto-streamer-in.c: Likewise.
16446         * lto-streamer-out.c: Likewise.
16447         * lto-streamer.c: Likewise.
16448         * mcf.c: Likewise.
16449         * mode-switching.c: Likewise.
16450         * modulo-sched.c: Likewise.
16451         * omega.c: Likewise.
16452         * omp-low.c: Likewise.
16453         * optabs.c: Likewise.
16454         * opts-global.c: Likewise.
16455         * opts.h: Likewise.
16456         * passes.c: Likewise.
16457         * plugin.c: Likewise.
16458         * postreload-gcse.c: Likewise.
16459         * postreload.c: Likewise.
16460         * predict.c: Likewise.
16461         * pretty-print.h: Likewise.
16462         * print-rtl.c: Likewise.
16463         * print-tree.c: Likewise.
16464         * profile.c: Likewise.
16465         * real.c: Likewise.
16466         * realmpfr.c: Likewise.
16467         * recog.c: Likewise.
16468         * ree.c: Likewise.
16469         * reg-stack.c: Likewise.
16470         * regcprop.c: Likewise.
16471         * reginfo.c: Likewise.
16472         * regrename.c: Likewise.
16473         * regstat.c: Likewise.
16474         * reload.c: Likewise.
16475         * reload1.c: Likewise.
16476         * reorg.c: Likewise.
16477         * resource.c: Likewise.
16478         * rtl-chkp.c: Likewise.
16479         * rtl-error.c: Likewise.
16480         * rtlanal.c: Likewise.
16481         * rtlhooks.c: Likewise.
16482         * sanopt.c: Likewise.
16483         * sched-deps.c: Likewise.
16484         * sched-ebb.c: Likewise.
16485         * sched-rgn.c: Likewise.
16486         * sched-vis.c: Likewise.
16487         * sdbout.c: Likewise.
16488         * sel-sched-dump.c: Likewise.
16489         * sel-sched-ir.c: Likewise.
16490         * sel-sched.c: Likewise.
16491         * sese.c: Likewise.
16492         * shrink-wrap.c: Likewise.
16493         * simplify-rtx.c: Likewise.
16494         * stack-ptr-mod.c: Likewise.
16495         * statistics.c: Likewise.
16496         * stmt.c: Likewise.
16497         * stor-layout.c: Likewise.
16498         * store-motion.c: Likewise.
16499         * streamer-hooks.c: Likewise.
16500         * stringpool.c: Likewise.
16501         * symtab.c: Likewise.
16502         * target-globals.c: Likewise.
16503         * targhooks.c: Likewise.
16504         * toplev.c: Likewise.
16505         * tracer.c: Likewise.
16506         * trans-mem.c: Likewise.
16507         * tree-affine.c: Likewise.
16508         * tree-browser.c: Likewise.
16509         * tree-call-cdce.c: Likewise.
16510         * tree-cfg.c: Likewise.
16511         * tree-cfgcleanup.c: Likewise.
16512         * tree-chkp-opt.c: Likewise.
16513         * tree-chkp.c: Likewise.
16514         * tree-chrec.c: Likewise.
16515         * tree-complex.c: Likewise.
16516         * tree-data-ref.c: Likewise.
16517         * tree-dfa.c: Likewise.
16518         * tree-diagnostic.c: Likewise.
16519         * tree-dump.c: Likewise.
16520         * tree-eh.c: Likewise.
16521         * tree-emutls.c: Likewise.
16522         * tree-if-conv.c: Likewise.
16523         * tree-inline.c: Likewise.
16524         * tree-into-ssa.c: Likewise.
16525         * tree-iterator.c: Likewise.
16526         * tree-loop-distribution.c: Likewise.
16527         * tree-nested.c: Likewise.
16528         * tree-nrv.c: Likewise.
16529         * tree-object-size.c: Likewise.
16530         * tree-outof-ssa.c: Likewise.
16531         * tree-parloops.c: Likewise.
16532         * tree-phinodes.c: Likewise.
16533         * tree-predcom.c: Likewise.
16534         * tree-pretty-print.c: Likewise.
16535         * tree-profile.c: Likewise.
16536         * tree-scalar-evolution.c: Likewise.
16537         * tree-sra.c: Likewise.
16538         * tree-ssa-address.c: Likewise.
16539         * tree-ssa-alias.c: Likewise.
16540         * tree-ssa-ccp.c: Likewise.
16541         * tree-ssa-coalesce.c: Likewise.
16542         * tree-ssa-copy.c: Likewise.
16543         * tree-ssa-copyrename.c: Likewise.
16544         * tree-ssa-dce.c: Likewise.
16545         * tree-ssa-dom.c: Likewise.
16546         * tree-ssa-dse.c: Likewise.
16547         * tree-ssa-forwprop.c: Likewise.
16548         * tree-ssa-ifcombine.c: Likewise.
16549         * tree-ssa-live.c: Likewise.
16550         * tree-ssa-loop-ch.c: Likewise.
16551         * tree-ssa-loop-im.c: Likewise.
16552         * tree-ssa-loop-ivcanon.c: Likewise.
16553         * tree-ssa-loop-ivopts.c: Likewise.
16554         * tree-ssa-loop-manip.c: Likewise.
16555         * tree-ssa-loop-niter.c: Likewise.
16556         * tree-ssa-loop-prefetch.c: Likewise.
16557         * tree-ssa-loop-unswitch.c: Likewise.
16558         * tree-ssa-loop.c: Likewise.
16559         * tree-ssa-math-opts.c: Likewise.
16560         * tree-ssa-operands.c: Likewise.
16561         * tree-ssa-phiopt.c: Likewise.
16562         * tree-ssa-phiprop.c: Likewise.
16563         * tree-ssa-pre.c: Likewise.
16564         * tree-ssa-propagate.c: Likewise.
16565         * tree-ssa-reassoc.c: Likewise.
16566         * tree-ssa-sccvn.c: Likewise.
16567         * tree-ssa-scopedtables.c: Likewise.
16568         * tree-ssa-sink.c: Likewise.
16569         * tree-ssa-strlen.c: Likewise.
16570         * tree-ssa-structalias.c: Likewise.
16571         * tree-ssa-tail-merge.c: Likewise.
16572         * tree-ssa-ter.c: Likewise.
16573         * tree-ssa-threadedge.c: Likewise.
16574         * tree-ssa-threadupdate.c: Likewise.
16575         * tree-ssa-uncprop.c: Likewise.
16576         * tree-ssa-uninit.c: Likewise.
16577         * tree-ssa.c: Likewise.
16578         * tree-ssanames.c: Likewise.
16579         * tree-stdarg.c: Likewise.
16580         * tree-streamer-in.c: Likewise.
16581         * tree-streamer-out.c: Likewise.
16582         * tree-streamer.c: Likewise.
16583         * tree-switch-conversion.c: Likewise.
16584         * tree-tailcall.c: Likewise.
16585         * tree-vect-data-refs.c: Likewise.
16586         * tree-vect-generic.c: Likewise.
16587         * tree-vect-loop-manip.c: Likewise.
16588         * tree-vect-loop.c: Likewise.
16589         * tree-vect-patterns.c: Likewise.
16590         * tree-vect-slp.c: Likewise.
16591         * tree-vect-stmts.c: Likewise.
16592         * tree-vectorizer.c: Likewise.
16593         * tree-vrp.c: Likewise.
16594         * tree.c: Likewise.
16595         * tsan.c: Likewise.
16596         * ubsan.c: Likewise.
16597         * valtrack.c: Likewise.
16598         * value-prof.c: Likewise.
16599         * var-tracking.c: Likewise.
16600         * varasm.c: Likewise.
16601         * varpool.c: Likewise.
16602         * vmsdbgout.c: Likewise.
16603         * vtable-verify.c: Likewise.
16604         * web.c: Likewise.
16605         * wide-int.cc: Likewise.
16606         * xcoffout.c: Likewise.
16607         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
16608         * common/common-targhooks.c: Likewise.
16609         * config/aarch64/aarch64-builtins.c: Likewise.
16610         * config/aarch64/aarch64.c: Likewise.
16611         * config/alpha/alpha.c: Likewise.
16612         * config/arc/arc.c: Likewise.
16613         * config/arm/aarch-common.c: Likewise.
16614         * config/arm/arm-builtins.c: Likewise.
16615         * config/arm/arm-c.c: Likewise.
16616         * config/arm/arm.c: Likewise.
16617         * config/avr/avr-c.c: Likewise.
16618         * config/avr/avr-log.c: Likewise.
16619         * config/avr/avr.c: Likewise.
16620         * config/bfin/bfin.c: Likewise.
16621         * config/c6x/c6x.c: Likewise.
16622         * config/cr16/cr16.c: Likewise.
16623         * config/cris/cris.c: Likewise.
16624         * config/darwin-c.c: Likewise.
16625         * config/darwin.c: Likewise.
16626         * config/default-c.c: Likewise.
16627         * config/epiphany/epiphany.c: Likewise.
16628         * config/epiphany/mode-switch-use.c: Likewise.
16629         * config/epiphany/resolve-sw-modes.c: Likewise.
16630         * config/fr30/fr30.c: Likewise.
16631         * config/frv/frv.c: Likewise.
16632         * config/ft32/ft32.c: Likewise.
16633         * config/glibc-c.c: Likewise.
16634         * config/h8300/h8300.c: Likewise.
16635         * config/i386/i386-c.c: Likewise.
16636         * config/i386/i386.c: Likewise.
16637         * config/i386/msformat-c.c: Likewise.
16638         * config/i386/winnt-cxx.c: Likewise.
16639         * config/i386/winnt-stubs.c: Likewise.
16640         * config/i386/winnt.c: Likewise.
16641         * config/ia64/ia64-c.c: Likewise.
16642         * config/ia64/ia64.c: Likewise.
16643         * config/iq2000/iq2000.c: Likewise.
16644         * config/lm32/lm32.c: Likewise.
16645         * config/m32c/m32c-pragma.c: Likewise.
16646         * config/m32c/m32c.c: Likewise.
16647         * config/m32r/m32r.c: Likewise.
16648         * config/m68k/m68k.c: Likewise.
16649         * config/mcore/mcore.c: Likewise.
16650         * config/mep/mep-pragma.c: Likewise.
16651         * config/mep/mep.c: Likewise.
16652         * config/microblaze/microblaze-c.c: Likewise.
16653         * config/microblaze/microblaze.c: Likewise.
16654         * config/mips/mips.c: Likewise.
16655         * config/mmix/mmix.c: Likewise.
16656         * config/mn10300/mn10300.c: Likewise.
16657         * config/moxie/moxie.c: Likewise.
16658         * config/msp430/msp430-c.c: Likewise.
16659         * config/msp430/msp430.c: Likewise.
16660         * config/nds32/nds32-cost.c: Likewise.
16661         * config/nds32/nds32-fp-as-gp.c: Likewise.
16662         * config/nds32/nds32-intrinsic.c: Likewise.
16663         * config/nds32/nds32-isr.c: Likewise.
16664         * config/nds32/nds32-md-auxiliary.c: Likewise.
16665         * config/nds32/nds32-memory-manipulation.c: Likewise.
16666         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
16667         * config/nds32/nds32-predicates.c: Likewise.
16668         * config/nds32/nds32.c: Likewise.
16669         * config/nios2/nios2.c: Likewise.
16670         * config/nvptx/nvptx.c: Likewise.
16671         * config/pa/pa.c: Likewise.
16672         * config/pdp11/pdp11.c: Likewise.
16673         * config/rl78/rl78-c.c: Likewise.
16674         * config/rl78/rl78.c: Likewise.
16675         * config/rs6000/rs6000-c.c: Likewise.
16676         * config/rs6000/rs6000.c: Likewise.
16677         * config/rx/rx.c: Likewise.
16678         * config/s390/s390-c.c: Likewise.
16679         * config/s390/s390.c: Likewise.
16680         * config/sh/sh-c.c: Likewise.
16681         * config/sh/sh-mem.cc: Likewise.
16682         * config/sh/sh.c: Likewise.
16683         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
16684         * config/sh/sh_treg_combine.cc: Likewise.
16685         * config/sol2-c.c: Likewise.
16686         * config/sol2-cxx.c: Likewise.
16687         * config/sol2-stubs.c: Likewise.
16688         * config/sol2.c: Likewise.
16689         * config/sparc/sparc-c.c: Likewise.
16690         * config/sparc/sparc.c: Likewise.
16691         * config/spu/spu-c.c: Likewise.
16692         * config/spu/spu.c: Likewise.
16693         * config/stormy16/stormy16.c: Likewise.
16694         * config/tilegx/mul-tables.c: Likewise.
16695         * config/tilegx/tilegx-c.c: Likewise.
16696         * config/tilegx/tilegx.c: Likewise.
16697         * config/tilepro/mul-tables.c: Likewise.
16698         * config/tilepro/tilepro-c.c: Likewise.
16699         * config/tilepro/tilepro.c: Likewise.
16700         * config/v850/v850-c.c: Likewise.
16701         * config/v850/v850.c: Likewise.
16702         * config/vax/vax.c: Likewise.
16703         * config/visium/visium.c: Likewise.
16704         * config/vms/vms-c.c: Likewise.
16705         * config/vms/vms.c: Likewise.
16706         * config/vxworks.c: Likewise.
16707         * config/winnt-c.c: Likewise.
16708         * config/xtensa/xtensa.c: Likewise.
16709
16710 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
16711
16712         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
16713         function.
16714         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
16715
16716 2015-06-17  Richard Biener  <rguenther@suse.de>
16717
16718         PR tree-optimization/66251
16719         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
16720         stmts for SLP strided stores.
16721
16722         Revert
16723         2015-05-22  Richard Biener  <rguenther@suse.de>
16724
16725         PR tree-optimization/66251
16726         * tree-vect-stmts.c (vectorizable_conversion): Properly
16727         set STMT_VINFO_VEC_STMT even for the SLP case.
16728
16729         2015-05-26  Michael Matz  <matz@suse.de>
16730
16731         PR middle-end/66251
16732         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
16733         STMT_VINFO_VEC_STMT, also with SLP.
16734
16735 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
16736
16737         PR target/56766
16738         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
16739         (*avx_addsubv4df3_1s): Ditto.
16740         (*sse3_addsubv2df3_1): Ditto.
16741         (*sse3_addsubv2df3_1s): Ditto.
16742         (*avx_addsubv8sf3_1): Ditto.
16743         (*avx_addsubv8sf3_1s): Ditto.
16744         (*sse3_addsubv4sf3_1): Ditto.
16745         (*sse3_addsubv4sf3_1s): Ditto.
16746
16747 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
16748
16749         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
16750         (SYSROOT_SUFFIX_SPEC): Update.
16751         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
16752         (STARTFILE_PREFIX_SPEC): Update.
16753         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
16754         (MULTILIB_REQUIRED): New.
16755         (MULTILIB_OSDIRNAMES): New.
16756         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
16757         (MULTILIB_REQUIRED): New.
16758         (MULTILIB_OSDIRNAMES): New.
16759
16760 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
16761
16762         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
16763         * config/aarch64/aarch64-options-extensions.def: Update "fP",
16764         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
16765         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
16766         (AARCH64_FL_PAN): New.
16767         (AARCH64_FL_LOR): New.
16768         (AARCH64_FL_RDMA): New.
16769         (AARCH64_FL_FOR_ARCH8_1): New.
16770         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
16771         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
16772
16773 2015-06-16  Martin Liska  <mliska@suse.cz>
16774
16775         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
16776         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
16777         guard.
16778
16779 2015-06-16  Richard Biener  <rguenther@suse.de>
16780
16781         * tree-vect-stmts.c (vectorizable_store): Adjust.
16782         (vectorizable_load): Likewise.
16783         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
16784         Simplify.
16785         (vect_create_data_ref_ptr): Likewise.
16786         (bump_vector_ptr): Adjust.
16787
16788 2015-06-16  Richard Biener  <rguenther@suse.de>
16789
16790         * tree-vect-stmts.c (vectorizable_load): Properly start loads
16791         with the first element if this is grouped loads.
16792
16793 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
16794
16795         * config/arm/arm-protos.h (struct tune_params): Rename
16796         log_op_non_sc to log_op_non_short_circuit, and rename enum
16797         values to expand SC to SHORT_CIRCUIT.
16798         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
16799         to LOG_OP_NON_SHORT_CIRCUIT.
16800         (arm_fastmul_tune):Likewise
16801         (arm_strongarm_tune): Likewise.
16802         (arm_xscale_tune): Likewise.
16803         (arm_9e_tune): Likewise.
16804         (arm_marvell_pj4_tune): Likewise.
16805         (arm_v6t2_tune): Likewise.
16806         (arm_cortex_tune): Likewise.
16807         (arm_cortex_a8_tune): Likewise.
16808         (arm_cortex_a7_tune): Likewise.
16809         (arm_cortex_a15_tune): Likewise.
16810         (arm_cortex_a53_tune): Likewise.
16811         (arm_cortex_a57_tune): Likewise.
16812         (arm_xgene1_tune): Likewise.
16813         (arm_cortex_a5_tune): Likewise.
16814         (arm_cortex_a9_tune): Likewise.
16815         (arm_cortex_a12_tune): Likewise.
16816         (arm_v7m_tune): Likewise.
16817         (arm_cortex_m7_tune): Likewise.
16818         (arm_v6m_tune): Likewise.
16819         (arm_fa726te_tune): Likewise.
16820
16821 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
16822
16823         * altivec.md: Delete UNSPEC_VMLADDUHM.
16824         (mulv4si3_p8): New pattern.
16825         (mulv4si3): Use it for POWER8.
16826         (mulv8hi3): Use vmladduhm with zero addend.
16827         (altivec_vmladduhm): Descriptive RTL.
16828
16829 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
16830
16831         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
16832         to use neon_move instead of mov_imm.
16833         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
16834         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
16835
16836         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
16837         aarch64_float_const_zero_rtx_p check before TFmode check.
16838         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
16839         an fp zero.
16840         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
16841         code and attributes to match.  Change condition from register_operand
16842         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
16843         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
16844         to store2.
16845
16846 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
16847
16848         PR debug/66535
16849         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
16850         there is no parent.
16851
16852 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
16853
16854         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
16855         HOST_WIDE_INT parameter.
16856
16857 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
16858
16859         PR ipa/66181
16860         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
16861         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
16862         TYPE_NO_FORCE_BLK.
16863         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
16864
16865 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
16866
16867         * rtl.h (classify_insn): Declare.
16868         * emit-rtl.c (classify_insn): Move to...
16869         * rtl.c: ...here and add generator support.
16870         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
16871         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
16872         * genemit.c (gen_emit_seq): New function.
16873         (gen_expand, gen_split): Use it.
16874
16875 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
16876
16877         * tree.c (make_vector_stat): Fix comment to state that the
16878         function returns a VECTOR_CST.
16879
16880 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
16881
16882         * gensupport.h (add_implicit_parallel): Declare.
16883         * genrecog.c (add_implicit_parallel): Move to...
16884         * gensupport.c (add_implicit_parallel): ...here.
16885         (process_one_cond_exec): Use it.
16886         * genemit.c (gen_insn): Likewise.
16887
16888 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
16889
16890         PR bootstrap/66448
16891         * passes.c (rest_of_decl_compilation): Do not register globals for
16892         early debug if they are declared in built-ins.
16893
16894 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
16895
16896         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
16897
16898 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16899
16900         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
16901         manually swapping.
16902         (noce_try_cmove_arith): Likewise.
16903         (noce_get_alt_condition): Likewise.
16904
16905 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
16906
16907         * common/config/i386/i386-common.c
16908         (OPTION_MASK_ISA_MWAITX_SET): New.
16909         (ix86_handle_option): Handle mwaitx.
16910         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
16911         (x86_64-*-*): Likewise.
16912         * config/i386/mwaitxintrin.h: New header.
16913         * config/i386/cpuid.h (bit_MWAITX):  Define.
16914         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
16915         MWAITX support.
16916         * config/i386/i386.opt (mwaitx): New.
16917         * config/i386/i386-builtin-types.def
16918         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
16919         * config/i386/i386-c.c: Define __MWAITX__ if needed.
16920         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
16921         (PTA_MWAITX): New.
16922         (ix86_option_override_internal): Handle new option.
16923         (processor_alias_table): Added PTA_MWAITX.
16924         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
16925         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
16926         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
16927         IX86_BUILTIN_MONITORX  built-ins.
16928         * config/i386/i386.h (TARGET_MWAITX): New.
16929         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
16930         UNSPEC_MONITORX.
16931         (mwaitx):  New pattern.
16932         (monitorx_<mode>): New pattern.
16933         * config/i386/x86intrin.h: Include mwaitxintrin.h.
16934         * doc/extend.texi: Document monitorx and mwaitx builtins.
16935         * doc/invoke.texi: Document -mmwaitx option.
16936
16937 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
16938
16939         * emit-rtl.c (need_atomic_barrier_p): Mask model with
16940         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
16941
16942 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
16943
16944         * dbxout.c (xcoff_debug_hooks): Provide a function for
16945         register_main_translation_unit hook.
16946
16947 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
16948
16949         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
16950         variants cases from switch.
16951         (rs6000_post_atomic_barrier): Same.
16952         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
16953         (rs6000_expand_atomic_exchange): Same.
16954         (rs6000_expand_atomic_op): Same.
16955         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
16956         SYNC variants cases from switch.
16957         (atomic_load): Same.
16958         (atomic_store): Same.
16959
16960 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
16961
16962         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
16963         CONST_INT for goto.
16964
16965 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
16966
16967         PR bootstrap/66448
16968         * dwarf2out.c (check_die): Check for common duplicate attributes.
16969         (add_location_or_const_value_attribute): Do not add duplicate
16970         attributes.
16971         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
16972         time around.
16973         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
16974         (gen_type_die_with_usage): Call check_die.
16975         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
16976
16977 2015-06-11  Jason Merrill  <jason@redhat.com>
16978
16979         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
16980         dies.
16981
16982 2015-06-11  Marek Polacek  <polacek@redhat.com>
16983
16984         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
16985
16986 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
16987
16988         PR bootstrap/66252
16989         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
16990         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
16991         (*addx_extend_sp32): Fix pasto.
16992         (*subx_extend): Rename into...
16993         (*subx_extend_sp32): ...this.
16994         (*adddi3_extend_sp32): Add earlyclobber.
16995         (*subdi3_insn_sp32): Likewise.
16996         (*subdi3_extend_sp32): Likewise.
16997         (*and_not_di_sp32): Likewise.
16998         (*or_not_di_sp32): Likewise.
16999         (*xor_not_di_sp32): Likewise.
17000         (*negdi2_sp32): Likewise.
17001         (*one_cmpldi2_sp32): Likewise.
17002
17003 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
17004
17005         * debug.h (struct gcc_debug_hooks): Add a
17006         register_main_translation_unit hook.
17007         * debug.c (do_nothing_debug_hooks): Provide a function for this
17008         new hook.
17009         * dbxout.c (dbx_debug_hooks): Likewise.
17010         * sdbout.c (sdb_debug_hooks): Likewise.
17011         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
17012         * dwarf2out.c (main_translation_unit): New global variable.
17013         (dwarf2out_register_main_translation_unit): New function
17014         implementing the new hook.
17015         (dwarf2_debug_hooks): Assign
17016         dwarf2out_register_main_translation_unit to this new hook.
17017         (dwarf2out_init): Associate any main translation unit to
17018         comp_unit_die ().
17019
17020 2015-06-11  Marek Polacek  <polacek@redhat.com>
17021
17022         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
17023
17024 2015-06-11  Marek Polacek  <polacek@redhat.com>
17025
17026         * match.pd: Use single_use throughout.
17027
17028 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17029
17030         * config/arm/arm.c (arm_option_params_internal): When optimising
17031         for speed set max_insns_skipped when arm_restrict_it.
17032
17033 2015-06-11  Christian Bruel  <christian.bruel@st.com>
17034
17035         PR target/52144
17036         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
17037          macros in ...
17038         (arm_cpu_builtins): New function.
17039         (arm_pragma_target_parse): Call arm_cpu_builtins.
17040         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
17041         (arm_register_target_pragmas): Likewise.
17042         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
17043          Call arm_register_target_pragmas.
17044         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
17045         (arm_pragma_target_parse): Likewise.
17046
17047 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
17048
17049         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
17050         of the second operand.
17051
17052 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
17053
17054         PR target/66473
17055         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
17056         to prepare mask operand for AVX512 modes.
17057
17058 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
17059
17060         PR target/66474
17061         * doc/md.texi (Machine Constraints): Document that on the PowerPC
17062         if you use a constraint that targets a VSX register, you must use
17063         %x<n> in the template.
17064
17065 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
17066
17067         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
17068         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
17069         (define_insn "trap"): New definition.
17070
17071 2015-06-10  Richard Biener  <rguenther@suse.de>
17072
17073         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
17074         out from ...
17075         (vect_supported_load_permutation_p): ... here.  Handle
17076         supportable permutations in reductions.
17077         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
17078         for vectorizing strided group loads.
17079
17080 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
17081
17082         PR target/66470
17083         * config/i386/i386.c (ix86_split_long_move): For collisions
17084         involving direct tls segment refs, move the UNSPEC_TP possibly
17085         wrapped in ZERO_EXTEND out of the address for lea, to each of
17086         the memory loads.
17087
17088 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17089
17090         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
17091         dmb sy. Adjust tabs.
17092
17093 2015-06-10  Tom de Vries  <tom@codesourcery.com>
17094
17095         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
17096
17097 2015-06-10  Martin Liska  <mliska@suse.cz>
17098
17099         PR bootstrap/66471
17100         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
17101         all enum values in mem_alloc_origin.
17102         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
17103         name.
17104         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
17105         * bitmap.c (bitmap_register): Likewise.
17106         (dump_bitmap_statistics): Likewise.
17107         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
17108         (ggc_record_overhead): Likewise.
17109         * hash-map.h: Likewise.
17110         * hash-set.h: Likewise.
17111         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
17112         * hash-table.h: Likewise.
17113         * vec.c (vec_prefix::register_overhead): Likewise.
17114         (vec_prefix::release_overhead): Likewise.
17115         (dump_vec_loc_statistics): Likewise.
17116
17117 2015-06-09  Christian Bruel  <christian.bruel@st.com>
17118
17119         PR target/52144
17120         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
17121         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
17122         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
17123         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
17124         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
17125         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
17126         (arm_valid_target_attribute_p): Likewise.
17127         (arm_set_current_function, arm_can_inline_p): Likewise.
17128         (arm_valid_target_attribute_rec): Likewise.
17129         (arm_previous_fndecl): New variable.
17130         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
17131         (TARGET_CAN_INLINE_P): Define.
17132         (arm_asm_trampoline_template): Emit mode.
17133         (arm_file_start): Don't set unified syntax.
17134         (arm_declare_function_name): Set unified syntax and mode.
17135         (arm_option_override): Init target_option_default_node.
17136         and target_option_current_node.
17137         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
17138         (*call_symbol): Likewise.
17139         * doc/extend.texi: Document ARM/Thumb target attribute.
17140         * doc/invoke.texi: Likewise.
17141
17142 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17143
17144         Revert:
17145         2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17146         PR rtl-optimization/64164
17147         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
17148         * tree-ssa-copyrename.c: Removed.
17149         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
17150         -ftree-coalesce-vars.
17151         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
17152         * common.opt (ftree-copyrename): Ignore.
17153         (ftree-coalesce-inlined-vars): Likewise.
17154         * doc/invoke.texi: Remove the ignored options above.
17155         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
17156         * tree-ssa-coalesce.h: ... here.
17157         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
17158         headers required by it.
17159         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
17160         across variables when flag_tree_coalesce_vars.  Check register
17161         use and promoted modes to allow coalescing.  Moved to
17162         tree-ssa-coalesce.c.
17163         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
17164         with its member functions to tree-ssa-coalesce.c.
17165         (var_map_base_init): Likewise.  Renamed to
17166         compute_samebase_partition_bases.
17167         (partition_view_normal): Drop want_bases parameter.
17168         (partition_view_bitmap): Likewise.
17169         * tree-ssa-live.h: Adjust declarations.
17170         * tree-ssa-coalesce.c: Include explow.h.
17171         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
17172         default defs at the entry point.
17173         (dump_part_var_map): New.
17174         (compute_optimized_partition_bases): New, called by...
17175         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
17176         of compute_samebase_partition_bases.  Adjust.
17177         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
17178         * cfgexpand.c (leader_merge): New.
17179         (get_rtl_for_parm_ssa_default_def): New.
17180         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
17181         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
17182         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
17183         redundant MEM attr setting.
17184         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
17185         from...
17186         (expand_one_stack_var): ... this.  New wrapper to check and
17187         skip already expanded SSA partitions.
17188         (record_alignment_for_reg_var): New, factored out of...
17189         (expand_one_var): ... this.
17190         (expand_one_ssa_partition): New.
17191         (adjust_one_expanded_partition_var): New.
17192         (expand_one_register_var): Check and skip already expanded SSA
17193         partitions.
17194         (expand_used_vars): Don't create DECLs for anonymous SSA
17195         names.  Expand all SSA partitions, then adjust all SSA names.
17196         (pass::execute): Replace the loops that set
17197         SA.partition_to_pseudo from partition leaders and cleared
17198         DECL_RTL for multi-location variables, and that which used to
17199         rename vars and set attrs, with one that clears DECL_RTL and
17200         checks that PARMs and RESULTs default_defs match DECL_RTL.
17201         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
17202         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
17203         * explow.c (promote_ssa_mode): New.
17204         * explow.h (promote_ssa_mode): Declare.
17205         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
17206         * function.c: Include cfgexpand.h.
17207         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
17208         (use_register_for_parm_decl): Wrapper for the above to
17209         special-case the result_ptr.
17210         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
17211         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
17212         multiple locations.
17213         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
17214         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
17215         (assign_parm_setup_block): Prefer SSA-assigned location.
17216         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
17217         if stack_parm is NULL.
17218         (assign_parm_setup_stack): Prefer SSA-assigned location.
17219         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
17220         rtl before testing for pointer bounds.  Special-case result_ptr.
17221         (expand_function_start): Maybe reset DECL_RTL of result.
17222         Prefer SSA-assigned location for result and static chain.
17223         Factor out DECL_RESULT and SET_DECL_RTL.
17224         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
17225         anonymous SSA names.  Use promote_ssa_mode.
17226         (get_temp_reg): Likewise.
17227         (remove_ssa_form): Adjust.
17228         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
17229         and get its reg_usage for reg invalidation.
17230         (compute_bb_dataflow): Pass it insn.
17231         (emit_notes_in_bb): Likewise.
17232         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
17233         fail assert on conversion between unsigned types.
17234
17235 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17236
17237         PR tree-optimization/65460
17238         * omp-low.c (expand_omp_target): Set parallelized_function on
17239         cgraph_node for child_fn.
17240
17241 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17242
17243         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
17244         parallelized_function before add_new_function.
17245
17246 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
17247
17248         * gcc-plugin.h: Move decls to plugin.h and include it.
17249         * plugin.h: Relocate decls from gcc-plugin.h
17250         * ggc-page.c: Include required header files.
17251         * passes.c: Likewise.
17252         * cgraphunit.c: Likewise.
17253
17254 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17255
17256         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
17257
17258 2015-06-09  Jason Merrill  <jason@redhat.com>
17259
17260         PR bootstrap/66448
17261         * toplev.c (check_global_declaration): Don't warn about a clone.
17262
17263 2015-06-09  Marek Polacek  <polacek@redhat.com>
17264
17265         PR tree-optimization/66299
17266         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
17267         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
17268         patterns.
17269
17270 2015-06-09  Richard Biener  <rguenther@suse.de>
17271
17272         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
17273         (vect_analyze_slp_instance): Instead do not falsely drop
17274         load permutations.
17275
17276 2015-06-09  Richard Biener  <rguenther@suse.de>
17277
17278         PR middle-end/66423
17279         * match.pd: Handle A % (unsigned)(1 << B).
17280
17281 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
17282
17283         * varasm.c (output_object_block_htab): Remove.
17284         (output_object_block_compare): New.
17285         (output_object_blocks): Sort named object_blocks before outputting
17286         them.
17287
17288 2015-06-09  Richard Biener  <rguenther@suse.de>
17289
17290         PR tree-optimization/66419
17291         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
17292         consider GROUP_GAP when detecting a perfect subchain.
17293
17294 2015-06-09  Nick Clifton  <nickc@redhat.com>
17295
17296         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
17297         place read only data in the .frodata section.
17298
17299 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
17300
17301         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
17302         (atomic_store<mode>): Likewise.
17303
17304 2015-06-09  Richard Biener  <rguenther@suse.de>
17305
17306         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
17307
17308 2015-06-09  Richard Biener  <rguenther@suse.de>
17309
17310         PR middle-end/66413
17311         * tree-inline.c (insert_init_debug_bind): Unshare value.
17312
17313 2015-06-09  Richard Biener  <rguenther@suse.de>
17314
17315         PR tree-optimization/66396
17316         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
17317         Rename virtual operands.
17318
17319 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17320
17321         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
17322         always return false.
17323
17324 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17325
17326         PR rtl-optimization/64164
17327         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
17328         * tree-ssa-copyrename.c: Removed.
17329         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
17330         -ftree-coalesce-vars.
17331         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
17332         * common.opt (ftree-copyrename): Ignore.
17333         (ftree-coalesce-inlined-vars): Likewise.
17334         * doc/invoke.texi: Remove the ignored options above.
17335         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
17336         * tree-ssa-coalesce.h: ... here.
17337         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
17338         headers required by it.
17339         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
17340         across variables when flag_tree_coalesce_vars.  Check register
17341         use and promoted modes to allow coalescing.  Moved to
17342         tree-ssa-coalesce.c.
17343         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
17344         with its member functions to tree-ssa-coalesce.c.
17345         (var_map_base_init): Likewise.  Renamed to
17346         compute_samebase_partition_bases.
17347         (partition_view_normal): Drop want_bases parameter.
17348         (partition_view_bitmap): Likewise.
17349         * tree-ssa-live.h: Adjust declarations.
17350         * tree-ssa-coalesce.c: Include explow.h.
17351         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
17352         default defs at the entry point.
17353         (dump_part_var_map): New.
17354         (compute_optimized_partition_bases): New, called by...
17355         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
17356         of compute_samebase_partition_bases.  Adjust.
17357         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
17358         * cfgexpand.c (leader_merge): New.
17359         (get_rtl_for_parm_ssa_default_def): New.
17360         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
17361         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
17362         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
17363         redundant MEM attr setting.
17364         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
17365         from...
17366         (expand_one_stack_var): ... this.  New wrapper to check and
17367         skip already expanded SSA partitions.
17368         (record_alignment_for_reg_var): New, factored out of...
17369         (expand_one_var): ... this.
17370         (expand_one_ssa_partition): New.
17371         (adjust_one_expanded_partition_var): New.
17372         (expand_one_register_var): Check and skip already expanded SSA
17373         partitions.
17374         (expand_used_vars): Don't create DECLs for anonymous SSA
17375         names.  Expand all SSA partitions, then adjust all SSA names.
17376         (pass::execute): Replace the loops that set
17377         SA.partition_to_pseudo from partition leaders and cleared
17378         DECL_RTL for multi-location variables, and that which used to
17379         rename vars and set attrs, with one that clears DECL_RTL and
17380         checks that PARMs and RESULTs default_defs match DECL_RTL.
17381         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
17382         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
17383         * explow.c (promote_ssa_mode): New.
17384         * explow.h (promote_ssa_mode): Declare.
17385         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
17386         * function.c: Include cfgexpand.h.
17387         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
17388         (use_register_for_parm_decl): Wrapper for the above to
17389         special-case the result_ptr.
17390         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
17391         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
17392         multiple locations.
17393         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
17394         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
17395         (assign_parm_setup_block): Prefer SSA-assigned location.
17396         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
17397         if stack_parm is NULL.
17398         (assign_parm_setup_stack): Prefer SSA-assigned location.
17399         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
17400         rtl before testing for pointer bounds.  Special-case result_ptr.
17401         (expand_function_start): Maybe reset DECL_RTL of result.
17402         Prefer SSA-assigned location for result and static chain.
17403         Factor out DECL_RESULT and SET_DECL_RTL.
17404         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
17405         anonymous SSA names.  Use promote_ssa_mode.
17406         (get_temp_reg): Likewise.
17407         (remove_ssa_form): Adjust.
17408         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
17409         and get its reg_usage for reg invalidation.
17410         (compute_bb_dataflow): Pass it insn.
17411         (emit_notes_in_bb): Likewise.
17412         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
17413         fail assert on conversion between unsigned types.
17414
17415 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17416
17417         PR debug/58315
17418         * tree-inline.c (reset_debug_binding): New.
17419         (reset_debug_bindings): Likewise.
17420         (expand_call_inline): Call it.
17421
17422 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
17423
17424         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
17425         TYPE_STRING_FLAG.
17426
17427 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
17428
17429         * lto-streamer-out.c (lto_output_location): Stream
17430         reserved locations correctly.
17431         * lto-streamer-in.c (lto_output_location): Likewise.
17432
17433 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
17434
17435         * coretypes.h: Include hash-table.h and hash-set.h for host files.
17436         * ggc.h: Don't include statistics.h>
17437         * hash-map.h: Remove all includes.
17438         * hash-set.h: Likewise.
17439         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
17440         the include list. Remove <new>.
17441         * inchash.h: Remove all includes.
17442         * mem-stats.h: Likewise.
17443         * vec.h: No special processing for generators or ggc.
17444         * alias.c : Adjust include files.
17445         * alloc-pool.c : Likewise.
17446         * alloc-pool.h : Likewise.
17447         * asan.c : Likewise.
17448         * attribs.c : Likewise.
17449         * auto-inc-dec.c : Likewise.
17450         * auto-profile.c : Likewise.
17451         * bb-reorder.c : Likewise.
17452         * bitmap.c : Likewise.
17453         * bitmap.h : Likewise.
17454         * bt-load.c : Likewise.
17455         * builtins.c : Likewise.
17456         * caller-save.c : Likewise.
17457         * calls.c : Likewise.
17458         * ccmp.c : Likewise.
17459         * cfg.c : Likewise.
17460         * cfganal.c : Likewise.
17461         * cfgbuild.c : Likewise.
17462         * cfgcleanup.c : Likewise.
17463         * cfgexpand.c : Likewise.
17464         * cfghooks.c : Likewise.
17465         * cfgloop.c : Likewise.
17466         * cfgloop.h : Likewise.
17467         * cfgloopanal.c : Likewise.
17468         * cfgloopmanip.c : Likewise.
17469         * cfgrtl.c : Likewise.
17470         * cgraph.c : Likewise.
17471         * cgraphbuild.c : Likewise.
17472         * cgraphclones.c : Likewise.
17473         * cgraphunit.c : Likewise.
17474         * cilk-common.c : Likewise.
17475         * combine-stack-adj.c : Likewise.
17476         * combine.c : Likewise.
17477         * compare-elim.c : Likewise.
17478         * context.c : Likewise.
17479         * convert.c : Likewise.
17480         * coverage.c : Likewise.
17481         * cppbuiltin.c : Likewise.
17482         * cprop.c : Likewise.
17483         * cse.c : Likewise.
17484         * cselib.c : Likewise.
17485         * data-streamer-in.c : Likewise.
17486         * data-streamer-out.c : Likewise.
17487         * data-streamer.c : Likewise.
17488         * data-streamer.h : Likewise.
17489         * dbxout.c : Likewise.
17490         * dce.c : Likewise.
17491         * ddg.c : Likewise.
17492         * debug.c : Likewise.
17493         * df-core.c : Likewise.
17494         * df-problems.c : Likewise.
17495         * df-scan.c : Likewise.
17496         * df.h : Likewise.
17497         * dfp.c : Likewise.
17498         * dojump.c : Likewise.
17499         * dominance.c : Likewise.
17500         * domwalk.c : Likewise.
17501         * double-int.c : Likewise.
17502         * dse.c : Likewise.
17503         * dumpfile.c : Likewise.
17504         * dwarf2asm.c : Likewise.
17505         * dwarf2cfi.c : Likewise.
17506         * dwarf2out.c : Likewise.
17507         * emit-rtl.c : Likewise.
17508         * et-forest.c : Likewise.
17509         * except.c : Likewise.
17510         * except.h : Likewise.
17511         * explow.c : Likewise.
17512         * expmed.c : Likewise.
17513         * expr.c : Likewise.
17514         * final.c : Likewise.
17515         * fixed-value.c : Likewise.
17516         * fold-const.c : Likewise.
17517         * function.c : Likewise.
17518         * fwprop.c : Likewise.
17519         * gcc-plugin.h : Likewise.
17520         * gcc.c : Likewise.
17521         * gcse-common.c : Likewise.
17522         * gcse.c : Likewise.
17523         * genattrtab.c : Likewise.
17524         * genautomata.c : Likewise.
17525         * genconditions.c : Likewise.
17526         * genemit.c : Likewise.
17527         * generic-match-head.c : Likewise.
17528         * genextract.c : Likewise.
17529         * gengtype-state.c : Likewise.
17530         * gengtype.c : Likewise.
17531         * genhooks.c : Likewise.
17532         * genmatch.c : Likewise.
17533         * genmodes.c : Likewise.
17534         * genrecog.c : Likewise.
17535         * gensupport.c : Likewise.
17536         * ggc-common.c : Likewise.
17537         * ggc-internal.h : Likewise.
17538         * ggc-none.c : Likewise.
17539         * ggc-page.c : Likewise.
17540         * gimple-builder.c : Likewise.
17541         * gimple-expr.c : Likewise.
17542         * gimple-fold.c : Likewise.
17543         * gimple-iterator.c : Likewise.
17544         * gimple-low.c : Likewise.
17545         * gimple-match-head.c : Likewise.
17546         * gimple-pretty-print.c : Likewise.
17547         * gimple-ssa-isolate-paths.c : Likewise.
17548         * gimple-ssa-strength-reduction.c : Likewise.
17549         * gimple-ssa.h : Likewise.
17550         * gimple-streamer-in.c : Likewise.
17551         * gimple-streamer-out.c : Likewise.
17552         * gimple-streamer.h : Likewise.
17553         * gimple-walk.c : Likewise.
17554         * gimple.c : Likewise.
17555         * gimplify-me.c : Likewise.
17556         * gimplify.c : Likewise.
17557         * godump.c : Likewise.
17558         * graph.c : Likewise.
17559         * graphds.c : Likewise.
17560         * graphite-blocking.c : Likewise.
17561         * graphite-dependences.c : Likewise.
17562         * graphite-interchange.c : Likewise.
17563         * graphite-isl-ast-to-gimple.c : Likewise.
17564         * graphite-optimize-isl.c : Likewise.
17565         * graphite-poly.c : Likewise.
17566         * graphite-scop-detection.c : Likewise.
17567         * graphite-sese-to-poly.c : Likewise.
17568         * graphite.c : Likewise.
17569         * haifa-sched.c : Likewise.
17570         * hard-reg-set.h : Likewise.
17571         * hw-doloop.c : Likewise.
17572         * ifcvt.c : Likewise.
17573         * inchash.c : Likewise.
17574         * incpath.c : Likewise.
17575         * init-regs.c : Likewise.
17576         * input.c : Likewise.
17577         * internal-fn.c : Likewise.
17578         * ipa-chkp.c : Likewise.
17579         * ipa-comdats.c : Likewise.
17580         * ipa-cp.c : Likewise.
17581         * ipa-devirt.c : Likewise.
17582         * ipa-icf-gimple.c : Likewise.
17583         * ipa-icf.c : Likewise.
17584         * ipa-inline-analysis.c : Likewise.
17585         * ipa-inline-transform.c : Likewise.
17586         * ipa-inline.c : Likewise.
17587         * ipa-polymorphic-call.c : Likewise.
17588         * ipa-profile.c : Likewise.
17589         * ipa-prop.c : Likewise.
17590         * ipa-pure-const.c : Likewise.
17591         * ipa-ref.c : Likewise.
17592         * ipa-reference.c : Likewise.
17593         * ipa-split.c : Likewise.
17594         * ipa-utils.c : Likewise.
17595         * ipa-visibility.c : Likewise.
17596         * ipa.c : Likewise.
17597         * ira-build.c : Likewise.
17598         * ira-color.c : Likewise.
17599         * ira-conflicts.c : Likewise.
17600         * ira-costs.c : Likewise.
17601         * ira-emit.c : Likewise.
17602         * ira-lives.c : Likewise.
17603         * ira.c : Likewise.
17604         * jump.c : Likewise.
17605         * langhooks.c : Likewise.
17606         * lcm.c : Likewise.
17607         * libfuncs.h : Likewise.
17608         * lists.c : Likewise.
17609         * loop-doloop.c : Likewise.
17610         * loop-init.c : Likewise.
17611         * loop-invariant.c : Likewise.
17612         * loop-iv.c : Likewise.
17613         * loop-unroll.c : Likewise.
17614         * lower-subreg.c : Likewise.
17615         * lra-assigns.c : Likewise.
17616         * lra-coalesce.c : Likewise.
17617         * lra-constraints.c : Likewise.
17618         * lra-eliminations.c : Likewise.
17619         * lra-lives.c : Likewise.
17620         * lra-remat.c : Likewise.
17621         * lra-spills.c : Likewise.
17622         * lra.c : Likewise.
17623         * lto-cgraph.c : Likewise.
17624         * lto-compress.c : Likewise.
17625         * lto-opts.c : Likewise.
17626         * lto-section-in.c : Likewise.
17627         * lto-section-out.c : Likewise.
17628         * lto-streamer-in.c : Likewise.
17629         * lto-streamer-out.c : Likewise.
17630         * lto-streamer.c : Likewise.
17631         * lto-streamer.h : Likewise.
17632         * mcf.c : Likewise.
17633         * mode-switching.c : Likewise.
17634         * modulo-sched.c : Likewise.
17635         * omega.c : Likewise.
17636         * omp-low.c : Likewise.
17637         * optabs.c : Likewise.
17638         * opts-global.c : Likewise.
17639         * opts.h : Likewise.
17640         * passes.c : Likewise.
17641         * plugin.c : Likewise.
17642         * postreload-gcse.c : Likewise.
17643         * postreload.c : Likewise.
17644         * predict.c : Likewise.
17645         * print-rtl.c : Likewise.
17646         * print-tree.c : Likewise.
17647         * profile.c : Likewise.
17648         * read-md.c : Likewise.
17649         * read-md.h : Likewise.
17650         * read-rtl.c : Likewise.
17651         * real.c : Likewise.
17652         * realmpfr.c : Likewise.
17653         * recog.c : Likewise.
17654         * ree.c : Likewise.
17655         * reg-stack.c : Likewise.
17656         * regcprop.c : Likewise.
17657         * reginfo.c : Likewise.
17658         * regrename.c : Likewise.
17659         * regstat.c : Likewise.
17660         * reload.c : Likewise.
17661         * reload1.c : Likewise.
17662         * reorg.c : Likewise.
17663         * resource.c : Likewise.
17664         * rtl-chkp.c : Likewise.
17665         * rtl.c : Likewise.
17666         * rtl.h : Likewise.
17667         * rtlanal.c : Likewise.
17668         * rtlhash.c : Likewise.
17669         * rtlhash.h : Likewise.
17670         * rtlhooks.c : Likewise.
17671         * sanopt.c : Likewise.
17672         * sched-deps.c : Likewise.
17673         * sched-ebb.c : Likewise.
17674         * sched-rgn.c : Likewise.
17675         * sched-vis.c : Likewise.
17676         * sdbout.c : Likewise.
17677         * sel-sched-dump.c : Likewise.
17678         * sel-sched-ir.c : Likewise.
17679         * sel-sched-ir.h : Likewise.
17680         * sel-sched.c : Likewise.
17681         * sese.c : Likewise.
17682         * shrink-wrap.c : Likewise.
17683         * shrink-wrap.h : Likewise.
17684         * simplify-rtx.c : Likewise.
17685         * stack-ptr-mod.c : Likewise.
17686         * statistics.c : Likewise.
17687         * stmt.c : Likewise.
17688         * stor-layout.c : Likewise.
17689         * store-motion.c : Likewise.
17690         * stringpool.c : Likewise.
17691         * symtab.c : Likewise.
17692         * target-globals.c : Likewise.
17693         * targhooks.c : Likewise.
17694         * tlink.c : Likewise.
17695         * toplev.c : Likewise.
17696         * tracer.c : Likewise.
17697         * trans-mem.c : Likewise.
17698         * tree-affine.c : Likewise.
17699         * tree-affine.h : Likewise.
17700         * tree-browser.c : Likewise.
17701         * tree-call-cdce.c : Likewise.
17702         * tree-cfg.c : Likewise.
17703         * tree-cfgcleanup.c : Likewise.
17704         * tree-chkp-opt.c : Likewise.
17705         * tree-chkp.c : Likewise.
17706         * tree-chrec.c : Likewise.
17707         * tree-complex.c : Likewise.
17708         * tree-data-ref.c : Likewise.
17709         * tree-dfa.c : Likewise.
17710         * tree-diagnostic.c : Likewise.
17711         * tree-dump.c : Likewise.
17712         * tree-eh.c : Likewise.
17713         * tree-eh.h : Likewise.
17714         * tree-emutls.c : Likewise.
17715         * tree-hasher.h : Likewise.
17716         * tree-if-conv.c : Likewise.
17717         * tree-inline.c : Likewise.
17718         * tree-inline.h : Likewise.
17719         * tree-into-ssa.c : Likewise.
17720         * tree-iterator.c : Likewise.
17721         * tree-loop-distribution.c : Likewise.
17722         * tree-nested.c : Likewise.
17723         * tree-nrv.c : Likewise.
17724         * tree-object-size.c : Likewise.
17725         * tree-outof-ssa.c : Likewise.
17726         * tree-parloops.c : Likewise.
17727         * tree-phinodes.c : Likewise.
17728         * tree-predcom.c : Likewise.
17729         * tree-pretty-print.c : Likewise.
17730         * tree-profile.c : Likewise.
17731         * tree-scalar-evolution.c : Likewise.
17732         * tree-sra.c : Likewise.
17733         * tree-ssa-address.c : Likewise.
17734         * tree-ssa-alias.c : Likewise.
17735         * tree-ssa-ccp.c : Likewise.
17736         * tree-ssa-coalesce.c : Likewise.
17737         * tree-ssa-copy.c : Likewise.
17738         * tree-ssa-copyrename.c : Likewise.
17739         * tree-ssa-dce.c : Likewise.
17740         * tree-ssa-dom.c : Likewise.
17741         * tree-ssa-dse.c : Likewise.
17742         * tree-ssa-forwprop.c : Likewise.
17743         * tree-ssa-ifcombine.c : Likewise.
17744         * tree-ssa-live.c : Likewise.
17745         * tree-ssa-loop-ch.c : Likewise.
17746         * tree-ssa-loop-im.c : Likewise.
17747         * tree-ssa-loop-ivcanon.c : Likewise.
17748         * tree-ssa-loop-ivopts.c : Likewise.
17749         * tree-ssa-loop-manip.c : Likewise.
17750         * tree-ssa-loop-niter.c : Likewise.
17751         * tree-ssa-loop-prefetch.c : Likewise.
17752         * tree-ssa-loop-unswitch.c : Likewise.
17753         * tree-ssa-loop.c : Likewise.
17754         * tree-ssa-math-opts.c : Likewise.
17755         * tree-ssa-operands.c : Likewise.
17756         * tree-ssa-phiopt.c : Likewise.
17757         * tree-ssa-phiprop.c : Likewise.
17758         * tree-ssa-pre.c : Likewise.
17759         * tree-ssa-propagate.c : Likewise.
17760         * tree-ssa-reassoc.c : Likewise.
17761         * tree-ssa-sccvn.c : Likewise.
17762         * tree-ssa-scopedtables.c : Likewise.
17763         * tree-ssa-sink.c : Likewise.
17764         * tree-ssa-strlen.c : Likewise.
17765         * tree-ssa-structalias.c : Likewise.
17766         * tree-ssa-tail-merge.c : Likewise.
17767         * tree-ssa-ter.c : Likewise.
17768         * tree-ssa-threadedge.c : Likewise.
17769         * tree-ssa-threadupdate.c : Likewise.
17770         * tree-ssa-uncprop.c : Likewise.
17771         * tree-ssa-uninit.c : Likewise.
17772         * tree-ssa.c : Likewise.
17773         * tree-ssanames.c : Likewise.
17774         * tree-stdarg.c : Likewise.
17775         * tree-streamer-in.c : Likewise.
17776         * tree-streamer-out.c : Likewise.
17777         * tree-streamer.c : Likewise.
17778         * tree-streamer.h : Likewise.
17779         * tree-switch-conversion.c : Likewise.
17780         * tree-tailcall.c : Likewise.
17781         * tree-vect-data-refs.c : Likewise.
17782         * tree-vect-generic.c : Likewise.
17783         * tree-vect-loop-manip.c : Likewise.
17784         * tree-vect-loop.c : Likewise.
17785         * tree-vect-patterns.c : Likewise.
17786         * tree-vect-slp.c : Likewise.
17787         * tree-vect-stmts.c : Likewise.
17788         * tree-vectorizer.c : Likewise.
17789         * tree-vectorizer.h : Likewise.
17790         * tree-vrp.c : Likewise.
17791         * tree.c : Likewise.
17792         * tsan.c : Likewise.
17793         * ubsan.c : Likewise.
17794         * valtrack.c : Likewise.
17795         * valtrack.h : Likewise.
17796         * value-prof.c : Likewise.
17797         * var-tracking.c : Likewise.
17798         * varasm.c : Likewise.
17799         * varpool.c : Likewise.
17800         * vec.c: Likewise.
17801         * vmsdbgout.c : Likewise.
17802         * vtable-verify.c : Likewise.
17803         * vtable-verify.h : Likewise.
17804         * web.c : Likewise.
17805         * wide-int.cc : Likewise.
17806         * xcoffout.c : Likewise.
17807         * config/aarch64/aarch64-builtins.c : Likewise.
17808         * config/aarch64/aarch64.c : Likewise.
17809         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
17810         * config/alpha/alpha.c : Likewise.
17811         * config/arc/arc.c : Likewise.
17812         * config/arm/aarch-common.c : Likewise.
17813         * config/arm/arm-builtins.c : Likewise.
17814         * config/arm/arm-c.c : Likewise.
17815         * config/arm/arm.c : Likewise.
17816         * config/avr/avr-c.c : Likewise.
17817         * config/avr/avr-log.c : Likewise.
17818         * config/avr/avr.c : Likewise.
17819         * config/bfin/bfin.c : Likewise.
17820         * config/c6x/c6x.c : Likewise.
17821         * config/cr16/cr16.c : Likewise.
17822         * config/cris/cris.c : Likewise.
17823         * config/darwin-c.c : Likewise.
17824         * config/darwin.c : Likewise.
17825         * config/default-c.c : Likewise.
17826         * config/epiphany/epiphany.c : Likewise.
17827         * config/epiphany/mode-switch-use.c : Likewise.
17828         * config/epiphany/resolve-sw-modes.c : Likewise.
17829         * config/fr30/fr30.c : Likewise.
17830         * config/frv/frv.c : Likewise.
17831         * config/ft32/ft32.c : Likewise.
17832         * config/glibc-c.c : Likewise.
17833         * config/h8300/h8300.c : Likewise.
17834         * config/i386/i386-c.c : Likewise.
17835         * config/i386/i386.c : Likewise.
17836         * config/i386/msformat-c.c : Likewise.
17837         * config/i386/winnt-cxx.c : Likewise.
17838         * config/i386/winnt-stubs.c : Likewise.
17839         * config/i386/winnt.c : Likewise.
17840         * config/ia64/ia64-c.c : Likewise.
17841         * config/ia64/ia64.c : Likewise.
17842         * config/iq2000/iq2000.c : Likewise.
17843         * config/lm32/lm32.c : Likewise.
17844         * config/m32c/m32c-pragma.c : Likewise.
17845         * config/m32c/m32c.c : Likewise.
17846         * config/m32r/m32r.c : Likewise.
17847         * config/m68k/m68k.c : Likewise.
17848         * config/mcore/mcore.c : Likewise.
17849         * config/mep/mep-pragma.c : Likewise.
17850         * config/mep/mep.c : Likewise.
17851         * config/microblaze/microblaze-c.c : Likewise.
17852         * config/microblaze/microblaze.c : Likewise.
17853         * config/mips/mips.c : Likewise.
17854         * config/mmix/mmix.c : Likewise.
17855         * config/mn10300/mn10300.c : Likewise.
17856         * config/moxie/moxie.c : Likewise.
17857         * config/msp430/msp430-c.c : Likewise.
17858         * config/msp430/msp430.c : Likewise.
17859         * config/nds32/nds32-cost.c : Likewise.
17860         * config/nds32/nds32-fp-as-gp.c : Likewise.
17861         * config/nds32/nds32-intrinsic.c : Likewise.
17862         * config/nds32/nds32-isr.c : Likewise.
17863         * config/nds32/nds32-md-auxiliary.c : Likewise.
17864         * config/nds32/nds32-memory-manipulation.c : Likewise.
17865         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
17866         * config/nds32/nds32-predicates.c : Likewise.
17867         * config/nds32/nds32.c : Likewise.
17868         * config/nios2/nios2.c : Likewise.
17869         * config/nvptx/nvptx.c : Likewise.
17870         * config/pa/pa.c : Likewise.
17871         * config/pdp11/pdp11.c : Likewise.
17872         * config/rl78/rl78-c.c : Likewise.
17873         * config/rl78/rl78.c : Likewise.
17874         * config/rs6000/rs6000-c.c : Likewise.
17875         * config/rs6000/rs6000.c : Likewise.
17876         * config/rx/rx.c : Likewise.
17877         * config/s390/s390-c.c : Likewise.
17878         * config/s390/s390.c : Likewise.
17879         * config/sh/sh-c.c : Likewise.
17880         * config/sh/sh-mem.cc : Likewise.
17881         * config/sh/sh.c : Likewise.
17882         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
17883         * config/sh/sh_treg_combine.cc : Likewise.
17884         * config/sol2-c.c : Likewise.
17885         * config/sol2-cxx.c : Likewise.
17886         * config/sol2-stubs.c : Likewise.
17887         * config/sol2.c : Likewise.
17888         * config/sparc/sparc-c.c : Likewise.
17889         * config/sparc/sparc.c : Likewise.
17890         * config/spu/spu-c.c : Likewise.
17891         * config/spu/spu.c : Likewise.
17892         * config/stormy16/stormy16.c : Likewise.
17893         * config/tilegx/mul-tables.c : Likewise.
17894         * config/tilegx/tilegx-c.c : Likewise.
17895         * config/tilegx/tilegx.c : Likewise.
17896         * config/tilepro/mul-tables.c : Likewise.
17897         * config/tilepro/tilepro-c.c : Likewise.
17898         * config/tilepro/tilepro.c : Likewise.
17899         * config/v850/v850-c.c : Likewise.
17900         * config/v850/v850.c : Likewise.
17901         * config/vax/vax.c : Likewise.
17902         * config/visium/visium.c : Likewise.
17903         * config/vms/vms-c.c : Likewise.
17904         * config/vms/vms.c : Likewise.
17905         * config/vxworks.c : Likewise.
17906         * config/winnt-c.c : Likewise.
17907         * config/xtensa/xtensa.c : Likewise.
17908
17909 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
17910
17911         PR lto/65378
17912         * ipa-utils.h (warn_types_mismatch): Update prototype.
17913         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
17914         parameters.
17915         (type_mismatch_p): New function.
17916         (warn_types_mismatch): Reorg to work better on non-C++ types.
17917         (odr_types_equivalent_p): Add loc1/loc2 parameters.
17918         (add_type_duplicate): Update.
17919
17920 2015-06-08  Tom de Vries  <tom@codesourcery.com>
17921
17922         PR rtl-optimization/66444
17923         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
17924         call_used_regs.
17925
17926 2015-06-08  Richard Biener  <rguenther@suse.de>
17927
17928         PR tree-optimization/66422
17929         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
17930         block after inserted gcc_unreachable.
17931
17932 2015-06-08  Nick Clifton  <nickc@redhat.com>
17933
17934         * config/rx/rx.c (rx_function_value): Do not promote vector types.
17935         (rx_promote_function_mode): Likewise.
17936         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
17937
17938 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
17939
17940         * genattrtab.c (insn_alternatives): Change type from int *
17941         to uint64_t *.
17942         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
17943         (get_attr_value): Change type of num_alt to uint64_t.
17944         (compute_alternative_mask): Change return type from
17945         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
17946         (make_alternative_compare, mk_attr_alt): Change argument type
17947         from int to uint64_t.
17948         (simplify_test_exp): Change type of i from int to uint64_t.
17949         Shift ((uint64_t) 1) instead of 1 up.
17950         (main): Adjust oballocvec first argument from int to uint64_t.
17951         Shift ((uint64_t) 1) instead of 1 up.
17952
17953 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
17954
17955         PR other/65366
17956         * gdbhooks.py: Import sys.
17957         (intptr): New function.  Replace int(...) by intptr(...).
17958
17959 2015-06-08  Richard Biener  <rguenther@suse.de>
17960
17961         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
17962         adjustment for gaps at the end of a SLP load group properly.
17963         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
17964         all permutations we can generate.
17965         (vect_transform_slp_perm_load): Use the correct group-size.
17966
17967 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
17968
17969         * genmatch.c (expr::gen_transform): For conditions, guess the type
17970         from the second operand.
17971
17972 2015-06-08  Tom de Vries  <tom@codesourcery.com>
17973
17974         PR tree-optimization/66442
17975         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
17976         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
17977         if the loop latch is not a singleton.  Use
17978         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
17979
17980 2015-06-08  Marek Polacek  <polacek@redhat.com>
17981
17982         PR sanitizer/66452
17983         * toplev.c (check_global_declaration): Don't warn about artificial
17984         decls.
17985
17986 2015-06-08  Tom de Vries  <tom@codesourcery.com>
17987
17988         PR tree-optimization/66436
17989         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
17990         dump file.
17991         * gimplify.c: Add tree-dump.h include.
17992         (gimplify_function_tree): Dump function to gimple dump file.
17993         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
17994         dump file.
17995
17996 2015-06-08  Tom de Vries  <tom@codesourcery.com>
17997
17998         PR tree-optimization/66435
17999         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
18000         function.
18001
18002 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
18003
18004         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
18005         of ptr_type_node to not be ptr_to_node.
18006         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
18007         TREE_TYPE of pointers.
18008         * gimple-expr.c (useless_type_conversion): Reorder the check for
18009         function pointers and TYPE_CANONICAL.
18010
18011 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
18012
18013         PR bootstrap/66319
18014         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
18015         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
18016         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
18017         later.
18018         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
18019         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
18020         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
18021         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
18022         and non iso if unix2003.
18023
18024 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
18025
18026         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
18027
18028 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
18029
18030         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
18031         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
18032         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
18033         except.c, final.c, function.c, gcse-common.c, genemit.c,
18034         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
18035         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
18036         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
18037         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
18038         more derived ones.
18039
18040 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
18041
18042         * combine.c (combine_split_insns): Remove cast.
18043         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
18044         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
18045         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
18046         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
18047         * genemit.c (gen_split): Change return type of generated functions to
18048         rtx_insn.
18049         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
18050         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
18051         gen_peephole2_* functions.
18052         (print_subroutine, main): Likewise.
18053         * recog.c (peephole2_optimize): Remove cast.
18054         (peep2_next_insn): Promote return type to rtx_insn.
18055         * recog.h (peep2_next_insn): Fix prototype.
18056         * rtl.h (try_split, split_insns): Likewise.
18057
18058 2015-06-06  DJ Delorie  <dj@redhat.com>
18059
18060         * config/msp430/msp430.c (msp430_asm_integer): Support addition
18061         and subtraction too.
18062
18063 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
18064
18065         PR target/66410
18066         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
18067         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
18068         instead of Snd.  Disparage Sid/z alternative with '^'.
18069
18070 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
18071
18072         * dwarf2out.c: Remove deferred_locations*.
18073         (dwarf2_debug_hooks): Add early_finish hook.
18074         Remove global_decl hook.
18075         Add early_global_decl and late_global_decl hook.
18076         New global early_dwarf.
18077         New structure set_early_dwarf.
18078         (output_die): Indicate whether a DIE was generated early
18079         when generating assembly with -dA.
18080         (struct limbo_die_struct): Document created_for field.
18081         Remove file_table_last_lookup.
18082         (remove_AT): Return TRUE if successful.
18083         (remove_child_TAG): Clear die_parent.
18084         (reparent_child): New function abstracted from...
18085         (splice_child_die): ...here.
18086         (new_die): ICE if a DIE ends up in limbo too late.
18087         (check_die): New.
18088         (defer_location): Remove.
18089         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
18090         (fill_variable_array_bounds): New.
18091         (decl_start_label): Call fill_variable_array_bounds.
18092         (gen_formal_parameter_die): Rewrite to reuse previously generated
18093         DIEs.
18094         (gen_subprogram_die): Same.
18095         (gen_variable_die): Same.
18096         (gen_const_die): Same.
18097         (gen_label_die): Same.
18098         (gen_lexical_block_die): Same.
18099         (decl_will_get_specification_p): New.
18100         (local_function_static): New.
18101         (gen_struct_or_union_type_die): Fill in variable-length fields.
18102         (gen_typedef_die): Fill in variable-length typedefs.
18103         (gen_tagged_type_die): Gracefully return on error_mark_node.
18104         Handle re-entrancy.
18105         (gen_type_die_with_usage): Handle variable-length types.
18106         Remove duplicate code for ARRAY_TYPE case.
18107         (process_scope_var): Only process imported modules during early
18108         dwarf.
18109         (dwarf2out_early_global_decl): New.
18110         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
18111         (dwarf2out_type_decl): Set early_dwarf while calling
18112         dwarf2out_decl.
18113         (dwarf2out_decl): Verify that we did not recreate a previously
18114         generated DIE.
18115         Do not return on DECL_EXTERNALs in VAR_DECLs.
18116         Abstract some code to local_function_static.
18117         (lookup_filename): Remove use of file_table_last_lookup.
18118         Gracefully exit on missing file_name.
18119         (dwarf2out_finish): Verify limbo list.
18120         Remove deferred_locations_list use.
18121         Move deferred_asm_name and limbo flushing to...
18122         (dwarf2out_early_finish): ...here.  New.
18123         (dwarf2out_c_finalize): Remove set of deferred_location_list,
18124         deferred_asm_name, and file_table_last_lookup.
18125         * cgraph.h (referred_to_p): Add default argument.
18126         * cgraphunit.c (referred_to_p): Add and handle include_self
18127         argument.
18128         (analyze_functions): Add first_time argument.
18129         Call check_global_declaration for all symbols.
18130         Call late_global_decl for nodes for moribund nodes.
18131         (finalize_compilation_unit): Add new argument to
18132         analyze_functions.
18133         Call early_global_decl for functions.
18134         Call early_finish debug hook.
18135         * dbxout.c (dbxout_early_global_decl): New.
18136         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
18137         (dbx_debug_hooks): Add new hooks.
18138         (xcoff_debug_hooks): Same.
18139         * debug.c (do_nothing_debug_hooks): Add early_finish field.
18140         Add early and late debug hooks.
18141         Remove global_decl hook.
18142         * debug.h (struct gcc_debug_hooks): Add early_finish,
18143         early_global_decl, and late_global_decl fields.
18144         Remove global_decl field.
18145         Document gcc_debug_hooks.
18146         * gengtype.c (output_typename): Remove.
18147         * godump.c (go_early_global_decl): New.
18148         (go_late_global_decl): New.
18149         (go_global_decl): Remove.
18150         (dump_go_spec_init): Remove global_decl.  Add
18151         {early,late}_global_decl.
18152         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
18153         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
18154         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
18155         (write_global_declarations): Remove.
18156         (global_decl_processing): New.
18157         * langhooks.h (struct lang_hooks_for_decls): Remove
18158         final_write_globals field.
18159         Add post_compilation_parsing_cleanups field.
18160         * passes.c (rest_of_decl_compilation): Call early_global_decl.
18161         * sdbout.c: Add early and late_global_decl hooks.  Remove
18162         sdbout_global_decl hook.
18163         Add early_finish field for sdb_debug_hooks.
18164         (sdbout_global_decl): Remove.
18165         (sdbout_early_global_decl): New.
18166         (sdbout_late_global_decl): New.
18167         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
18168         * toplev.c (check_global_declaration): Rename from
18169         check_global_declaration_1.
18170         Adapt to use symtab infrastructure.
18171         (check_global_declarations): Remove.
18172         (emit_debug_global_declarations): Remove.
18173         (compile_file): Remove call to final_write_globals langhook.
18174         Run the actual compilation process.
18175         Perform any post compilation parser cleanups.
18176         Generate late debug info.
18177         * toplev.h (check_global_declaration): New.
18178         (check_global_declaration_1): Remove.
18179         (check_global_declarations): Remove.
18180         (write_global_declarations): Remove.
18181         (emit_debug_global_declarations): Remove.
18182         (global_decl_processing): New.
18183         * tree-core.h (struct tree_block): Add DIE field.
18184         * tree.h (BLOCK_DIE): New.
18185         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
18186         throughout.
18187         (vmsdbgout_early_global_decl): New.
18188         (vmsdbgout_late_global_decl): New.
18189         Add early_finish debug hook field to vmsdbg_debug_hooks.
18190         Remove vmsdbgout_decl to vmsdbgout_function_decl.
18191         Add early and late_global_decl debug hooks.
18192
18193 2015-06-05  Julian Brown  <julian@codesourcery.com>
18194             Sandra Loosemore  <sandra@codesourcery.com>
18195
18196         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
18197         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
18198         to print-sysroot-suffix.sh script.
18199
18200 2015-06-05  Tom de Vries  <tom@codesourcery.com>
18201
18202         merge from gomp4 branch:
18203         2015-05-28  Tom de Vries  <tom@codesourcery.com>
18204
18205         PR tree-optimization/65443
18206         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
18207         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
18208         (try_transform_to_exit_first_loop_alt): New function.
18209         (transform_to_exit_first_loop): Use
18210         try_transform_to_exit_first_loop_alt.
18211
18212 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
18213
18214         * builtins.c (expand_builtin_atomic_compare_exchange): Call
18215         emit_cmp_and_jump_insns with the mode of target.
18216
18217 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
18218
18219         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
18220
18221 2015-06-04  DJ Delorie  <dj@redhat.com>
18222
18223         * config/msp430/msp430.md (movsi_s): New.  Special case for
18224         storing a 20-bit symbol into a 32-bit register.
18225         * config/msp430/msp430.c (msp430_subreg): Add support for it.
18226         * config/msp430/predicates.md (msp430_symbol_operand): New.
18227
18228 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
18229
18230         * c-family/c-common.c (noplt): New attribute.
18231         (handle_noplt_attribute): New handler.
18232         * calls.c (prepare_call_address): Check for noplt
18233         attribute.
18234         * config/i386/i386.c (ix86_expand_call): Check
18235         for noplt attribute.
18236         (ix86_nopic_noplt_attribute_p): New function.
18237         (ix86_output_call_insn): Output indirect call for non-pic
18238         no plt calls.
18239         * doc/extend.texi (noplt): Document new attribute.
18240         * doc/invoke.texi: Document new attribute.
18241
18242 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
18243
18244         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
18245         real.h, and fixed-value.h when included in host source files.
18246         * double-int.h: Remove redundant #includes listed above.
18247         * fixed-value.h: Likewise.
18248         * real.h: Likewise.
18249         * wide-int.h: Likewise.
18250         * inchash.h: Likewise.
18251         * rtl.h: Add some include files When included from a generator file.
18252         * target.h: Remove wide-int.h and insn-modes.h from the include list.
18253         * internal-fn.h: Don't include coretypes.h.
18254         * alias.c: Adjust includes for restructured coretypes.h.
18255         * asan.c: Likewise.
18256         * attribs.c: Likewise.
18257         * auto-inc-dec.c: Likewise.
18258         * auto-profile.c: Likewise.
18259         * bb-reorder.c: Likewise.
18260         * bt-load.c: Likewise.
18261         * builtins.c: Likewise.
18262         * caller-save.c: Likewise.
18263         * calls.c: Likewise.
18264         * ccmp.c: Likewise.
18265         * cfg.c: Likewise.
18266         * cfganal.c: Likewise.
18267         * cfgbuild.c: Likewise.
18268         * cfgcleanup.c: Likewise.
18269         * cfgexpand.c: Likewise.
18270         * cfghooks.c: Likewise.
18271         * cfgloop.c: Likewise.
18272         * cfgloop.h: Likewise.
18273         * cfgloopanal.c: Likewise.
18274         * cfgloopmanip.c: Likewise.
18275         * cfgrtl.c: Likewise.
18276         * cgraph.c: Likewise.
18277         * cgraphbuild.c: Likewise.
18278         * cgraphclones.c: Likewise.
18279         * cgraphunit.c: Likewise.
18280         * cilk-common.c: Likewise.
18281         * combine-stack-adj.c: Likewise.
18282         * combine.c: Likewise.
18283         * compare-elim.c: Likewise.
18284         * convert.c: Likewise.
18285         * coverage.c: Likewise.
18286         * cppbuiltin.c: Likewise.
18287         * cprop.c: Likewise.
18288         * cse.c: Likewise.
18289         * cselib.c: Likewise.
18290         * data-streamer-in.c: Likewise.
18291         * data-streamer-out.c: Likewise.
18292         * data-streamer.c: Likewise.
18293         * dbxout.c: Likewise.
18294         * dce.c: Likewise.
18295         * ddg.c: Likewise.
18296         * debug.c: Likewise.
18297         * df-core.c: Likewise.
18298         * df-problems.c: Likewise.
18299         * df-scan.c: Likewise.
18300         * df.h: Likewise.
18301         * dfp.c: Likewise.
18302         * dojump.c: Likewise.
18303         * dominance.c: Likewise.
18304         * domwalk.c: Likewise.
18305         * double-int.c: Likewise.
18306         * dse.c: Likewise.
18307         * dumpfile.c: Likewise.
18308         * dwarf2asm.c: Likewise.
18309         * dwarf2cfi.c: Likewise.
18310         * dwarf2out.c: Likewise.
18311         * dwarf2out.h: Likewise.
18312         * emit-rtl.c: Likewise.
18313         * et-forest.c: Likewise.
18314         * except.c: Likewise.
18315         * explow.c: Likewise.
18316         * expmed.c: Likewise.
18317         * expr.c: Likewise.
18318         * final.c: Likewise.
18319         * fixed-value.c: Likewise.
18320         * fold-const.c: Likewise.
18321         * function.c: Likewise.
18322         * fwprop.c: Likewise.
18323         * gcc-plugin.h: Likewise.
18324         * gcse.c: Likewise.
18325         * generic-match-head.c: Likewise.
18326         * ggc-page.c: Likewise.
18327         * gimple-builder.c: Likewise.
18328         * gimple-expr.c: Likewise.
18329         * gimple-fold.c: Likewise.
18330         * gimple-iterator.c: Likewise.
18331         * gimple-low.c: Likewise.
18332         * gimple-match-head.c: Likewise.
18333         * gimple-pretty-print.c: Likewise.
18334         * gimple-ssa-isolate-paths.c: Likewise.
18335         * gimple-ssa-strength-reduction.c: Likewise.
18336         * gimple-streamer-in.c: Likewise.
18337         * gimple-streamer-out.c: Likewise.
18338         * gimple-streamer.h: Likewise.
18339         * gimple-walk.c: Likewise.
18340         * gimple.c: Likewise.
18341         * gimplify-me.c: Likewise.
18342         * gimplify.c: Likewise.
18343         * godump.c: Likewise.
18344         * graph.c: Likewise.
18345         * graphite-blocking.c: Likewise.
18346         * graphite-dependences.c: Likewise.
18347         * graphite-interchange.c: Likewise.
18348         * graphite-isl-ast-to-gimple.c: Likewise.
18349         * graphite-optimize-isl.c: Likewise.
18350         * graphite-poly.c: Likewise.
18351         * graphite-scop-detection.c: Likewise.
18352         * graphite-sese-to-poly.c: Likewise.
18353         * graphite.c: Likewise.
18354         * haifa-sched.c: Likewise.
18355         * hooks.h: Likewise.
18356         * hw-doloop.c: Likewise.
18357         * ifcvt.c: Likewise.
18358         * incpath.c: Likewise.
18359         * init-regs.c: Likewise.
18360         * internal-fn.c: Likewise.
18361         * ipa-chkp.c: Likewise.
18362         * ipa-comdats.c: Likewise.
18363         * ipa-cp.c: Likewise.
18364         * ipa-devirt.c: Likewise.
18365         * ipa-icf-gimple.c: Likewise.
18366         * ipa-icf.c: Likewise.
18367         * ipa-inline-analysis.c: Likewise.
18368         * ipa-inline-transform.c: Likewise.
18369         * ipa-inline.c: Likewise.
18370         * ipa-polymorphic-call.c: Likewise.
18371         * ipa-profile.c: Likewise.
18372         * ipa-prop.c: Likewise.
18373         * ipa-pure-const.c: Likewise.
18374         * ipa-ref.c: Likewise.
18375         * ipa-reference.c: Likewise.
18376         * ipa-split.c: Likewise.
18377         * ipa-utils.c: Likewise.
18378         * ipa-visibility.c: Likewise.
18379         * ipa.c: Likewise.
18380         * ira-build.c: Likewise.
18381         * ira-color.c: Likewise.
18382         * ira-conflicts.c: Likewise.
18383         * ira-costs.c: Likewise.
18384         * ira-emit.c: Likewise.
18385         * ira-lives.c: Likewise.
18386         * ira.c: Likewise.
18387         * jump.c: Likewise.
18388         * langhooks.c: Likewise.
18389         * lcm.c: Likewise.
18390         * loop-doloop.c: Likewise.
18391         * loop-init.c: Likewise.
18392         * loop-invariant.c: Likewise.
18393         * loop-iv.c: Likewise.
18394         * loop-unroll.c: Likewise.
18395         * lower-subreg.c: Likewise.
18396         * lra-assigns.c: Likewise.
18397         * lra-coalesce.c: Likewise.
18398         * lra-constraints.c: Likewise.
18399         * lra-eliminations.c: Likewise.
18400         * lra-lives.c: Likewise.
18401         * lra-remat.c: Likewise.
18402         * lra-spills.c: Likewise.
18403         * lra.c: Likewise.
18404         * lto-cgraph.c: Likewise.
18405         * lto-compress.c: Likewise.
18406         * lto-opts.c: Likewise.
18407         * lto-section-in.c: Likewise.
18408         * lto-section-out.c: Likewise.
18409         * lto-streamer-in.c: Likewise.
18410         * lto-streamer-out.c: Likewise.
18411         * lto-streamer.c: Likewise.
18412         * mcf.c: Likewise.
18413         * mode-switching.c: Likewise.
18414         * modulo-sched.c: Likewise.
18415         * omega.c: Likewise.
18416         * omp-low.c: Likewise.
18417         * optabs.c: Likewise.
18418         * opts-global.c: Likewise.
18419         * passes.c: Likewise.
18420         * plugin.c: Likewise.
18421         * postreload-gcse.c: Likewise.
18422         * postreload.c: Likewise.
18423         * predict.c: Likewise.
18424         * print-rtl.c: Likewise.
18425         * print-tree.c: Likewise.
18426         * profile.c: Likewise.
18427         * real.c: Likewise.
18428         * realmpfr.c: Likewise.
18429         * realmpfr.h: Likewise.
18430         * recog.c: Likewise.
18431         * ree.c: Likewise.
18432         * reg-stack.c: Likewise.
18433         * regcprop.c: Likewise.
18434         * reginfo.c: Likewise.
18435         * regrename.c: Likewise.
18436         * regs.h: Likewise.
18437         * regstat.c: Likewise.
18438         * reload.c: Likewise.
18439         * reload1.c: Likewise.
18440         * reorg.c: Likewise.
18441         * resource.c: Likewise.
18442         * rtl-chkp.c: Likewise.
18443         * rtlanal.c: Likewise.
18444         * rtlhooks.c: Likewise.
18445         * sanopt.c: Likewise.
18446         * sched-deps.c: Likewise.
18447         * sched-ebb.c: Likewise.
18448         * sched-rgn.c: Likewise.
18449         * sched-vis.c: Likewise.
18450         * sdbout.c: Likewise.
18451         * sel-sched-dump.c: Likewise.
18452         * sel-sched-ir.c: Likewise.
18453         * sel-sched.c: Likewise.
18454         * sese.c: Likewise.
18455         * shrink-wrap.c: Likewise.
18456         * shrink-wrap.h: Likewise.
18457         * simplify-rtx.c: Likewise.
18458         * stack-ptr-mod.c: Likewise.
18459         * statistics.c: Likewise.
18460         * stmt.c: Likewise.
18461         * stor-layout.c: Likewise.
18462         * store-motion.c: Likewise.
18463         * stringpool.c: Likewise.
18464         * symtab.c: Likewise.
18465         * target-globals.c: Likewise.
18466         * targhooks.c: Likewise.
18467         * toplev.c: Likewise.
18468         * tracer.c: Likewise.
18469         * trans-mem.c: Likewise.
18470         * tree-affine.c: Likewise.
18471         * tree-affine.h: Likewise.
18472         * tree-browser.c: Likewise.
18473         * tree-call-cdce.c: Likewise.
18474         * tree-cfg.c: Likewise.
18475         * tree-cfgcleanup.c: Likewise.
18476         * tree-chkp-opt.c: Likewise.
18477         * tree-chkp.c: Likewise.
18478         * tree-chrec.c: Likewise.
18479         * tree-complex.c: Likewise.
18480         * tree-data-ref.c: Likewise.
18481         * tree-dfa.c: Likewise.
18482         * tree-diagnostic.c: Likewise.
18483         * tree-dump.c: Likewise.
18484         * tree-eh.c: Likewise.
18485         * tree-emutls.c: Likewise.
18486         * tree-if-conv.c: Likewise.
18487         * tree-inline.c: Likewise.
18488         * tree-into-ssa.c: Likewise.
18489         * tree-iterator.c: Likewise.
18490         * tree-loop-distribution.c: Likewise.
18491         * tree-nested.c: Likewise.
18492         * tree-nrv.c: Likewise.
18493         * tree-object-size.c: Likewise.
18494         * tree-outof-ssa.c: Likewise.
18495         * tree-parloops.c: Likewise.
18496         * tree-phinodes.c: Likewise.
18497         * tree-predcom.c: Likewise.
18498         * tree-pretty-print.c: Likewise.
18499         * tree-pretty-print.h: Likewise.
18500         * tree-profile.c: Likewise.
18501         * tree-scalar-evolution.c: Likewise.
18502         * tree-sra.c: Likewise.
18503         * tree-ssa-address.c: Likewise.
18504         * tree-ssa-alias.c: Likewise.
18505         * tree-ssa-ccp.c: Likewise.
18506         * tree-ssa-coalesce.c: Likewise.
18507         * tree-ssa-copy.c: Likewise.
18508         * tree-ssa-copyrename.c: Likewise.
18509         * tree-ssa-dce.c: Likewise.
18510         * tree-ssa-dom.c: Likewise.
18511         * tree-ssa-dse.c: Likewise.
18512         * tree-ssa-forwprop.c: Likewise.
18513         * tree-ssa-ifcombine.c: Likewise.
18514         * tree-ssa-live.c: Likewise.
18515         * tree-ssa-loop-ch.c: Likewise.
18516         * tree-ssa-loop-im.c: Likewise.
18517         * tree-ssa-loop-ivcanon.c: Likewise.
18518         * tree-ssa-loop-ivopts.c: Likewise.
18519         * tree-ssa-loop-manip.c: Likewise.
18520         * tree-ssa-loop-niter.c: Likewise.
18521         * tree-ssa-loop-prefetch.c: Likewise.
18522         * tree-ssa-loop-unswitch.c: Likewise.
18523         * tree-ssa-loop.c: Likewise.
18524         * tree-ssa-loop.h: Likewise.
18525         * tree-ssa-math-opts.c: Likewise.
18526         * tree-ssa-operands.c: Likewise.
18527         * tree-ssa-phiopt.c: Likewise.
18528         * tree-ssa-phiprop.c: Likewise.
18529         * tree-ssa-pre.c: Likewise.
18530         * tree-ssa-propagate.c: Likewise.
18531         * tree-ssa-reassoc.c: Likewise.
18532         * tree-ssa-sccvn.c: Likewise.
18533         * tree-ssa-scopedtables.c: Likewise.
18534         * tree-ssa-sink.c: Likewise.
18535         * tree-ssa-strlen.c: Likewise.
18536         * tree-ssa-structalias.c: Likewise.
18537         * tree-ssa-tail-merge.c: Likewise.
18538         * tree-ssa-ter.c: Likewise.
18539         * tree-ssa-threadedge.c: Likewise.
18540         * tree-ssa-threadupdate.c: Likewise.
18541         * tree-ssa-uncprop.c: Likewise.
18542         * tree-ssa-uninit.c: Likewise.
18543         * tree-ssa.c: Likewise.
18544         * tree-ssanames.c: Likewise.
18545         * tree-stdarg.c: Likewise.
18546         * tree-streamer-in.c: Likewise.
18547         * tree-streamer-out.c: Likewise.
18548         * tree-streamer.c: Likewise.
18549         * tree-switch-conversion.c: Likewise.
18550         * tree-tailcall.c: Likewise.
18551         * tree-vect-data-refs.c: Likewise.
18552         * tree-vect-generic.c: Likewise.
18553         * tree-vect-loop-manip.c: Likewise.
18554         * tree-vect-loop.c: Likewise.
18555         * tree-vect-patterns.c: Likewise.
18556         * tree-vect-slp.c: Likewise.
18557         * tree-vect-stmts.c: Likewise.
18558         * tree-vectorizer.c: Likewise.
18559         * tree-vrp.c: Likewise.
18560         * tree.c: Likewise.
18561         * tsan.c: Likewise.
18562         * ubsan.c: Likewise.
18563         * valtrack.c: Likewise.
18564         * value-prof.c: Likewise.
18565         * var-tracking.c: Likewise.
18566         * varasm.c: Likewise.
18567         * varpool.c: Likewise.
18568         * vmsdbgout.c: Likewise.
18569         * vtable-verify.c: Likewise.
18570         * web.c: Likewise.
18571         * wide-int-print.cc: Likewise.
18572         * wide-int-print.h: Likewise.
18573         * wide-int.cc: Likewise.
18574         * xcoffout.c: Likewise.
18575         * config/aarch64/aarch64-builtins.c: Likewise.
18576         * config/aarch64/aarch64.c: Likewise.
18577         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
18578         * config/alpha/alpha.c: Likewise.
18579         * config/arc/arc.c: Likewise.
18580         * config/arm/aarch-common.c: Likewise.
18581         * config/arm/arm-builtins.c: Likewise.
18582         * config/arm/arm-c.c: Likewise.
18583         * config/arm/arm.c: Likewise.
18584         * config/avr/avr-c.c: Likewise.
18585         * config/avr/avr-log.c: Likewise.
18586         * config/avr/avr.c: Likewise.
18587         * config/bfin/bfin.c: Likewise.
18588         * config/c6x/c6x.c: Likewise.
18589         * config/cr16/cr16.c: Likewise.
18590         * config/cris/cris.c: Likewise.
18591         * config/darwin-c.c: Likewise.
18592         * config/darwin.c: Likewise.
18593         * config/default-c.c: Likewise.
18594         * config/epiphany/epiphany.c: Likewise.
18595         * config/epiphany/mode-switch-use.c: Likewise.
18596         * config/epiphany/resolve-sw-modes.c: Likewise.
18597         * config/fr30/fr30.c: Likewise.
18598         * config/frv/frv.c: Likewise.
18599         * config/ft32/ft32.c: Likewise.
18600         * config/glibc-c.c: Likewise.
18601         * config/h8300/h8300.c: Likewise.
18602         * config/i386/i386-c.c: Likewise.
18603         * config/i386/i386.c: Likewise.
18604         * config/i386/msformat-c.c: Likewise.
18605         * config/i386/winnt-cxx.c: Likewise.
18606         * config/i386/winnt-stubs.c: Likewise.
18607         * config/i386/winnt.c: Likewise.
18608         * config/ia64/ia64-c.c: Likewise.
18609         * config/ia64/ia64.c: Likewise.
18610         * config/iq2000/iq2000.c: Likewise.
18611         * config/lm32/lm32.c: Likewise.
18612         * config/m32c/m32c-pragma.c: Likewise.
18613         * config/m32c/m32c.c: Likewise.
18614         * config/m32r/m32r.c: Likewise.
18615         * config/m68k/m68k.c: Likewise.
18616         * config/mcore/mcore.c: Likewise.
18617         * config/mep/mep-pragma.c: Likewise.
18618         * config/mep/mep.c: Likewise.
18619         * config/microblaze/microblaze-c.c: Likewise.
18620         * config/microblaze/microblaze.c: Likewise.
18621         * config/mips/mips.c: Likewise.
18622         * config/mmix/mmix.c: Likewise.
18623         * config/mn10300/mn10300.c: Likewise.
18624         * config/moxie/moxie.c: Likewise.
18625         * config/msp430/msp430-c.c: Likewise.
18626         * config/msp430/msp430.c: Likewise.
18627         * config/nds32/nds32-cost.c: Likewise.
18628         * config/nds32/nds32-fp-as-gp.c: Likewise.
18629         * config/nds32/nds32-intrinsic.c: Likewise.
18630         * config/nds32/nds32-isr.c: Likewise.
18631         * config/nds32/nds32-md-auxiliary.c: Likewise.
18632         * config/nds32/nds32-memory-manipulation.c: Likewise.
18633         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
18634         * config/nds32/nds32-predicates.c: Likewise.
18635         * config/nds32/nds32.c: Likewise.
18636         * config/nios2/nios2.c: Likewise.
18637         * config/nvptx/nvptx.c: Likewise.
18638         * config/pa/pa.c: Likewise.
18639         * config/pdp11/pdp11.c: Likewise.
18640         * config/rl78/rl78-c.c: Likewise.
18641         * config/rl78/rl78.c: Likewise.
18642         * config/rs6000/rs6000-c.c: Likewise.
18643         * config/rs6000/rs6000.c: Likewise.
18644         * config/rx/rx.c: Likewise.
18645         * config/s390/s390-c.c: Likewise.
18646         * config/s390/s390.c: Likewise.
18647         * config/sh/sh-c.c: Likewise.
18648         * config/sh/sh-mem.cc: Likewise.
18649         * config/sh/sh.c: Likewise.
18650         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
18651         * config/sh/sh_treg_combine.cc: Likewise.
18652         * config/sol2-c.c: Likewise.
18653         * config/sol2-cxx.c: Likewise.
18654         * config/sol2-stubs.c: Likewise.
18655         * config/sol2.c: Likewise.
18656         * config/sparc/sparc-c.c: Likewise.
18657         * config/sparc/sparc.c: Likewise.
18658         * config/spu/spu-c.c: Likewise.
18659         * config/spu/spu.c: Likewise.
18660         * config/stormy16/stormy16.c: Likewise.
18661         * config/tilegx/mul-tables.c: Likewise.
18662         * config/tilegx/tilegx-c.c: Likewise.
18663         * config/tilegx/tilegx.c: Likewise.
18664         * config/tilepro/mul-tables.c: Likewise.
18665         * config/tilepro/tilepro-c.c: Likewise.
18666         * config/tilepro/tilepro.c: Likewise.
18667         * config/v850/v850-c.c: Likewise.
18668         * config/v850/v850.c: Likewise.
18669         * config/vax/vax.c: Likewise.
18670         * config/visium/visium.c: Likewise.
18671         * config/vms/vms-c.c: Likewise.
18672         * config/vms/vms.c: Likewise.
18673         * config/vxworks.c: Likewise.
18674         * config/winnt-c.c: Likewise.
18675         * config/xtensa/xtensa.c: Likewise.
18676         * common/config/bfin/bfin-common.c: Likewise.
18677
18678 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
18679
18680         * tree.h (tree_code_for_canonical_type_merging): New function.
18681         * tree.c (gimple_canonical_types_compatible_p): Use
18682         tree_code_for_canonical_type_merging..
18683
18684 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18685
18686         PR c++/66192
18687         PR target/66200
18688         * doc/tm.texi: Regenerate.
18689         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
18690         * target.def (TARGET_RELAXED_ORDERING): Likewise.
18691         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
18692         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
18693         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
18694         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
18695         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
18696         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
18697         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
18698
18699 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18700
18701         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
18702         register fma steering pass.
18703         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
18704         AARCH64_TUNE_FMA_STEERING.
18705
18706 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
18707
18708         * tree.c (verify_type_variant): Verify that type and variant is
18709         compatible.
18710         (gimple_canonical_types_compatible_p): Look for main variants.
18711
18712 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
18713
18714         * config.gcc (powerpc*-*-*): Add support for a new configure
18715         option --with-advance-toolchain=<xxx> which overrides using the
18716         default header files, libraries and dynamic linker.
18717
18718         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
18719         specs to support the configure --with-advance-toolchain=<xxx>
18720         option.
18721         (INCLUDE_EXTRA_SPEC): Likewise.
18722         (LINK_OS_EXTRA_SPEC32): Likewise.
18723         (LINK_OK_EXTRA_SPEC64): Likewise.
18724         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
18725         (DYNAMIC_LINKER_PREFIX): Likewise.
18726         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
18727         toolchain support.
18728         (GLIBC_DYNAMIC_LINKER32): Likewise.
18729         (GLIBC_DYNAMIC_LINKER64): Likewise.
18730         (LINK_OS_LINUX_SPEC32): Likewise.
18731         (LINK_OS_LINUX_SPEC64): Likewise.
18732
18733         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
18734         configuration option.
18735
18736 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
18737
18738         PR target/66275
18739         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
18740         to determine current function ABI.
18741         (ix86_function_value_regno_p): Ditto.
18742
18743 2015-06-03  Martin Liska  <mliska@suse.cz>
18744
18745         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
18746         * bitmap.h (struct bitmap_usage): Likewise.
18747         * ggc-common.c (struct ggc_usage): Likewise.
18748         * mem-stats.h (struct mem_location): Likewise.
18749         (struct mem_usage): Likewise.
18750         * vec.c (struct vec_usage): Likewise.
18751
18752 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
18753
18754         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
18755         -Bsymbolic.
18756
18757 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
18758
18759         * doc/plugins.texi (enum plugin_event): New event.
18760         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
18761         and PLUGIN_FINISH_FUNCTION.
18762         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
18763         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
18764
18765 2015-06-03  Richard Biener  <rguenther@suse.de>
18766
18767         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
18768         compute GROUP_GAP for the first element.
18769         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
18770         on in-group gaps.
18771
18772 2015-06-03  Nick Clifton  <nickc@redhat.com>
18773
18774         * config/rl78/rl78-real.md: Add peepholes to avoid a register
18775         copy when calling a function.
18776         * config/rl78/rl78.c (need_to_save): Do not push the frame
18777         pointer in an interrupt handler prologue if it is never used.
18778
18779 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18780
18781         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
18782
18783 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
18784
18785         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
18786         reference when cloning alias node.
18787
18788 2015-06-03  Martin Liska  <mliska@suse.cz>
18789
18790         * alloc-pool.h (struct pool_usage): Correct space padding.
18791         * ggc-page.c (ggc_print_statistics): Align columns in a report.
18792         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
18793         * tree.c (dump_tree_statistics): Align columns in a report.
18794
18795 2015-06-03  Martin Liska  <mliska@suse.cz>
18796
18797         * alloc-pool.c (allocate_pool_descriptor): Remove.
18798         (struct pool_output_info): Likewise.
18799         (print_alloc_pool_statistics): Likewise.
18800         (dump_alloc_pool_statistics): Likewise.
18801         * alloc-pool.h (struct pool_usage): New struct.
18802         (pool_allocator::initialize): Change usage of memory statistics
18803         to a new interface.
18804         (pool_allocator::release): Likewise.
18805         (pool_allocator::allocate): Likewise.
18806         (pool_allocator::remove): Likewise.
18807         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
18808         for a pool allocator.
18809         * mem-stats.h (struct mem_location): Add new ctor.
18810         (struct mem_usage): Add counter for number of
18811         instances.
18812         (mem_alloc_description::register_descriptor): New overload of
18813         * mem-stats.h (mem_location::to_string): New function.
18814         * bitmap.h (struct bitmap_usage): Use this new function.
18815         * ggc-common.c (struct ggc_usage): Likewise.
18816         the function.
18817
18818 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
18819
18820         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
18821         of GCC_INSN_FLAGS_H block.
18822
18823 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
18824
18825         * explow.c (plus_constant): Update check after force_const_mem call
18826         to see if the value returned is not a NULL_RTX.
18827
18828 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
18829
18830         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
18831         remove instumentation thunks calling reachable functions.
18832         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
18833         * lto/lto-partition.c (privatize_symbol_name_1): New.
18834         (privatize_symbol_name): Privatize both decl and orig_decl
18835         names for instrumented functions.
18836         * cgraph.c (cgraph_node::verify_node): Add transparent
18837         alias chain check for instrumented node.
18838
18839 2015-06-03  Marek Polacek  <polacek@redhat.com>
18840
18841         PR c/64223
18842         PR c/29358
18843         * tree.c (attribute_value_equal): Handle attribute format.
18844         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
18845
18846 2015-06-03  Richard Biener  <rguenther@suse.de>
18847
18848         PR tree-optimization/63916
18849         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
18850         Forward-propagate non-invariant addresses by splicing their
18851         reference ops if the result isn't going to be used by PRE.
18852         (vn_reference_lookup_3): Remove pointless assert.
18853
18854 2015-06-03  Richard Biener  <rguenther@suse.de>
18855
18856         PR tree-optimization/66375
18857         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
18858         add to the evolution before following SSA edges.
18859
18860 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
18861
18862         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
18863         (dump_use, dump_cand, find_induction_variables): Pass new argument
18864         to dump_iv.
18865         (record_use): Preserve the ssa name information in IV.
18866
18867 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
18868
18869         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
18870         NO_MODE_TEST.
18871         (add_mode_tests): Don't add mode tests if the predicate only
18872         accepts scalar constant integers.  Otherwise, allow the mode
18873         of "op" to be VOIDmode if the predicate does accept such integers.
18874
18875 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
18876
18877         PR target/66258
18878         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
18879         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
18880         (aarch64_secondary_reload): Likewise
18881         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
18882         to !TARGET_FLOAT.
18883         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
18884         Likewise.
18885
18886 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
18887             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
18888
18889         PR target/65768
18890         * cprop.c (try_replace_reg): Check cost of constants before propagating.
18891
18892 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
18893
18894         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
18895         provide access to the IBM extended double floating point mode if
18896         long double is IEEE 128-bit floating point.
18897         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
18898         point if long double is the IBM extended double type.
18899
18900         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
18901         enable adding IEEE 128-bit floating point support.
18902         (-mfloat128-software): Likewise.
18903         (-mfloat128-sw): Likewise.
18904
18905         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
18906         128-bit floating point types to occupy any register if
18907         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
18908         -mfloat128-software is enabled.
18909         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
18910         support.
18911         (rs6000_option_override_internal): Add -mfloat128-* support.
18912         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
18913
18914         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
18915         and float128 type nodes.
18916         (ieee128_float_type_node): Likewise.
18917         (ibm128_float_type_node): Likewise.
18918
18919 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
18920
18921         PR target/66136
18922         * config/aarch64/geniterators.sh: Rewrite in awk.
18923
18924 2015-06-02  Martin Liska  <mliska@suse.cz>
18925
18926         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
18927         values to avoid -Wmaybe-uninitialized errors.
18928
18929 2015-06-02  Richard Biener  <rguenther@suse.de>
18930
18931         PR debug/65549
18932         * dwarf2out.c (lookup_context_die): New function.
18933         (resolve_addr): Avoid forcing a full DIE for the
18934         target of a DW_TAG_GNU_call_site during late compilation.
18935         Instead create a stub DIE without a type if we have a
18936         context DIE present.
18937
18938 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
18939
18940         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
18941
18942 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
18943
18944         PR tree-optimization/48052
18945         * cfgloop.h (struct control_iv): New.
18946         (struct loop): New field control_ivs.
18947         * tree-ssa-loop-niter.c : Include "stor-layout.h".
18948         (number_of_iterations_lt): Set no_overflow information.
18949         (number_of_iterations_exit): Init control iv in niter struct.
18950         (record_control_iv): New.
18951         (estimate_numbers_of_iterations_loop): Call record_control_iv.
18952         (loop_exits_before_overflow): New.  Interface factored out of
18953         scev_probably_wraps_p.
18954         (scev_probably_wraps_p): Factor loop niter related code into
18955         loop_exits_before_overflow.
18956         (free_numbers_of_iterations_estimates_loop): Free control ivs.
18957         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
18958
18959 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
18960
18961         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
18962         the target doesn't belong to the current function.
18963
18964 2015-06-02  Marek Polacek  <polacek@redhat.com>
18965
18966         PR middle-end/66345
18967         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
18968         get_maxval_strlen does not produce an INTEGER_CST.
18969
18970 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
18971
18972         * config/arc/constraints.md: Use lower-case names in match_code.
18973         * config/mmix/constraints.md: Likewise.
18974
18975 2015-06-02  Richard Biener  <rguenther@suse.de>
18976
18977         PR tree-optimization/65961
18978         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
18979         check and clarify dump message.
18980         (vect_build_slp_tree): If all children are built up from scalars
18981         build up the parent from scalars instead.
18982         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
18983
18984 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
18985
18986         PR other/65366
18987         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
18988         instead of print ... .
18989
18990 2015-06-02  Alan Modra  <amodra@gmail.com>
18991
18992         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
18993         2014-08-11 change.
18994
18995 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
18996
18997         PR tree-optimization/52563
18998         PR tree-optimization/62173
18999         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
19000         (alloc_iv, set_iv): New parameter.
19001         (determine_biv_step): Delete.
19002         (find_bivs): Inline original determine_biv_step.  Pass new
19003         argument to set_iv.
19004         (idx_find_step): Use no_overflow information for conversion.
19005         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
19006         resolve_mixers handle folded_casts.
19007         (instantiate_scev_name): Change bool parameter to bool pointer.
19008         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
19009         (instantiate_array_ref, instantiate_scev_not): Ditto.
19010         (instantiate_scev_3, instantiate_scev_2): Ditto.
19011         (instantiate_scev_1, instantiate_scev_r): Ditto.
19012         (instantiate_scev_convert, ): Change parameter.  Pass argument
19013         to chrec_convert_aggressive.
19014         (instantiate_scev): Change argument.
19015         (resolve_mixers): New parameter and set it.
19016         (scev_const_prop): New argument.
19017         * tree-scalar-evolution.h (resolve_mixers): New parameter.
19018         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
19019         of chrec_conert_1.
19020         (chrec_convert): New parameter.  Move definition below.
19021         (chrec_convert_aggressive): New parameter and set it.  Call
19022         convert_affine_scev.
19023         * tree-chrec.h (chrec_convert): New parameter.
19024         (chrec_convert_aggressive): Ditto.
19025
19026 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
19027
19028         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
19029         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
19030         the LHS of a no-return call if its type has variable size.
19031         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
19032         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
19033
19034 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
19035
19036         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
19037         * config.in: Regenerate.
19038
19039 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
19040
19041         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
19042         consecutive accesses within outer-loop with force_vectorize
19043         for references with zero step in inner-loop.
19044
19045 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
19046
19047         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
19048         rather than from gcc/build directory.
19049
19050 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
19051
19052         PR target/65697
19053         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
19054         for __sync memory models, emit initial loads and final barriers as
19055         appropriate.
19056
19057 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
19058
19059         PR target/65697
19060         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
19061         (aarch64_split_atomic_op): Check for __sync memory models, emit
19062         appropriate initial loads and final barriers.
19063
19064 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
19065
19066         * Makefile.in: Fix gcov dependencies that should
19067         not point to a build folder.
19068
19069 2015-06-01  Richard Biener  <rguenther@suse.de>
19070
19071         Revert
19072         2015-05-29  Richard Biener  <rguenther@suse.de>
19073
19074         PR tree-optimization/66314
19075         * tree-ssa-threadupdate.c (create_block_for_threading): Add
19076         parameter that says which loop the new block belongs to.
19077         (ssa_create_duplicates): Blocks duplicated for the threaded
19078         path belong to the loop of the thread destination.
19079
19080 2015-06-01  Martin Liska  <mliska@suse.cz>
19081
19082         * sched-deps.c: Include pool-alloc.h before
19083         cselib.h header file is included.
19084
19085 2015-06-01  Richard Biener  <rguenther@suse.de>
19086
19087         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
19088         functions.
19089
19090 2015-06-01  Martin Liska  <mliska@suse.cz>
19091
19092         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
19093         a function local variable.
19094
19095 2015-06-01  Martin Liska  <mliska@suse.cz>
19096
19097         * alloc-pool.c (create_alloc_pool): Remove.
19098         (empty_alloc_pool): Likewise.
19099         (free_alloc_pool): Likewise.
19100         (free_alloc_pool_if_empty): Likewise.
19101         (pool_alloc): Likewise.
19102         (pool_free): Likewise.
19103         * alloc-pool.h: Remove old declarations.
19104
19105 2015-06-01  Martin Liska  <mliska@suse.cz>
19106
19107         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
19108         (ira_create_object): Likewise.
19109         (ira_create_allocno): Likewise.
19110         (ira_create_live_range): Likewise.
19111         (copy_live_range): Likewise.
19112         (ira_finish_live_range): Likewise.
19113         (ira_free_allocno_costs): Likewise.
19114         (finish_allocno): Likewise.
19115         (finish_allocnos): Likewise.
19116         (initiate_prefs): Likewise.
19117         (ira_create_pref): Likewise.
19118         (finish_pref): Likewise.
19119         (finish_prefs): Likewise.
19120         (initiate_copies): Likewise.
19121         (ira_create_copy): Likewise.
19122         (finish_copy): Likewise.
19123         (finish_copies): Likewise.
19124         (finish_prefs): Likewise.
19125
19126 2015-06-01  Martin Liska  <mliska@suse.cz>
19127
19128         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
19129         (allocate_and_init_ipcp_value): Likewise.
19130         (ipcp_lattice::add_value): Likewise.
19131         (merge_agg_lats_step): Likewise.
19132         (ipcp_driver): Likewise.
19133         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
19134         (ipa_free_all_structures_after_iinln): Likewise.
19135         * ipa-prop.h: Likewise.
19136
19137 2015-06-01  Martin Liska  <mliska@suse.cz>
19138
19139         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
19140         pool allocator.
19141         (set_hint_predicate): Likewise.
19142         (inline_summary_alloc): Likewise.
19143         (reset_inline_edge_summary): Likewise.
19144         (reset_inline_summary): Likewise.
19145         (set_cond_stmt_execution_predicate): Likewise.
19146         (set_switch_stmt_execution_predicate): Likewise.
19147         (compute_bb_predicates): Likewise.
19148         (estimate_function_body_sizes): Likewise.
19149         (inline_free_summary): Likewise.
19150
19151 2015-06-01  Martin Liska  <mliska@suse.cz>
19152
19153         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
19154         (ipa_edge_duplication_hook): Likewise.
19155         (ipa_free_all_structures_after_ipa_cp): Likewise.
19156         (ipa_free_all_structures_after_iinln): Likewise.
19157
19158 2015-06-01  Martin Liska  <mliska@suse.cz>
19159
19160         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
19161         (ipa_profile_generate_summary): Likewise.
19162         (ipa_profile_read_summary): Likewise.
19163         (ipa_profile): Likewise.
19164
19165 2015-06-01  Martin Liska  <mliska@suse.cz>
19166
19167         * tree-ssa-structalias.c (new_var_info): Use new type-based
19168         pool allocator.
19169         (new_constraint): Likewise.
19170         (init_alias_vars): Likewise.
19171         (delete_points_to_sets): Likewise.
19172
19173 2015-06-01  Martin Liska  <mliska@suse.cz>
19174
19175         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
19176         (free_strinfo): Likewise.
19177         (pass_strlen::execute): Likewise.
19178
19179 2015-06-01  Martin Liska  <mliska@suse.cz>
19180
19181         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
19182         pool allocator.
19183         (vn_reference_insert_pieces): Likewise.
19184         (vn_phi_insert): Likewise.
19185         (visit_reference_op_call): Likewise.
19186         (copy_phi): Likewise.
19187         (copy_reference): Likewise.
19188         (process_scc): Likewise.
19189         (allocate_vn_table): Likewise.
19190         (free_vn_table): Likewise.
19191
19192 2015-06-01  Martin Liska  <mliska@suse.cz>
19193
19194         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
19195         pool allocator.
19196         (add_repeat_to_ops_vec): Likewise.
19197         (get_ops): Likewise.
19198         (maybe_optimize_range_tests): Likewise.
19199         (init_reassoc): Likewise.
19200         (fini_reassoc): Likewise.
19201
19202 2015-06-01  Martin Liska  <mliska@suse.cz>
19203
19204         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
19205         pool allocator.
19206         (bitmap_set_new): Likewise.
19207         (get_or_alloc_expr_for_constant): Likewise.
19208         (get_or_alloc_expr_for): Likewise.
19209         (phi_translate_1): Likewise.
19210         (compute_avail): Likewise.
19211         (init_pre): Likewise.
19212         (fini_pre): Likewise.
19213
19214 2015-06-01  Martin Liska  <mliska@suse.cz>
19215
19216         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
19217         (delete_dep_node): Likewise.
19218         (create_deps_list): Likewise.
19219         (free_deps_list): Likewise.
19220         (sched_deps_init): Likewise.
19221         (sched_deps_finish): Likewise.
19222
19223 2015-06-01  Martin Liska  <mliska@suse.cz>
19224
19225         * regcprop.c (free_debug_insn_changes): Use new type-based
19226         pool allocator.
19227         (replace_oldest_value_reg): Likewise.
19228         (pass_cprop_hardreg::execute): Likewise.
19229
19230 2015-06-01  Martin Liska  <mliska@suse.cz>
19231
19232         * ira-build.c (initiate_cost_vectors): Use new type-based
19233         pool allocator.
19234         (ira_allocate_cost_vector): Likewise.
19235         (ira_free_cost_vector): Likewise.
19236         (finish_cost_vectors): Likewise.
19237
19238 2015-06-01  Martin Liska  <mliska@suse.cz>
19239
19240         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
19241         pool allocator.
19242         (free_sched_pools): Likewise.
19243         * sel-sched-ir.h (_list_alloc): Likewise.
19244         (_list_remove): Likewise.
19245
19246 2015-06-01  Martin Liska  <mliska@suse.cz>
19247
19248         * stmt.c (add_case_node): Use new type-based pool allocator.
19249         (expand_case): Likewise.
19250         (expand_sjlj_dispatch_table): Likewise.
19251
19252 2015-06-01  Martin Liska  <mliska@suse.cz>
19253
19254         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
19255         (free_bb): Likewise.
19256         (pass_cse_reciprocals::execute): Likewise.
19257
19258 2015-06-01  Martin Liska  <mliska@suse.cz>
19259
19260         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
19261         (sra_deinitialize) Likewise.
19262         (create_access_1) Likewise.
19263         (build_accesses_from_assign) Likewise.
19264         (create_artificial_child_access) Likewise.
19265
19266 2015-06-01  Martin Liska  <mliska@suse.cz>
19267
19268         * dse.c (get_group_info):Use new type-based pool allocator.
19269         (dse_step0) Likewise.
19270         (free_store_info) Likewise.
19271         (delete_dead_store_insn) Likewise.
19272         (free_read_records) Likewise.
19273         (record_store) Likewise.
19274         (replace_read) Likewise.
19275         (check_mem_read_rtx) Likewise.
19276         (scan_insn) Likewise.
19277         (dse_step1) Likewise.
19278         (dse_step7) Likewise.
19279
19280 2015-06-01  Martin Liska  <mliska@suse.cz>
19281
19282         * df-scan.c (struct df_scan_problem_data):Use new type-based
19283         pool allocator.
19284         (df_scan_free_internal) Likewise.
19285         (df_scan_alloc) Likewise.
19286         (df_grow_reg_info) Likewise.
19287         (df_free_ref) Likewise.
19288         (df_insn_create_insn_record) Likewise.
19289         (df_mw_hardreg_chain_delete) Likewise.
19290         (df_insn_info_delete) Likewise.
19291         (df_free_collection_rec) Likewise.
19292         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
19293         (df_sort_and_compress_mws) Likewise.
19294         (df_ref_create_structure) Likewise.
19295         (df_ref_record) Likewise.
19296
19297 2015-06-01  Martin Liska  <mliska@suse.cz>
19298
19299         * df-problems.c (df_chain_create):Use new type-based pool allocator.
19300         (df_chain_unlink_1) Likewise.
19301         (df_chain_unlink) Likewise.
19302         (df_chain_remove_problem) Likewise.
19303         (df_chain_alloc) Likewise.
19304         (df_chain_free) Likewise.
19305         * df.h (struct dataflow) Likewise.
19306
19307 2015-06-01  Martin Liska  <mliska@suse.cz>
19308
19309         * cselib.c (new_elt_list):Use new type-based pool allocator.
19310         (new_elt_loc_list) Likewise.
19311         (unchain_one_elt_list) Likewise.
19312         (unchain_one_elt_loc_list) Likewise.
19313         (unchain_one_value) Likewise.
19314         (new_cselib_val) Likewise.
19315         (cselib_init) Likewise.
19316         (cselib_finish) Likewise.
19317
19318 2015-06-01  Martin Liska  <mliska@suse.cz>
19319
19320         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
19321         (sh_reorg) Likewise.
19322
19323 2015-06-01  Martin Liska  <mliska@suse.cz>
19324
19325         * cfg.c (initialize_original_copy_tables):Use new type-based
19326         pool allocator.
19327         (free_original_copy_tables) Likewise.
19328         (copy_original_table_clear) Likewise.
19329         (copy_original_table_set) Likewise.
19330
19331 2015-06-01  Martin Liska  <mliska@suse.cz>
19332
19333         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
19334         pool allocator.
19335         (asan_mem_ref_new) Likewise.
19336         (free_mem_ref_resources) Likewise.
19337
19338 2015-06-01  Martin Liska  <mliska@suse.cz>
19339
19340         * var-tracking.c (variable_htab_free):Use new type-based
19341         pool allocator.
19342         (attrs_list_clear) Likewise.
19343         (attrs_list_insert) Likewise.
19344         (attrs_list_copy) Likewise.
19345         (shared_hash_unshare) Likewise.
19346         (shared_hash_destroy) Likewise.
19347         (unshare_variable) Likewise.
19348         (var_reg_delete_and_set) Likewise.
19349         (var_reg_delete) Likewise.
19350         (var_regno_delete) Likewise.
19351         (drop_overlapping_mem_locs) Likewise.
19352         (variable_union) Likewise.
19353         (insert_into_intersection) Likewise.
19354         (canonicalize_values_star) Likewise.
19355         (variable_merge_over_cur) Likewise.
19356         (dataflow_set_merge) Likewise.
19357         (remove_duplicate_values) Likewise.
19358         (variable_post_merge_new_vals) Likewise.
19359         (dataflow_set_preserve_mem_locs) Likewise.
19360         (dataflow_set_remove_mem_locs) Likewise.
19361         (variable_from_dropped) Likewise.
19362         (variable_was_changed) Likewise.
19363         (set_slot_part) Likewise.
19364         (clobber_slot_part) Likewise.
19365         (delete_slot_part) Likewise.
19366         (loc_exp_insert_dep) Likewise.
19367         (notify_dependents_of_changed_value) Likewise.
19368         (emit_notes_for_differences_1) Likewise.
19369         (vt_emit_notes) Likewise.
19370         (vt_initialize) Likewise.
19371         (vt_finalize) Likewise.
19372
19373 2015-06-01  Martin Liska  <mliska@suse.cz>
19374
19375         * ira-color.c (init_update_cost_records):Use new type-based
19376         pool allocator.
19377         (get_update_cost_record) Likewise.
19378         (free_update_cost_record_list) Likewise.
19379         (finish_update_cost_records) Likewise.
19380         (initiate_cost_update) Likewise.
19381
19382 2015-06-01  Martin Liska  <mliska@suse.cz>
19383
19384         * lra.c (init_insn_regs): Use new type-based pool allocator.
19385         (new_insn_reg) Likewise.
19386         (free_insn_reg) Likewise.
19387         (free_insn_regs) Likewise.
19388         (finish_insn_regs) Likewise.
19389         (init_insn_recog_data) Likewise.
19390         (init_reg_info) Likewise.
19391         (finish_reg_info) Likewise.
19392         (lra_free_copies) Likewise.
19393         (lra_create_copy) Likewise.
19394         (invalidate_insn_data_regno_info) Likewise.
19395
19396 2015-06-01  Martin Liska  <mliska@suse.cz>
19397
19398         * lra-lives.c (free_live_range): Use new type-based pool allocator.
19399         (free_live_range_list) Likewise.
19400         (create_live_range) Likewise.
19401         (copy_live_range) Likewise.
19402         (lra_merge_live_ranges) Likewise.
19403         (remove_some_program_points_and_update_live_ranges) Likewise.
19404         (lra_live_ranges_init) Likewise.
19405         (lra_live_ranges_finish) Likewise.
19406
19407 2015-06-01  Martin Liska  <mliska@suse.cz>
19408
19409         * et-forest.c (et_new_occ): Use new type-based pool allocator.
19410         (et_new_tree): Likewise.
19411         (et_free_tree): Likewise.
19412         (et_free_tree_force): Likewise.
19413         (et_free_pools): Likewise.
19414         (et_split): Likewise.
19415
19416 2015-06-01  Martin Liska  <mliska@suse.cz>
19417
19418         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
19419         to header file.
19420         * alloc-pool.h (pool_allocator::pool_allocator): New function.
19421         (pool_allocator::release): Likewise.
19422         (inline pool_allocator::release_if_empty): Likewise.
19423         (inline pool_allocator::~pool_allocator): Likewise.
19424         (pool_allocator::allocate): Likewise.
19425         (pool_allocator::remove): Likewise.
19426
19427 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19428
19429         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
19430         in comment.
19431
19432 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19433
19434         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
19435         to fusible_ops.
19436         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
19437         (arm_macro_fusion_p): Likewise.
19438         (arm_macro_fusion_pair_p): Likewise.
19439
19440 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19441
19442         * config/aarch64/aarch64-protos.h (tune_params): Rename
19443         fuseable_ops to fusible_ops.
19444         * config/aarch64/aarch64.c (generic_tunings): Rename
19445         fuseable_ops to fusible_ops.
19446         (cortexa53_tunings): Likewise.
19447         (cortexa57_tunings): Likewise.
19448         (thunderx_tunings): Likewise.
19449         (xgene1_tunings): Likewise.
19450         (aarch64_macro_fusion_p): Likewise.
19451         (aarch64_macro_fusion_pair_p): Likewise.
19452
19453 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19454
19455         * config/s390/driver-native.c: New file.
19456         * config/s390/x-native: New file.
19457         * config.host: Add new files for s390.
19458         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
19459         and -march=native
19460         * config.gcc: Likewise.
19461         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
19462         * config/s390/s390-opts.h (enum processor_type): Ditto.
19463         * config/s390/s390.c (s390_option_override): Catch unhandled
19464         PROCESSOR_NATIVE
19465
19466 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
19467
19468         PR target/65527
19469         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
19470         redirection for instrumented calls.
19471         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
19472         (append_compiler_options): Append -fcheck-pointer-bounds.
19473         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
19474         (chkp_redirect_edge): New.
19475         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
19476         (chkp_redirect_edge): New.
19477
19478 2015-06-01  Richard Biener  <rguenther@suse.de>
19479
19480         PR tree-optimization/66280
19481         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
19482         def-use walking.
19483
19484 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19485
19486         * config/aarch64/aarch64.md
19487         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
19488         logic_shift_imm.
19489
19490 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
19491
19492         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
19493         Remove obsolete kludge.
19494
19495 2015-06-01  Richard Biener  <rguenther@suse.de>
19496
19497         * tree-ssa-reassoc.c (get_rank): Simplify.
19498
19499 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
19500
19501         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
19502         * configure: Regenerated.
19503
19504 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
19505
19506         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
19507         issue (add space between string literal and macro).
19508         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
19509
19510 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
19511
19512         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
19513         implict or explicit -fPIE or -fpie.
19514
19515 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
19516
19517         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
19518
19519 2015-05-28  DJ Delorie  <dj@redhat.com>
19520
19521         * expmed.c (extract_bit_field_1): Avoid clobbering a
19522         yet-to-be-used base/index register.
19523
19524 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
19525
19526         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
19527         (alias_stats): Add num_universal.
19528         (alias_set_subset_of): Special case pointers; be ready for NULL
19529         children.
19530         (alias_sets_conflict_p): Special case pointers; be ready for NULL
19531         children.
19532         (init_alias_set_entry): Break out from ...
19533         (record_alias_subset): ... here; propagate new fields;
19534         allocate children only when really needed.
19535         (get_alias_set): Do less generous pointer globbing.
19536         (dump_alias_stats_in_alias_c): Update statistics.
19537
19538 2015-05-30  Alan Modra  <amodra@gmail.com>
19539
19540         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
19541         correct block for use of r12.
19542         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
19543
19544 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19545
19546         PR target/66215
19547         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
19548         with -mhotpatch=.
19549
19550 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
19551
19552         PR tree-optimization/66142
19553         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
19554         virtual phis that feed themselves.
19555
19556 2015-05-29  Richard Biener  <rguenther@suse.de>
19557
19558         PR tree-optimization/66314
19559         * tree-ssa-threadupdate.c (create_block_for_threading): Add
19560         parameter that says which loop the new block belongs to.
19561         (ssa_create_duplicates): Blocks duplicated for the threaded
19562         path belong to the loop of the thread destination.
19563
19564 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19565
19566         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
19567         to cleanup-saved-temps.
19568         * doc/sourcebuild.texi (Clean up generated test files): Expand
19569         introduction.
19570         (dg-keep-saved-temps): Document new proc.
19571         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
19572         cleanup-saved-temps): Remove.
19573
19574 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
19575
19576         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
19577         gcc_AC_CHECK_DECLS.
19578         * configure: Regenerate.
19579
19580 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
19581
19582         * config/nios2/linux.h (CPP_SPEC): Define.
19583
19584 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
19585
19586         * config/microblaze/linux.h (CPP_SPEC): Define.
19587
19588 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
19589
19590         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
19591         -pthread is specified.
19592
19593 2015-05-28  Richard Biener  <rguenther@suse.de>
19594
19595         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
19596         (vect_fixup_scalar_cycles_with_patterns): Likewise.
19597         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
19598         after pattern recog.
19599         (vect_create_epilog_for_reduction): Properly handle reductions
19600         with patterns.
19601         (vectorizable_reduction): Likewise.
19602         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
19603         reduction chains.
19604         (vect_get_constant_vectors): Create the correct number of
19605         initial values for reductions.
19606         (vect_schedule_slp_instance): Handle reduction chains that are
19607         type changing properly.
19608         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
19609
19610 2015-05-28  Richard Biener  <rguenther@suse.de>
19611
19612         PR tree-optimization/66142
19613         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
19614         values better in memcpy destination handling.  Handle non-aliasing
19615         we discover here.
19616
19617 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
19618
19619         PR target/63810
19620         * config/darwin-c.c (version_components): New global enum.
19621         (parse_version, version_as_legacy_macro)
19622         (version_as_modern_macro, macosx_version_as_macro): New functions.
19623         (version_as_macro): Remove.
19624         (darwin_cpp_builtins): Use new function.
19625
19626 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
19627
19628         * builtins.c (expand_builtin_acc_on_device): Mark parameters
19629         with ATTRIBUTE_UNUSED.
19630
19631 2015-05-28  Julian Brown  <julian@codesourcery.com>
19632
19633         PR libgomp/65742
19634
19635         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
19636         sequence for !ACCEL_COMPILER.
19637
19638 2015-05-28  Nick Clifton  <nickc@redhat.com>
19639
19640         * config/rx/rx.c (push_regs): New function.  Extracts code from...
19641         (rx_expand_prologue): ... here.  Use push_regs to push even small
19642         spans of registers.
19643         (pop_regs): New function.
19644         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
19645         registers.
19646
19647 2015-05-28  Richard Biener  <rguenther@suse.de>
19648
19649         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
19650         member.
19651         (SLP_INSTANCE_BODY_COST_VEC): Remove.
19652         (vect_update_slp_costs_according_to_vf): Likewise.
19653         (vect_slp_analyze_operations): Update prototype.
19654         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
19655         vect_update_slp_costs_according_to_vf, adjust.
19656         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
19657         (vect_analyze_slp_cost_1): Likewise.
19658         (vect_analyze_slp_cost): Likewise.  Properly deal with
19659         widening reduction ops.  Commit body costs.
19660         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
19661         cost for loops from here.
19662         (vect_slp_analyze_operations): But do it from here when
19663         the vectorization factor is known and stmts are analyzed.
19664         (vect_bb_vectorization_profitable_p): Simplify.
19665         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
19666         (vect_update_slp_costs_according_to_vf): Remove.
19667
19668 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
19669             H.J. Lu  <hongjiu.lu@intel.com>
19670
19671         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
19672         (BUILD_CFLAGS): Likewise.
19673         (BUILD_CXXFLAGS): Likewise.
19674         (LINKER): Add @NO_PIE_FLAG@.
19675         (BUILD_LDFLAGS): Likewise.
19676         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
19677         --enable-default-pie.
19678         * common.opt (fPIE): Initialize to -1.
19679         (fpie): Likewise.
19680         (no-pie): New option.
19681         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
19682         * configure.ac: Add --enable-default-pie.
19683         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
19684         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
19685         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
19686         * gcc.c (NO_PIE_SPEC): New.
19687         (PIE_SPEC): Likewise.
19688         (NO_FPIE1_SPEC): Likewise.
19689         (FPIE1_SPEC): Likewise.
19690         (NO_FPIE2_SPEC): Likewise.
19691         (FPIE2_SPEC): Likewise.
19692         (NO_FPIE2_SPEC): Likewise.
19693         (FPIE_SPEC): Likewise.
19694         (NO_FPIE_SPEC): Likewise.
19695         (NO_FPIC1_SPEC): Likewise.
19696         (FPIC1_SPEC): Likewise.
19697         (NO_FPIC2_SPEC): Likewise.
19698         (FPIC2_SPEC): Likewise.
19699         (NO_FPIC2_SPEC): Likewise.
19700         (FPIC_SPEC): Likewise.
19701         (NO_FPIC_SPEC): Likewise.
19702         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
19703         (FPIE1_OR_FPIC1_SPEC): Likewise.
19704         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
19705         (FPIE2_OR_FPIC2_SPEC): Likewise.
19706         (NO_FPIE_AND_FPIC_SPEC): Likewise.
19707         (FPIE_OR_FPIC_SPEC): Likewise.
19708         (LD_PIE_SPEC): Likewise.
19709         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
19710         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
19711         * config/darwin.h (PIE_SPEC): Renamed to ...
19712         (DARWIN_PIE_SPEC): This.
19713         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
19714         * config/darwin9.h (PIE_SPEC): Renamed to ...
19715         (DARWIN_PIE_SPEC): This.
19716         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
19717         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
19718         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
19719         FPIE2_OR_FPIC2_SPEC.
19720         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
19721         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
19722         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
19723         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
19724         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
19725         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
19726         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
19727         * config/m32r/m32r.h (ASM_SPEC): Likewise.
19728         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
19729         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
19730         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
19731         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
19732         * config/sparc/linux.h (ASM_SPEC): Likewise.
19733         * config/sparc/linux64.h (ASM_SPEC): Likewise.
19734         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
19735         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
19736         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
19737         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
19738         * config/sparc/sparc.h (ASM_SPEC): Likewise.
19739         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
19740         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
19741         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
19742         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
19743         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
19744         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
19745         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
19746         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
19747         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
19748         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
19749         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
19750         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
19751         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
19752         * config/vax/linux.h (ASM_SPEC): Likewise.
19753         * doc/install.texi: Document --enable-default-pie.
19754         * doc/invoke.texi: Document -no-pie.
19755         * config.in: Regenerated.
19756         * configure: Likewise.
19757
19758 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19759
19760         PR rtl-optimization/66168
19761         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
19762         can_move_invariant_reg.
19763
19764 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
19765
19766         PR target/66148
19767         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
19768         REG_EQUAL note when doing insert.
19769
19770         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
19771         instead of "%d" for 'o' operand.
19772
19773 2015-05-27  Nathan Sidwell  <nathan@acm.org>
19774
19775         PR c++/66270
19776         * tree.c (build_pointer_type_for_mode): Canonical type does not
19777         inherit can_alias_all.
19778         (build_reference_type_for_mode): Likewise.
19779
19780 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
19781
19782         * expr.h (array_at_struct_end_p): Move to...
19783         (array_ref_element_size): Likewise.
19784         (component_ref_field_offset): Likewise.
19785         * tree.h (array_ref_element_size): ...here.
19786         (array_at_struct_end_p): Likewise.
19787         (component_ref_field_offset): Likewise.
19788         * expr.c (array_ref_element_size): Move to...
19789         (array_ref_low_bound): Likewise.
19790         (array_at_struct_end_p): Likewise.
19791         (array_ref_up_bound): Likewise.
19792         (component_ref_field_offset): Likewise.
19793         * tree.c (array_ref_element_size): ...here.
19794         (array_ref_low_bound): Likewise.
19795         (array_ref_up_bound): Likewise.
19796         (array_at_struct_end_p): Likewise.
19797         (component_ref_field_offset): Likewise.
19798
19799 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
19800             Szabolcs Nagy  <szabolcs.nagy@arm.com>
19801
19802         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
19803
19804 2015-05-27  Jason Merrill  <jason@redhat.com>
19805
19806         PR bootstrap/66304
19807         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
19808         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
19809         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
19810
19811 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
19812
19813         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
19814         is true.
19815
19816         * statistics.c (statistics_fini_pass): Print pass name.
19817
19818 2015-05-27  Richard Biener  <rguenther@suse.de>
19819
19820         PR tree-optimization/66272
19821         Revert parts of
19822         2014-08-15  Richard Biener  <rguenther@suse.de>
19823
19824         PR tree-optimization/62031
19825         * tree-data-ref.c (dr_analyze_indices): Do not set
19826         DR_UNCONSTRAINED_BASE.
19827         (dr_may_alias_p): All indirect accesses have to go the
19828         formerly DR_UNCONSTRAINED_BASE path.
19829         * tree-data-ref.h (struct indices): Remove
19830         unconstrained_base member.
19831         (DR_UNCONSTRAINED_BASE): Remove.
19832
19833 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
19834
19835         * dwarf2out.c: Remove block_map.
19836         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
19837         (gen_lexical_block_die): Same.
19838         (dwarf2out_function_decl): Remove block_map use.
19839         (dwarf2out_c_finalize): Same.
19840         * tree-core.h (struct tree_block): Add die field.
19841         * tree.h (BLOCK_DIE): New.
19842
19843 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19844
19845         PR target/65358
19846         * expr.c (memory_load_overlap): New function.
19847         (emit_push_insn): When pushing partial args to the stack would
19848         clobber the register part load the overlapping part into a pseudo
19849         and put it into the hard reg after pushing.  Change return type
19850         to bool.  Add bool argument.
19851         * expr.h (emit_push_insn): Change return type to bool.
19852         Add bool argument.
19853         * calls.c (expand_call): Cancel sibcall optimization when encountering
19854         partial argument on targets with ARGS_GROW_DOWNWARD and
19855         !STACK_GROWS_DOWNWARD.
19856         (emit_library_call_value_1): Update callsite of emit_push_insn.
19857         (store_one_arg): Likewise.
19858
19859 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
19860
19861         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
19862
19863 2015-05-27  Martin Liska  <mliska@suse.cz>
19864
19865         * Makefile.in: Add additional dependencies related to memory report
19866         enhancement.
19867         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
19868         * bitmap.c (struct bitmap_descriptor_d): Remove.
19869         (struct loc): Likewise.
19870         (struct bitmap_desc_hasher): Likewise.
19871         (bitmap_desc_hasher::hash): Likewise.
19872         (bitmap_desc_hasher::equal): Likewise.
19873         (get_bitmap_descriptor): Likewise.
19874         (bitmap_register): User new memory descriptor API.
19875         (register_overhead): Likewise.
19876         (bitmap_find_bit): Register nsearches and search_iter statistics.
19877         (struct bitmap_output_info): Remove.
19878         (print_statistics): Likewise.
19879         (dump_bitmap_statistics): Use new memory descriptor.
19880         * bitmap.h (struct bitmap_usage): New class.
19881         * genmatch.c: Extend header file inclusion.
19882         * genpreds.c: Likewise.
19883         * ggc-common.c (struct ggc_usage): New class.
19884         (struct ggc_loc_desc_hasher): Remove.
19885         (ggc_loc_desc_hasher::hash): Likewise.
19886         (ggc_loc_desc_hasher::equal): Likewise.
19887         (struct ggc_ptr_hash_entry): Likewise.
19888         (struct ptr_hash_hasher): Likewise.
19889         (ptr_hash_hasher::hash): Likewise.
19890         (ptr_hash_hasher::equal): Likewise.
19891         (make_loc_descriptor): Likewise.
19892         (ggc_prune_ptr): Likewise.
19893         (dump_ggc_loc_statistics): Use new memory descriptor.
19894         (ggc_record_overhead): Likewise.
19895         (ggc_free_overhead): Likewise.
19896         (final_cmp_statistic): Remove.
19897         (cmp_statistic): Likewise.
19898         (ggc_add_statistics): Liekwise.
19899         (ggc_prune_overhead_list): Likewise.
19900         * hash-map-traits.h: New file.
19901         * hash-map.h (struct default_hashmap_traits): Move the traits to a
19902         separate header file.
19903         * hash-set.h: Pass memory statistics info to ctor.
19904         * hash-table.c (void dump_hash_table_loc_statistics): New function.
19905         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
19906         (hash_table::~hash_table): Register memory release operation.
19907         (hash_table::alloc_entries): Handle memory allocation operation.
19908         (hash_table::expand): Likewise.
19909         * inchash.c (iterative_hash_hashval_t): Move implementation to header
19910         file.
19911         (iterative_hash_host_wide_int): Likewise.
19912         * inchash.h (class hash): Likewise.
19913         * mem-stats-traits.h: New file.
19914         * mem-stats.h: New file.
19915         (mem_location): Add new class.
19916         (mem_usage): Likewise.
19917         (mem_alloc_description): Likewise.
19918         * sese.c: Add new header file inclusision.
19919         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
19920         and hash_set.
19921         * tree-sra.c: Add new header file inclusision.
19922         * vec.c (struct vec_descriptor): Remove.
19923         (hash_descriptor): Likewise.
19924         (struct vec_usage): Likewise.
19925         (struct ptr_hash_entry): Likewise.
19926         (hash_ptr): Likewise.
19927         (eq_ptr): Likewise.
19928         (vec_prefix::register_overhead): Use new memory descriptor API.
19929         (vec_prefix::release_overhead): Likewise.
19930         (add_statistics): Remove.
19931         (dump_vec_loc_statistics): Use new memory descriptor API.
19932         * vec.h (struct vec_prefix): Likewise.
19933         (va_heap::reserve): Likewise.
19934         (va_heap::release): Likewise.
19935         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
19936
19937 2015-05-27  Richard Biener  <rguenther@suse.de>
19938
19939         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
19940         earlier and remove ??? comment.
19941         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
19942         and got called from loop analysis bail out.  Always pass the SLP
19943         node to the vectorizable_* functions.
19944         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
19945         the premature SLP check here.
19946         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
19947         detected SLP stmts.
19948         (vect_detect_hybrid_slp_1): Likewise.
19949
19950 2015-05-26  Jeff Law  <law@redhat.com>
19951
19952         * combine.c (find_split_point): Verify that the shift count is a
19953         constant when choosing (plus (ashift ...)) as a split point.
19954
19955         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
19956         No functional changes.
19957
19958 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
19959
19960         * ipa-polymorphic-call.c
19961         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
19962         case when call target is already known.
19963
19964 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
19965
19966         PR target/65979
19967         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
19968         take into account the case that operands[1] and operands[2]
19969         are the same register.
19970
19971 2015-05-26  Michael Matz  <matz@suse.de>
19972
19973         PR middle-end/66251
19974
19975         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
19976         stores.
19977         (vect_create_vectorized_demotion_stmts): Always set
19978         STMT_VINFO_VEC_STMT, also with SLP.
19979         (vectorizable_store): Handle strided group stores.
19980
19981 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
19982
19983         PR target/66049
19984         * config/aarch64/aarch64.md
19985         (*adds_shift_imm_<mode>):  New pattern.
19986         (*subs_shift_imm_<mode>):  Likewise.
19987         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
19988         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
19989         (*add_uxt<mode>_shift2): Likewise.
19990         (*add_uxtsi_shift2_uxtw): Likewise.
19991         (*sub_uxt<mode>_shift2): Likewise.
19992         (*sub_uxtsi_shift2_uxtw): Likewise.
19993
19994 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
19995
19996         * config/rs6000/constraints.md (Y, U): Use match_test.
19997
19998 2015-05-26  Christian Bruel  <christian.bruel@st.com>
19999
20000         PR target/52144
20001         * config/arm/arm.c (arm_option_check_internal)
20002         (arm_option_params_internal): Check opts->target_flags to set macros.
20003         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
20004         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
20005         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
20006         (builtin_define): Replaced with def_or_undef_macro.
20007         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
20008         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
20009         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
20010         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
20011         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
20012         (TARGET_ARM_FEATURE_LDREX_P)
20013         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
20014         * config/arm/arm-c.c (def_or_undef_macro): New function.
20015         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
20016
20017 2015-05-26  Christian Bruel  <christian.bruel@st.com>
20018
20019         * c-common.h (builtin_define_with_int_value)
20020         (builtin_define_type_sizeof): Declare.
20021         * c-cppbuiltin.c (builtin_define_with_int_value)
20022         (builtin_define_type_sizeof): Externalize.
20023         (builtin_define_std): Cleanup declaration.
20024         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
20025         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
20026         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
20027         (builtin_define, builtin_assert): New macros.
20028
20029 2015-05-26  Richard Biener  <rguenther@suse.de>
20030
20031         PR tree-optimization/66142
20032         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
20033         MEM_REFs for the same base address.
20034
20035 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20036
20037         PR ipa/66181
20038         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
20039
20040 2015-05-26  Jason Merrill  <jason@redhat.com>
20041
20042         * configure.ac: Set CXXFLAGS for ISL test.
20043         * configure: Regenerate.
20044
20045         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
20046         strstr and basename.
20047         * configure: Regenerate.
20048
20049 2015-05-26  Richard Biener  <rguenther@suse.de>
20050
20051         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
20052         X % C -> X & (C - 1) for C being a power-of two to ...
20053         * match.pd: ... patterns.
20054
20055 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
20056
20057         * match.pd (swapped_tcc_comparison): New operator list.
20058         (-A CMP -B): New simplification.
20059         * fold-const.c (fold_comparison): Remove corresponding code.
20060
20061 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
20062
20063         * caller-save.c (init_caller_save): Base temporary register numbers
20064         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
20065         * cfgloopanal.c (init_set_costs): Likewise.
20066         * dojump.c (prefer_and_bit_test): Likewise.
20067         * expr.c (init_expr_target): Likewise.
20068         * ira.c (setup_prohibited_mode_move_regs): Likewise.
20069         * lower-subreg.c (init_lower_subreg): Likewise.
20070         * postreload.c (reload_cse_regs_1): Likewise.
20071
20072 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
20073
20074         * gensupport.h (compute_test_codes): Declare.
20075         * gensupport.c (compute_predicate_codes): Rename to...
20076         (compute_test_codes): ...this.  Generalize error message.
20077         (process_define_predicate): Update accordingly.
20078         * genpreds.c (compute_maybe_allows): Delete.
20079         (add_constraint): Use compute_test_codes to determine whether
20080         something can accept a SUBREG, REG or MEM.
20081
20082 2015-05-26  Torvald Riegel  <triegel@redhat.com>
20083
20084         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
20085         'memory model' to align with C++11; fix description of memory orders;
20086         fix a few typos.
20087
20088 2015-05-26  Richard Biener  <rguenther@suse.de>
20089
20090         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
20091         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
20092         detect whether we apply SLP.  Remove call to
20093         vect_update_slp_costs_according_to_vf.
20094         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
20095         vect_update_slp_costs_according_to_vf from here.  Dispatch
20096         to vect_slp_analyze_operations to analyze SLP stmts.
20097         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
20098         unused bb_vec_info parameter, adjust assert.
20099         (vect_slp_analyze_operations): Pass in the slp instance tree
20100         instead of bb_vec_info.
20101         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
20102         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
20103
20104 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
20105
20106         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
20107         Q_REGS.  Expand comment.
20108         (REG_CLASS_NAMES): Ditto.
20109         (REG_CLASS_CONTENTS): Ditto.
20110
20111 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
20112
20113         PR target/66274
20114         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
20115         when LEGACY_INT_REGNO_P is processed.
20116
20117 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
20118
20119         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
20120
20121 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
20122
20123         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
20124         register if not marked dead/unused, before return.
20125
20126 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20127
20128         PR lto/66180
20129         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
20130         is set; check for assembler name at LTO time.
20131         (type_in_anonymous_namespace): Remove hacks, check that all
20132         anonymous types are called "<anon>"
20133         (odr_type_p): Simplify; add check for "<anon>"
20134         (odr_subtypes_equivalent): Add odr_type_p check.
20135         * tree.c (need_assembler_name_p): Even anonymous namespace needs
20136         assembler name.
20137
20138 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20139
20140         * ipa-utils.h (method_class_type): Remove.
20141         * cgraphunit.c (walk_polymorphic_call_targets): Use
20142         TYPE_METHOD_BASETYPE.
20143         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
20144         on main variants only.
20145         (method_class_type): Remove.
20146         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
20147         (build_type_inheritance_graph): Likewise.
20148         * ipa-icf.c (sem_function::equals_wpa): Likewise.
20149         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
20150         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
20151
20152 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20153
20154         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
20155         is_typedef_decl, typedef_variant_p): Constify.
20156         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
20157         is_typedef_decl, typedef_variant_p): Constify.
20158
20159 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20160
20161         * defaults.h (gen_tablejump): New function.
20162         (HAVE_tablejump): Add default value.
20163         * expr.c: Adjust.
20164         * stmt.c: Likewise.
20165
20166 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20167
20168         * defaults.h (gen_store_multiple): New function.
20169         (HAVE_store_multiple): Add default value.
20170         * expr.c (move_block_from_reg): Adjust.
20171
20172 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20173
20174         * defaults.h (gen_load_multiple): New function.
20175         (HAVE_load_multiple): Add default value.
20176         * expr.c (move_block_to_reg): Adjust.
20177
20178 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20179
20180         * defaults.h (gen_mem_signal_fence): New function.
20181         (HAVE_mem_signal_fence): Add default value.
20182         * optabs.c: Adjust.
20183
20184 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20185
20186         * defaults.h (gen_memory_barrier): New function.
20187         (HAVE_memory_barrier): Add default value.
20188         * optabs.c: Adjust.
20189
20190 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20191
20192         * defaults.h (gen_mem_thread_fence): New function.
20193         (HAVE_mem_thread_fence): Add default definition.
20194         * optabs.c: Adjust.
20195
20196 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20197
20198         * combine.c (find_split_point): Check the value of HAVE_lo_sum
20199         instead of if it is defined.
20200         (combine_simplify_rtx): Likewise.
20201         * lra-constraints.c (process_address_1): Likewise.
20202         * config/darwin.c: Adjust.
20203         * genconfig.c (main): Always define HAVE_lo_sum.
20204
20205 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20206
20207         * genmatch.c (parser::parse_operation): Reject expanding
20208         operator-list inside 'for'.
20209
20210 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20211
20212         * genmatch.c (parser::parse_for): Reject iterator if used as
20213         operator-list.
20214
20215 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20216
20217         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
20218         after end of id-list.
20219
20220 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
20221
20222         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
20223         we do not try to compute canonical type for type that does not need
20224         alias set.
20225         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
20226         FUNCITON_TYPE.
20227         * tree.h (type_with_alias_set_p): New.
20228
20229 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
20230
20231         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
20232         function attributes.
20233         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
20234
20235 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
20236
20237         * Makefile.in (check_gcc_parallelize): Delete.
20238         (lang_checks_parallelized): Update comment.
20239
20240 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
20241
20242         PR rtl-optimization/66237
20243         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
20244         location of an "as_a" cast.
20245
20246 2015-05-22  Jeff Law  <law@redhat.com>
20247
20248         * config/pa/pa.md (non-canonical shift-add insns): Remove.
20249         (peepholes with non-canonical RTL sources): Remove.
20250         (peepholes for indexed stores of FP regs in integer modes): Match and
20251         generate canonical RTL.
20252
20253 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20254
20255         PR tree-optimization/63387
20256         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
20257         ((x ord x) & (y ord y) -> (x ord y),
20258         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
20259         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
20260         vectors like scalars.
20261
20262 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20263
20264         * convert.c (convert_to_integer, convert_to_vector): Include the
20265         types in the error message.
20266
20267 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20268
20269         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
20270         simplifications.
20271
20272 2015-05-22  Jeff Law  <law@redhat.com>
20273
20274         * config/pa/pa.md (integer_indexed_store splitters): Use
20275         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
20276         insns -- adjusting the constant 2nd operand accordingly.
20277
20278         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
20279         (plus (ashift X log2) Y) if it is a split point.
20280
20281         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
20282         out of hppa_legitimize_address to handle both forms of a multiply
20283         by 2, 4 or 8.
20284         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
20285         Always generate the ASHIFT variant as the result is not directly
20286         used in a MEM.  Update comments and refactor slightly to improve
20287         readability.
20288
20289 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20290
20291         PR target/65491
20292         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
20293         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
20294         (aarch64_composite_type_p): Return false if given type and mode are
20295         for a short vector.
20296
20297 2015-05-22  Richard Biener  <rguenther@suse.de>
20298
20299         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
20300         member.
20301         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
20302         patterns when determining whether SLP is pure.
20303         (vect_is_slp_reduction): Remove check for pattern stmts.
20304         (vect_is_simple_reduction_1): Remove dead code.
20305         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
20306         (vect_get_and_check_slp_defs): Pass in the stmt number.
20307         Allow the first def in a reduction to be not a pattern stmt when
20308         the rest of the stmts def are patterns.
20309         (vect_build_slp_tree_1): Allow tcc_expression codes like
20310         SAD_EXPR and DOT_PROD_EXPR.
20311         (vect_build_slp_tree): Adjust.
20312         (vect_analyze_slp): Refactor and move BB vect error message ...
20313         (vect_slp_analyze_bb_1): ... here.
20314
20315 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
20316
20317         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
20318         for CSWTCH temporary.
20319
20320 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20321
20322         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
20323         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
20324         unknown unspecs.
20325
20326 2015-05-22  Richard Biener  <rguenther@suse.de>
20327
20328         PR tree-optimization/66251
20329         * tree-vect-stmts.c (vectorizable_conversion): Properly
20330         set STMT_VINFO_VEC_STMT even for the SLP case.
20331
20332 2015-05-22  Marek Polacek  <polacek@redhat.com>
20333
20334         * doc/extend.texi: Use @pxref instead of @xref.
20335
20336 2015-05-22  hiraditya  <hiraditya@msn.com>
20337
20338         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
20339         redundant if.
20340
20341 2015-05-22  Richard Biener  <rguenther@suse.de>
20342
20343         PR tree-optimization/65701
20344         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
20345         Move peeling cost models into one place.  Peel for alignment
20346         for single loads only if an aligned load is cheaper than
20347         an unaligned load.
20348
20349 2015-05-22  Marek Polacek  <polacek@redhat.com>
20350
20351         PR c/47043
20352         * doc/extend.texi (Enumerator Attributes): New section.
20353         Document syntax of enumerator attributes.
20354
20355 2015-05-22  Richard Biener  <rguenther@suse.de>
20356
20357         * tree-vect-loop.c (get_reduction_op): New function.
20358         (vect_model_reduction_cost): Use it, add reduc_index parameter.
20359         Make ready for BB reductions.
20360         (vect_create_epilog_for_reduction): Use get_reduction_op.
20361         (vectorizable_reduction): Init reduc_index to a valid value.
20362         Adjust vect_model_reduction_cost call.
20363         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
20364         operand for reduction defaults.  Add SAD_EXPR support.
20365         Assert we have a neutral op for SLP reductions.
20366         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
20367         walking pattern stmt ops only recurse to SSA names.
20368
20369 2015-05-22  Richard Biener  <rguenther@suse.de>
20370
20371         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
20372         assert with guard, remove check on detected reduction.
20373         (vect_recog_sad_pattern): Likewise.
20374         (vect_recog_widen_sum_pattern): Likewise.
20375
20376 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20377
20378         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
20379         __always_inline__ attribute.
20380         (vaesdq_u8): Likewise.
20381         (vaesmcq_u8): Likewise.
20382         (vaesimcq_u8): Likewise.
20383         (vsha1cq_u32): Likewise.
20384         (vsha1mq_u32): Likewise.
20385         (vsha1pq_u32): Likewise.
20386         (vsha1h_u32): Likewise.
20387         (vsha1su0q_u32): Likewise.
20388         (vsha1su1q_u32): Likewise.
20389         (vsha256hq_u32): Likewise.
20390         (vsha256h2q_u32): Likewise.
20391         (vsha256su0q_u32): Likewise.
20392         (vsha256su1q_u32): Likewise.
20393         (vmull_p64): Likewise.
20394         (vmull_high_p64): Likewise.
20395
20396 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20397
20398         * final.c (final_scan_insn): Don't check HAVE_peephole with the
20399         preprocessor.
20400         * output.h: Likewise.
20401         * genconfig.c (main): Alwways define HAVE_peephole.
20402         * genpeep.c: Don't emit checks of HAVE_peephole.
20403
20404 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20405
20406         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
20407         check HAVE_conditional_move with the preprocessor.
20408
20409 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20410
20411         * genconfig.c (main): Always define HAVE_conditional_move.
20412         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
20413         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
20414         is defined.
20415
20416 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20417
20418         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
20419         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
20420         and FRAME_POINTER_REGNUM with the preprocessor.
20421
20422 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20423
20424         * defaults.h: Add default for STACK_PUSH_CODE.
20425         * expr.c: Don't redefine STACK_PUSH_CODE.
20426         * recog.c: Likewise.
20427
20428 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20429
20430         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
20431         sched-deps.c: Use if instead of preprocessor checks with
20432         STACK_GROWS_DOWNWARD.
20433
20434 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20435
20436         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
20437         is defined.
20438         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
20439         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
20440         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
20441         * doc/tm.texi: Regenerate.
20442
20443 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
20444
20445         PR target/66232
20446         * config/i386/constraints.md (Bg): New constraint for GOT memory
20447         operand.
20448         * config/i386/i386.md (*call_got_x32): New pattern.
20449         (*call_value_got_x32): Likewise.
20450         * config/i386/predicates.md (GOT_memory_operand): New predicate.
20451
20452 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
20453
20454         PR tree-optimization/66233
20455         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
20456         Simplify.
20457
20458 2015-05-21  Jeff Law  <law@redhat.com>
20459
20460         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
20461         than MULT for shadd sequences.
20462
20463 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
20464
20465         * alias.c (alias_stats): New static var.
20466         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
20467         (dump_alias_stats_in_alias_c): New function.
20468         * alias.h (dump_alias_stats_in_alias_c): Declare.
20469         * tree-ssa-alias.c (dump_alias_stats): Call it.
20470
20471 2015-05-08  Michael Matz  <matz@suse.de>
20472
20473         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
20474         to strided_p.
20475         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
20476         (STMT_VINFO_STRIDED_P): ... this.
20477         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
20478         (vect_verify_datarefs_alignment): Likewise.
20479         (vect_enhance_data_refs_alignment): Likewise.
20480         (vect_analyze_data_ref_access): Likewise.
20481         (vect_analyze_data_refs): Accept strided stores.
20482         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
20483         (vect_model_load_cost): Adjust for macro rename.
20484         (vectorizable_mask_load_store): Likewise.
20485         (vectorizable_load): Likewise.
20486         (vectorizable_store): Open code strided stores.
20487
20488 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20489
20490         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
20491         Document sqrt_insn.
20492
20493 2015-05-21  Richard Biener  <rguenther@suse.de>
20494
20495         PR c++/66211
20496         * match.pd: Guard pattern optimzing (int)(float)int
20497         conversions to apply only on GIMPLE.
20498
20499 2015-05-21  Jeff Law  <law@redhat.com>
20500
20501         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
20502         multiply-accumulate/shift-add insn generation.
20503
20504 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
20505
20506         PR target/54236
20507         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
20508         operands[1] are the same.
20509
20510 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
20511
20512         PR middle-end/66221
20513         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
20514         build_distinct_type_copy to copy bounds.
20515
20516 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
20517
20518         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
20519         Change to unsigned int.
20520
20521 2015-05-20  Jeff Law  <law@redhat.com>
20522
20523         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
20524         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
20525         (pa_shadd_constant_p): Allow constants for shadd insns rather
20526         than valid scaling constants for memory addresses.
20527         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
20528         * config/pa/predicates.md (mem_shadd_operand): New predicate.
20529         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
20530         (shift-add insns using ASHIFT): New patterns.
20531
20532 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
20533
20534         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
20535         feasible.
20536         (fix_up_fall_thru_edges): Likewise.
20537         (fix_crossing_conditional_branches): Likewise. Promote jump targets
20538         from to rtx_insn to rtx_code_label where feasible.
20539         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
20540         gen_move_insn (returned type changed to rtx_insn).
20541         * builtins.c (expand_errno_check): Fix arguments of
20542         do_compare_rtx_and_jump (now expects rtx_code_label).
20543         (expand_builtin_acc_on_device): Likewise.
20544         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
20545         invert_jump (now exprects rtx_jump_insn).
20546         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
20547         (construct_init_block): Use rtx_code_label.
20548         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
20549         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
20550         calling redirect_jump.
20551         (patch_jump_insn): Likewise.
20552         (redirect_branch_edge): Likewise.
20553         (force_nonfallthru_and_redirect): Likewise.
20554         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
20555         when suitable.
20556         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
20557         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
20558         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
20559         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
20560         to store the value retured by gen_label_rtx.
20561         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
20562         rtx_jump_insn.
20563         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
20564         (split_branches): Fix calls of redirect_jump.
20565         * dojump.c (jumpifnot): Promote argument type from rtx to
20566         rtx_code_label.
20567         (jumpifnot_1): Likewise.
20568         (jumpif): Likewise.
20569         (jumpif_1): Likewise.
20570         (do_jump_1): Likewise.
20571         (do_jump): Likewise. Use rtx_code_label when feasible.
20572         (do_jump_by_parts_greater_rtx): Likewise.
20573         (do_jump_by_parts_zero_rtx): Likewise.
20574         (do_jump_by_parts_equality_rtx): Likewise.
20575         (do_compare_rtx_and_jump): Likewise.
20576         * dojump.h: Update function prototypes.
20577         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
20578         returns rtx_insn).
20579         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
20580         rtx_jump_insn.
20581         (emit_label_before): Likewise.
20582         (emit_jump_insn_after_noloc): Likewise.
20583         (emit_jump_insn_after_setloc): Likewise.
20584         (emit_jump_insn_after): Likewise
20585         (emit_jump_insn_before_setloc): Likewise.
20586         (emit_jump_insn_before): Likewise.
20587         (emit_label_before): Promote return type to rtx_code_label.
20588         (emit_label): Likewise.
20589         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
20590         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
20591         gen_move_insn.
20592         (emit_stack_restore): Likewise.
20593         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
20594         (do_cmp_and_jump): Likewise.
20595         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
20596         from rtx to rtx_code_label.
20597         (gen_move_insn_uncast): New function.
20598         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
20599         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
20600         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
20601         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
20602         invert_jump_1 and redirect_jump_1.
20603         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
20604         do_compare_rtx_and_jump.
20605         (expand_addsub_overflow): Likewise.
20606         (expand_neg_overflow): Likewise.
20607         (expand_mul_overflow): Likewise.
20608         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
20609         return value of gen_move_insn.
20610         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
20611         * loop-doloop.c (add_test): Use rtx_code_label.
20612         (doloop_modify): Likewise.
20613         (doloop_optimize): Likewise.
20614         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
20615         * lra-constraints.c (emit_spill_move): Remove cast of value returned
20616         by gen_move_insn.
20617         (inherit_reload_reg): Add cast when calling dump_insn_slim.
20618         (split_reg): Likewise.
20619         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
20620         gen_move_insn.
20621         * optabs.c (expand_binop_directly): Remove casts of values returned by
20622         maybe_gen_insn.
20623         (expand_unop_direct): Likewise.
20624         (expand_abs): Likewise.
20625         (maybe_emit_unop_insn): Likewise.
20626         (maybe_gen_insn): Promote return type to rtx_insn.
20627         * optabs.h: Update prototype of maybe_gen_insn.
20628         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
20629         redundant cast.
20630         * recog.c (struct peep2_insn_data): Promote type of insn field to
20631         rtx_insn.
20632         (peep2_reinit_state): Use NULL instead of NULL_RTX.
20633         (peep2_attempt): Remove casts of insn in peep2_insn_data.
20634         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
20635         * recog.h (struct insn_gen_fn): Promote return types of function
20636         pointers and operator ().from rtx to rtx_insn.
20637         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
20638         (fill_eager_delay_slots): Likewise.
20639         (relax_delay_slots): Likewise.
20640         (make_return_insns): Likewise.
20641         (dbr_schedule): Likewise.
20642         (optimize_skips): Likewise.
20643         (reorg_redirect_jump): Likewise.
20644         (fill_slots_from_thread): Likewise.
20645         * reorg.h: Update prototypes.
20646         * resource.c (find_dead_or_set_registers): Use dyn_cast to
20647         rtx_jump_insn instead of check.  Use it's jump_target method.
20648         * rtl.h (rtx_jump_insn::jump_label): Define new method.
20649         (rtx_jump_insn::jump_target): Define new method.
20650         (rtx_jump_insn::set_jump_target): Define new method.
20651         * rtlanal.c (tablejump_p): Promote type of one local variable.
20652         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
20653         (sched_analyze_insn): Likewise.
20654         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
20655         (print_insn): Likewise.
20656         * stmt.c (label_rtx): Promote return type to rtx_insn.
20657         (force_label_rtx): Likewise.
20658         (jump_target_rtx): Define new function.
20659         (expand_label): Use it, get rid of one cast.
20660         (expand_naked_return): Promote rtx to rtx_code_label.
20661         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
20662         (expand_case): Use rtx_code_label instread of rtx where feasible.
20663         (expand_sjlj_dispatch_table): Likewise.
20664         (emit_case_nodes): Likewise.
20665         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
20666         * store-motion.c (insert_store): Make use of new return type of
20667         gen_move_insn and remove a cast.
20668         (replace_store_insn): Likewise.
20669
20670 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
20671
20672         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
20673         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
20674
20675 2015-05-20  Jeff Law  <law@redhat.com>
20676
20677         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
20678         dispose of the jump thread path when the jump threading
20679         opportunity is cancelled.
20680
20681 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20682
20683         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
20684         when printing the caret character.
20685
20686 2015-05-20  Marek Polacek  <polacek@redhat.com>
20687
20688         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
20689
20690 2015-05-20  Marek Polacek  <polacek@redhat.com>
20691
20692         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
20693         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
20694         * gimple-fold.c (canonicalize_bool): Likewise.
20695         (same_bool_result_p): Likewise.
20696         * tree-if-conv.c (parse_predicate): Likewise.
20697
20698 2015-05-20  Marek Polacek  <polacek@redhat.com>
20699
20700         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
20701         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
20702
20703 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20704
20705         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
20706         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
20707         values.
20708
20709 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
20710
20711         * config/mips/mips.h (micromips_globals): Declare.
20712
20713 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
20714
20715         * timevar.def (TV_INITIALIZE_RTL): New.
20716         * toplev.c (initialize_rtl): Use an auto_timevar to account this
20717         function's time to TV_INITIALIZE_RTL.
20718
20719 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
20720
20721         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
20722         gimple_build_nop calls.
20723         (chkp_find_bounds_for_elem): Likewise.
20724         (chkp_get_zero_bounds): Likewise.
20725         (chkp_get_none_bounds): Likewise.
20726         (chkp_get_bounds_by_definition): Likewise.
20727         (chkp_generate_extern_var_bounds): Likewise.
20728         (chkp_get_bounds_for_decl_addr): Likewise.
20729         (chkp_get_bounds_for_string_cst): Likewise.
20730
20731 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
20732
20733         PR tree-optimization/65447
20734         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
20735         (dump_use, dump_uses): Support to dump sub use.
20736         (record_use): New parameters to support sub use.  Remove call to
20737         dump_use.
20738         (record_sub_use, record_group_use): New functions.
20739         (compute_max_addr_offset, split_all_small_groups): New functions.
20740         (group_address_uses, rewrite_use_address): New functions.
20741         (strip_offset): New declaration.
20742         (find_interesting_uses_address): Call record_group_use.
20743         (add_candidate): New assertion.
20744         (infinite_cost_p): Move definition forward.
20745         (add_costs): Check INFTY cost and return immediately.
20746         (get_computation_cost_at): Clear setup cost and dependent bitmap
20747         for sub uses.
20748         (determine_use_iv_cost_address): Compute cost for sub uses.
20749         (rewrite_use_address_1): Rename from old rewrite_use_address.
20750         (free_loop_data): Free sub uses.
20751         (tree_ssa_iv_optimize_loop): Call group_address_uses.
20752
20753 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
20754             Jim Wilson  <jim.wilson@linaro.org>
20755
20756         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
20757         new  fields loadv and storev.
20758         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
20759         Initialize loadv and storev.
20760         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
20761         (cortexa53_extra_costs): Likewise.
20762         (cortexa57_extra_costs): Likewise.
20763         (xgene1_extra_costs): Likewise.
20764         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
20765         rtx_costs.
20766
20767 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
20768
20769         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
20770          storev.
20771         (cortexa8_extra_costs): Likewise.
20772         (cortexa5_extra_costs): Likewise.
20773         (cortexa7_extra_costs): Likewise.
20774         (cortexa12_extra_costs): Likewise.
20775         (cortexa15_extra_costs): Likewise.
20776         (v7m_extra_costs): Likewise.
20777
20778 2015-05-20  Jeff Law  <law@redhat.com>
20779
20780         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
20781         instead of open-coded version.  Also delete the jump thread created
20782         within this function.
20783
20784 2015-05-20  Alan Modra  <amodra@gmail.com>
20785
20786         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
20787         stack adjusting insn.  Formatting.
20788         (rs6000_emit_prologue): Track stack adjusting insn, and use of
20789         r12.  If possible, emit first -fsplit-stack arg pointer insn
20790         before stack adjust.  Don't use r12 to save cr if split-stack.
20791
20792 2015-05-20  Alan Modra  <amodra@gmail.com>
20793
20794         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
20795         Define.
20796         (rs6000_supports_split_stack): New function.
20797         * gcc/config/rs6000/rs6000.c (machine_function): Add
20798         split_stack_arg_pointer.
20799         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
20800         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
20801         rather than virtual_incoming_args_rtx.
20802         (rs6000_va_start): Likewise.
20803         (split_stack_arg_pointer_used_p): New function.
20804         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
20805         (morestack_ref): New var.
20806         (gen_add3_const, rs6000_expand_split_stack_prologue,
20807         rs6000_internal_arg_pointer, rs6000_live_on_entry,
20808         rs6000_split_stack_space_check): New functions.
20809         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
20810         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
20811         (UNSPECV_SPLIT_STACK_RETURN): Define.
20812         (split_stack_prologue, load_split_stack_limit,
20813         load_split_stack_limit_di, load_split_stack_limit_si,
20814         split_stack_return, split_stack_space_check): New expands and insns.
20815         * gcc/config/rs6000/rs6000-protos.h
20816         (rs6000_expand_split_stack_prologue): Declare.
20817         (rs6000_split_stack_space_check): Declare.
20818
20819 2015-05-20  Alan Modra  <amodra@gmail.com>
20820
20821         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
20822         (direct_return): Test vrsave_size rather than vrsave_mask.
20823         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
20824         (rs6000_emit_epilogue): Likewise.
20825
20826 2015-05-20  Alan Modra  <amodra@gmail.com>
20827
20828         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
20829         when not saving registers.
20830         (debug_stack_info): Adjust to omit printing unused offsets,
20831         as before.
20832         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
20833         expression.
20834
20835 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20836
20837         PR c++/65835
20838         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
20839         value_type to const char *.
20840
20841 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
20842
20843         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
20844         to build a biarch toolchain again.
20845
20846 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
20847
20848         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
20849         or implicit declarations.
20850         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
20851         into it.
20852         (get_odr_type): Check type has linkage before adding bases.
20853         (register_odr_type): Check that type has linkage before adding it.
20854         (type_known_to_have_no_deriavations_p): Rename to ..
20855         (type_known_to_have_no_derivations_p): This one.
20856         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
20857         (type_known_to_have_no_derivations_p): This one.
20858         * ipa-polymorphic-call.c
20859         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
20860         type has linkage.
20861
20862 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
20863
20864         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
20865         (layout_type): Use RECORD_OR_UNION_TYPE_P.
20866
20867 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20868
20869         * config/s390/s390.c (s390_vector_bool_type_p): New function.
20870         (s390_invalid_binary_op): New function.
20871         (TARGET_INVALID_BINARY_OP): Define macro.
20872
20873 2015-05-19  David Sherwood  <david.sherwood@arm.com>
20874
20875         * loop-invariant.c (create_new_invariant): Don't calculate address cost
20876         if mode is not a scalar integer.
20877         (get_inv_cost): Increase computational cost for unused invariants.
20878
20879 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20880
20881         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
20882         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
20883         * config/s390/s390-builtin-types.def: New file.
20884         * config/s390/s390-builtins.def: New file.
20885         * config/s390/s390-builtins.h: New file.
20886         * config/s390/s390-c.c: New file.
20887         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
20888         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
20889         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
20890         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
20891         prototypes.
20892         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
20893         Include.
20894         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
20895         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
20896         variable definitions.
20897         (s390_const_operand_ok): New function.
20898         (s390_expand_builtin): Rewrite.
20899         (s390_init_builtins): New function.
20900         (s390_handle_vectorbool_attribute): New function.
20901         (s390_attribute_table): Add s390_vector_bool attribute.
20902         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
20903         (s390_branch_condition_mask): Generate masks for new modes.
20904         (s390_expand_vec_compare_cc): New function.
20905         (s390_mangle_type): Add mangling for vector bool types.
20906         (enum s390_builtin): Remove.
20907         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
20908         efpc builtins.
20909         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
20910         s390_cpu_cpp_builtins.
20911         (REGISTER_TARGET_PRAGMAS): New macro.
20912         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
20913         (insn_cmp mode attribute): Add new CC modes.
20914         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
20915         (lcbb): New pattern definition.
20916         * config/s390/s390intrin.h: Include vecintrin.h.
20917         * config/s390/t-s390: New file.
20918         * config/s390/vecintrin.h: New file.
20919         * config/s390/vector.md: Include vx-builtins.md.
20920         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
20921         support.
20922
20923 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20924
20925         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
20926         CCVFHE.
20927         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
20928         (s390_select_ccmode): Likewise.
20929         (s390_canonicalize_comparison): Swap operands if necessary.
20930         (s390_expand_vec_compare_scalar): Expand DFmode compare using
20931         single element vector instructions.
20932         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
20933         (s390_branch_condition_mask): Generate CC masks for the new modes.
20934         * config/s390/s390.md (v0, vf, vd): New mode attributes.
20935         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
20936         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
20937         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
20938         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
20939         (*extend<DSF:mode><BFP:mode>2): New insn definition.
20940         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
20941         (extend<DSF:mode><BFP:mode>2): Turn into expander.
20942         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
20943         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
20944         (sqrt<mode>2): Add vector instruction.
20945
20946 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20947
20948         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
20949         constraints.
20950         * config/s390/predicates.md (const0_operand, constm1_operand)
20951         (constable_operand): Accept vector operands.
20952         * config/s390/s390-modes.def: Add supported vector modes.
20953         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
20954         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
20955         (s390_bytemask_vector_p, s390_expand_vec_strlen)
20956         (s390_expand_vec_compare, s390_expand_vcond)
20957         (s390_expand_vec_init): Add prototypes.
20958         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
20959         (s390_vector_mode_supported_p): New function.
20960         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
20961         (s390_contiguous_bitmask_vector_p): New function.
20962         (s390_bytemask_vector_p): New function.
20963         (s390_split_ok_p): Vector regs don't work either.
20964         (regclass_map): Add VEC_REGS.
20965         (s390_legitimate_constant_p): Handle vector constants.
20966         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
20967         (legitimate_reload_vector_constant_p): New function.
20968         (s390_preferred_reload_class): Handle CONST_VECTOR.
20969         (s390_reload_symref_address):  Likewise.
20970         (s390_secondary_reload): Vector memory instructions only support
20971         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
20972         (s390_emit_ccraw_jump): New function.
20973         (s390_expand_vec_strlen): New function.
20974         (s390_expand_vec_compare): New function.
20975         (s390_expand_vcond): New function.
20976         (s390_expand_vec_init): New function.
20977         (s390_dwarf_frame_reg_mode): New function.
20978         (print_operand): Handle addresses with 'O' and 'R' constraints.
20979         (NR_C_MODES, constant_modes): Add vector modes.
20980         (s390_output_pool_entry): Handle vector constants.
20981         (s390_hard_regno_mode_ok): Handle vector registers.
20982         (s390_class_max_nregs): Likewise.
20983         (s390_cannot_change_mode_class): New function.
20984         (s390_invalid_arg_for_unprototyped_fn): New function.
20985         (s390_function_arg_vector): New function.
20986         (s390_function_arg_float): Remove size variable.
20987         (s390_pass_by_reference): Handle vector arguments.
20988         (s390_function_arg_advance): Likewise.
20989         (s390_function_arg): Likewise.
20990         (s390_return_in_memory): Vector values are returned in a VR if
20991         possible.
20992         (s390_function_and_libcall_value): Handle vector arguments.
20993         (s390_gimplify_va_arg): Likewise.
20994         (s390_call_saved_register_used): Consider the arguments named.
20995         (s390_conditional_register_usage): Disable v16-v31 for non-vec
20996         targets.
20997         (s390_preferred_simd_mode): New function.
20998         (s390_support_vector_misalignment): New function.
20999         (s390_vector_alignment): New function.
21000         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
21001         (TARGET_VECTOR_MODE_SUPPORTED_P)
21002         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
21003         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
21004         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
21005         (TARGET_VECTOR_ALIGNMENT): Define target macro.
21006         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
21007         (FIRST_PSEUDO_REGISTER): Increase value.
21008         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
21009         (VECTOR_REG_P): Define macros.
21010         (FIXED_REGISTERS, CALL_USED_REGISTERS)
21011         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
21012         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
21013         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
21014         Add vector registers.
21015         (CANNOT_CHANGE_MODE_CLASS): Call C function.
21016         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
21017         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
21018         memory.
21019         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
21020         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
21021         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
21022         (VR*_REGNUM): New constants.
21023         (ALL): New mode iterator.
21024         (INTALL): Remove mode iterator.
21025         Include vector.md.
21026         (movti): Implement TImode moves for VRs.
21027         Disable TImode splitter for VR targets.
21028         Implement splitting TImode GPR<->VR moves.
21029         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
21030         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
21031         reload<mode>_la_in, reload<mode>_la_out.
21032         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
21033         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
21034         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
21035         (mov<mode> SF SD): Prefer lder, lde for loading.
21036         Add lrl and strl instructions.
21037         Add vector instructions.
21038         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
21039         Call s390_expand_vec_strlen on z13.
21040         (*cc_to_int): Change predicate to nonimmediate_operand.
21041         (addti3): Rename to *addti3.  New expander.
21042         (subti3): Rename to *subti3.  New expander.
21043         * config/s390/vector.md: New file.
21044
21045 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21046
21047         * common/config/s390/s390-common.c (processor_flags_table): Add
21048         z13.
21049         * config.gcc: Add z13.
21050         * config/s390/s390-opts.h (enum processor_type): Add
21051         PROCESSOR_2964_Z13.
21052         * config/s390/s390.c (s390_adjust_priority): Check for
21053         PROCESSOR_2964_Z13.
21054         (s390_reorg): Likewise.
21055         (s390_sched_reorder): Likewise.
21056         (s390_sched_variable_issue): Likewise.
21057         (s390_loop_unroll_adjust): Likewise.
21058         (s390_option_override): Likewise. Default to -mvx when available.
21059         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
21060         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
21061         (TARGET_VX_ABI): Define macros.
21062         macros.
21063         (TARGET_DEFAULT): Add MASK_OPT_VX.
21064         * config/s390/s390.md ("cpu" attribute): Add z13.
21065         ("cpu_facility" attribute): Add vec.
21066         * config/s390/s390.opt (processor_type): Add z13.
21067         (mvx): New options.
21068         * doc/invoke.texi: Add z13 option for -march.
21069
21070 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21071
21072         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
21073         mode check to make sure that only scalar integer values are
21074         accepted.
21075
21076 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
21077
21078         * tree.c (verify_type_variant): Fix #undef.
21079         (gimple_canonical_types_compatible_p): Move here from lto.c
21080         (verify_type): Verify TYPE_CANONICAL compatibility.
21081         * tree.h (gimple_canonical_types_compatible_p): Declare.
21082
21083 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
21084
21085         PR middle-end/66199
21086         * tree.h (OMP_TEAMS_COMBINED): Define.
21087         * gimplify.c (enum gimplify_omp_var_data): Add
21088         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
21089         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
21090         (omp_notice_variable): Accept both ORT_TEAMS
21091         and ORT_COMBINED_TEAMS.  Don't recurse if
21092         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
21093         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
21094         GOVD_FIRSTPRIVATE.
21095         (omp_no_lastprivate): New function.
21096         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
21097         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
21098         notice_outer and set appropriate bits, otherwise make
21099         sure default(none) combined constructs won't complain.
21100         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
21101         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
21102         omp_no_lastprivate either remove the clause or turn it
21103         into OMP_CLAUSE_PRIVATE.
21104         (gimplify_omp_for): Fix up handling of implicit
21105         lastprivate or linear iterators.
21106         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
21107         ORT_COMBINED_TEAMS.
21108         * omp-low.c (lower_omp_for_lastprivate): For combined
21109         for simd use fd.loop.n2 from the for rather than simd.
21110
21111 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21112
21113         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
21114         instead of gen_rtx_raw_REG.
21115         (cris_expand_epilogue): Likewise.
21116         * config/microblaze/microblaze.c (microblaze_classify_address):
21117         Likewise.
21118         * config/sparc/sparc.md: Likewise.
21119
21120 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
21121
21122         * config/alpha/alpha.c (alpha_legitimize_reload_address)
21123         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
21124         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
21125         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
21126         Use CASE_CONST_SCALAR_INT.
21127         (print_operand) <case 'M'>: Use mode_width_operand to check the
21128         value of the constant.
21129         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
21130         * config/alpha/predicates.md (input_operand): Use general_operand
21131         instead of match_code as operand check.
21132         (symbolic_operand): Use match_code with subexpression digits.
21133         * config/alpha/constraints.md (Q): Ditto.
21134
21135 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21136
21137         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
21138
21139 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21140
21141         * config/s390/s390.c (s390_secondary_reload): Fix check for
21142         load/store relative.
21143
21144 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21145
21146         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
21147         alternative_mask to uint64_t.
21148
21149 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
21150
21151         PR tree-optimization/66187
21152         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
21153         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
21154         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
21155
21156 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
21157
21158         * diagnostic.c (diagnostic_report_current_module): Strengthen
21159         local "new_map" from const line_map * to
21160         const line_map_ordinary *.
21161         * genmatch.c (error_cb): Likewise for local "map".
21162         (output_line_directive): Likewise for local "map".
21163         * input.c (expand_location_1): Likewise for local "map".
21164         Pass NULL rather than &map to
21165         linemap_unwind_to_first_non_reserved_loc, since the value is never
21166         read from there, and the value written back not read from here.
21167         (is_location_from_builtin_token): Strengthen local "map" from
21168         const line_map * to const line_map_ordinary *.
21169         (dump_location_info): Strengthen locals "map" from
21170         line_map *, one to const line_map_ordinary *, the other
21171         to const line_map_macro *.
21172         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
21173         const line_map * to const line_map_macro *.
21174         (maybe_unwind_expanded_macro_loc): Add a call to
21175         linemap_check_macro when writing to the "map" field of the
21176         loc_map_pair.
21177         Introduce local const line_map_ordinary * "ord_map", using it in
21178         place of "map" in the part of the function where we know we have
21179         an ordinary map.  Strengthen local "m" from const line_map * to
21180         const line_map_ordinary *.
21181
21182 2015-05-19  Nick Clifton  <nickc@redhat.com>
21183
21184         PR target/66156
21185         * config/msp430/msp430.md (zero_extendhisi2): Add support for
21186         separate source and destination registers.
21187
21188 2015-05-19  Richard Biener  <rguenther@suse.de>
21189
21190         PR tree-optimization/66165
21191         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
21192         for no load permutation.
21193
21194         PR tree-optimization/66185
21195         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
21196         when building the SLP node from scalars.
21197
21198 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
21199             Tristan Gingold  <gingold@adacore.com>
21200
21201         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
21202         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
21203         (expand_stack_restore): Call record_new_stack_level.
21204         (expand_stack_save): Do not call do_pending_stack_adjust.
21205         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
21206         * calls.c (expand_call): Call record_new_stack_level for alloca.
21207         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
21208         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
21209         (update_sjlj_context): New global function.
21210         * except.h (update_sjlj_context): Declare.
21211         * explow.c (record_new_stack_level): New global function.
21212         (allocate_dynamic_stack_space): Call record_new_stack_level.
21213         * explow.h (record_new_stack_level): Declare.
21214         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
21215         * cfgrtl.c (duplicate_insn_chain): Likewise.
21216
21217 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21218
21219         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
21220         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
21221         STACK_GROWS_DOWNWARD as normal if.
21222         (expand_call): Likewise.
21223
21224 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
21225
21226         PR target/54236
21227         * config/sh/sh.md (*round_int_even): New insn_and_split and
21228         accompanying new unnamed split.
21229
21230 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21231
21232         * bitmap.c (bitmap_set_range): Handle count==1 specially.
21233         (bitmap_clear_range): Likewise.
21234         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
21235         bitmap_set_range unconditionally.
21236         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
21237         * df-scan.c (df_mark_reg): Likewise.
21238         * haifa-sched.c (setup_ref_regs): Likewise.
21239         * sched-rgn.c (update_live_1): Likewise.
21240
21241 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21242
21243         * regs.h (END_HARD_REGNO): Delete.
21244         (END_REGNO): Move to...
21245         * rtl.h: ...here.
21246         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
21247         * caller-save.c (mark_set_regs): Likewise.
21248         * combine.c (move_deaths, distribute_notes): Likewise.
21249         * cse.c (invalidate, invalidate_for_call): Likewise.
21250         * df-scan.c (df_ref_record): Likewise.
21251         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
21252         (record_last_reg_set_info): Likewise.
21253         * reg-stack.c (convert_regs_exit): Likewise.
21254         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
21255         * resource.c (update_live_status): Likewise.
21256         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
21257
21258 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21259
21260         * rtl.h (reg_info): Add an nregs field.
21261         (REG_NREGS): Use it.
21262         (SET_REGNO_RAW): Delete.
21263         (set_regno_raw): New function.
21264         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
21265         (END_REGNO): Redefine in terms of REG_NREGS.
21266         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
21267         SET_REGNO_RAW.
21268         * emit-rtl.c (set_mode_and_regno): Likewise.
21269         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
21270         instead of SET_REGNO_RAW.
21271
21272 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21273
21274         * rtl.h (PUT_MODE_RAW): New macro.
21275         (PUT_REG_NOTE_KIND): Use it.
21276         (set_mode_and_regno): Declare.
21277         (gen_raw_REG): Change regno to "unsigned int".
21278         (gen_rtx_REG): Change "unsigned" to "unsigned int".
21279         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
21280         use set_mode_and_regno to change the mode of registers.
21281         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
21282         * emit-rtl.c (set_mode_and_regno): New function.
21283         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
21284         * caller-save.c (reg_save_code): Use set_mode_and_regno.
21285         * expr.c (init_expr_target): Likewise.
21286         * ira.c (setup_prohibited_mode_move_regs): Likewise.
21287         * postreload.c (reload_cse_simplify_operands): Likewise.
21288
21289 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21290
21291         * caller-save.c (init_caller_save): Use word_mode and
21292         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
21293         * expr.c (init_expr_target): Likewise.
21294         * ira.c (setup_prohibited_mode_move_regs): Likewise.
21295         * postreload.c (reload_cse_regs_1): Likewise.
21296
21297 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21298
21299         * rtl.def (REG): Change format to "r".
21300         * rtl.h (rtunion): Remove rt_reg.
21301         (reg_info): New structure.
21302         (rtx_def): Add reg field to main union.
21303         (X0REGATTR): Delete.
21304         (REG_CHECK): New macro.
21305         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
21306         * rtl.c (rtx_format): Document "r".
21307         (rtx_code_size): Handle REG specially.
21308         * gengenrtl.c (special_format): Return true for formats
21309         that include 'r'.
21310         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
21311         Deal with REG_ATTRS after the field loop.
21312         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
21313         * expmed.c (init_expmed): Call gen_raw_REG instead of
21314         gen_rtx_raw_REG.
21315         * expr.c (init_expr_target): Likewise.
21316         * regcprop.c (maybe_mode_change): Likewise.
21317         * varasm.c (make_decl_rtl): Likewise.
21318         * final.c (leaf_renumber_regs_insn): Return early after
21319         handling REGs.
21320         * genemit.c (gen_exp): Handle 'r' fields.
21321         * genpeep.c (match_rtx): Likewise.
21322         * gensupport.c (subst_pattern_match): Likewise.
21323         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
21324         (alter_constraints, subst_dup): Likewise.
21325         * read-rtl.c (read_rtx_code): Likewise.
21326         * print-rtl.c (print_rtx): Likewise.
21327         * genrecog.c (find_operand, find_matching_operand): Likewise.
21328         (validate_pattern, match_pattern_2): Likewise.
21329         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
21330         (rtx_test::regno_field): New function.
21331         (operator ==, safe_to_hoist_p, transition_parameter_type)
21332         (parameter_type_string, print_parameter_value)
21333         (print_nonbool_test, print_test): Handle new enum values.
21334         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
21335         * lra-constraints.c (operands_match_p): Likewise.
21336
21337 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21338
21339         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
21340         Change type of new_regno to unsigned int.
21341         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
21342         new_regno to unsigned int.
21343         (df_ref_change_reg_with_loc): Remove old_regno parameter.
21344         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
21345         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
21346         (SET_REGNO_RAW): Add space after ",".
21347
21348 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21349
21350         * rtl.h (REG_NREGS): New macro
21351         * alias.c (record_set): Use it.
21352         * cfgcleanup.c (mark_effect): Likewise.
21353         * combine.c (likely_spilled_retval_1): Likewise.
21354         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
21355         (move_deaths, distribute_notes): Likewise.
21356         * cselib.c (cselib_record_set): Likewise.
21357         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
21358         * df-scan.c (df_mark_reg): Likewise.
21359         * dse.c (look_for_hardregs): Likewise.
21360         * dwarf2out.c (reg_loc_descriptor): Likewise.
21361         (multiple_reg_loc_descriptor): Likewise.
21362         * expr.c (write_complex_part, read_complex_part): Likewise.
21363         (emit_move_complex): Likewise.
21364         * haifa-sched.c (setup_ref_regs): Likewise.
21365         * ira-lives.c (mark_hard_reg_live): Likewise.
21366         * lra.c (lra_set_insn_recog_data): Likewise.
21367         * mode-switching.c (create_pre_exit): Likewise.
21368         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
21369         (reload_combine_recognize_pattern): Likewise.
21370         (reload_combine_note_use, move2add_record_mode): Likewise.
21371         (reload_cse_move2add): Likewise.
21372         * reg-stack.c (subst_stack_regs_pat): Likewise.
21373         * regcprop.c (kill_value, copy_value): Likewise.
21374         (copyprop_hardreg_forward_1): Likewise.
21375         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
21376         (build_def_use): Likewise.
21377         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
21378         (deps_analyze_insn): Likewise.
21379         * sched-rgn.c (check_live_1, update_live_1): Likewise.
21380         * sel-sched.c (count_occurrences_equiv): Likewise.
21381         * valtrack.c (dead_debug_insert_temp): Likewise.
21382
21383 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21384
21385         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
21386         * dse.c (note_add_store): Likewise.
21387         * ira-lives.c (mark_hard_reg_dead): Likewise.
21388         * loop-invariant.c (mark_reg_store): Likewise.
21389         (mark_reg_death): Likewise.
21390         * postreload.c (reload_combine): Likewise.
21391         (reload_combine_note_store): Likewise.
21392         (reload_combine_note_use): Likewise.
21393         * recog.c (peep2_reg_dead_p): Likewise.
21394
21395 2015-05-19  Alan Modra  <amodra@gmail.com>
21396
21397         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
21398         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
21399         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
21400         unused predicates.
21401         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
21402         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
21403         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
21404         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
21405
21406 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
21407
21408         * config/mips/mips.md (JOIN_MODE): New mode iterator.
21409         (join2_load_Store<JOIN_MODE:mode>): New pattern.
21410         (join2_loadhi): Likewise.
21411         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
21412         load-load and store-stores.
21413         * config/mips/mips.opt (mload-store-pairs): New option.
21414         (TARGET_LOAD_STORE_PAIRS): New macro.
21415         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
21416         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
21417         * config/mips/mips.c (mips_load_store_bonding_p): New function.
21418
21419 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
21420
21421         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
21422         explicit swaps.
21423         * dojump.c (do_compare_rtx_and_jump): Likewise.
21424         * expmed.c (emit_store_flag_1): Likewise.
21425         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
21426         * final.c (sprint_ul): Use std::reverse for reversing a string.
21427         * fold-const.c (extract_muldiv_1): Use std::swap.
21428         * genmodes.c (emit_mode_int_n): Likewise.
21429         * ifcvt.c (dead_or_predicable): Likewise.
21430         * ira-build.c (ira_merge_live_ranges): Likewise.
21431         (swap_allocno_copy_ends_if_necessary): Likewise.
21432         * ira.c (ira_setup_alts): Likewise.
21433         * loop-iv.c (iv_analyze_expr): Likewise.
21434         (implies_p): Likewise.
21435         (canon_condition): Likewise.
21436         * lra-constraints.c (swap_operands): Likewise.
21437         * lra-lives.c (lra_merge_live_ranges): Likewise.
21438         * omega.c (swap): Remove.
21439         (bswap): Remove.
21440         (omega_unprotect_1): Use std::swap.
21441         (omega_solve_geq): Likewise.
21442         * optabs.c (expand_binop_directly): Likewise.
21443         (expand_binop): Likewise.
21444         (emit_conditional_move): Likewise.
21445         (emit_conditional_add): Likewise.
21446         * postreload.c (reload_cse_simplify_operands): Likewise.
21447         * reg-stack.c (emit_swap_insn): Likewise.
21448         (swap_to_top): Likewise.
21449         (compare_for_stack_reg): Likewise.
21450         (subst_asm_stack_regs): Likewise.
21451         * reload.c (find_reloads): Likewise.
21452         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
21453         * sel-sched.c (invoke_reorder_hooks): Likewise.
21454         (create_block_for_bookkeeping): Likewise.
21455         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
21456         (lambda_matrix_right_hermite): Use std::swap.
21457         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
21458         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
21459         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
21460         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
21461         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
21462         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
21463         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
21464         * tree-vrp.c (compare_ranges): Likewise.
21465         * var-tracking.c (add_with_sets): Likewise.
21466         (vt_find_locations): Likewise.
21467
21468 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
21469
21470         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
21471         pie executables.
21472         (FBSD_ENDFILE_SPEC): Likewise.
21473         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
21474         config/freebsd-spec.h.
21475         (ENDFILE_SPEC): Likewise.
21476
21477 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
21478             Richard Henderson  <rth@redhat.com>
21479
21480         PR target/57032
21481         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
21482         Check for a memory location that is not a reference (using an AND)
21483         to an unaligned location here.
21484         * config/alpha/predicates.md (normal_memory_operand): Remove.
21485
21486 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
21487
21488         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
21489         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
21490
21491 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
21492
21493         * config/mips/mips.c (micromips_globals): New variable.
21494         (mips_set_compression_mode): Save and reinitialize target-dependent
21495         state for microMIPS.
21496
21497 2015-05-18  Martin Liska  <mliska@suse.cz>
21498
21499         * dbgcnt.def: Add new counter.
21500         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
21501
21502 2015-05-18  Martin Liska  <mliska@suse.cz>
21503
21504         * dbgcnt.def: Sort counters.
21505         * opts.c (common_handle_option): Do not compile if
21506         -fdbg-cnt-list is enabled.
21507
21508 2015-05-18  Tom de Vries  <tom@codesourcery.com>
21509
21510         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
21511         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
21512         address operator to va_list operand.
21513         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
21514         unconditionally.
21515         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
21516         operand.
21517         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
21518         * config/s390/s390.c (s390_gimplify_va_arg): Same.
21519         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
21520
21521 2015-05-18  Tom de Vries  <tom@codesourcery.com>
21522
21523         * tree-ssa-tail-merge.c: Fix whitespace.
21524
21525 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
21526
21527         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
21528         cortex-a17, and cortex-a17.cortex-a7.
21529
21530 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
21531
21532         PR target/54236
21533         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
21534
21535 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
21536
21537         PR target/66174
21538         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
21539         QImode inner modes for TARGET_AVX512BW.  Force mask operand
21540         to a register for AVX512F modes.
21541
21542 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
21543
21544         * toplev.c (emit_debug_global_declarations): Do not output debug info
21545         when doing slim LTO objects.
21546
21547 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
21548
21549         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
21550         odr_types_equivalent_p): Declare.
21551         (odr_type_p): Use gcc_checking_assert.
21552         (type_in_anonymous_namespace_p) Declare.
21553         (type_with_linkage_p): Declare.
21554         * common.opt (Wlto-type-mismatch): New warning.
21555         * ipa-devirt.c (compound_type_base): New function.
21556         (odr_or_derived_type_p): New function.
21557         (odr_types_equivalent_p): New function.
21558         (add_type_duplicate): Simplify.
21559         (type_with_linkage_p): Add hack to prevent false positives on C types
21560         (type_in_anonymous_namespace_p): Likewise.
21561         * tree.c (need_assembler_name_p): Use type_with_linkage.
21562         * tree.h (type_in_anonymous_namespace_p): Remove.
21563         * doc/invoke.texi (-Wlto-type-mismatch): Document
21564
21565 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
21566
21567         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
21568         (verify_type): Verify STRING_FLAG.
21569
21570 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21571
21572         PR fortran/44054
21573         * tree-pretty-print.c (percent_K_format): Replace locus pointer
21574         with accessor function.
21575         * tree-diagnostic.c (diagnostic_report_current_function): Use
21576         diagnostic_location function.
21577         (maybe_unwind_expanded_macro_loc): Likewise.
21578         (virt_loc_aware_diagnostic_finalizer): Likewise.
21579         (default_tree_printer): Replace locus pointer with accessor function.
21580         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
21581         (diagnostic_set_info_translated): Initialize second location.
21582         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
21583         (diagnostic_show_locus): Handle two locations. Call
21584         diagnostic_print_caret_line.
21585         (diagnostic_print_caret_line): New.
21586         (default_diagnostic_starter): Use diagnostic_location function.
21587         (diagnostic_report_diagnostic): Use diagnostic_location function.
21588         (verbatim): Do not set text.locus.
21589         * diagnostic.h (struct diagnostic_info): Remove location field.
21590         (struct diagnostic_context): Make caret_chars an array of two.
21591         (diagnostic_location): New inline.
21592         (diagnostic_expand_location): Handle two locations.
21593         (diagnostic_same_line): New inline.
21594         (diagnostic_print_caret_line): Declare.
21595         (CARET_LINE_MARGIN): New constant.
21596         * pretty-print.c (pp_printf): Do not set text.locus.
21597         (pp_verbatim): Do not set text.locus.
21598         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
21599         (struct text_info): Replace locus pointer with locations
21600         array. Add accessor functions.
21601
21602 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
21603             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
21604
21605         PR target/65768
21606         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
21607         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
21608          large constants in register instead of splitting them.
21609
21610 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
21611
21612         PR target/66140
21613         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
21614         replacements in memory addresses.
21615         (get_unaligned_address): Ditto.
21616
21617 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
21618
21619         * config/ft32/*: New files for FT32 port.
21620         * doc/install.texi: Add FT32 information.
21621         * doc/invoke.texi: Add FT32 information.
21622         * doc/md.texi: Add FT32 information.
21623         * doc/contrib.texi: Self added.
21624
21625 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
21626
21627         PR tree-optimization/64454
21628         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
21629         (-1 - A -> ~A): Remove unnecessary condition.
21630
21631 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
21632
21633         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
21634         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
21635         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
21636
21637 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
21638
21639         * ipa-chkp.h (chkp_wrap_function): New.
21640         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
21641         (chkp_wrap_function_name): New.
21642         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
21643         to get wrapper name.
21644         * lto-cgraph.c: Include ipa-chkp.h.
21645         (input_cgraph_1): Avoid alias chain for wrappers.
21646
21647 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
21648
21649         PR middle-end/66134
21650         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
21651         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
21652
21653 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21654
21655         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
21656         (AARCH64_FL_SLOWMUL): Delete.
21657         (AARCH64_FL_CRC): Redefine to 1<<3.
21658         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
21659
21660 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21661
21662         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
21663         casting.
21664
21665 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
21666
21667         * config/alpha/alpha.md (extendqidi2): Use general_operand
21668         instead of some_operand for operand[1] predicate.
21669         (extendhidi2): Ditto.
21670         (cbranchdi4): Use general_operand instead of some_operand
21671         for operand[1] and operands[2] predicates.
21672         (cstoredi4): Ditto.
21673         * config/alpha/predicates.md (some_operand): Remove unused predicate.
21674         (some_ni_operand): Ditto.
21675
21676 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
21677
21678         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
21679         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
21680         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
21681         low part of the constant using alpha_emit_set_const_1.
21682         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
21683
21684 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
21685
21686         * varasm.c (output_constant_pool_1): Pass down alignment from
21687         constant pool entry's descriptor to output_constant_pool_2.
21688         (output_object_block): Add comment prior to call to
21689         output_constant_pool_1.
21690
21691 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
21692
21693         PR rtl-optimization/65862
21694         * target.def (ira_change_pseudo_allocno_class): New hook.
21695         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
21696         value of the hook.
21697         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
21698         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
21699         hook.
21700         * ira-costs.c (find_costs_and_classes): Call the hook and change
21701         classes when it is necessary.
21702         * doc/tm.texi: Update.
21703
21704 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
21705
21706         * config/i386/i386.md (sibcall_memory): Check that register with
21707         callee address is not also used as one of the arguments, instead
21708         of checking that it is not live after the sibcall.
21709         (sibcall_pop_memory): Ditto.
21710         (sibcall_value_memory): Ditto.
21711         (sibcall_value_pop_memory): Ditto.
21712
21713 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
21714
21715         * generic-match-head.c (types_match): Handle non-types.
21716         * gimple-match-head.c (types_match): Likewise.
21717         * match.pd: Remove unnecessary TREE_TYPE for types_match.
21718
21719 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
21720
21721         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
21722         (csneg3<mode>_insn): Enable expansion of pattern.
21723
21724 2015-05-14  Nick Clifton  <nickc@redhat.com>
21725
21726         * config/rl78/rl78.c (rl78_select_section): Select the correct
21727         default section based upon the category of the decl.
21728
21729 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
21730
21731         PR rtl-optimization/30967
21732         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
21733         destination mode for the cost of scc patterns.
21734
21735 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
21736
21737         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
21738         using SWIM248 mode iterator.
21739         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
21740         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
21741         for operand[2] constraint.
21742         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
21743
21744 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
21745
21746         PR middle-end/66133
21747         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
21748         make sure it is never noreturn, even when the task body does not
21749         return.
21750         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
21751         right before GIMPLE_OMP_RETURN.
21752         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
21753         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
21754         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
21755
21756 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21757
21758         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
21759         * tree-ssa-math-opts.c: Include params.h
21760         (pow_synth_sqrt_info): New struct.
21761         (representable_as_half_series_p): New function.
21762         (get_fn_chain): Likewise.
21763         (print_nested_fn): Likewise.
21764         (dump_fractional_sqrt_sequence): Likewise.
21765         (dump_integer_part): Likewise.
21766         (expand_pow_as_sqrts): Likewise.
21767         (gimple_expand_builtin_pow): Use above to attempt to expand
21768         pow as series of square roots.  Removed now unused variables.
21769
21770 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
21771
21772         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
21773         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
21774         Remove *p0 and *p1 arguments.  Rewrite function.
21775         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
21776         (alpha_split_const_mov): Update calls to alpha_extract_integer and
21777         alpha_emit_set_long_const.
21778         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
21779         (alpha_output_mi_thunk_osf): Ditto.
21780         * config/alpha/alpha.md (movti): Do not check operands[1]
21781         for CONST_DOUBLE.
21782
21783 2015-05-13  Richard Biener  <rguenther@suse.de>
21784
21785         PR tree-optimization/66129
21786         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
21787         commutative.
21788         (vect_schedule_slp_instance): Fix typo.
21789
21790 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
21791
21792         * common.opt (fdump-internal-locations): New option.
21793         * input.c: Include diagnostic-core.h.
21794         (get_end_location): New function.
21795         (write_digit): New function.
21796         (write_digit_row): New function.
21797         (dump_location_range): New function.
21798         (dump_labelled_location_range): New function.
21799         (dump_location_info): New function.
21800         * input.h (dump_location_info): New prototype.
21801         * toplev.c (compile_file): Handle flag_dump_locations.
21802
21803 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
21804
21805         * gimple-expr.h (is_gimple_constant): Reorder.
21806         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
21807
21808 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
21809
21810         * combine.c (simplify_set): When generating a CC set, if the
21811         source already is in the correct mode, do not wrap it in a
21812         compare.  Simplify the rest of that code.
21813
21814 2015-05-13  Richard Biener  <rguenther@suse.de>
21815
21816         PR tree-optimization/66123
21817         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
21818         a taken edge.
21819
21820 2015-05-13  Richard Biener  <rguenther@suse.de>
21821
21822         PR middle-end/66110
21823         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
21824         specially.
21825         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
21826
21827 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
21828
21829         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
21830         * aclocal.m4: Regenerated with automake-1.11.6.
21831
21832 2015-05-13  Tom de Vries  <tom@codesourcery.com>
21833
21834         PR tree-optimization/66010
21835         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
21836         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
21837         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
21838         and rval based on do_deref.
21839
21840 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
21841
21842         PR target/65103
21843         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
21844         link time constants into adress expressions and therefore set
21845         their cost to 0.
21846
21847 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
21848
21849         PR target/66112
21850         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
21851         Use SWI248 iterator instead of SWI.
21852         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
21853         Use eq_attr "alternative" "0" instead of match_test in
21854         length_immediate attribute computation.
21855         (*mulvhi4, *mulvhi4_1): New define_insns.
21856
21857         PR target/66112
21858         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
21859         SIGNED to get precision of non-negative value.
21860
21861 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
21862
21863         PR target/66048
21864         * function.c (diddle_return_value_1): Process bounds first.
21865         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
21866         register.
21867
21868 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21869
21870         PR rtl-optimization/64616
21871         * loop-invariant.c (can_move_invariant_reg): New.
21872         (move_invariant_reg): Call above new function to decide whether
21873         instruction can just be moved, skipping creation of temporary
21874         register.
21875
21876 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
21877
21878         PR target/pr66047.c
21879         * i386.c (ix86_function_sseregparm): Only return -1 if local function
21880         with implied regparm is called from -mno-sse function.
21881         (init_cumulative_args): Output error if ix86_function_sseregparm
21882         return -1 and SSE register would be needed.
21883         (function_arg_advance_32): Likewise.
21884         (function_arg_32): Likewise.
21885         * i386.h (ix86_args): Add decl field.
21886
21887 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
21888
21889         PR ipa/65873
21890         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
21891         inlines across optimization boundary.
21892
21893 2015-05-12  Jason Merrill  <jason@redhat.com>
21894
21895         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
21896         string literal and macro name.
21897
21898 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
21899
21900         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
21901         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
21902         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
21903
21904 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
21905
21906         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
21907         (-Wmisleading-indentation): New option.
21908         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
21909
21910 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
21911
21912         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
21913         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
21914         (alpha_extract_integer): Ditto.
21915         (alpha_legitimate_constant_p): Ditto.
21916         (alpha_split_tmode_pair): Ditto.
21917         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
21918         (alpha_expand_mov): Ditto.
21919         (print_operand): Remove handling of 'H' modifier.
21920         <case 'm'>: Remove CONST_DOUBLE handling.
21921         (summarize_insn): Handle CONST_WIDE_INT.
21922         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
21923         (anddi3): Ditto.
21924         (movti): Handle CONST_WIDE_INT.
21925         * config/alpha/constraints.md ('H'): Remove constraint definition.
21926         ('G'): Do not match MODE_FLOAT class.
21927         * config/alpha/predicates.md (const0_operand): Also match
21928         const_wide_int.
21929         (non_add_const_operand): Ditto.
21930         (non_zero_const_operand): Ditto.
21931         (some_operand): Ditto.
21932         (input_operand): Ditto.  Handle CONST_WIDE_INT.
21933         (and_operand): Do not match const_double.
21934         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
21935
21936 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
21937
21938         PR target/65697
21939         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
21940         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
21941         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
21942         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
21943         is_mm_seq_cst, is_mm_sync): New accessor functions.
21944         * builtins.c (expand_builtin_sync_operation,
21945         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
21946         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
21947         (get_memmodel,  expand_builtin_atomic_compare_exchange,
21948         expand_builtin_atomic_load, expand_builtin_atomic_store,
21949         expand_builtin_atomic_clear): Use new accessor routines.
21950         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
21951         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
21952         (maybe_emit_sync_lock_test_and_set): Use new accessors and
21953         MEMMODEL_SYNC_ACQUIRE.
21954         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
21955         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
21956         expand_atomic_store): Use new accessors.
21957         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
21958         * tsan.c (instrument_builtin_call): Update check for memory model beyond
21959         final enum to use MEMMODEL_LAST.
21960         * c-family/c-common.c: Use new accessor for memmodel_base.
21961         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
21962         accessors.
21963         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
21964         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
21965         mem_thread_fence, *dmb): Likewise.
21966         * config/alpha/alpha.c (alpha_split_compare_and_swap,
21967         alpha_split_compare_and_swap_12): Likewise.
21968         * config/arm/arm.c (arm_expand_compare_and_swap,
21969         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
21970         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
21971         atomic_loaddi): Likewise.
21972         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
21973         Likewise.
21974         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
21975         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
21976         use new accessors.
21977         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
21978         atomic_store<mode>, atomic_compare_and_swap<mode>,
21979         atomic_exchange<mode>): Use new accessors.
21980         * config/mips/mips.c (mips_process_sync_loop): Likewise.
21981         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
21982         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
21983         rs6000_post_atomic_barrier): Add new cases.
21984         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
21985         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
21986         (atomic_load<mode>): Add new cases and use new accessors.
21987         (store_quadpti): Add new cases.
21988         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
21989         accessors.
21990         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
21991         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
21992         model, not 8.
21993
21994 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
21995
21996         * ipa-devirt.c (type_with_linkage_p): New function.
21997         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
21998         type has linkage.
21999         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
22000         (can_be_name_hashed_p): Simplify.
22001         (hash_odr_name): Check that type has linkage before checking if it is
22002         anonymous.
22003         (types_same_for_odr): Likewise.
22004         (odr_name_hasher::equal): Likewise.
22005         (odr_subtypes_equivalent_p): Likewise.
22006         (warn_types_mismatch): Likewise.
22007         (get_odr_type): Likewise.
22008         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
22009         * ipa-utils.h (odr_type_p): Move offline.
22010         * tree.c (need_assembler_name_p): Fix handling of types
22011         without linkages.
22012         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
22013
22014 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
22015
22016         * timevar.c (timevar_enable): Delete in favor of...
22017         (g_timer): New global.
22018         (struct timevar_def): Move to timevar.h inside class timer.
22019         (struct timevar_stack_def): Likewise.
22020         (timevars): Delete global in favor of field "m_timevars" within
22021         class timer in timevar.h
22022         (stack): Likewise, in favor of field "m_stack".
22023         (unused_stack_instances): Likewise, in favor of field
22024         "m_unused_stack_instances".
22025         (start_time): Likewise, in favor of field "m_start_time".
22026         (get_time): Eliminate check for timevar_enable.
22027         (timer::timer): New function, built from part of timevar_init.
22028         (timevar_init): Rewrite idempotency test from using
22029         "timevar_enable" bool to using dynamic allocation of "g_timer".
22030         Move rest of implementation into timer's constructor.
22031         (timevar_push_1): Rename to...
22032         (timer::push): ...this, adding "m_" prefixes to variables that
22033         are now fields of timer.
22034         (timevar_pop_1): Likewise, rename to...
22035         (timer::pop): ...this, and add "m_" prefixes.
22036         (timevar_start): Replace test for "timevar_enable" with one for
22037         "g_timer", and move bulk of implementation to...
22038         (timer::start): ...here, adding "m_" prefixes.
22039         (timevar_stop): Likewise, from here...
22040         (timer::stop): ...to here.
22041         (timevar_cond_start): Likewise, from here...
22042         (timer::cond_start): ...to here.
22043         (timevar_cond_stop): Likewise, from here...
22044         (timer::cond_stop): ...to here.
22045         (validate_phases): Rename to...
22046         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
22047         locals "total" and "tv" const.
22048         (timevar_print): Rename to...
22049         (timer::print): ...this, and add "m_" prefixes.  Make locals
22050         "total" and "tv" const.  Eliminate test for timevar_enable.
22051         * timevar.h (timevar_enable): Eliminate.
22052         (g_timer): New declaration.
22053         (timevar_push_1): Eliminate.
22054         (timevar_pop_1): Eliminate.
22055         (timevar_print): Eliminate.
22056         (class timer): New class.
22057         (timevar_push): Rewrite to use g_timer.
22058         (timevar_pop): Likewise.
22059         * toplev.c (toplev::~toplev): Likewise.
22060
22061 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
22062
22063         * arm-protos.h (arm_sched_autopref): Delete.
22064         (tune_params): Re-organize, use enums for flag values.
22065         (FUSE_OPS): New macro.
22066         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
22067         (ARM_PREFETCH_BENEFICIAL): Likewise.
22068         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
22069         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
22070         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
22071         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
22072         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
22073         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
22074         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
22075         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
22076         format.
22077         (arm_option_override, thumb2_reorg, arm_print_tune_info)
22078         (aarch_macro_fusion_pair_p): Update uses of current_tune.
22079         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
22080
22081 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
22082
22083         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
22084         "break".
22085
22086 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
22087             Sandra Loosemore <sandra@codesourcery.com>
22088
22089         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
22090         value.
22091         (REG_CLASS_NAMES): Add "IJMP_REGS".
22092         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
22093         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
22094         use new "c" register constraint.
22095         * config/nios2/constraint.md (c): New register constraint
22096         corresponding to IJMP_REGS.
22097
22098 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22099
22100         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
22101         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
22102         define_splits): Delete, revamp, transmogrify into ...
22103         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
22104         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
22105         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
22106         New.
22107
22108 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22109
22110         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
22111         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
22112
22113 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22114
22115         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
22116         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
22117         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
22118         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
22119         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
22120         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
22121         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
22122         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
22123         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
22124         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
22125         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
22126         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
22127         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
22128         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
22129         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
22130         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
22131         and 30 corresponding splitters): Delete.
22132
22133 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22134
22135         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
22136         zero_extract.
22137
22138 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22139
22140         * combine.c (recog_for_combine_1): New function, factored out
22141         from recog_for_combine.
22142         (change_zero_ext): New function.
22143         (recog_for_combine): If recog fails, try again with the pattern
22144         modified by change_zero_ext; if that still fails, restore the
22145         pattern.
22146
22147 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22148
22149         * combine.c (get_undo_marker): New function.
22150         (undo_to_marker): New function, largely factored out from ...
22151         (undo_all): ... this.  Adjust.
22152
22153 2015-05-12  Richard Biener  <rguenther@suse.de>
22154
22155         PR tree-optimization/66101
22156         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
22157         fixup if we turn a loop exit edge to a fallthru edge.
22158
22159 2015-05-12  Richard Biener  <rguenther@suse.de>
22160
22161         PR tree-optimization/37021
22162         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
22163         (SLP_TREE_TWO_OPERATORS): New define.
22164         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
22165         SLP_TREE_TWO_OPERATORS.
22166         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
22167         SLP node.
22168         (vect_build_slp_tree): Adjust.
22169         (vect_analyze_slp_cost_1): Likewise.
22170         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
22171         emitting two vector stmts and mixing the results.
22172
22173 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
22174
22175         * call.c (print_z_candidates): Remove dead code.
22176
22177 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22178
22179         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
22180         and zEC12_simple_fp.
22181         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
22182         to 1.
22183
22184 2015-05-12  Tom de Vries  <tom@codesourcery.com>
22185
22186         PR tree-optimization/66010
22187         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
22188         ifn_va_arg.
22189         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
22190         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
22191         va_lists are passed, and remove corresponding handling.
22192         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
22193         do_deref argument to ifn_va_arg.
22194         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
22195         ifn_va_arg.
22196
22197 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22198
22199         PR target/65955
22200         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
22201         REG before taking its REGNO.
22202
22203 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22204
22205         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
22206         rsp->sign_bit_copies and rsp->nonzero_bits into ...
22207         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
22208         present to get more accurate information about the number of sign bit
22209         copies and non zero bits.
22210
22211 2015-05-12  Richard Biener  <rguenther@suse.de>
22212
22213         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
22214         do not allow unrolling.
22215
22216 2015-05-11  Richard Henderson  <rth@redhat.com>
22217
22218         * config/i386/i386-modes.def (CCP): New.
22219         * config/i386/i386.c (put_condition_code): Handle it.
22220         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
22221
22222 2015-05-11  Richard Henderson  <rth@redhat.com>
22223
22224         * target.def (md_asm_clobbers): Replace with...
22225         (md_asm_adjust): this.
22226         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
22227         (TARGET_MD_ASM_ADJUST): New.
22228         * tm.texi: Rebuild.
22229         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
22230         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
22231         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
22232
22233         * cfgexpand.c (check_operand_nalternatives): Accept vector of
22234         constraints instead of lists of outputs and inputs.
22235         (expand_asm_stmt): Save and restore input_location around the
22236         body of the function.  Move asm data into vectors instead of
22237         building tree lists.  Generate cleanup sequences as needed,
22238         rather than waiting til the end.  Use new md_asm_adjust hook.
22239
22240         * config/vxworks.c: Include vec.h before target.h.
22241         * gimple.c: Likewise.
22242         * incpath.c: Likewise.
22243         * mode-switching.c: Likewise.
22244
22245         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
22246         (cris_md_asm_adjust): this.
22247         (TARGET_MD_ASM_CLOBBERS): Remove.
22248         (TARGET_MD_ASM_ADJUST): New.
22249         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
22250         (ix86_md_asm_adjust): this.
22251         (TARGET_MD_ASM_CLOBBERS): Remove.
22252         (TARGET_MD_ASM_ADJUST): New.
22253         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
22254         (mn10300_md_asm_adjust): this.
22255         (TARGET_MD_ASM_CLOBBERS): Remove.
22256         (TARGET_MD_ASM_ADJUST): New.
22257         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
22258         (rs6000_md_asm_adjust): this.
22259         (TARGET_MD_ASM_CLOBBERS): Remove.
22260         (TARGET_MD_ASM_ADJUST): New.
22261         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
22262         (visium_md_asm_adjust): this.
22263         (TARGET_MD_ASM_CLOBBERS): Remove.
22264         (TARGET_MD_ASM_ADJUST): New.
22265
22266 2015-05-11  Richard Henderson  <rth@redhat.com>
22267
22268         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
22269         if noutputs is zero.
22270         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
22271
22272         * cfgexpand.c (expand_asm_operands): Merge into...
22273         (expand_asm_stmt): ... here.
22274
22275         * cfgexpand.c (expand_asm_operands): Don't call
22276         resolve_asm_operand_names.
22277         * stmt.c (resolve_asm_operand_names): Clarify block comment.
22278
22279 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
22280
22281         * dwarf2out.c (gen_member_die): Sanity check that we access
22282         TYPE_MAIN_VARIANT for TYPE_METHODS.
22283         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
22284         checking TYPE_METHODS.
22285         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
22286         if non-null.
22287         (build_distinct_type_copy): Clear TYPE_METHODS.
22288         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
22289         (verify_type): Allow TYPE_METHODS to be error_mark_node.
22290         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
22291
22292 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
22293
22294         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
22295         (emit_pattern_before_setloc): Likewise.
22296
22297 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
22298
22299         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
22300         for define_peephole2s.
22301         (get_peephole2_pattern): New function.
22302         (main): Use it.  Call validate_pattern.
22303
22304 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
22305
22306         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
22307         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
22308         (Last callee saved reg is different for AVR_TINY architecture)
22309
22310 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
22311
22312         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
22313         when looking for memory references.
22314
22315 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
22316
22317         PR target/65753
22318         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
22319         via function pointers.
22320
22321 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
22322
22323         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
22324         indirect call by forcing address into a pseudo with -fno-plt.
22325         * common.opt (flag_plt): New option.
22326         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
22327         ([-fno-plt]): Document.
22328
22329 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
22330
22331         PR bootstrap/66105
22332         * config/rs6000/option-defaults.h: Add space between string literal
22333         and macro name.
22334
22335 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22336
22337         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
22338         accross ARM targets.
22339
22340 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22341
22342         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
22343         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
22344
22345 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
22346
22347         PR rtl-optimization/66076
22348         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
22349         Don't grow the heap array if it is already big enough from a
22350         previous iteration.
22351
22352 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22353
22354         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
22355         (is_called_in_ARM_mode): Remove.
22356         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
22357         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
22358         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
22359          arm_declare_function_name.
22360
22361 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22362
22363         * config/arm/arm.c (arm_option_override): Reoganized and split into :
22364         (arm_option_params_internal); New function.
22365         (arm_option_check_internal): New function.
22366         (arm_option_override_internal): New function.
22367         (thumb_code, thumb1_code): Remove.
22368         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
22369         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
22370         (thumb_code, thumb1_code): Remove.
22371         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
22372
22373 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
22374
22375         * config/alpha/alpha.c (alpha_emit_set_const_1)
22376         (alpha_emit_set_long_const, alpha_extract_integer)
22377         (alpha_legitimate_constant_p, alpha_split_const_mov)
22378         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
22379         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22380         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
22381         HOST_WIDE_INT_1U.
22382         * config/alpha/predicates.md (mode_mask_operand): Do not match
22383         const_double RTX.
22384         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22385         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
22386         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
22387         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22388         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
22389
22390 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
22391
22392         PR target/65780
22393         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
22394         default_binds_local_p_2.
22395         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
22396         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
22397
22398 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22399
22400         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
22401
22402 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22403
22404         Patch by Richard Biener
22405         * coverage.c (coverage_obj_init): Delay building of type variant
22406         until the type is finished.
22407
22408 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22409
22410         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
22411         mismatch between C and C++ type; compoare correctly ARG_TYPES
22412         for non-prototypes and output correctly parameter index for METHOD_TYPE.
22413         (odr_types_equivalent_p): Fix wording of warning about attributes;
22414         it is OK to match prototype and non-prototype.
22415
22416 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22417
22418         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
22419         TYPE_ARG_TYPES list.
22420         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
22421         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
22422
22423 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22424
22425         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
22426         * tree.h (is_lang_specific): Constify.
22427
22428 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
22429
22430         PR tree-optimization/64454
22431         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
22432         Rewrite.
22433
22434 2015-05-08  Jason Merrill  <jason@redhat.com>
22435
22436         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
22437         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
22438         config/darwin.h, config/darwin9.h, config/elfos.h,
22439         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
22440         config/microblaze/microblaze.h, config/mips/mips.h,
22441         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
22442         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
22443         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
22444         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
22445         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
22446         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
22447         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
22448         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
22449         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
22450         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
22451         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
22452         between string literal and macro name.
22453
22454 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22455
22456         * jump.c: Change argument types to rtx_insn *.
22457         * rtl.h: Adjust.
22458
22459 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22460
22461         * lra-constraints.c: Change argument type to rtx_insn *.
22462
22463 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22464
22465         * df-problems.c: Change argument type to rtx_insn *.
22466
22467 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22468
22469         * combine.c: Change argument type to rtx_insn *.
22470
22471 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22472
22473         * rtl.h: Adjust.
22474         * rtlanal.c: Change argument type to rtx_insn *.
22475
22476 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22477
22478         * sched-deps.c: Change argument types to rtx_insn *.
22479         * sched-int.h: Adjust.
22480
22481 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22482
22483         * dwarf2cfi.c: Change argument type to rtx_insn *.
22484
22485 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22486
22487         * ira.c (decrease_live_ranges_number): Changetype of local
22488         variable to rtx_insn *.
22489         * recog.c: Change argument types to rtx_insn *.
22490         * recog.h: Adjust.
22491
22492 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22493
22494         * reorg.c: Change argument types to rtx_insn *.
22495
22496 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22497
22498         * ira-color.c: Change argument types to rtx_insn *.
22499         * lra-eliminations.c: Likewise.
22500         * ira.h: Adjust.
22501
22502 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22503
22504         * gcse.c: Change argument types to rtx_insn *.
22505
22506 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22507
22508         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
22509
22510 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22511
22512         * emit-rtl.c (emit_debug_insn_before): Change argument type to
22513         rtx_insn *.
22514         * rtl.h: Adjust.
22515
22516 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22517
22518         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
22519         * rtl.h: Adjust.
22520
22521 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22522
22523         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
22524         * rtl.h: Adjust.
22525
22526 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22527
22528         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
22529         * rtl.h: Adjust.
22530
22531 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22532
22533         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
22534         * rtl.h: Adjust.
22535
22536 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22537
22538         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
22539         to rtx_insn *.
22540         * rtl.h: Adjust.
22541
22542 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22543
22544         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
22545         to rtx_insn *.
22546         * rtl.h: Likewise.
22547
22548 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22549
22550         * except.c (can_nonlocal_goto): Change type of argument to
22551         rtx_insn *.
22552         * rtl.h: Adjust.
22553
22554 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22555
22556         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
22557         * rtl.h: Adjust.
22558
22559 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22560
22561         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
22562         * cfgrtl.c (can_delete_label_p): Adjust.
22563         * rtl.h: likewise.
22564
22565 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22566
22567         * reorg.c (stop_search_p): Change argument to rtx_insn *.
22568
22569 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22570
22571         * except.c (make_reg_eh_region_note): Change argument to
22572         rtx_insn *.
22573         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
22574         * except.h: Adjust.
22575
22576 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22577
22578         * mode-switching.c (commit_mode_sets): Change type of local
22579         variable from rtx to rtx_insn *.
22580
22581 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
22582
22583         * doc/install.texi (--enable-languages): Add missing jit and lto info.
22584         Add ^ to grep command.
22585         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
22586         arg to last gimple_simplify declaration.  Add missing gimple_build
22587         declaration for built-in function case with four tree args.
22588
22589 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
22590             Szabolcs Nagy  <szabolcs.nagy@arm.com>
22591
22592         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
22593         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
22594         (GNU_USER_DYNAMIC_LINKERN32): Update.
22595
22596 2015-05-08  Richard Biener  <rguenther@suse.de>
22597
22598         PR tree-optimization/66036
22599         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
22600         Handle strided group loads.
22601         (vect_verify_datarefs_alignment): Likewise.
22602         (vect_enhance_data_refs_alignment): Likewise.
22603         (vect_analyze_group_access): Likewise.
22604         (vect_analyze_data_ref_access): Likewise.
22605         (vect_analyze_data_ref_accesses): Likewise.
22606         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
22607         (vectorizable_load): Likewise.
22608
22609 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
22610
22611         * config/rs6000/rs6000.md: Require operand inequality in one
22612         of the peepholes.
22613
22614 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
22615             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
22616
22617         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
22618         from (set ...).
22619         * config/rx/rx.md (movdi, movdf): Likewise.
22620         Likewise for define_peephole2s.
22621
22622 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
22623
22624         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
22625         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
22626         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
22627         vtst_u64): Rewrite using gcc vector extensions.
22628
22629 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
22630
22631         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
22632         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
22633
22634 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
22635
22636         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
22637
22638 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
22639
22640         * config/glibc-stdint.h (OPTION_MUSL): Define.
22641         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
22642         Change the definition based on OPTION_MUSL for 64 bit targets.
22643         * config/linux.h (OPTION_MUSL): Redefine.
22644         * config/alpha/linux.h (OPTION_MUSL): Redefine.
22645         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
22646         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
22647
22648 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
22649             Szabolcs Nagy  <szabolcs.nagy@arm.com>
22650
22651         * config.gcc (LIBC_MUSL): New tm_defines macro.
22652         * config/linux.h (OPTION_MUSL): Define.
22653         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
22654         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
22655         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
22656         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
22657         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
22658         * config/linux.opt (mmusl): New option.
22659         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
22660         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
22661         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
22662         * configure: Regenerate.
22663
22664 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
22665             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
22666
22667         PR target/48904
22668         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
22669         * config/i386/knetbsd-gnu64.h: New file.
22670
22671 2015-05-08  Marek Polacek  <polacek@redhat.com>
22672
22673         PR c/64918
22674         * doc/invoke.texi: Document -Woverride-init-side-effects.
22675
22676 2015-05-07  Marek Polacek  <polacek@redhat.com>
22677
22678         PR c/65179
22679         * doc/invoke.texi: Document -Wshift-negative-value.
22680
22681 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
22682
22683         * gcov-tool.c (do_merge): Refactore to remove int ret.
22684         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
22685         !type == FUNC to type != FUNC.
22686         * reload.h (struct target_reload): Changee to type of
22687         x_spill_indirect_levels from bool to unsigned char.
22688
22689 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
22690
22691         * rtl.h (always_void_p): New function.
22692         * gengenrtl.c (always_void_p): Likewise.
22693         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
22694         with code foo are always VOIDmode.
22695         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
22696         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
22697         compare-elim.c, config/aarch64/aarch64.c,
22698         config/aarch64/aarch64.md, config/alpha/alpha.c,
22699         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
22700         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
22701         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
22702         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
22703         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
22704         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
22705         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
22706         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
22707         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
22708         config/ia64/vect.md, config/iq2000/iq2000.c,
22709         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
22710         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
22711         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
22712         config/mep/mep.c, config/microblaze/microblaze.c,
22713         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
22714         config/mn10300/mn10300.c, config/msp430/msp430.c,
22715         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
22716         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
22717         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
22718         config/rs6000/altivec.md, config/rs6000/rs6000.c,
22719         config/rs6000/rs6000.md, config/rs6000/vector.md,
22720         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
22721         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
22722         config/sh/sh.md, config/sh/sh_treg_combine.cc,
22723         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
22724         config/spu/spu.md, config/stormy16/stormy16.c,
22725         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
22726         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
22727         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
22728         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
22729         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
22730         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
22731         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
22732         var-tracking.c: Update calls accordingly.
22733
22734 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
22735
22736         PR middle-end/192
22737         PR middle-end/54303
22738         * varasm.c (function_mergeable_rodata_prefix): New function.
22739         (mergeable_string_section): Use it.
22740         (mergeable_constant_section): Use it.
22741
22742 2015-05-07  Jeff Law  <law@redhat.com>
22743
22744         PR target/39726
22745         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
22746         simplifier to narrow arithmetic.
22747         * generic-match-head.c: (types_match, single_use): New functions.
22748         * gimple-match-head.c: (types_match, single_use): New functions.
22749
22750 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
22751
22752         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
22753         rtx type.
22754
22755 2015-05-07  Richard Biener  <rguenther@suse.de>
22756
22757         PR tree-optimization/66002
22758         * passes.def: Schedule another pass_merge_phi after ifcombine, right
22759         before phiopt.
22760
22761 2015-05-07  Marek Polacek  <polacek@redhat.com>
22762             Martin Uecker  <uecker@eecs.berkeley.edu>
22763
22764         * doc/invoke.texi: Document -fsanitize=bounds-strict.
22765         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
22766         into SANITIZE_NONDEFAULT.
22767         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
22768
22769 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
22770
22771         PR target/66015
22772         * config/alpha/alpha.c (alpha_override_options_after_change): New.
22773         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
22774         (alpha_override_options): Move align_loops, align_jumps and
22775         align_functions handling into alpha_override_options_after_change.
22776
22777 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
22778             Chris Jones  <chrisj@nvidia.com>
22779             Joshua Conner  <jconner@nvidia.com>
22780
22781         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
22782         linking of crtfastmath.o.
22783         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
22784
22785 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
22786
22787         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
22788         (cstore<mode>4_unsigned_imm): New expander.
22789         (cstore<mode>4): Remove empty constraint strings.  Use the new
22790         expanders.
22791
22792 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
22793
22794         PR target/64208
22795         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
22796         alternatives.
22797
22798 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
22799
22800         * config/aarch64/geniterators.sh: Use standard BRE in sed.
22801
22802 2015-05-06  Alan Modra  <amodra@gmail.com>
22803
22804         PR target/66033
22805         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
22806         (UNSPEC_NOP): Define.
22807         (reload_vsx_from_gpr<mode>): Add missing DONE.
22808         (reload_gpr_from_vsx<mode>): Likewise.
22809         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
22810         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
22811
22812 2015-05-06  Christian Bruel  <christian.bruel@st.com>
22813
22814         PR target/66015
22815         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
22816         align_jumps, align_functions into aarch64_override_options_after_change.
22817
22818 2015-05-06  Richard Biener  <rguenther@suse.de>
22819
22820         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
22821         vect_transform_slp_perm_load to check if we support a permutation
22822         for basic-block vectorization.
22823
22824 2015-05-06  Nick Clifton  <nickc@redhat.com>
22825
22826         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
22827         used, even if it is not being used as a frame pointer.
22828
22829 2015-05-05  Jason Merrill  <jason@redhat.com>
22830
22831         * dwarf2out.c (gen_member_die): Don't emit anything for an
22832         anonymous class constructor.
22833
22834 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
22835
22836         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
22837         that it reflects the block structure.
22838         (afdo_propagate_edge): Likewise.
22839         (afdo_calculate_branch_prob): Likewise.
22840         (afdo_annotate_cfg): Likewise.
22841         * cfgcleanup.c (equal_different_set_p): Likewise.
22842         (try_crossjump_to_edge): Likewise.
22843         * cgraph.c (cgraph_node::verify_node): Likewise.
22844         * cgraphunit.c (expand_all_functions): Likewise.
22845         * config/i386/i386.c (ix86_expand_copysign): Likewise.
22846         (exact_dependency_1): Likewise.
22847         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
22848         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
22849         * gensupport.c (process_define_subst): Likewise.
22850         * lto-wrapper.c (merge_and_complain): Likewise.
22851         * tree-if-conv.c (if_convertible_bb_p): Likewise.
22852         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
22853         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
22854         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
22855         * tree-vect-loop.c (vectorizable_reduction): Likewise.
22856         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
22857         * tree-vect-stmts.c (vectorizable_shift): Likewise.
22858         * tree-vrp.c (vrp_finalize): Likewise.
22859         * tree.c (variably_modified_type_p): Likewise.
22860
22861 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
22862
22863         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
22864         on darwin12 and later.
22865         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
22866         file to pass -rdynamic on darwin12 and later.
22867         * config/darwin.opt (rdynamic): Add.
22868
22869 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
22870
22871         * doc/extend.texi (C Extensions): Update menu for moved Variable
22872         Attributes and Type Attributes sections.
22873
22874 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
22875
22876         PR target/65990
22877         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
22878         if rep_8byte stringop strategy was specified for 32-bit target.
22879
22880 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
22881
22882         PR target/65915
22883         * config/i386/i386.md (vector convert to float spltiter): Check for
22884         xmm16+, when splitting scalar float conversion.
22885         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
22886
22887 2015-05-05  Nick Clifton  <nickc@redhat.com>
22888
22889         * config/msp430/msp430-opts.h (enum msp430_regions): New.
22890         * config/msp430/msp430.c (msp430_override_options): Complain if
22891         -mcode-region or -mdata-region is used on a non MSP430X.
22892         (msp430_section_attr): New function.  Checks lower, upper and
22893         either attributes.
22894         (msp430_attribute_table): Add lower, upper and either.
22895         (gen_prefix): New function.  Generates a prefix for a section
22896         name.
22897         (msp430_select_section): New function - handles the choice of
22898         section for an object.  Takes into account memory region
22899         attributes and options.
22900         (msp430_function_section): Use gen_prefix.
22901         (TARGET_SECTION_TYPE_FLAGS): Define.
22902         (msp430_section_type_flags): New function.
22903         (TARGET_ASM_UNIQUE_SECTION): Define.
22904         (msp430_unique_section): New function.
22905         (msp430_output_aligned_decl_common): New function.
22906         (msp430_do_not_relax_short_jumps): New function.
22907         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
22908         Define.
22909         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
22910         * config/msp430/msp430-protos.h
22911         (msp430_do_not_relax_short_jumps): New prototype.
22912         (msp430_output_aligned_decl_common): New prototype.
22913         * config/msp430/msp430.md (length): New attribute.
22914         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
22915         then use a long code sequence for short jumps.
22916         * config/msp430/msp430.opt (mcode-region): New.
22917         (mdata-region): New.
22918         * doc/invoke.texi: Document new options.
22919         * doc/extend.texi: Document new attributes.
22920
22921 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
22922
22923         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
22924         (tune_params): Add field branch_costs.
22925         (aarch64_branch_cost): Declare.
22926         * gcc/config/aarch64.c (generic_branch_cost): New.
22927         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
22928         (cortexa53_tunings): Likewise.
22929         (cortexa57_tunings): Likewise.
22930         (thunderx_tunings): Likewise.
22931         (xgene1_tunings): Likewise.
22932         (aarch64_branch_cost): Define.
22933         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
22934
22935 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
22936
22937         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
22938         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
22939         * config/i386/i386.md: Ditto.
22940         * config/i386/winnt.c: Ditto.
22941
22942 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
22943
22944         * doc/extend.texi (__atomic Builtins): Move implementation details
22945         to the end of the description, rewrite opening paragraphs, state
22946         difference with __sync builtins, state C11/C++11 assumptions,
22947         weaken itemized descriptions, add explanation of memory model
22948         behaviour, expand description of compare-exchange, simplify text.
22949
22950 2015-05-05  Renlin Li  <renlin.li@arm.com>
22951
22952         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
22953
22954 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
22955
22956         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
22957         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
22958         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
22959         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
22960         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
22961         * configure: Regenerate.
22962         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
22963         * doc/install.texi (aarch64*-*-*): Document new
22964         --enable-fix-cortex-a53-843419 option.
22965         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
22966         and -mno-fix-cortex-a53-843419 options.
22967
22968 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
22969
22970         PR target/65871
22971         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
22972
22973 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
22974
22975         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
22976         fix overactive TYPE_MIN_VALUE check and add FIXME for type
22977         compatibility problems.
22978
22979 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
22980
22981         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
22982         constraints.
22983         (cbranchsi4_reg): New.
22984         * config/microblaze/microblaze.c
22985         (microblaze_expand_conditional_branch_reg): New.
22986         * config/microblaze/microblaze-protos.h
22987         (microblaze_expand_conditional_branch_reg): New prototype.
22988
22989 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
22990
22991         * config/microblaze/microblaze.md (peephole2): New.
22992
22993 2015-05-04  Jeff Law  <law@redhat.com>
22994
22995         Revert:
22996         2015-05-04  Jeff Law  <law@redhat.com>
22997
22998         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
22999         simplifier to narrow arithmetic.
23000         * generic-match-head.c: (types_match, single_use): New functions.
23001         * gimple-match-head.c: (types_match, single_use): New functions.
23002
23003 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
23004
23005         PR target/65987
23006         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
23007         (split_branches): Likewise.
23008
23009 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
23010
23011         * common.opt (fdelete-null-pointer-checks): Init to -1.
23012         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
23013         override flag_delete_null_pointer_checks default.
23014         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
23015         behavior re address zero.  Better document target-specific behavior.
23016         (-fisolate-errneous-paths-dereference): Mention relationship to
23017         -fdelete-null-pointer-checks.
23018
23019 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
23020
23021         PR tree-optimization/65984
23022         * ubsan.c: Include tree-cfg.h.
23023         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
23024         stmt_could_throw_p test, rename can_throw variable to ends_bb.
23025
23026 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
23027
23028         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
23029         to CONST_DOUBLE_P predicate.
23030         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
23031         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
23032         allow only operands that satisfy standard_sse_constant_p predicate.
23033         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
23034         to CONST_DOUBLE_P predicate.
23035
23036 2015-05-04  Jeff Law  <law@redhat.com>
23037
23038         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
23039         simplifier to narrow arithmetic.
23040         * generic-match-head.c: (types_match, single_use): New functions.
23041         * gimple-match-head.c: (types_match, single_use): New functions.
23042
23043 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
23044
23045         * config/arm/arm.c: Restore bootstrap.
23046
23047 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
23048
23049         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
23050         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
23051         as CONST_WIDE_INT, not CONST_DOUBLE.
23052         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
23053         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
23054         (ix86_find_base_term): Do not check for CONST_DOUBLE.
23055         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
23056         (ix86_build_signbit_mask): Rewrite using wide ints.
23057         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
23058         (ix86_rtx_costs): Handle CONST_WIDE_INT.
23059         (find_constant): Ditto.
23060         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
23061         using gen_int_mode.
23062         * config/i386/predicates.md (x86_64_immediate_operand)
23063         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
23064         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
23065         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
23066         (const0_operand): Also match const_wide_int.
23067         (constm1_operand): Ditto.
23068         (const1_operand): Ditto.
23069
23070 2015-05-04  Richard Biener  <rguenther@suse.de>
23071
23072         PR tree-optimization/65965
23073         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
23074         store groups at gaps.
23075
23076 2015-05-04  Richard Biener  <rguenther@suse.de>
23077
23078         PR tree-optimization/65935
23079         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
23080         then make sure to apply that swapping to the IL.
23081
23082 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
23083
23084         * Makefile.in (PATCHLEVEL_c): New variable.
23085         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
23086         expand the same way as if DEVPHASE_c was non-empty.
23087
23088 2015-05-04  Kai Tietz  <ktietz@redhat.com>
23089
23090         PR target/65559
23091         * lto-wrapper.c (run_gcc): Open filename
23092         in binary-mode.
23093
23094 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
23095
23096         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
23097         sections up in file, to immediately after the Function Attributes
23098         section.
23099
23100 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
23101
23102         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
23103
23104 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23105
23106         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
23107         (insert_partition_copy_on_edge): Adjust.
23108         (insert_rtx_to_part_on_edge): Likewise.
23109         (insert_part_to_rtx_on_edge): Likewise.
23110
23111 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23112
23113         * function.c (set_return_jump_label): Change type of argument to
23114         rtx_insn *.
23115         * function.h (set_return_jump_label): Adjust.
23116
23117 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23118
23119         * reload.h (struct reg_equivs_t): Change type of init to
23120         rtx_insn *.
23121         * ira.c (fix_reg_equiv_init): Adjust.
23122         * reload1.c (eliminate_regs_1): Likewise.
23123         (init_eliminable_invariants): Likewise.
23124
23125 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23126
23127         * cselib.c (fp_setter_insn): Take a rtx_insn *.
23128         * cselib.h (fp_setter_insn): Adjust.
23129
23130 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23131
23132         * recog.c (struct validate_replace_src_data): Change type of
23133         insn field to rtx_insn *.
23134         (validate_replace_src_group): Change type of argument to rtx_insn *.
23135         * recog.h (validate_replace_src_group): Adjust.
23136
23137 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23138
23139         * haifa-sched.c: Change the type of some variables to rtx_insn *.
23140         * sched-deps.c: Likewise.
23141         * sched-int.h: Likewise.
23142         * sched-rgn.c: Likewise.
23143         * sel-sched.c: Likewise.
23144
23145 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23146
23147         to rtx_insn *.
23148         * config/i386/i386.c: Change the type of some arguments to
23149         rtx_insn *.
23150         * config/arm/arm.c: Likewise.
23151
23152 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23153
23154         * lra-constraints.c: Change type of some arguments to rtx_insn *.
23155
23156 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23157
23158         * regcprop.c (kill_autoinc_value): Change type of argument to
23159         rtx_insn *.
23160
23161 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23162
23163         * genrecog.c (print_subroutine): Adjust.
23164         * recog.c (get_bool_attr_mask_uncached): Likewise.
23165         * recog.h (struct recog_data_d): Change the type of insn to
23166         rtx_insn *.
23167
23168 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23169
23170         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
23171
23172 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23173
23174         * df-problems.c (df_set_note): Change type of argument to
23175         rtx_insn *.
23176
23177 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23178
23179         * builtins.c (expand_builtin_trap): Change type of local
23180         variable to rtx_insn *.
23181         (add_sched_insns_for_speculation): Likewise.
23182         (ix86_emit_save_regs): Likewise.
23183         (get_scratch_register_on_entry): Likewise.
23184         (ix86_emit_restore_reg_using_pop): Likewise.
23185         (ix86_emit_leave): Likewise.
23186         (ix86_emit_restore_regs_using_mov): Likewise.
23187         (ix86_expand_epilogue): Likewise.
23188         Likewise.
23189         (rl78_alloc_physical_registers_umul): Likewise.
23190         * cselib.c (discard_useless_locs): Likewise.
23191         (cselib_invalidate_regno): Likewise.
23192         (cselib_invalidate_mem): Likewise.
23193         * function.c (expand_function_start): Likewise.
23194         (emit_use_return_register_into_block): Likewise.
23195         * gcse.c: Likewise.
23196         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
23197         * ifcvt.c (noce_get_alt_condition): Likewise.
23198         * loop-doloop.c (doloop_condition_get): Likewise.
23199         * lra-constraints.c (inherit_in_ebb): Likewise.
23200         * modulo-sched.c (sms_schedule_by_order): Likewise.
23201         * recog.c (next_insn_tests_no_inequality): Likewise.
23202         * reorg.c (emit_delay_sequence): Likewise.
23203         (update_reg_dead_notes): Likewise.
23204         (fix_reg_dead_note): Likewise.
23205         (fill_slots_from_thread): Likewise.
23206         (delete_computation): Likewise.
23207
23208 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
23209
23210         * doc/extend.texi (Variable Attributes): Add menu and proper
23211         @nodes to subsections.  Move Microsoft Windows attributes to
23212         their own subsection.
23213         (Type Attributes): Reorganize introduction to remove duplicate
23214         list of attributes.  Add menu and proper @nodes to subsections.
23215         Alphabetize the main table of common attributes.
23216
23217 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
23218
23219         * match.pd: New simplification patterns.
23220         (x + (x & 1))  -> ((x + 1) & ~1)
23221         (x & ~(x & y)) -> ((x & ~y))
23222         (x | ~(x | y)) -> ((x | ~y))
23223
23224 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23225
23226         * target.def (attribute_table): Mention that struct attribute_spec
23227         is defined in tree-core.h rather than tree.h
23228         * doc/tm.texi: Regenerate.
23229
23230 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
23231
23232         * genrecog.c (test): Rename to rtx_test.  Update rest of file
23233         accordingly.
23234
23235 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
23236
23237         PR translation/65959
23238         * params.h (DEFPARAM): Rename msgid to nocmsgid.
23239
23240 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23241
23242         * gcc/config/aarch64/aarch64-protos.h (tune_params):
23243         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
23244         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
23245         Return value depending on target.
23246         (generic_tunings): Initialize new target settings.
23247         (cortexa53_tunings): Likewise.
23248         (cortexa57_tunings): Likewise.
23249         (thunderx_tunings): Likewise.
23250         (xgene1_tunings): Likewise.
23251
23252 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23253
23254         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
23255         Make Cortex-A53 shift costs more accurate.
23256
23257 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23258
23259         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
23260         UNSIGNED_FLOAT.
23261
23262 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23263
23264         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
23265         Calculate cost of op0 and op1 in PLUS and MINUS cases.
23266
23267 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23268
23269         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
23270         Add cost of op0 in the compare-with-fpzero case.
23271
23272 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
23273
23274         * builtins.c (fold_builtin_1): Remove spurious second
23275         semicolon.
23276         * cgraph.h (symtab_node::get_availability): Likewise.
23277         * opts.c (common_handle_option): Remove spurious second semicolon.
23278         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
23279         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
23280
23281 2015-04-30  Caroline Tice  <cmtice@google.com>
23282
23283         PR gcov-profile/65929
23284         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
23285         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
23286         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
23287         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
23288         * doc/tm.texi: Regenerate.
23289         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
23290         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
23291         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
23292         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
23293
23294 2015-04-30  Marek Polacek  <polacek@redhat.com>
23295
23296         * varasm.c (handle_cache_entry): Fix logic.
23297
23298 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23299
23300         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
23301         (*extrsi5_insn_uxtw_alt): Likewise.
23302         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
23303         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
23304         operations.
23305
23306 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23307
23308         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
23309         fabd in ABS case.
23310
23311 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23312
23313         * config/aarch64/aarch64.md
23314         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
23315         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
23316         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
23317         appropriately.  Handle alternative EON form.
23318
23319 2015-04-30  Renlin Li  <renlin.li@arm.com>
23320
23321         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
23322         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
23323
23324 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
23325
23326         PR ipa/65873
23327         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
23328         -fstrict-aliasing boundaries.
23329
23330 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23331
23332         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
23333         and [SU]MNEGL patterns.
23334
23335 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23336
23337         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
23338         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
23339         combined arithmetic-shift ops.  Properly handle all shift and extend
23340         operations that can occur in combination with PLUS/MINUS.
23341         Rename maybe_fma to compound_p.
23342         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
23343         arithmetic and shift operations.
23344
23345 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23346
23347         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
23348         rather than arith_shift cost when costing ADD/MINUS of an
23349         extended value.
23350
23351 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
23352
23353         PR lto/65948
23354         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
23355         to itself.
23356
23357 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
23358
23359         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
23360         are for the same position.
23361
23362 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
23363
23364         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
23365         vectorize_loops.
23366         (vectorize_loops): Use it.
23367
23368 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23369
23370         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
23371         for aggregate types.
23372         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
23373         type to be non_ODR.
23374         * tree.c (need_assembler_name_p): Compute mangled name for
23375         non-fundamental types and integer types.
23376
23377 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
23378
23379         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
23380         manual swaps.
23381         * expr.c (expand_expr_real_2): Likewise.
23382
23383 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23384
23385         * tree.c (build_common_builtin_nodes): Do not build
23386         __builtin_alloca_with_align as equivalent of library alloca.
23387
23388 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23389
23390         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
23391         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
23392         bugus variants.
23393         * tree.c: Include print-tree.h and ipa-utils.h
23394         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
23395         (free_lang_data_in_cgraph): Call verify_type.
23396         (verify_type_variant): New function.
23397         (verify_type): New function.
23398         * tree.h (verify_type): Declare.
23399
23400 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
23401
23402         * config/mips/mips-cpus.def: (mips4): Change default processor
23403         from PROCESSOR_R8000 to PROCESSOR_R10000.
23404
23405 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
23406
23407         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
23408         la/jalr instead of jal.
23409
23410 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
23411
23412         PR target/65871
23413         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
23414         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
23415         (setcc+movzbl peephole2): Check also clobbered reg.
23416         (setcc+andl peephole2): Ditto.
23417
23418 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
23419
23420         PR libgomp/65099
23421         * config/nvptx/mkoffload.c (target_ilp32): New variable.
23422         (main): Set it depending on "-foffload-abi=[...]".
23423         (compile_native, main): Use it to pass "-m32" or "-m64" to the
23424         compiler.
23425
23426 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
23427
23428         PR target/65770
23429         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
23430         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
23431         Flip lane index back at assembly time for bigendian.
23432
23433 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
23434
23435         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
23436         * gimplify.c (gimplify_omp_workshare): Use it.
23437
23438 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23439
23440         * Makefile.in (build/genrecog.o): Depend on inchash.h.
23441         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
23442         build/inchash.o
23443         * genrecog.c: Rewrite most of the code except for the third page.
23444
23445 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23446
23447         * inchash.h, inchash.c: Include bconfig.h for build objects.
23448         * Makefile.in (build/inchash.o): New rule.
23449
23450 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
23451
23452         PR target/65924
23453         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
23454         number in type attribute expression.
23455
23456 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23457
23458         * loop-iv.c (canon_condition): Generalize to all types of integer
23459         constant.
23460
23461 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
23462
23463         * gimple-walk.c: Prune duplicate or unneeded includes.
23464         (walk_gimple_asm): Only call parse_input_constraint or
23465         parse_output_constraint if their findings are used.
23466         Honour parse_input_constraint and parse_output_constraint
23467         result.
23468
23469 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
23470
23471         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
23472
23473 2015-04-29  Tom de Vries  <tom@codesourcery.com>
23474
23475         PR tree-optimization/65893
23476         * passes.def (pass_all_optimizations): Move pass_stdarg to after
23477         pass_dce.
23478
23479 2015-04-29  Richard Biener  <rguenther@suse.de>
23480
23481         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
23482         compute GROUP_SIZE for basic-block SLP.
23483         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
23484         take into account gaps.
23485         (vect_get_mask_element): Properly reject references to previous
23486         vectors.
23487         (vect_transform_slp_perm_load): Likewise.
23488
23489 2015-04-29  Christian Bruel  <christian.bruel@st.com>
23490
23491         PR target/64835
23492         * config/i386/i386.c (ix86_default_align): New function.
23493         (ix86_override_options_after_change): Call ix86_default_align.
23494         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
23495         (ix86_override_options_after_change): New function.
23496
23497 2015-04-28  Jeff Law  <law@redhat.com>
23498
23499         * tree-ssa-dom.c (record_equality); Fix comment typos.
23500
23501 2015-04-28  Tom de Vries  <tom@codesourcery.com>
23502
23503         PR tree-optimization/65887
23504         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
23505
23506 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
23507
23508         * doc/extend.texi (Declaring Attributes of Functions): Split into
23509         subsections by target.  Alphabetize the table of common attributes.
23510         Rewrite some of the introductory text to reflect the new structure.
23511         Update some cross-references to point to the new subsections.
23512         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
23513         duplicate copies in the discussion of function, label, and type
23514         attributes.
23515
23516 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
23517
23518         PR bootstrap/65910
23519         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
23520
23521 2015-04-28  Jason Merrill  <jason@redhat.com>
23522
23523         PR c++/65734
23524         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
23525         (finalize_type_size): Respect TYPE_USER_ALIGN.
23526         (layout_type) [ARRAY_TYPE]: Likewise.
23527
23528 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
23529
23530         * config/arm/arm.md (*arm_movt): Fix type attribute.
23531         (*cmpsi_shiftsi): Likewise.
23532         (*cmpsi_shiftsi_swp): Likewise.
23533         (*movsicc_insn): Likewise.
23534         (*cond_move): Likewise.
23535         (*if_plus_move): Likewise.
23536         (*if_move_plus): Likewise.
23537         (*if_arith_move): Likewise.
23538         (*if_move_arith): Likewise.
23539         (*if_shift_move): Likewise.
23540         (*if_move_shift): Likewise.
23541         (*arm_movtas_ze): Likewise.
23542         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
23543         redundancy and type attribute.
23544         (*thumb2_movsi_insn): Fix type attribute.
23545         (*thumb2_addsi_short): Likewise.
23546         (thumb2_addsi3_compare0): Likewise.
23547         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
23548         attributes accordingly.
23549
23550 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
23551
23552         PR other/65911
23553         * function.c (pad_to_arg_alignment): Add parentheses.
23554
23555 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
23556
23557         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
23558         libgcc/config/frv/elf-lib.h.
23559
23560 2015-04-28  Tom de Vries  <tom@codesourcery.com>
23561
23562         * tree-call-cdce.c: Fix example in header comment.
23563
23564 2015-04-28  Richard Biener  <rguenther@suse.de>
23565
23566         PR tree-optimization/62283
23567         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
23568         fails fatally and we are vectorizing a basic-block simply
23569         cause the child to be constructed piecewise.
23570         (vect_analyze_slp_cost_1): Adjust.
23571         (vect_detect_hybrid_slp_stmts): Likewise.
23572         (vect_bb_slp_scalar_cost): Likewise.
23573         (vect_get_constant_vectors): For piecewise constructed
23574         constants place them after the last def.
23575         (vect_get_slp_defs): Adjust.
23576         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
23577         externals for basic-block vectorization.
23578
23579 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23580
23581         PR target/63503
23582         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
23583         aarch64-*-*.
23584         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
23585         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
23586         (AARCH64_TUNE_FMA_STEERING): Likewise.
23587         * config/aarch64/aarch64-cores.def: Set
23588         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
23589         FMUL/FMADD instructions.
23590         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
23591         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
23592         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
23593         * config/aarch64/cortex-a57-fma-steering.h: New file.
23594         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
23595
23596 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
23597
23598         * gensupport.c (std_preds): Add missing codes to address_operand entry.
23599
23600 2015-04-28  Richard Biener  <rguenther@suse.de>
23601
23602         PR tree-optimization/65851
23603         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
23604         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
23605         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
23606         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
23607         (ccp_visit_phi_node): Adjust.
23608         (evaluate_stmt): For simplifications to SSA names return its
23609         lattice value if that isn't VARYING.  Return immediately when
23610         simplified to a constant.
23611         (visit_assignment): Adjust.
23612         (ccp_visit_stmt): Likewise.
23613
23614 2015-04-28  Tom de Vries  <tom@codesourcery.com>
23615
23616         PR tree-optimization/65818
23617         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
23618         evaluated.
23619
23620 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23621
23622         * calls.c (save_fixed_argument_area): Don't check
23623         ARGS_GROW_DOWNWARD with the preprocessor.
23624         (restore_fixed_argument_area): Likewise.
23625         (mem_overlaps_already_clobbered_arg_p): Likewise.
23626         (check_sibcall_argument_overlap): Likewise.
23627         (expand_call): Likewise.
23628         (emit_library_call_value_1): Likewise.
23629         (store_one_arg): Likewise.
23630         * function.c (assign_parms): Likewise.
23631         (locate_and_pad_parm): Likewise.
23632         (pad_to_arg_alignment): Likewise.
23633         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
23634
23635 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23636
23637         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
23638         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
23639         * calls.c (save_fixed_argument_area): Don't chekc if
23640         ARGS_GROW_DOWNWARD is defined.
23641         (restore_fixed_argument_area): Likewise.
23642         (mem_overlaps_already_clobbered_arg_p): Likewise.
23643         (check_sibcall_argument_overlap): Likewise.
23644         (expand_call): Likewise.
23645         (emit_library_call_value_1): Likewise.
23646         (store_one_arg): Likewise.
23647         * function.c (assign_parms): Likewise.
23648         (locate_and_pad_parm): Likewise.
23649         (pad_to_arg_alignment): Likewise.
23650         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
23651
23652 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23653
23654         * defaults.h (gen_epilogue): New function.
23655         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
23656         defined.
23657         * cfgrtl.c (cfg_layout_finalize): Likewise.
23658         * df-scan.c: Likewise.
23659         * function.c (thread_prologue_and_epilogue_insns): Likewise.
23660         (reposition_prologue_and_epilogue_notes): Likewise.
23661         * reorg.c (find_end_label): Likewise.
23662         * toplev.c: Likewise.
23663
23664 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23665
23666         * bb-reorder.c (HAVE_return): Don't check if its undefined.
23667         * defaults.h (gen_simple_return): New function.
23668         (gen_simple_return): Likewise.
23669         (HAVE_return): Add default definition to false.
23670         (HAVE_simple_return): Likewise.
23671         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
23672         HAVE_return and HAVE_simple_return are defined.
23673         * function.c (gen_return_pattern): Likewise.
23674         (convert_jumps_to_returns): Likewise.
23675         (thread_prologue_and_epilogue_insns): Likewise.
23676         * reorg.c (find_end_label): Likewise.
23677         (dbr_schedule): Likewise.
23678         * shrink-wrap.c: Likewise.
23679         * shrink-wrap.h: Likewise.
23680
23681 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23682
23683         * defaults.h (EPILOGUE_USES): Add default definition of false.
23684         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
23685         * resource.c (init_resource_info): Likewise.
23686
23687 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23688
23689         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
23690         to false.
23691         * dwarf2out.c (field_byte_offset): REmove check if
23692         PCC_BITFIELD_TYPE_MATTERS is defined.
23693         * stor-layout.c (layout_decl): Likewise.
23694         (update_alignment_for_field): Likewise.
23695         (place_field): Likewise.
23696
23697 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23698
23699         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
23700         true.
23701         * regrename.c (check_new_reg_p): Remove check if
23702         HARD_REGNO_RENAME_OK is defined.
23703         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
23704
23705 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23706
23707         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
23708         * cse.c (fold_rtx): Likewise.
23709         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
23710         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
23711         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
23712         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
23713         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
23714         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
23715         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
23716         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
23717         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
23718         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
23719         * Likewise.
23720         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
23721         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
23722         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
23723         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
23724         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
23725         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
23726         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
23727         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
23728         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
23729         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
23730         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
23731         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
23732         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
23733         * doc/tm.texi: Regenerate.
23734         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
23735         either true or false.
23736
23737 2015-04-27  Jeff Law  <law@redhat.com>
23738
23739         PR tree-optimization/65217
23740         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
23741         of them has a single use, make sure it is the LHS of the implied
23742         copy.
23743
23744 2015-04-28  Alan Modra  <amodra@gmail.com>
23745
23746         PR target/65810
23747         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
23748         (offsettable_ok_by_alignment): Use minimum of decl and toc
23749         pointer alignment.  Replace dead code with assertion.
23750         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
23751         case if size exceeds toc pointer alignment.
23752         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
23753         (rs6000_emit_move): Likewise.
23754         * configure.ac: Add linker toc pointer alignment check.
23755         * configure: Regenerate.
23756         * config.in: Regenerate.
23757
23758 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
23759
23760         * config.gcc: Add h8300-*-linux.
23761         * config/h8300/linux.h: New.
23762         * config/h8300/t-linux: New.
23763         * config/h8300/h8300.c (h8300_option_override): Normal mode
23764         is not supported for h8300-*-linux.
23765         (h8300_file_start): Target priority change.
23766         (get_shift_alg): Likewise.
23767         (h8300_shift_need_scratch_p): Likewise.
23768         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
23769         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
23770
23771 2015-04-27  Caroline Tice  <cmtice@google.com>
23772
23773         * final.c (final_scan_insn):  Output cold_function_name as function
23774         type.
23775         * varasm.c (cold_function_name):  Make global.
23776         (assemble_start_function):  Re-set cold_function_name.
23777         (assemble_end_function): Output cold partition size.
23778         * varasm.h (cold_function_name):  Declare global.
23779
23780 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
23781
23782         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
23783         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
23784         constraint.
23785         (*movxi_internal_avx512f): Ditto.
23786         (define_split): Check for xmm16+, when splitting scalar float_extend.
23787         (*extendsfdf2_mixed): Use "v" constraint.
23788         (define_split): Check for xmm16+, when splitting scalar float_truncate.
23789         (*truncdfsf_fast_sse): Use "v" constraint.
23790         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
23791         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
23792         (define_peephole2): Check for xmm16+, when converting scalar
23793         float_truncate.
23794         (define_peephole2): Check for xmm16+, when converting scalar
23795         float_extend.
23796         (*fop_<mode>_comm_mixed): Use "v" constraint.
23797         (*fop_<mode>_comm_sse): Ditto.
23798         (*fop_<mode>_1_mixed): Ditto.
23799         (*sqrt<mode>2_sse): Ditto.
23800         (*ieee_s<ieee_maxmin><mode>3): Ditto.
23801
23802 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23803
23804         * combine.c (simplify_if_then_else): Use std::swap instead
23805         of manually swapping.
23806         (known_cond): Likewise.
23807         (simplify_comparison): Likewise.
23808
23809 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
23810
23811         PR target/64579
23812         * config/rs6000/htm.md: Remove all define_expands.
23813         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
23814         UNSPECV_HTM_TABORTWCI): Remove.
23815         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
23816         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
23817         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
23818         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
23819         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
23820         tabortwci_internal): Remove define_insns.
23821         (tabort<wd>c, tabort<wd>ci): New define_insns.
23822         (tabort): Use gpc_reg_operand.
23823         (tcheck): Remove operand.
23824         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
23825         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
23826         expected value.
23827         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
23828         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
23829         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
23830         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
23831         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
23832         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
23833         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
23834         (tcheck): Remove builtin argument.
23835         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
23836         not TARGET_64BIT.
23837         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
23838         tabortdc and tabortdci builtins when not in 64-bit mode.
23839         Modify code to handle the loss of the HTM define_expands.
23840         Emit code to copy the CR register to TARGET.
23841         (htm_init_builtins): Modify code to handle the loss of the HTM
23842         define_expands.
23843         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
23844         (RS6000_BTC_64BIT): Likewise.
23845         (RS6000_BTC_CR): New macro.
23846         * doc/extend.texi: Update documentation for htm builtins.
23847
23848 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23849
23850         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
23851         of manually swapping.
23852         (simplify_associative_operation): Likewise.
23853         (simplify_binary_operation): Likewise.
23854         (simplify_plus_minus): Likewise.
23855         (simplify_relational_operation): Likewise.
23856         (simplify_ternary_operation): Likewise.
23857
23858 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
23859
23860         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
23861         (xs_hi_nonmemory_operand): Remove error.
23862         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
23863         general_operand rather than xs_hi_general_operand.
23864
23865 2015-04-27  Richard Biener  <rguenther@suse.de>
23866
23867         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
23868         (record_equivalences_from_stmt): Valueize rhs.
23869         (record_equality): Canonicalize x and y order via
23870         tree_swap_operands_p.  Do not swap operands for same loop depth.
23871
23872 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
23873
23874         PR target/65296
23875         PR target/65895
23876         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
23877         Add hint how to use own spec file.
23878
23879 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
23880
23881         PR tree-optimization/65875
23882         * tree-vrp.c (update_value_range): If in is_new case setting
23883         old_vr to VR_VARYING, also set new_vr to it.  Remove
23884         old_vr->type == VR_VARYING test.
23885         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
23886         SSA_PROP_INTERESTING if update_value_range returned true,
23887         but new range is VR_VARYING.
23888
23889 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23890
23891         * combine.c (sign_extend_short_imm): New.
23892         (set_nonzero_bits_and_sign_copies): Use above new function for sign
23893         extension of src short immediate.
23894         (reg_nonzero_bits_for_combine): Likewise for tem.
23895
23896 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
23897
23898         * stor-layout.c (self_referential_component_ref_p): New predicate.
23899         (copy_self_referential_tree_r): Use it.
23900         (self_referential_size): Punt for simple operations directly involving
23901         self-referential component references.
23902         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
23903
23904 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
23905
23906         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
23907
23908 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
23909
23910         * vec.h (vec): Make splice arguments const.  Update definitions
23911         accordingly.
23912
23913 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
23914
23915         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
23916         alternatives.
23917
23918 2015-04-26  Tom de Vries  <tom@codesourcery.com>
23919
23920         PR tree-optimization/65826
23921         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
23922
23923 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
23924
23925         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
23926         (*madd3<mode>): Ditto.
23927         (*msub4<mode>): Ditto.
23928         (*msub3<mode>): Ditto.
23929         (*nmadd4<mode>): Ditto.
23930         (*nmadd3<mode>): Ditto.
23931         (*nmadd4<mode>_fastmath): Ditto.
23932         (*nmadd3<mode>_fastmath): Ditto.
23933         (*nmsub4<mode>): Ditto.
23934         (*nmsub3<mode>): Ditto.
23935         (*nmsub4<mode>_fastmath): Ditto.
23936         (*nmsub3<mode>_fastmath): Ditto.
23937
23938 2015-04-24  Jason Merrill  <jason@redhat.com>
23939
23940         PR c++/50800
23941         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
23942         down when building TYPE_CANONICAL.
23943         (build_pointer_type_for_mode): Likewise.
23944
23945 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
23946
23947         * genrecog.c (validate_pattern): Check matching constraint refers
23948         to a lower numbered operand.
23949
23950 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
23951
23952         PR target/65849
23953         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
23954         save to independent variables use the Save attribute.  This will
23955         allow these options to be modified with the #pragma/attribute
23956         target support.
23957         (-mallow-movmisalign): Likewise.
23958         (-mallow-df-permute): Likewise.
23959         (-msched-groups): Likewise.
23960         (-malways-hint): Likewise.
23961         (-malign-branch-targets): Likewise.
23962         (-mvectorize-builtins): Likewise.
23963         (-msave-toc-indirect): Likewise.
23964
23965         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
23966         can be set via the #pragma/attribute target support.
23967         (rs6000_opt_vars): Likewise.
23968         (rs6000_inner_target_options): If VSX was set, also set
23969         -mno-avoid-indexed-addresses.
23970
23971 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23972
23973         * config/arm/iterators.md (shiftable_ops): Rename to...
23974         (SHIFTABLE_OPS): ... This.  Update use in comments.
23975         (ior_xor): Rename to...
23976         (IOR_XOR): ... This.
23977         (vqh_ops): Rename to...
23978         (VQH_OPS): ... This.
23979         (vqhs_ops): Rename to...
23980         (VQHS_OPS): ... This.
23981         (rshifts): Rename to...
23982         (RSHIFTS): ... This.
23983         (returns): Rename to...
23984         (RETURNS): ... This.
23985         * config/arm/arm.md: Update uses of the above.
23986         * config/arm/neon.md: Likewise.
23987
23988 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23989
23990         * config.host (case ${host}): Add aarch64*-*-linux case.
23991         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
23992         fields to all the cores.
23993         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
23994         Add MCPU_MTUNE_NATIVE_SPECS.
23995         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
23996         field to all extensions.
23997         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
23998         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
23999         Adjust definition of AARCH64_OPT_EXTENSION.
24000         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
24001         (MCPU_MTUNE_NATIVE_SPECS): Define.
24002         * config/aarch64/driver-aarch64.c: New file.
24003         * config/aarch64/x-arch64: New file.
24004         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
24005         -mtune and -march.
24006
24007 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24008             Wei Mi  <wmi@google.com>
24009
24010         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
24011         * config/i386/i386.c (extract_base_offset_in_addr): New function.
24012         (ix86_operands_ok_for_move_multiple): Ditto.
24013         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
24014         (movlpd/movhpd to movupd peephole2): Ditto.
24015
24016 2015-04-24  Marek Polacek  <polacek@redhat.com>
24017
24018         PR c/61534
24019         * input.h (from_macro_expansion_at): Define.
24020
24021         PR c/63357
24022         * doc/invoke.texi: Update description of -Wlogical-op.
24023
24024 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24025
24026         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
24027         ternary operator in fprintf and harmonize spacing.
24028
24029 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24030
24031         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
24032         Mark operand1 commutative.
24033
24034 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24035
24036         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
24037         input operands in memory.
24038         (*vec_concatv2si_sse4_1): Ditto.
24039         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
24040         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
24041         register_operand.
24042         (vec_extract_hi_v32hi): Ditto.
24043         (vec_extract_hi_v64hi): Ditto.
24044         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
24045
24046 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24047             Steven Bosscher <steven@gcc.gnu.org>
24048
24049         PR rtl-optimization/34503
24050         * cprop.c (cprop_reg_p): New.
24051         (hash_scan_set): Use above function to check if register can be
24052         propagated.
24053         (find_avail_set): Return up to two sets, one whose source is a
24054         register and one whose source is a constant.  Sets are returned in an
24055         array passed as parameter rather than as a return value.
24056         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
24057         sets returned by find_avail_set, starting with the one whose source is
24058         a constant. Use cprop_reg_p to check if register can be propagated.
24059         (do_local_cprop): Use cprop_reg_p to check if register can be
24060         propagated.
24061         (implicit_set_cond_p): Likewise.
24062
24063 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24064
24065         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
24066         (sem_function::equals): IGNORED_NODES parameter is now unused;
24067         update call of equals_private.
24068         (sem_function::equals_private): Do not call equals_wpa; skip
24069         gimple body matching if there is no body.
24070         (sem_function::init): Add logic to hash tthunk info.
24071         (sem_function::parse): Also parse thunks.
24072         * ipa-icf.h (equals_private): Update declaration.
24073
24074 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24075
24076         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
24077         asterisk from name so this can be generated directly.
24078         (*altivec_stvx_<mode>_internal): Likewise.
24079         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
24080         that this is never called during or after reload/lra.
24081         (rs6000_frame_related): Remove split_reg
24082         argument and logic that references it.
24083         (emit_frame_save): Remove last parameter from call to
24084         rs6000_frame_related.
24085         (rs6000_emit_prologue): Remove last parameter from eight calls to
24086         rs6000_frame_related.  Force generation of stvx instruction for
24087         Altivec register saves.  Remove split_reg handling, which is no
24088         longer needed.
24089         (rs6000_emit_epilogue):  Force generation of lvx instruction for
24090         Altivec register restores.
24091
24092 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24093
24094         * config/rs6000/rs6000.opt (mcrypto): Change option description to
24095         match category changes in ISA 2.07B.
24096
24097 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24098
24099         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
24100         iterators.
24101         (cmp_op, cmp_type): New code attributes.
24102         (NEON_VCMP, NEON_VACMP): New int iterators.
24103         (cmp_op_unsp): New int attribute.
24104         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
24105         (neon_vceq<mode>): Delete.
24106         (neon_vc<cmp_op><mode>_insn): New pattern.
24107         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
24108         (neon_vcgeu<mode>): Delete.
24109         (neon_vcle<mode>): Likewise.
24110         (neon_vclt<mode>: Likewise.
24111         (neon_vcage<mode>): Likewise.
24112         (neon_vcagt<mode>): Likewise.
24113         (neon_vca<cmp_op><mode>): New define_expand.
24114         (neon_vca<cmp_op><mode>_insn): New pattern.
24115         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
24116
24117 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24118
24119         * tree.h (attribute_value_equal): Declare.
24120         * tree.c (attribute_value_equal): Export.
24121
24122 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24123
24124         * ipa-icf.c (sem_item::compare_attributes): New function.
24125         (sem_item::compare_referenced_symbol_properties): Compare variable
24126         attributes.
24127         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
24128         (sem_function::param_used_p): New function.
24129         (sem_function::equals_wpa): Fix attribute comparsion; match
24130         parameter type codes; do not compare paremter flags when
24131         they are not used; compare edge flags; compare indirect calls.
24132         (sem_item::update_hash_by_addr_refs): Hash reference type.
24133         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
24134         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
24135         reference use type.
24136         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
24137         * ipa-icf.h (compare_attributes, param_used_p): Declare.
24138
24139 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24140
24141         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
24142         cleanup.
24143         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
24144         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
24145         (sem_item::compare_referenced_symbol_properties): New.
24146         (sem_item::hash_referenced_symbol_properties): New.
24147         (sem_item::compare_cgraph_references): Rename to ...
24148         (sem_item::compare_symbol_references): ... this one; use
24149         compare_referenced_symbol_properties.
24150         (sem_function::equals_wpa): Do not compare
24151         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
24152         DECL_IS_OPERATOR_NEW; compare pointer sizes.
24153         (sem_item::update_hash_by_addr_refs): Call
24154         hash_referenced_symbol_properties.
24155         (sem_item::update_hash_by_local_refs): Cleanup.
24156         (sem_function::merge): Do not mix up symbol properties.
24157         (sem_variable::equals_wpa): Use compare_symbol_references.
24158         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
24159         (sem_item::hash_referenced_symbol_properties): New.
24160         (sem_item::compare_symbol_references): New.
24161         (sem_item::compare_cgraph_references): Remove.
24162
24163 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
24164
24165         PR target/26702
24166         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
24167         Emit size of local.
24168
24169 2015-04-23  Nick Clifton  <nickc@redhat.com>
24170
24171         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
24172         ATTRIBUTE_UNUSED to x parameter.
24173         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
24174
24175 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24176
24177         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
24178         TARGET_CRYPTO to TARGET_P8_VECTOR>
24179         (crypto_vpermxor_<mode>): Likewise.
24180         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
24181         (BU_CRYPTO_3A): Likewise.
24182         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
24183         (BU_CRYPTO_OVERLOAD_3A): New #define.
24184         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
24185         (VPMSUMH): Likewise.
24186         (VPMSUMW): Likewise.
24187         (VPMSUMD): Likewise.
24188         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
24189         (VPERMXOR_V4SI): Likewise.
24190         (VPERMXOR_V8HI): Likewise.
24191         (VPERMXOR_V16QI): Likewise.
24192         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
24193         BU_CRYPTO_OVERLOAD_2A.
24194         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
24195         BU_CRYPTO_OVERLOAD_3A.
24196         * config/rs6000/rs6000.opt (mcrypto): Change description of
24197         option.
24198
24199 2015-04-23  Richard Biener  <rguenther@suse.de>
24200
24201         * passes.def: Remove copy propagation passes run directly after CCP.
24202         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
24203         SSA names.
24204         (ccp_visit_phi_node): Rework to handle first executable edge
24205         specially.
24206
24207 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
24208
24209         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
24210         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
24211         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
24212         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
24213         (thumb_legimitimize_reload_address): Remove.
24214         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
24215         Remove.
24216         (thumb_legimitimize_reload_address): Remove.
24217
24218 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24219
24220         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
24221
24222 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24223
24224         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
24225         MAX_LDM_STM_OPS.
24226         (store_multiple): Likewise.
24227
24228 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24229
24230         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
24231         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
24232         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
24233         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
24234         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
24235         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
24236         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
24237         Specify issue_rate value.
24238         (arm_issue_rate): Look up issue rate from tuning structs. Remove
24239         large switch statement.
24240         (arm_marvell_pj4_tune): New struct.
24241         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
24242         struct.
24243
24244 2015-04-23  Richard Biener  <rguenther@suse.de>
24245
24246         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
24247         (vect_find_last_store_in_slp_instance): Rename to ...
24248         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
24249         (vect_analyze_slp_cost_1): Use vector_load for constant defs
24250         and vec_construct for external defs when estimating prologue cost.
24251         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
24252         Compute costs here only when vectorizing loops.
24253         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
24254         have been determined.
24255         (vect_schedule_slp_instance): Simplify vectorized code placement
24256         and prepare for in-BB external defs.
24257         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
24258         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
24259         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
24260         guard.
24261         (vect_model_load_cost): Likewise.
24262         (vectorizable_store): Instead add it here.
24263         (vectorizable_load): Likewise.
24264         (vect_is_simple_use): Dump def type textually.
24265
24266 2015-04-23  Richard Biener  <rguenther@suse.de>
24267
24268         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
24269         * cfgloop.c (verify_loop_structure): Verify the root loop node.
24270         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
24271         instead of get_eh_region_from_lp_number.
24272         * loop-init.c (fix_loop_structure): If we removed a loop, reset
24273         the SCEV cache.
24274
24275 2015-04-23  Anton Blanchard  <anton@samba.org>
24276
24277         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
24278         need for -mprofile-kernel to save LR to stack.
24279
24280 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24281
24282         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
24283         adjustments.
24284         (insn_is_swappable_p): Return 1 for a convert from double to
24285         single precision when all of its uses are splats of BE element
24286         zero.
24287
24288 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
24289
24290         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
24291
24292 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24293
24294         PR target/65456
24295         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
24296         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
24297         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
24298         option.
24299         (rs6000_builtin_mask_for_load): Return 0 for targets with
24300         efficient unaligned VSX accesses so that the vectorizer will use
24301         direct unaligned loads.
24302         (rs6000_builtin_support_vector_misalignment): Always return true
24303         for targets with efficient unaligned VSX accesses.
24304         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
24305         stores on targets with efficient unaligned VSX accesses is almost
24306         always the same as the cost of an aligned load or store, so model
24307         it that way.
24308         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
24309         unaligned vectors if we have efficient unaligned VSX accesses.
24310         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
24311         undocumented option.
24312
24313 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24314
24315         Revert:
24316         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
24317
24318         * config.gcc (LIBC_MUSL): New tm_defines macro.
24319         * config/linux.h (OPTION_MUSL): Define.
24320         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
24321         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
24322         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
24323
24324         * config/linux.opt (mmusl): New option.
24325         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
24326         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
24327
24328         * configure: Regenerate.
24329
24330 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
24331
24332         * config.gcc (LIBC_MUSL): New tm_defines macro.
24333         * config/linux.h (OPTION_MUSL): Define.
24334         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
24335         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
24336         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
24337
24338         * config/linux.opt (mmusl): New option.
24339         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
24340         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
24341
24342         * configure: Regenerate.
24343
24344 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
24345
24346         * doc/invoke.texi (-fsanitize-sections): Update description.
24347         * asan.c (set_sanitized_sections): Parse incoming arg.
24348         (section_sanitized_p): Support wildcards.
24349
24350 2015-04-22  Tom de Vries  <tom@codesourcery.com>
24351
24352         PR tree-optimization/65823
24353         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
24354         equality between ap_copy and ap.
24355
24356 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24357
24358         PR target/47098
24359         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
24360
24361 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24362
24363         PR target/47122
24364         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
24365
24366 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24367
24368         PR target/55144
24369         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
24370         remove already contained t-files.
24371
24372 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24373
24374         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
24375         Remove unneeded forward declarations.
24376         (suitable_for_tail_call_opt_p): Commentary typo fix.
24377
24378 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24379
24380         * varasm.c (emit_bss): Remove redundant guard.
24381
24382 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24383
24384         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
24385
24386 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24387
24388         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
24389
24390 2015-04-22  Hale Wang  <hale.wang@arm.com>
24391             Terry Guo  <terry.guo@arm.com>
24392
24393         PR rtl-optimization/64818
24394         * combine.c (can_combine_p): Don't combine user-specified
24395         register if it is in an asm input.
24396
24397 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
24398
24399         PR ipa/65076
24400         * passes.def (early_optimizations): Add pass_dse.
24401
24402 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24403
24404         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
24405         * reorg.c (redundant_insn): Remove ifdef
24406         INSN_REFERENCES_ARE_DELAYED.
24407         * resource.c (mark_referenced_resources): Likewise.
24408
24409 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24410
24411         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
24412         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
24413         * resource.c (mark_set_resources): Likewise.
24414
24415 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24416
24417         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
24418         * cfgcleanup.c (flow_find_cross_jump): Likewise.
24419         (flow_find_head_matching_sequence): Likewise.
24420         (try_head_merge_bb): Likewise.
24421         * combine.c (can_combine_p): Likewise.
24422         (try_combine): Likewise.
24423         (distribute_notes): Likewise.
24424         * df-problems.c (can_move_insns_across): Likewise.
24425         * final.c (final): Likewise.
24426         * gcse.c (insert_insn_end_basic_block): Likewise.
24427         * ira.c (find_moveable_pseudos): Likewise.
24428         * reorg.c (try_merge_delay_insns): Likewise.
24429         (fill_simple_delay_slots): Likewise.
24430         (fill_slots_from_thread): Likewise.
24431         * sched-deps.c (sched_analyze_2): Likewise.
24432
24433 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24434
24435         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
24436         PIC_OFFSET_TABLE_REGNUM.
24437
24438 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24439
24440         * alias.c (init_alias_target): Remove ifdef
24441         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
24442         * df-scan.c (df_insn_refs_collect): Likewise.
24443         (df_get_regular_block_artificial_uses): Likewise.
24444         (df_get_eh_block_artificial_uses): Likewise.
24445         (df_get_entry_block_def_set): Likewise.
24446         (df_get_exit_block_use_set): Likewise.
24447         * emit-rtl.c (gen_rtx_REG): Likewise.
24448         * ira.c (ira_setup_eliminable_regset): Likewise.
24449         * reginfo.c (init_reg_sets_1): Likewise.
24450         * regrename.c (rename_chains): Likewise.
24451         * reload1.c (reload): Likewise.
24452         (eliminate_regs_in_insn): Likewise.
24453         * resource.c (mark_referenced_resources): Likewise.
24454         (init_resource_info): Likewise.
24455
24456 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24457
24458         * defaults.h (MASK_RETURN_ADDR): New definition.
24459         * except.c (expand_builtin_extract_return_addr): Remove ifdef
24460         MASK_RETURN_ADDR.
24461
24462 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24463
24464         * defaults.h (RETURN_ADDR_OFFSET): New definition.
24465         * except.c (expand_builtin_extract_return_addr): Remove ifdef
24466         RETURN_ADDR_OFFSET.
24467         (expand_builtin_frob_return_addr): Likewise.
24468
24469 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24470
24471         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
24472         (try_redirect_by_replacing_jump): Likewise.
24473         (rtl_tidy_fallthru_edge): Likewise.
24474         * combine.c (insn_a_feeds_b): Likewise.
24475         (find_split_point): Likewise.
24476         (simplify_set): Likewise.
24477         * cprop.c (cprop_jump): Likewise.
24478         * cse.c (cse_extended_basic_block): Likewise.
24479         * df-problems.c (can_move_insns_across): Likewise.
24480         * function.c (emit_use_return_register_into_block): Likewise.
24481         * haifa-sched.c (sched_init): Likewise.
24482         * ira.c (find_moveable_pseudos): Likewise.
24483         * loop-invariant.c (find_invariant_insn): Likewise.
24484         * lra-constraints.c (curr_insn_transform): Likewise.
24485         * postreload.c (reload_combine_recognize_const_pattern):
24486         * Likewise.
24487         * reload.c (find_reloads): Likewise.
24488         * reorg.c (delete_scheduled_jump): Likewise.
24489         (steal_delay_list_from_target): Likewise.
24490         (steal_delay_list_from_fallthrough): Likewise.
24491         (redundant_insn): Likewise.
24492         (fill_simple_delay_slots): Likewise.
24493         (fill_slots_from_thread): Likewise.
24494         (delete_computation): Likewise.
24495         * sched-rgn.c (add_branch_dependences): Likewise.
24496
24497 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24498
24499         * genconfig.c (main): Always define HAVE_cc0.
24500         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
24501         HAVE_cc0.
24502         * cfgcleanup.c (flow_find_cross_jump): Likewise.
24503         (flow_find_head_matching_sequence): Likewise.
24504         (try_head_merge_bb): Likewise.
24505         * cfgrtl.c (rtl_merge_blocks): Likewise.
24506         (try_redirect_by_replacing_jump): Likewise.
24507         (rtl_tidy_fallthru_edge): Likewise.
24508         * combine.c (do_SUBST_MODE): Likewise.
24509         (insn_a_feeds_b): Likewise.
24510         (combine_instructions): Likewise.
24511         (can_combine_p): Likewise.
24512         (try_combine): Likewise.
24513         (find_split_point): Likewise.
24514         (subst): Likewise.
24515         (simplify_set): Likewise.
24516         (distribute_notes): Likewise.
24517         * cprop.c (cprop_jump): Likewise.
24518         * cse.c (cse_extended_basic_block): Likewise.
24519         * df-problems.c (can_move_insns_across): Likewise.
24520         * final.c (final): Likewise.
24521         (final_scan_insn): Likewise.
24522         * function.c (emit_use_return_register_into_block): Likewise.
24523         * gcse.c (insert_insn_end_basic_block): Likewise.
24524         * haifa-sched.c (sched_init): Likewise.
24525         * ira.c (find_moveable_pseudos): Likewise.
24526         * loop-invariant.c (find_invariant_insn): Likewise.
24527         * lra-constraints.c (curr_insn_transform): Likewise.
24528         * optabs.c (prepare_cmp_insn): Likewise.
24529         * postreload.c (reload_combine_recognize_const_pattern):
24530         * Likewise.
24531         * reload.c (find_reloads): Likewise.
24532         (find_reloads_address_1): Likewise.
24533         * reorg.c (delete_scheduled_jump): Likewise.
24534         (steal_delay_list_from_target): Likewise.
24535         (steal_delay_list_from_fallthrough): Likewise.
24536         (try_merge_delay_insns): Likewise.
24537         (redundant_insn): Likewise.
24538         (fill_simple_delay_slots): Likewise.
24539         (fill_slots_from_thread): Likewise.
24540         (delete_computation): Likewise.
24541         (relax_delay_slots): Likewise.
24542         * sched-deps.c (sched_analyze_2): Likewise.
24543         * sched-rgn.c (add_branch_dependences): Likewise.
24544
24545 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24546
24547         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
24548         that is trivially ded on non cc0 targets.
24549         (simplify_set): Likewise.
24550         (mark_used_regs_combine): Likewise.
24551         * cse.c (new_basic_block): Likewise.
24552         (fold_rtx): Likewise.
24553         (cse_insn): Likewise.
24554         (cse_extended_basic_block): Likewise.
24555         (set_live_p): Likewise.
24556         * rtlanal.c (canonicalize_condition): Likewise.
24557         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
24558
24559 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24560
24561         * conditions.h: Define macros even if HAVE_cc0 is undefined.
24562         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
24563         * final.c: Likewise.
24564         * jump.c: Likewise.
24565         * recog.c: Likewise.
24566         * recog.h: Declare functions even when HAVE_cc0 is undefined.
24567         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
24568
24569 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24570
24571         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
24572         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
24573         * builtins.c (expand_builtin): Remove check if
24574         EH_RETURN_DATA_REGNO is defined.
24575         * df-scan.c (df_bb_refs_collect): Likewise.
24576         (df_get_exit_block_use_set): Likewise.
24577         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
24578         * ira-lives.c (process_bb_node_lives): Likewise.
24579         * lra-lives.c (process_bb_lives): Likewise.
24580
24581 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
24582
24583         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
24584         FIRST_PSEUDO_REG): New.
24585         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
24586         (ARG_POINTER_REGNUM): Define to ARGP_REG.
24587         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
24588         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
24589         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
24590         (FIRST_INT_REG): New.
24591         (LAST_INT_REG): New.
24592         (FIRST_*_REG): Define using *_REG.
24593         (LAST_*_REG): Ditto.
24594         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
24595         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
24596         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
24597
24598 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24599
24600         * expmed.c: (synth_mult): Only assume overlapping
24601         shift with previous steps in alg_sub_t_m2 case.
24602
24603 2015-04-21  Richard Biener  <rguenther@suse.de>
24604
24605         PR tree-optimization/65650
24606         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
24607         transitions involving copies.
24608         (set_lattice_value): Adjust for copy lattice state.
24609         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
24610         if that doesn't dominate the merge point.
24611         (bit_value_unop): Adjust what we treat as varying mask.
24612         (bit_value_binop): Likewise.
24613         (bit_value_assume_aligned): Likewise.
24614         (evaluate_stmt): When we simplified to a SSA name record a copy
24615         instead of dropping to varying.
24616         (visit_assignment): Simplify.
24617
24618         * gimple-match.h (gimple_simplify): Add another callback.
24619         * gimple-fold.c (fold_stmt_1): Adjust caller.
24620         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
24621         for the 2nd callback.
24622         * gimple-match-head.c (gimple_simplify): Add a callback that is
24623         used to valueize the stmt operands and use it that way.
24624
24625 2015-04-21  Richard Biener  <rguenther@suse.de>
24626
24627         PR tree-optimization/65788
24628         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
24629
24630 2015-04-21  Richard Biener  <rguenther@suse.de>
24631
24632         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
24633         vec_construct cost by vec_stmt_cost.
24634
24635 2015-04-21  Richard Biener  <rguenther@suse.de>
24636
24637         * cfghooks.h (create_basic_block): Replace with two overloads
24638         for RTL and GIMPLE.
24639         (split_block): Likewise.
24640         * cfghooks.c (split_block): Rename to ...
24641         (split_block_1): ... this.
24642         (split_block): Add two type-safe overloads for RTL and GIMPLE.
24643         (split_block_after_labels): Call split_block_1.
24644         (create_basic_block): Rename to ...
24645         (create_basic_block_1): ... this.
24646         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
24647         (create_empty_bb): Call create_basic_block_1.
24648         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
24649         split_block_after_labels.
24650         * omp-low.c (expand_parallel_call): Likewise.
24651         (expand_omp_target): Likewise.
24652         (simd_clone_adjust): Likewise.
24653         * tree-chkp.c (chkp_get_entry_block): Likewise.
24654         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
24655         create_basic_block overload.
24656         (cgraph_node::expand_thunk): Likewise.
24657         * tree-cfg.c (make_blocks): Likewise.
24658         (handle_abnormal_edges): Likewise.
24659         * tree-inline.c (copy_bb): Likewise.
24660
24661 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24662
24663         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
24664         New pattern.
24665         (*xor_one_cmplsidi3_ze): Likewise.
24666
24667 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24668
24669         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
24670         use df_remove_problem rather than manually removing problems, leaving
24671         holes in df->problems_in_order[].
24672
24673 2015-04-21  Tom de Vries  <tom@codesourcery.com>
24674
24675         PR tree-optimization/65802
24676         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
24677
24678 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24679
24680         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
24681         Increase to 128.
24682         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
24683         at '.'.  Assert that there's enough space for everything.
24684
24685 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
24686
24687         PR tree-optimization/64950
24688         Revert:
24689         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
24690
24691         PR target/41089
24692         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
24693         as volatile.
24694
24695 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
24696
24697         PR rtl-optimization/64916
24698         * cfgcleanup.c (values_equal_p): New function.
24699         (can_replace_by): Use it.
24700
24701 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
24702
24703         PR c++/65801
24704         * doc/invoke.texi ([-Wnarrowing]): Update.
24705
24706 2015-04-20  Jeff Law  <law@redhat.com>
24707
24708         PR tree-optimization/65658
24709         * tree-ssa-threadupdate.c (redirection_block_p): Remove
24710         redundant test for GIMPLE_ASSIGN in last change.
24711
24712 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
24713
24714         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
24715         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
24716         (legitimize_tls_address): Ditto.
24717         (ix86_expand_move): Ditto.
24718         (ix86_expand_binary_operator): Remove reload_in_progress checks.
24719         (ix86_expand_unary_operator): Ditto.
24720         * config/i386/predicates.md (index_register_operand): Ditto.
24721
24722 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
24723
24724         * reorg.c (try_merge_delay_insns): Improve correctness checking
24725         for targets with multiple delay slots.
24726
24727 2015-04-20  Jeff Law  <law@redhat.com>
24728
24729         PR tree-optimization/65658
24730         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
24731         statements too.
24732
24733 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
24734
24735         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
24736         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
24737         Delete.
24738
24739 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
24740
24741         PR debug/65807
24742         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
24743
24744 2015-04-20  Richard Biener  <rguenther@suse.de>
24745
24746         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
24747         * gimple-fold.c (gimple_build_valueize): New function.
24748         (gimple_build): Always use gimple_build_valueize as valueize hook.
24749
24750 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
24751
24752         PR target/64134
24753         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
24754         and overwrite variable parts if <= 1/2 the elements are variable.
24755
24756 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
24757
24758         PR rtl-optimization/65805
24759         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
24760         Don't use difference of offset and previous offset if
24761         update_sp_offset is non-zero.
24762         (eliminate_regs_in_insn): Ditto.
24763         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
24764         lra_eliminate_regs_1 call.
24765         * lra-constraints.c (get_equiv_with_elimination): Ditto.
24766
24767 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
24768
24769         * hash-table.h: Remove version of hash_table that stored value_type *.
24770         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
24771         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
24772         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
24773         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
24774         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
24775         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
24776         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
24777         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
24778         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
24779         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
24780         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
24781         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
24782         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
24783         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
24784         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
24785         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
24786
24787 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24788             Jakub Jelinek  <jakub@redhat.com>
24789
24790         PR target/65787
24791         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
24792         subsequent SH_NONE operand does not overwrite an existing *special
24793         value.
24794         (adjust_extract): Handle case where a vec_extract operation is
24795         wrapped in a PARALLEL.
24796
24797 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
24798
24799         PR target/65780
24800         * config/i386/i386.c (ix86_binds_local_p): Define only if
24801         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
24802
24803 2015-04-17  Jeff Law  <law@redhat.com>
24804
24805         PR tree-optimization/47679
24806         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
24807         * tree-ssa-scopedtables.c: New file.
24808         * tree-ssa-scopedtables.h: New file.
24809         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
24810         (const_and_copies): Change name/type.
24811         (record_const_or_copy): Move into tree-ssa-scopedtables.c
24812         (record_const_or_copy_1): Similarly.
24813         (restore_vars_to_original_value): Similarly.
24814         (pass_dominator::execute): Create and destroy const_and_copies table.
24815         (thread_across_edge): Update passing of const_and_copies.
24816         (record_temporary_equivalence): Use method calls rather than
24817         manipulating const_and_copies directly.
24818         (record_equality, cprop_into_successor_phis): Similarly.
24819         (dom_opt_dom_walker::before_dom_children): Similarly.
24820         (dom_opt_dom_walker::after_dom_children): Similarly.
24821         (eliminate_redundant_computations): Similarly.
24822         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
24823         (record_temporary_equivalence): Likewise.
24824         (invalidate_equivalences): Likewise.
24825         (record_temporary_equivalences_from_phis): Update due to type
24826         change of const_and_copies.  Use method calls rather than
24827         manipulating the stack directly.
24828         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
24829         (thread_through_normal_block, thread_across_edge): Likewise.
24830         (thread_across_edge): Likewise.
24831         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
24832         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
24833         of equiv_stack.
24834         (identify_jump_threads): Update due to type change of equiv_stack.
24835         (finalize_jump_threads): Delete the equiv_stack when complete.
24836
24837 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
24838
24839         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
24840         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
24841         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
24842
24843 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
24844
24845         PR target/65535
24846         * config.gcc: Exit with a comment when we do not have a major version
24847         number for the FreeBSD target.
24848
24849 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
24850
24851         PR target/65689
24852         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
24853         maybe_allows_mem bitfields.
24854         (maybe_allows_none_start, maybe_allows_none_end,
24855         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
24856         maybe_allows_mem_end): New variables.
24857         (compute_maybe_allows): New function.
24858         (add_constraint): Use it to initialize maybe_allows_reg and
24859         maybe_allows_mem fields.
24860         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
24861         is_address constraints such that those that allow neither mem nor
24862         reg come first, then those that only allow reg but not mem, then
24863         those that only allow mem but not reg, then the rest.
24864         (write_allows_reg_mem_function): New function.
24865         (write_tm_preds_h): Call it.
24866         * stmt.c (parse_output_constraint, parse_input_constraint): Use
24867         the generated insn_extra_constraint_allows_reg_mem function
24868         instead of always setting *allows_reg = true; *allows_mem = true;
24869         for unknown extra constraints.
24870
24871 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
24872
24873         PR target/65780
24874         * output.h (default_binds_local_p_3): New.
24875         * varasm.c (default_binds_local_p_3): Make it public.  Take an
24876         argument to indicate if common symbol may be local.  If common
24877         symbol may be local, treat non-external variable as defined
24878         locally.
24879         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
24880         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
24881         * config/i386/i386.c (ix86_binds_local_p): New.
24882         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
24883         ix86_binds_local_p.
24884
24885 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
24886
24887         PR debug/65771
24888         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
24889         trying mem_loc_descriptor on XEXP (rtl, 0).
24890
24891 2015-04-17  Martin Liska  <mliska@suse.cz>
24892
24893         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
24894         Release symbol_compare_collection.
24895         * ipa-reference.c: Add TODO that a vector should be released.
24896
24897 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
24898
24899         PR target/65296
24900         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
24901         to new AVR-LibC file layout (bug #44574).
24902         (*avrlibc_devicelib): Same.
24903         * config/avr/avr-mcus.def: Adjust comments.
24904         * config/avr/avr.opt (nodevicelib): Adjust help.
24905
24906 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
24907
24908         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
24909
24910 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
24911
24912         PR c++/64527
24913         * gimplify.c (gimplify_init_constructor): Always emit a
24914         side-effecting constructor.
24915
24916 2015-04-17  Tom de Vries  <tom@codesourcery.com>
24917
24918         PR tree-optimization/64950
24919         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
24920         in cfun->curr_properties.
24921         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
24922         if we generate an IFN_VA_ARG.
24923         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
24924         function if PROP_gimple_lva is not set in src function.
24925
24926 2015-04-17  Tom de Vries  <tom@codesourcery.com>
24927             Michael Matz  <matz@suse.de>
24928
24929         PR tree-optimization/64950
24930         * gimple-iterator.c (update_modified_stmts): Remove static.
24931         * gimple-iterator.h (update_modified_stmts): Declare.
24932         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
24933         (gimplify_va_arg_internal): New function.
24934         (gimplify_va_arg_expr): Use IFN_VA_ARG.
24935         * gimplify.h (gimplify_va_arg_internal): Declare.
24936         * internal-fn.c (expand_VA_ARG): New unreachable function.
24937         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
24938         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
24939         (expand_ifn_va_arg): New function.
24940         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
24941         (pass_stdarg::execute): Call expand_ifn_va_arg.
24942         (pass_data_lower_vaarg): New pass_data.
24943         (pass_lower_vaarg): New gimple_opt_pass.
24944         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
24945         (make_pass_lower_vaarg): New function.
24946         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
24947         properties_required field.
24948         * passes.def (all_passes): Add pass_lower_vaarg.
24949         * tree-pass.h (PROP_gimple_lva): Add define.
24950         (make_pass_lower_vaarg): Declare.
24951
24952 2015-04-17  Tom de Vries  <tom@codesourcery.com>
24953
24954         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
24955         * calls.c (call_expr_flags): Same.
24956
24957 2015-04-17  Tom de Vries  <tom@codesourcery.com>
24958
24959         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
24960         (pass_stdarg::execute): ... here.
24961
24962 2015-04-17  Tom de Vries  <tom@codesourcery.com>
24963             Michael Matz  <matz@suse.de>
24964
24965         * tree-cfg.c (make_blocks_1): Factor out of ...
24966         (make_blocks): ... here.
24967         (make_edges_bb): Factor out of ...
24968         (make_edges): ... here.
24969         (gimple_find_sub_bbs): New function.
24970         * tree-cfg.h (gimple_find_sub_bbs): Declare.
24971
24972 2015-04-17  Tom de Vries  <tom@codesourcery.com>
24973
24974         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
24975
24976 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
24977
24978         * asan.c (set_sanitized_sections): New function.
24979         (section_sanitized_p): Ditto.
24980         (asan_protect_global): Optionally sanitize user-defined
24981         sections.
24982         * asan.h (set_sanitized_sections): Declare new function.
24983         * common.opt (fsanitize-sections): New option.
24984         * doc/invoke.texi (-fsanitize-sections): Document new option.
24985         * opts-global.c (handle_common_deferred_options): Handle new
24986         option.
24987
24988 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
24989
24990         PR debug/65771
24991         * dwarf2out.c (loc_list_from_tree): Return NULL
24992         for DEBUG_EXPR_DECL.
24993
24994 2015-04-17  Christian Bruel  <christian.bruel@st.com>
24995
24996         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
24997         same attributes.
24998
24999 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
25000
25001         * ira-color.c (setup_left_conflict_sizes_p): Do not process
25002         node itself when computing left conflict subnode size.
25003
25004 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
25005
25006         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
25007         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
25008         *fop_<mode>_1_sse using enabled attribute.  Use
25009         register_mixssei387nonimm_operand operand 1 predicate. Change
25010         alternative 3 constraints from "x" to "v".
25011
25012 2015-04-16  Richard Biener  <rguenther@suse.de>
25013
25014         PR tree-optimization/65774
25015         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
25016         bit-value tracking on.
25017
25018 2015-04-16  Richard Biener  <rguenther@suse.de>
25019
25020         PR tree-optimization/64277
25021         * tree-vrp.c (check_array_ref): Fix anti-range handling,
25022         simplify upper bound handling.
25023         (search_for_addr_array): Simplify.
25024         (check_array_bounds): Handle ADDR_EXPRs here.
25025         (check_all_array_refs): Simplify.
25026
25027 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
25028
25029         * config/i386/i386.c (print_reg): Rewrite function.
25030
25031 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25032
25033         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
25034         Invert the condition.
25035
25036 2015-04-16  Renlin Li  <renlin.li@arm.com>
25037
25038         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
25039         simplifications for UNSIGNED_FLOAT.
25040
25041 2015-04-16  Nick Clifton  <nickc@redhat.com>
25042
25043         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
25044         MUL_UNINIT.
25045         (enum rl78_cpu_type): New.
25046         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
25047         (umulhi3_shift_virt): Remove m constraint from operand 1.
25048         (umulqihi3_virt): Likewise.
25049         * config/rl78/rl78.c (rl78_option_override): Add code to process
25050         -mcpu and -mmul options.
25051         (rl78_alloc_physical_registers): Add code to handle divhi and
25052         divsi valloc attributes.
25053         (set_origin): Likewise.
25054         * config/rl78/rl78.h (RL78_MUL_G14): Define.
25055         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
25056         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
25057         __RL78_Gxx__.
25058         (ASM_SPEC): Pass -mcpu on to assembler.
25059         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
25060         (mulqi3_rl78): Likewise.
25061         (mulhi3_g13): Likewise.
25062         (mulhi3): Generate the G13 or G14 versions of the insn directly.
25063         (mulsi3): Likewise.
25064         (mulhi3_g14): Add clobbers of AX and BC.
25065         (mulsi3_g14): Likewise.
25066         (mulsi3_g13): Likewise.
25067         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
25068         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
25069         * config/rl78/rl78.opt (mmul): Initialise value to
25070         RL78_MUL_UNINIT.
25071         (mcpu): New option.
25072         (m13, m14, mrl78): New option aliases.
25073         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
25074         (MULTILIB_DIRNAMES): Add g13 and g14.
25075         * doc/invoke.texi: Document -mcpu and -mmul options.
25076
25077 2015-04-16  Richard Biener  <rguenther@suse.de>
25078
25079         * tree-ssa-ccp.c (likely_value): See if we have operands that
25080         are marked as never simulate again and return CONSTANT in this
25081         case.
25082         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
25083         not have any operands that will be simulated again as
25084         not being simulated again.
25085
25086 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
25087
25088         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
25089         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
25090         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
25091         attribute.
25092         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
25093         enabled attribute.
25094         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
25095         *float<SWI48:mode><MODEF:mode>2_sse.
25096         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
25097         enabled attribute.
25098         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
25099         enabled attribute.
25100
25101 2015-04-15  Tom de Vries  <tom@codesourcery.com>
25102
25103         PR other/65487
25104         * function.c (push_dummy_function): New function.
25105         (init_dummy_function_start): Use push_dummy_function.
25106         (pop_dummy_function): New function.  Factored out of ...
25107         (expand_dummy_function_end): ... here.
25108         * function.h (push_dummy_function, pop_dummy_function): Declare.
25109         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
25110         pop_dummy_function.
25111         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
25112
25113 2015-04-15  Jeff Law  <law@redhat.com>
25114
25115         PR tree-optimization/47679
25116         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
25117         need for forward declaration in upcoming changes.
25118         (record_conditions, record_edge_info): Likewise.
25119
25120         PR rtl-optimization/42522
25121         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
25122         SIGN_EXTRACT as a whole object rather than simplifying
25123         its operand.
25124
25125 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
25126
25127         PR ipa/65765
25128         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
25129         and GIMPLE_PREDICT use break instead of return true. For
25130         GIMPLE_EH_DISPATCH, compare dispatch region.
25131
25132 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
25133
25134         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
25135         details about the implementation.  Make clear preference for
25136         __atomic builtins.  Reduce possibility of future change.
25137
25138 2015-04-15  Nick Clifton  <nickc@redhat.com>
25139
25140         * config/rx/rx.opt (mallow-string-insns): New option.
25141         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
25142         builtin if string instructions are denied.
25143         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
25144         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
25145         appropriate.
25146         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
25147         * config/rx/rx.md (movstr): Enable pattern only if string
25148         instructions are allowed.
25149         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
25150         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
25151         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
25152         (MULTILIB_DIRNAMES): Add no-strings.
25153         * doc/invoke.texi: Document -mno-allow-string-insns.
25154
25155 2015-04-15  Alan Modra  <amodra@gmail.com>
25156
25157         PR target/65408
25158         PR target/58744
25159         PR middle-end/36043
25160         * calls.c (load_register_parameters): Don't load past end of
25161         mem unless suitably aligned.
25162
25163 2015-04-15  Nick Clifton  <nickc@redhat.com>
25164
25165         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
25166         decrement instruction as being frame related.
25167         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
25168         based addresses.
25169         If zero extending a function address enclose the operation in
25170         %code(...).
25171         (rl78_preferred_reload_class): New function.
25172         (TARGET_PREFERRED_RELOAD_CLASS): Define.
25173         * config/rl78/rl78.md: Remove useless constraints in expanders.
25174         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
25175         (mulhi3_rl78): Likewise.
25176         (mulhi3_g13): Likewise.
25177         (mulsi3_rl78): Likewise.
25178         (es_addr): Move to before the multiply patterns.
25179
25180 2015-04-15  Alan Modra  <amodra@gmail.com>
25181
25182         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
25183         and sequence_stack.  Add seq.
25184         (seq_stack): Delete.
25185         * function.c (prepare_function_start): Don't access x_last_insn.
25186         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
25187         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
25188         * emit_rtl.c (start_sequence, push_topmost_sequence,
25189         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
25190         sequence accessors.
25191         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
25192         remove_insn): Likewise.  Simplify.
25193         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
25194         and pop_topmost_sequence.
25195         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
25196         debug insns.
25197         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
25198
25199 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
25200
25201         PR target/65729
25202         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
25203         the assertiion.
25204
25205 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
25206
25207         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
25208         (LEGACY_INT_REGNO_P): Ditto.
25209         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
25210         (ANY_MASK_REG_P): Remove.
25211         (BND_REG_P): Rename from ANY_BND_REG_P.
25212         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
25213         legacy integer registers.  Do not handle MMX_REG_P in a special way.
25214         Merge 64byte and 32byte SSE handling.
25215
25216 2015-04-14  Nick Clifton  <nickc@redhat.com>
25217
25218         * expr.c (expand_assignment): Force an address offset computation
25219         into a register before changing its mode.
25220         (expand_expr_real_1): Likewise.
25221
25222 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
25223
25224         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
25225         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
25226         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
25227         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
25228         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
25229         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
25230         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
25231         and __aarch64_vget_lane_any.
25232
25233 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
25234
25235         PR rtl-optimization/65761
25236         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
25237         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
25238
25239 2015-04-14  Richard Biener  <rguenther@suse.de>
25240
25241         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
25242         (graphite_can_represent_scev): Use POINTER_TYPE_P.
25243
25244 2015-04-14  Richard Biener  <rguenther@suse.de>
25245
25246         PR tree-optimization/65758
25247         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
25248         against -1.
25249         (ccp_lattice_meet): Likewise.
25250         (bit_value_unop): Likewise.
25251         (bit_value_binop): Likewise.
25252         (bit_value_assume_aligned): Likewise.
25253
25254 2015-04-14  Christian Bruel  <christian.bruel@st.com>
25255
25256         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
25257         function.
25258
25259 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
25260
25261         PR tree-optimization/63387
25262         * match.pd ((x unord x) | (y unord y) -> (x unord y),
25263         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
25264
25265 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
25266
25267         * config/i386/predicates.md (any_QIreg_operand): Rename from
25268         q_regs_operand.  Do not process subregs.
25269         (QIreg_operand): Use QI_REGNO_P predicate.
25270         (ext_QIreg_operand): Ditto.
25271         (ext_register_operand): Ditto.
25272         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
25273         (AND splitters): Ditto.
25274         (AND with -65536 splitter): Add SWI48 mode for operand 0.
25275         (AND with -256 splitter): Use any_QIreg_operand predicate and
25276         SWI248 mode for operand 0.
25277         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
25278         mode for operand 0.
25279         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
25280
25281 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
25282
25283         * doc/plugins.texi: Rewrite first introductory paragraph.
25284
25285 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25286
25287         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
25288         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
25289
25290 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25291
25292         * ipa-profie.c (ipa_profile): Check number of parameters
25293         and possible polymorphic call targets before
25294         devirtualizing.
25295
25296 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
25297
25298         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
25299         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
25300
25301 2015-04-13  Richard Biener  <rguenther@suse.de>
25302
25303         PR tree-optimization/65204
25304         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
25305         takens for bit-CCP.
25306
25307 2015-04-13  Richard Biener  <rguenther@suse.de>
25308
25309         PR target/65660
25310         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
25311         and cond_not_taken_branch_cost to 4 and 2.
25312         (bdver2_cost): Likewise.
25313         (bdver3_cost): Likewise.
25314         (bdver4_cost): Likewise.
25315
25316 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25317
25318         * hash-table.h (hash_table constructor): Add mem stats.
25319         (alloc_entries): Likewise.
25320
25321 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25322
25323         * ipa-cp.c (ipcp_driver): Relase prev_edge.
25324         * passes.c (execute_one_pass): Only add transform if pass has one.
25325
25326 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
25327
25328         * config/i386/i386.c (ix86_option_override_internal): Don't set
25329         -fprefetch-loop-arrays if optimizing for size.
25330
25331 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25332             Gerald Pfeifer  <gerald@pfeifer.com>
25333
25334         * doc/contrib.texi (Contributors): Add Martin Jambor and
25335         Michael Matz.
25336
25337 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
25338
25339         * BASE-VER: Set to 6.0.0.
25340
25341         PR tree-optimization/65747
25342         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
25343         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
25344
25345 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
25346
25347         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
25348         sentence.  Improve grammar.
25349
25350 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
25351
25352         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
25353
25354 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
25355
25356         PR ipa/65743
25357         * ipa-inline-transform.c (speculation_removed): Remove static var.
25358         (check_speculations): New function.
25359         (clone_inlined_nodes): Do not check spculations.
25360         (inline_call): Call check_speculations.
25361         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
25362         consider non-invariants.
25363
25364 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
25365             Martin Liska  <mliska@suse.cz>
25366
25367         PR ipa/65722
25368         * ipa-icf.c (sem_item::compare_cgraph_references): function and
25369         variable can not match.
25370         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
25371         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
25372
25373 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
25374
25375         PR tree-optimization/65735
25376         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
25377         Remove visited_phis argument, add visited_bbs, avoid recursing into the
25378         same bb rather than just into the same phi node.
25379         (thread_through_normal_block): Adjust caller.
25380
25381 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
25382
25383         * doc/contrib.texi (Contributors): Add Ira Rosen.
25384
25385 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
25386
25387         * gcov.c (find_source): Fix miswording in error message.
25388         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
25389         (ix86_expand_sse_comi_round): Fix typo in error message.
25390
25391 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
25392
25393         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
25394
25395 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
25396
25397         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
25398
25399 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
25400
25401         PR target/65710
25402         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
25403         Print bad_spills_num and insn_pseudos_num.
25404
25405 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25406
25407         PR target/65694
25408         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
25409         when creating +1 values for SImode.
25410
25411 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
25412
25413         PR target/65729
25414         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
25415         assert.
25416
25417 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
25418             Iain Sandoe  <iain@codesourcery.com>
25419
25420         PR target/65351
25421         * configure: Regenerate.
25422
25423 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
25424
25425         PR target/65671
25426         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
25427
25428 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
25429
25430         * doc/contrib.texi (Contributors): Add John Marino.
25431
25432 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
25433
25434         PR tree-optimization/65709
25435         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
25436         TREE_TYPE (TREE_TYPE (t)).
25437
25438 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
25439
25440         PR target/65710
25441         * lra-int.h (lra_bad_spill_regno_start): New.
25442         * lra.c (lra_bad_spill_regno_start): New.
25443         (lra): Set up lra_bad_spill_regno_start.  Set up
25444         lra_constraint_new_regno_start unconditionally.
25445         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
25446         spill preferences.
25447
25448 2015-04-09  Marek Polacek  <polacek@redhat.com>
25449             Jakub Jelinek  <jakub@redhat.com>
25450
25451         PR middle-end/65554
25452         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
25453         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
25454         of STRIP_NOPS.
25455
25456 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
25457
25458         PR rtl-optimization/65693
25459         * combine.c (is_parallel_of_n_reg_sets): Move outside of
25460         #ifndef HAVE_cc0.
25461
25462 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
25463
25464         PR target/65296
25465         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
25466         device specs file if "device-specs%s" didn't resolve to a path.
25467
25468 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
25469
25470         PR target/65676
25471         * config/i386/i386.c (fixup_modeless_constant): New.
25472         (ix86_expand_args_builtin): Fixup modeless constant operand.
25473         (ix86_expand_round_builtin): Ditto.
25474         (ix86_expand_special_args_builtin): Ditto.
25475         (ix86_expand_builtin): Ditto.
25476
25477 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
25478
25479         PR target/65693
25480         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
25481         any pow2 integer in between 2 and 0x80000000U inclusive.
25482
25483 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
25484
25485         PR rtl-optimization/65693
25486         * combine.c (is_parallel_of_n_reg_sets): Change first argument
25487         from an rtx_insn * to an rtx.
25488         (try_combine): Adjust both callers.  Use it once more.
25489
25490 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
25491
25492         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
25493         (chkp_make_static_const_bounds): Search existing
25494         symbol by assembler name.  Use make_decl_one_only.
25495         (chkp_get_zero_bounds_var): Remove node search which
25496         is now performed in chkp_make_static_const_bounds.
25497         (chkp_get_none_bounds_var): Likewise.
25498
25499 2015-04-08  Michael Witten  <mfwitten@gmail.com>
25500
25501         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
25502         to an example.
25503
25504 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
25505
25506         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
25507
25508 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
25509
25510         * doc/extend.texi (__sync Builtins): Fix grammar.
25511
25512 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
25513
25514         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
25515
25516 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
25517
25518         * varasm.c (emit_local): Move definition of align.
25519
25520 2015-04-08  Julian Brown  <julian@codesourcery.com>
25521
25522         * config/nvptx/mkoffload.c (process): Support variable mapping.
25523
25524 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
25525
25526         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
25527         alpha_links **.
25528         (alpha_write_one_linkage): Correct typo.
25529
25530 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
25531
25532         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
25533
25534 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
25535
25536         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
25537
25538 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
25539
25540         * tree-chkp.h (chkp_insert_retbnd_call): New.
25541         * tree-chkp.c (chkp_insert_retbnd_call): New.
25542         * ipa-split.c (insert_bndret_call_after): Remove.
25543         (split_function): Use chkp_insert_retbnd_call.
25544         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
25545         bounds for instrumented functions.
25546
25547 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
25548
25549         PR ipa/65540
25550         * calls.c (initialize_argument_information): When producing tail
25551         call also turn SSA_NAMES passed by references to original PARM_DECLs
25552
25553 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
25554
25555         PR target/65648
25556         * lra-remat.c (do_remat): Process input and non-input insn
25557         registers separately.
25558
25559 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
25560
25561         PR debug/65678
25562         * valtrack.c (debug_lowpart_subreg): New function.
25563         (dead_debug_insert_temp): Use it.
25564
25565         PR middle-end/65680
25566         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
25567         into signed HOST_WIDE_INT the same as negative bit_offset.
25568
25569 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
25570
25571         * ipa-comdats.c (ipa_comdats): Visit all thunks
25572         to set proper comdat group.
25573
25574 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25575
25576         PR target/65489
25577         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
25578         on constants for NEON VSTRUCT modes.
25579
25580 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
25581             Iain Sandoe  <iain@codesourcery.com>
25582
25583         PR target/65351
25584         * configure: Regenerate.
25585
25586 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
25587
25588         PR target/65614
25589         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
25590         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
25591         that LFD is used to load double constants instead of LFS.  Add
25592         defaults for all costs structures.  Add comments for missing
25593         initialization fields.
25594         (size32_cost): Likewise.
25595         (size64_cost): Likewise.
25596         (rs64a_cost): Likewise.
25597         (mpccore_cost): Likewise.
25598         (ppc403_cost): Likewise.
25599         (ppc405_cost): Likewise.
25600         (ppc440_cost): Likewise.
25601         (ppc476_cost): Likewise.
25602         (ppc601_cost): Likewise.
25603         (ppc603_cost): Likewise.
25604         (ppc604_cost): Likewise.
25605         (ppc604e_cost): Likewise.
25606         (ppc620_cost): Likewise.
25607         (ppc630_cost): Likewise.
25608         (ppccell_cost): Likewise.
25609         (ppc750_cost): Likewise.
25610         (ppc7450_cost): Likewise.
25611         (ppc8540_cost): Likewise.
25612         (ppce300c2c3_cost): Likewise.
25613         (ppce500mc_cost): Likewise.
25614         (ppce500mc64_cost): Likewise.
25615         (ppce5500_cost): Likewise.
25616         (ppce6500_cost): Likewise.
25617         (titan_cost): Likewise.
25618         (power4_cost): Likewise.
25619         (power6_cost): Likewise.
25620         (power7_cost): Likewise.
25621         (power8_cost): Likewise.
25622         (ppca2_cost): Likewise.
25623         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
25624
25625         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
25626         instead of XXLOR to copy SFmode to clear out dirty bits created
25627         when SFmode denormals are generated.
25628         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
25629         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
25630
25631 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
25632
25633         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
25634         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
25635         * config/aarch64/aarch64-tune.md: Regenerate.
25636
25637 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
25638
25639         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
25640         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
25641         * config/arm/arm-cores.def (exynos-m1): New core.
25642         * config/arm/arm-tune.md: Regenerate.
25643         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
25644         * config/arm/bpabi.h: Likewise.
25645
25646 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
25647
25648         * ipa-cp (set_single_call_flag): Remove too
25649         restrictive assert.
25650
25651 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
25652
25653         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
25654         GOMP_offload_unregister from the destructor.
25655
25656 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
25657
25658         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
25659         flags for instrumentation thunk.
25660         (chkp_produce_thunks): Likewise.
25661
25662 2015-04-05  Martin Liska  <mliska@suse.cz>
25663
25664         PR ipa/65665
25665         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
25666         has computed data structure.
25667         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
25668
25669 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
25670
25671         * invoke.texi (inline-unit-growth): Increase growth to 20%
25672         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
25673
25674 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
25675
25676         PR target/65647
25677         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
25678         value checking.
25679         (lra_rematerialization_iter): New.
25680         * lra.c (lra): Initialize lra_rematerialization_iter.
25681         Stop updating lra_constraint_new_regno_start after switching of
25682         inheritance and rematerialization.
25683         * lra-remat.c (lra_rematerialization_iter): New.
25684         (lra_remat): Add printing pass iteration.  Do rematerialization
25685         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
25686
25687 2015-04-04  Richard Biener  <rguenther@suse.de>
25688
25689         PR tree-optimization/64909
25690         PR tree-optimization/65660
25691         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
25692         to take a cost vector for scalar iteration cost.
25693         (vect_get_single_scalar_iteration_cost): Likewise.
25694         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
25695         Compute the scalar iteration cost into a cost vector.
25696         (vect_get_known_peeling_cost): Use the scalar cost vector to
25697         account for the cost of the peeled iterations.
25698         (vect_estimate_min_profitable_iters): Likewise.
25699         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
25700         Likewise.
25701
25702 2015-04-04  Alan Modra  <amodra@gmail.com>
25703
25704         PR target/65576
25705         PR target/65240
25706         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
25707         0.0 constant unless TARGET_VSX.
25708         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
25709         alternative.
25710
25711 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
25712
25713         PR ipa/65654
25714         * ipa-inline-transform.c (inline_call): Skip sanity check to work
25715         around the ICE
25716
25717 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
25718
25719         PR ipa/65655
25720         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
25721         speculative indirect edges to avoid ordering issue.
25722
25723 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
25724
25725         PR ipa/65076
25726         * ipa-inline.c (edge_badness): Add combined size to the denominator.
25727
25728 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
25729
25730         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
25731         TYPE_ARTIFICIAL on the .omp_data* types.
25732
25733 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
25734
25735         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
25736         instrumentation thunks.
25737
25738 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
25739
25740         * config/i386/i386.c (ix86_expand_call): Avoid nested
25741         PARALLEL in returned call value.
25742
25743 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
25744
25745         * lto-cgraph.c (input_cgraph_1): Always link instrumented
25746         assembler name with original one.
25747
25748 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
25749
25750         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
25751
25752 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
25753
25754         Revert parts of r216820.
25755         * config/i386/i386.md (movqi_internal): Correct type calculation
25756         for alternatives 3 and 5.
25757
25758 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
25759
25760         PR preprocessor/61977
25761         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
25762         predefine __vector/__bool/__pixel macros nor context sensitive
25763         macros for CLK_ASM.
25764         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
25765
25766 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
25767
25768         * config/pa/pa.c (pa_output_move_double): Directly handle register
25769         indexed memory operand.  Simplify handling of scaled register indexed
25770         memory operands.
25771
25772 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
25773
25774         PR driver/65444
25775         * config/i386/linux-common.h (MPX_SPEC): New.
25776         (CHKP_SPEC): Add MPX_SPEC.
25777         * doc/invoke.texi (-fcheck-pointer-boudns): Document
25778         possible issues with '-z bndplt' support in linker.
25779
25780 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
25781
25782         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
25783         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
25784         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
25785         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
25786         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
25787
25788 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
25789
25790         * config/i386/sync.md (UNSPEC_MOVA): Remove.
25791         (atomic_load<mode>): Change operand 0 predicate to
25792         nonimmediate_operand and fix up the destination when needed.
25793         Use UNSPEC_LDA.
25794         (atomic_loaddi_fpu): Use UNSPEC_LDA.
25795         (atomic_store<mode>): Change operand 1 predicate to
25796         nonimmendate_operand and move the source to register when needed.
25797         Use UNSPEC_STA.
25798         (atomic_store<mode>_1): Use UNSPEC_STA.
25799         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
25800         Fix moves from memory operand.  Use UNSPEC_STA.
25801
25802 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
25803
25804         * expmed.c (strict_volatile_bitfield_p): Check that the access will
25805         not cross a MODESIZE boundary.
25806         (store_bit_field, extract_bit_field): Added assertions in the
25807         strict volatile bitfields code path.
25808
25809 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
25810
25811         PR target/65624
25812         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
25813         Increase args array size by one to avoid buffer overflow.
25814
25815 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
25816
25817         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
25818         split_part.
25819         * ipa-inline.c (edge_badness): Add wrapper penalty.
25820         (sum_callers): Move up.
25821         (inline_small_functions): Set single_caller.
25822         * ipa-inline.h (inline_summary): Add single_caller.
25823         * ipa-split.c (split_function): Set split_part.
25824         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
25825         * cgraph.h (cgraph_node): Add split_part.
25826
25827 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
25828
25829         PR target/58945
25830         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
25831         Do not split operands 0 and operands 2 to halfmode.
25832         (atomic_compare_and_swap<mode>): Update for
25833         atomic_compare_and_swap<dwi>_doubleword changes.
25834
25835 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
25836
25837         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
25838         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
25839         no caching is done.
25840
25841 2015-03-31  Martin Liska  <mliska@suse.cz>
25842
25843         PR ipa/65557
25844         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
25845         has already filled up function summary.
25846         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
25847
25848 2015-03-31  Richard Biener  <rguenther@suse.de>
25849
25850         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
25851         of types.
25852
25853 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
25854
25855         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
25856         nested functions.
25857         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
25858         (s390_asm_output_function_label): Adapt to new signature of
25859         s390_function_num_hotpatch_hw
25860         Optimise the code generating assembler output.
25861         Add comments to assembler file.
25862
25863 2015-03-31  Richard Biener  <rguenther@suse.de>
25864
25865         PR middle-end/65626
25866         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
25867         of the noreturn call so it is last and cleanup_control_flow_bb
25868         can do the CFG part.
25869
25870 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
25871
25872         PR target/65531
25873         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
25874         same_comdat_group for external symbols.
25875         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
25876         infinite same_comdat_group traversal loop.
25877
25878 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
25879
25880         PR plugins/61176
25881         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
25882         automatically to $headers.
25883
25884 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
25885
25886         PR ipa/65610
25887         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
25888         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
25889         function.
25890         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
25891         Use it.
25892         * ipa-prop.c (param_type_may_change_p): Likewise.
25893         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
25894         (remove_unused_scope_block_p): Add in_ctor_dtor_block
25895         argument.  Before inlining, preserve
25896         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
25897         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
25898         recursive calls.
25899         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
25900
25901 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
25902
25903         PR ipa/65076
25904         * ipa-inline.c (edge_badness): Base denominator on callee's
25905         grwoth squared.
25906
25907 2015-03-27  Martin Jambor  <mjambor@suse.cz>
25908
25909         PR ipa/65478
25910         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
25911         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
25912         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
25913         node_calling_single_call.
25914         * ipa-cp.c (count_callers): New function.
25915         (set_single_call_flag): Likewise.
25916         (initialize_node_lattices): Count callers and set single_flag_call if
25917         necessary.
25918         (incorporate_penalties): New function.
25919         (good_cloning_opportunity_p): Use it, dump new flags.
25920         (propagate_constants_topo): Set node_within_scc flag if appropriate.
25921         * doc/invoke.texi (ipa-cp-recursion-penalty,
25922         ipa-cp-single-call-pentalty): Document.
25923
25924 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
25925
25926         PR ipa/65588
25927         * symtab.c (symtab_node::get_partitioning_class): Register vars
25928         are duplicated.
25929         * varpool.c (symbol_table::output_variables) Do not assemble unefined
25930         decls for non-symbols.
25931
25932 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
25933
25934         PR target/65248
25935         * output.h (default_binds_local_p_2): New.
25936         * varasm.c (default_binds_local_p_2): Renamed to ...
25937         (default_binds_local_p_3): This.  Don't return true on protected
25938         data symbol if protected data may be external.
25939         (default_binds_local_p): Use default_binds_local_p_3.
25940         (default_binds_local_p_1): Likewise.
25941         (default_binds_local_p_2): New.
25942         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
25943         default_binds_local_p_2 if TARGET_MACHO is undefined.
25944
25945 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
25946
25947         PR target/65593
25948         * config/i386/i386.c (legitimize_pic_address): If base
25949         is SYMBOL_REF or LABEL_REF using %rip addressing, force
25950         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
25951
25952 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
25953
25954         PR target/65531
25955         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
25956         comdat groups.
25957
25958 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
25959
25960         PR ipa/65600
25961         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
25962         of optimized out indirect call.
25963         (redirect_to_unreachable): Always build symbol table node for
25964         BUILT_IN_UNREACHABLE
25965
25966 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
25967
25968         PR target/65407
25969         * ira-costs.c (record_reg_classes): Process all constraint string
25970         containing 0-9.
25971
25972 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
25973
25974         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
25975         memory_operand.
25976
25977         PR target/65052
25978         * config/c6x/constraints.md (S3): New constraint.
25979         * config/c6x/c6x.md (real_jump): Use it.
25980
25981 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
25982
25983         PR middle-end/65595
25984         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
25985         do redirection if the call is not optimized out.
25986
25987 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
25988
25989         PR target/65495
25990         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
25991         (fchkp-check-incomplete-type): Add LTO.
25992         (fchkp-zero-input-bounds-for-main): Likewise.
25993         (fchkp-first-field-has-own-bounds): Likewise.
25994         (fchkp-narrow-bounds): Likewise.
25995         (fchkp-narrow-to-innermost-array): Likewise.
25996         (fchkp-use-static-bounds): Likewise.
25997         (fchkp-use-static-const-bounds): Likewise.
25998         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
25999
26000 2015-03-27  Marek Polacek  <polacek@redhat.com>
26001
26002         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
26003
26004 2015-03-27  Marek Polacek  <polacek@redhat.com>
26005
26006         PR sanitizer/65583
26007         * ubsan.c (ubsan_create_edge): New function.
26008         (instrument_bool_enum_load): Call it.
26009         (instrument_nonnull_arg): Likewise.
26010         (instrument_nonnull_return): Likewise.
26011         (instrument_object_size): Likewise.
26012
26013 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26014
26015         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
26016         auto_vec.
26017
26018 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26019
26020         PR lto/65536
26021         * lto-streamer.h (class lto_location_cache): New.
26022         (struct data_in): Add location_cache.
26023         (lto_input_location): Update prototype.
26024         (stream_input_location_now): New.
26025         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
26026         pointer to location.
26027         (stream_input_location): Update.
26028         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
26029         (warn_odr): Apply location cache before warning.
26030         (lto_input_location): Update prototype.
26031         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
26032         Use stream_input_location_now.
26033         * lto-streamer-in.c (lto_location_cache::current_cache): New static
26034         variable.
26035         (lto_location_cache::cmp_loc): New function.
26036         (lto_location_cache::apply_location_cache): New function.
26037         (lto_location_cache::accept_location_cache): New function.
26038         (lto_location_cache::revert_location_cache): New function.
26039         (lto_location_cache::input_location): New function.
26040         (lto_input_location): Do location caching.
26041         (stream_input_location_now): New function.
26042         (input_eh_region, input_struct_function_base): Use
26043         stream_input_location_now.
26044         (lto_data_in_create): use new.
26045         (lto_data_in_delete): Use delete.
26046         * tree-streamer-in.c (unpack_ts_block_value_fields,
26047         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
26048         lto_input_ts_exp_tree_pointers): Update for cached location api.
26049
26050 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26051
26052         PR ipa/65076
26053         * passes.def: Add pass_nothrow.
26054         * ipa-pure-const.c: (pass_data_nothrow): New.
26055         (pass_nothrow): New.
26056         (pass_nothrow::execute): New.
26057         (make_pass_nothrow): New.
26058         * tree-pass.h (make_pass_nothrow): Declare.
26059
26060 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26061
26062         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
26063         edge to change by speculation resolution or redirection.
26064         (edge_set_predicate): Likewise.
26065         (inline_summary_t::duplicate): Likewise.
26066         (remap_edge_summaries): Likewise.
26067
26068 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26069
26070         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
26071         New macros.
26072         (can_inline_edge_p): Relax option matching for always inline functions.
26073
26074 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
26075
26076         PR target/65561
26077         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
26078         Check operand 4 and operand 0 for equality.
26079         (avx512f_vextract<shuffletype>32x4_1_maskm):
26080         Check operand 6 and operand 0 for equality.
26081         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
26082         for equality.
26083         (vec_extract_hi_<mode>_maskm): Ditto.
26084
26085 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26086
26087         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
26088         dead calls back to live.
26089         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
26090         cross check to ...
26091         (cgraph_node::verify_node): ... here; verify only callee edges,
26092         not caller.
26093         * cif-code.def (CILK_SPAWN): New code.
26094
26095 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26096
26097         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
26098         (edge_set_predicate): Use it to mark unreachable edges.
26099         (inline_summary_t::duplicate): Remove unnecesary code.
26100         (remap_edge_summaries): Likewise.
26101         (dump_inline_summary): Report contains_cilk_spawn.
26102         (compute_inline_parameters): Compute contains_cilk_spawn.
26103         (inline_read_section, inline_write_summary): Stream
26104         contains_cilk_spawn.
26105         * ipa-inline.c (can_inline_edge_p): Do not touch
26106         DECL_STRUCT_FUNCTION that may not be available;
26107         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
26108         remove check for callee_fun->can_throw_non_call_exceptions and
26109         replace it by optimization attribute check; check for flag_exceptions.
26110         * ipa-inline-transform.c (inline_call): Maintain
26111         DECL_FUNCTION_PERSONALITY
26112         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
26113
26114 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
26115
26116         PR tree-optimization/65551
26117         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
26118         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
26119
26120 2015-03-26  Richard Biener  <rguenther@suse.de>
26121
26122         PR middle-end/65555
26123         * tree-cfg.c (verify_gimple_call): Do not require a call to
26124         have no LHS if it wasn't recognized as control altering yet.
26125
26126 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
26127
26128         PR tree-optimization/64715
26129         * passes.def: Add another instance of pass_object_sizes before ccp1.
26130         * tree-object-size.c (pass_object_sizes::execute): In
26131         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
26132         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
26133         __bos result and the computed constant.  Remove redundant
26134         checks, obsoleted by gimple_call_builtin_p test.
26135
26136         * var-tracking.c (variable_tracking_main_1): Don't track
26137         variables for targetm.no_register_allocation targets.
26138
26139 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
26140
26141         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
26142         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
26143
26144 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
26145
26146         PR target/65569
26147         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
26148         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
26149         0.0 is correctly setup.
26150         (extenddftf2_internal): Likewise.
26151
26152 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
26153
26154         PR tree-optimization/65177
26155         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
26156         (bb_in_bbs): New.
26157         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
26158         edges not adjacent on the path to the original code.
26159
26160 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
26161
26162         PR bootstrap/65537
26163         * doc/install.texi (Building a native compiler): Document new
26164         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
26165         configuration assumes that the host supports the linker plugin.
26166
26167 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
26168
26169         PR target/65508
26170         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
26171         chain for generated call.
26172
26173 2015-03-25  Richard Biener  <rguenther@suse.de>
26174
26175         * passes.c (pass_manager::execute_early_local_passes): Guard
26176         execution of pass_chkp_instrumentation_passes with
26177         flag_check_pointer_bounds.
26178         (pass_chkp_instrumentation_passes::gate): Likewise.
26179
26180 2015-03-25  Martin Liska  <mliska@suse.cz>
26181
26182         PR tree-optimization/65538
26183         * symbol-summary.h (function_summary::~function_summary):
26184         Relese memory for allocated summaries.
26185         (function_summary::release): New function.
26186
26187 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
26188
26189         PR lto/65515
26190         * lto-streamer-out.c (DFS::worklist): New struct.
26191         (DFS::worklist_vec): New data member.
26192         (DFS::next_dfs_num): Remove.
26193         (DFS::DFS): Rewritten using worklist instead of recursion,
26194         using most of code from DFS::DFS_write_tree.
26195         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
26196         pass it to DFS_write_tree calls.
26197         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
26198         quick initial checks push it into worklist_vec and return.
26199
26200 2015-03-25  Richard Biener  <rguenther@suse.de>
26201
26202         PR middle-end/65519
26203         * genmatch.c (expr::gen_transform): Re-write to avoid
26204         using gimple_build.
26205
26206 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
26207
26208         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
26209
26210 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
26211
26212         * config/arm/arm.opt (print_tune_info): New option.
26213         * config/arm/arm.c (arm_print_tune_info): New function.
26214         (arm_file_start): Call arm_print_tune_info.
26215         * config/arm/arm-protos.h (struct tune_params): Add comment.
26216         * doc/invoke.texi (@item -mprint-tune-info): New item.
26217         (-mtune): mention it in ARM Option Summary.
26218
26219 2015-03-25  DJ Delorie  <dj@redhat.com>
26220
26221         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
26222         correct clause.
26223
26224 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
26225             Martin Liska  <mliska@suse.cz>
26226
26227         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
26228         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
26229         (sem_item::add_type): New function.
26230         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
26231         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
26232         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
26233         (sem_function::equals_wpa): Fix typo.
26234         * ipa-icf.h (sem_item::add_type): New function.
26235         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
26236         order.
26237
26238 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
26239
26240         PR tree-optimization/65533
26241         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
26242         with swapped operands, call vect_free_slp_tree on
26243         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
26244         vector.
26245
26246 2015-03-24  Richard Biener  <rguenther@suse.de>
26247
26248         PR middle-end/65517
26249         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
26250         for fixup if necessary.
26251
26252 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
26253
26254         * doc/extend.texi (Function Attributes): Add @cindex entries
26255         for all attributes and regularize their format.  Delete text
26256         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
26257         information about "eightbit_data", "tiny_data", and "model"
26258         variable attributes to the Variable Attributes section.  Fix
26259         some obvious typos and copy-editing issues.
26260         (Variable Attributes, Type Attributes): Likewise add/fix
26261         @cindex entries for all attributes.
26262
26263 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
26264
26265         PR target/65523
26266         * tree-chkp.c (chkp_build_returned_bound): Ignore
26267         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
26268
26269 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
26270
26271         PR target/65505
26272         * config/sh/predicates.md (simple_mem_operand,
26273         displacement_mem_operand): Add test for reg.
26274         (short_displacement_mem_operand): Test for displacement_mem_operand
26275         before invoking sh_disp_addr_displacement.
26276         * config/sh/constraints.md (Sdd, Sra): Simplify.
26277         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
26278         Remove redundant displacement_mem_operand tests.
26279
26280 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
26281
26282         PR target/65296
26283         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
26284         the same -mmcu=MCU more than once.
26285
26286 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
26287
26288         PR bootstrap/65522
26289         * ipa-devirt.c: Remove duplicate demangle.h include.
26290
26291         PR target/65504
26292         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
26293         on the pseudo.
26294         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
26295         REG_POINTER on *destptr after adjusting it for prologue size.
26296
26297         PR ipa/65521
26298         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
26299         ultimate_alias_target ()->order ints instead of
26300         ultimate_alias_target () pointers.
26301
26302 2015-03-23  Richard Biener  <rguenther@suse.de>
26303
26304         PR tree-optimization/65518
26305         * tree-vect-stmts.c (vectorizable_load): Reject single-element
26306         interleaving cases we generate absymal code for.
26307
26308 2015-03-23  Richard Biener  <rguenther@suse.de>
26309
26310         PR tree-optimization/65494
26311         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
26312         matches here.
26313         (vect_analyze_slp_instance): But do that here, always and once.
26314
26315 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26316
26317         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
26318         adding T or multiplying by T+1 and subracting T.
26319
26320 2015-03-22  Jeff Law  <law@redhat.com>
26321
26322         PR rtl-optimization/64317
26323         * Makefile.in (OBJS): Add gcse-common.c
26324         * gcse.c: Include gcse-common.h
26325         (struct modify_pair_s): Move structure definition to gcse-common.h
26326         (compute_transp): Move function to gcse-common.c.
26327         (canon_list_insert): Similarly.
26328         (record_last_mem_set_info): Break out some code and put it into
26329         gcse-common.c.  Call into the new common code.
26330         (compute_local_properties): Pass additional arguments to compute_transp.
26331         * postreload-gcse.c: Include gcse-common.h and df.h
26332         (modify_mem_list_set, blocks_with_calls): New variables.
26333         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
26334         (get_bb_avail_insn): Pass in the expression index too.
26335         (alloc_mem): Allocate memory for the new bitmaps and lists.
26336         (free_mem): Free memory for the new bitmaps and lists.
26337         (insert_expr_in_table): Record a bitmap index for each entry we
26338         add to the table.
26339         (record_last_mem_set_info): Call into common code in gcse-common.c.
26340         (get_bb_avail_insn): If no available insn was found in the requested
26341         BB.  If BB has a single predecessor, see if the expression is
26342         transparent in BB and available in that single predecessor.
26343         (compute_expr_transp): New wrapper for compute_transp.
26344         (eliminate_partially_redundant_load): Pass expression's bitmap_index
26345         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
26346         (gcse_after_reload_main): If there are elements in the hash table,
26347         then compute transparency for all the elements in the hash table.
26348         * gcse-common.h: New file.
26349         * gcse-common.c: New file.
26350
26351 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
26352
26353         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
26354         as an adjective.
26355         (System Headers): Likewise.
26356         (Ifdef): Likewise.
26357         (Traditional macros): Likewise.
26358         (Invocation): Likewise.
26359         (Option Index): Likewise.
26360         * doc/cppopts.texi (-M): Likewise.
26361         (-finput-charset): Likewise.
26362         (--help): Likewise.
26363         * doc.invoke.texi (AVR Options): Likewise.
26364         (V850 Options): Likewise.
26365
26366 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
26367
26368         PR ipa/65475
26369         * ipa-devirt.c: Include demangle.h
26370         (odr_type_d): Add field rtti_broken.
26371         (odr_subtypes_equivalent_p): Do not require name to match.
26372         (compare_virtual_tables): Fix typo; if type already has ODR violation,
26373         bypass the tests; be ready for function referneces in vtables that are
26374         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
26375         (warn_odr): Give up for nameless types.
26376         (warn_types_mismatch): Report mismatch in mangled names;
26377         report mismatch in anonymous namespaces; look into component types to
26378         give useful error; report when mismatch is dragged in from other ODR
26379         type.
26380         (odr_types_equivalent_p): Match types for being polymorphic; avoid
26381         duplicated diagnostics.
26382         (add_type_duplicate): Reorder checks so more informative ones come
26383         first; fix typo; do not output "the extra base is defined here" when
26384         we did not warn.
26385         (BINFO_N_BASE_BINFOS): Relax sanity check.
26386
26387 2015-03-22  Martin Liska  <mliska@suse.cz>
26388             Jakub Jelinek  <jakub@redhat.com>
26389
26390         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
26391         masks that can potentially include a builtin.
26392         (ix86_add_new_builtins): Introduce fast filter for isa values
26393         that cannot trigger builtin inclusion.
26394
26395 2015-03-22  Martin Liska  <mliska@suse.cz>
26396
26397         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
26398         (sem_item::update_hash_by_local_refs): Likewise.
26399         (sem_variable::get_hash): Empty line is fixed.
26400         (sem_item_optimizer::execute): Include adding of hash references.
26401         (sem_item_optimizer::update_hash_by_addr_refs): New function.
26402         (sem_item_optimizer::build_hash_based_classes): Use local hash.
26403         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
26404         (sem_item::update_hash_by_local_refs): Likewise.
26405
26406 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26407
26408         PR ipa/65502
26409         * ipa-comdats.c (enqueue_references): Walk through thunks.
26410         (ipa_comdats): Likewise.
26411         (set_comdat_group_1): New function.
26412
26413 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26414
26415         PR ipa/65475
26416         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
26417         non-polymorphic
26418
26419 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
26420             Gerald Pfeifer  <gerald@pfeifer.com>
26421
26422         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
26423
26424 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
26425             Sandra Loosemore  <sandra@codesourcery.com>
26426
26427         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
26428         function parameter declaration.
26429         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
26430         Update arguments to nios2_adjust_call_address().
26431         (sibcall_internal): Rename from *sibcall.
26432         (sibcall_value_internal): Rename from *sibcall_value.
26433         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
26434         (nios2_large_got_address): Add target temp reg parameter.
26435         (nios2_got_address): Adjust call to nios2_large_got_address, add
26436         force_reg around it.
26437         (nios2_load_pic_address): Add target temp reg parameter, replace call
26438         to nios2_got_address with corresponding code.
26439         (nios2_legitimize_constant_address): Update call to
26440         nios2_load_pic_address.
26441         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
26442         to use temp reg for PIC loading purposes.
26443         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
26444         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
26445         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
26446
26447 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
26448
26449         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
26450         usage of "the @option{...}".
26451         (-Wopenmp-simd): Likewise.
26452         (-fsanitize-recover): Likewise.
26453         (-fsanitize-undefined-trap-on-error): Likewise.
26454         (-flto): Likewise.
26455         (tracer-dynamic-coverage-feedback): Likewise.
26456         (reorder-block-duplicate-feedback): Likewise.
26457         (loop-unroll-jam-size): Likewise.
26458         (-B): Likewise.
26459         (-I-): Likewise.
26460         (-mabs=legacy): Likewise.
26461         (-mupper-regs-df): Likewise.
26462         (-mupper-regs-sf): Likewise.
26463         (-mpointers-to-nested-functions): Likewise.
26464
26465 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
26466
26467         * doc/extend.texi (Cilk Plus Builtins): Add markup.
26468
26469 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
26470
26471         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
26472         additional index entries and cross-references.
26473         (-fchkp-check-incomplete-type): Likewise.
26474         (-fchkp-first-field-has-own-bounds): Likewise.
26475         (-fchkp-narrow-to-innermost-array): Likewise.
26476         (-fchkp-use-fast-string-functions): Likewise.
26477         (-fchkp-use-nochk-string-functions): Likewise.
26478         (-fchkp-use-static-const-bounds): Likewise.
26479         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
26480         (-fchkp-instrument-marked-only): Likewise.
26481         (-fchkp-use-wrappers): Likewise.
26482         (-static-libmpx): Likewise.
26483         (-static-libmpxwrappers): Likewise.
26484         * doc/extend.texi (bnd_legacy): Likewise.
26485         (bnd_instrument): Likewise.
26486         (bnd_variable_size): Likewise.
26487         (Pointer Bounds Checker builtins): Likewise.
26488
26489 2015-03-21  Tom de Vries  <tom@codesourcery.com>
26490
26491         PR tree-optimization/65458
26492         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
26493         * cgraph.h (cgraph_node): Add parallelized_function field.
26494         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
26495         (input_overwrite_node): Read parallelized_function field.
26496         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
26497         parallelized_function on cgraph_node for child_fn.
26498         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
26499         Remove include of gt-tree-parloops.h.
26500         (parallelized_functions): Remove static variable.
26501         (parallelized_function_p): Rewrite using parallelized_function field of
26502         cgraph_node.
26503         (create_loop_fn): Remove adding to parallelized_functions.
26504         * Makefile.in (GTFILES): Remove tree-parloops.c
26505
26506 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
26507
26508         PR rtl-optimization/64366
26509         * lra.c (lra_update_insn_regno_info): Consider regs in
26510         CALL_INSN_FUNCTION_USAGE memory.
26511
26512 2015-03-20  Richard Biener  <rguenther@suse.de>
26513
26514         PR middle-end/64715
26515         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
26516         for type comparison and gcc_checking_assert.
26517         (chrec_fold_plus_poly_poly): Likewise.
26518         (chrec_fold_multiply_poly_poly): Likewise.
26519         (chrec_convert_1): Likewise.
26520         * gimplify.c (gimplify_expr): Remove premature folding of
26521         &X + CST to &MEM[&X, CST].
26522
26523 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26524
26525         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
26526         already is final.
26527         (ipa_inline): Recompute inline_failed codes.
26528         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
26529         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
26530         CIF_FINAL_ERROR.
26531
26532 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
26533
26534         PR rtl-optimization/60851
26535         * recog.c (constrain_operands): Accept a pseudo register before reload
26536         for LRA enabled targets.
26537
26538 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
26539
26540         PR target/65240
26541         * config/rs6000/predicates.md (easy_fp_constant): Remove special
26542         -ffast-math handling that kept non-0 constants live in the RTL
26543         until reload.  Remove logic testing the number of instructions it
26544         took to create a constant in a GPR that was never used, due to a
26545         test for soft-float earlier.
26546         (memory_fp_constant): Delete, no longer used.
26547
26548         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
26549         alternatives for loading non-0 constants into GPRs for hard
26550         floating point that is no longer needed due to changes in
26551         easy_fp_constant.  Add support for loading 0.0 into GPRs.
26552         (mov<mode>_hardfloat32): Likewise.
26553         (mov<mode>_hardfloat64): Likewise.
26554         (mov<mode>_64bit_dm): Likewise.
26555         (movtd_64bit_nodm): Likewise.
26556         (pre-reload move FP constant define_split): Delete define_split,
26557         since it is no longer used.
26558         (extenddftf2_internal): Remove GHF constraints that are not valid
26559         for extenddftf2.
26560
26561 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
26562
26563         PR rtl-optimization/63491
26564         * lra-constraints.c (check_and_process_move): Use src instead of
26565         sreg.  Remove some dead code.
26566
26567 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
26568
26569         PR ipa/65380
26570         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
26571         (sem_variable::merge): Likewise.
26572
26573 2015-03-19  Martin Liska  <mliska@suse.cz>
26574
26575         PR ipa/65465
26576         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
26577         all fields of cgraph_thunk_info.
26578
26579 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
26580
26581         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
26582         clone instrumented thunks.
26583
26584 2015-03-19  Richard Biener  <rguenther@suse.de>
26585
26586         Revert
26587         2015-03-10  Richard Biener  <rguenther@suse.de>
26588
26589         PR middle-end/63155
26590         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
26591         * tree-ssa-coalesce.c: Include timevar.h.
26592         (attempt_coalesce): Handle graph being NULL.
26593         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
26594         Split out abnormal coalescing to ...
26595         (perform_abnormal_coalescing): ... this function.
26596         (coalesce_ssa_name): Perform abnormal coalescing without computing
26597         live/conflict.
26598         (verify_ssa_coalescing_worker): New function.
26599         (verify_ssa_coalescing): Likewise.
26600
26601 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26602             Jakub Jelinek  <jakub@redhat.com>
26603
26604         PR sanitizer/65400
26605         * tsan.c (instrument_gimple): Clear tail call flag on
26606         calls.
26607
26608 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
26609
26610         PR sanitizer/65400
26611         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
26612         call in the return bb.
26613         (find_split_points): Add RETURN_BB argument, don't call
26614         find_return_bb.
26615         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
26616         if true append TSAN_FUNC_EXIT internal call after the call to
26617         the split off function.
26618         (execute_split_functions): Call find_return_bb here.
26619         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
26620         Adjust find_split_points and split_function calls.
26621
26622 2015-03-18  DJ Delorie  <dj@redhat.com>
26623
26624         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
26625         (iorqi3_virt): Likewise.
26626
26627 2015-03-18  Tom de Vries  <tom@codesourcery.com>
26628
26629         * tree-parloops.c (parallelize_loops): Make static.
26630         * tree-parloops.h (parallelize_loops): Remove extern declaration.
26631
26632 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
26633
26634         PR middle-end/64491
26635         Revert:
26636         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
26637
26638         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
26639         condition would be removed due to undefined behaviour.
26640
26641 2015-03-18  Martin Liska  <mliska@suse.cz>
26642
26643         PR ipa/65432
26644         * cgraph.c (cgraph_node::get_create): Remove unnecessary
26645         xstrdup_for_dump wrapper.
26646         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
26647         sem_item::name.
26648         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
26649         with xstrdup_for_dump.
26650         (sem_variable::equals): Likewise.
26651         (sem_item_optimizer::read_section): Use symtab_node::name instead of
26652         sem_item::name.
26653         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
26654         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
26655         symtab_node::asm_name with xstrdup_for_dump.
26656         (congruence_class::dump): Use symtab_node::name instead of
26657         sem_item::name.
26658         * ipa-icf.h (symtab_node::name): Remove.
26659         (symtab_node::asm_name): Likewise.
26660
26661 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
26662
26663         PR tree-optimization/65450
26664         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
26665         function.
26666         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
26667         it instead of duplicate_ssa_name_ptr_info.
26668
26669         PR target/65222
26670         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
26671
26672 2015-03-18  Richard Biener  <rguenther@suse.de>
26673
26674         * tree-data-ref.h (struct access_matrix): Remove.
26675         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
26676         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
26677         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
26678         (am_vector_index_for_loop): Likewise.
26679         (struct data_reference): Remove access_matrix member.
26680         (DR_ACCESS_MATRIX): Remove.
26681         (lambda_vector_new): Add comment.
26682         (lambda_matrix_new): Use XOBNEWVEC.
26683
26684 2015-03-18  Richard Biener  <rguenther@suse.de>
26685
26686         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
26687         (pass_ch::execute): Cleanup the CFG only if we did sth.
26688         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
26689
26690 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26691
26692         * expmed.c (synth_mult): Use std::swap instead of manually
26693         swapping algorithms.
26694
26695 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
26696
26697         PR target/65078
26698         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
26699
26700 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
26701
26702         PR target/65296
26703         * config/avr/avr.opt (-nodevicelib): New option.
26704         * doc/invoke.texi (AVR Options): Document it.
26705         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
26706         libgcc.a, libc.a, libm.a.
26707         * config/avr/specs.h: Same.
26708         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
26709         which don't (directly) depend on the device.  Print more help.
26710         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
26711         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
26712         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
26713         case of an error.
26714         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
26715         for specs file name.
26716         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
26717         * config/avr/avr-mcus.def: Adjust initializers and comments.
26718
26719 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
26720
26721         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
26722         DECL_ONE_ONLY to check if decl is one only.
26723         * ipa-split.c (consider_split): Limit splitt of one only functions.
26724
26725 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
26726
26727         PR tree-optimization/65427
26728         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
26729         functions.
26730         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
26731
26732 2015-03-16  Marek Polacek  <polacek@redhat.com>
26733
26734         * cgraph.h (add_new_static_var): Remove declaration.
26735         * varpool.c (add_new_static_var): Remove function.
26736
26737 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
26738
26739         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
26740         instead of vec<tree> * with vec_alloc and release for args.
26741         Adjust all users.
26742
26743         PR middle-end/65431
26744         * omp-low.c (delete_omp_context): Only splay_tree_delete
26745         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
26746         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
26747
26748 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
26749
26750         PR sanitizer/64820
26751         * cfgexpand.c (align_base): New function.
26752         (alloc_stack_frame_space): Call it.
26753         (expand_stack_vars): Align prev_frame to be sure
26754         data->asan_vec elements aligned properly.
26755
26756 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
26757
26758         PR middle-end/65409
26759         * expr.c (store_field): Do not do a direct block copy if the source is
26760         a PARALLEL with BLKmode.
26761
26762 2015-03-16  Tom de Vries  <tom@codesourcery.com>
26763
26764         PR middle-end/65414
26765         Revert:
26766         2015-03-12  Tom de Vries  <tom@codesourcery.com>
26767
26768         PR rtl-optimization/64895
26769         * lra-lives.c (check_pseudos_live_through_calls): Use
26770         actual_call_used_reg_set instead of call_used_reg_set, if available.
26771
26772 2015-03-16  Alan Modra  <amodra@gmail.com>
26773
26774         PR target/63150
26775         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
26776         Modify Z->r bswapdi splitter to use dest in place of scratch.
26777         In r->Z and Z->r bswapdi splitter rename word_high, word_low
26778         to word1, word2 and rearrange logic to suit.
26779         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
26780         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
26781         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
26782         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
26783         early clobber.
26784
26785 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
26786
26787         PR tree-optimization/65369
26788         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
26789         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
26790         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
26791
26792         PR tree-optimization/65418
26793         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
26794         are casts in the first PLUS_EXPR operand, ensure tbias and
26795         *totallowp are in the inner type.
26796
26797         PR rtl-optimization/65401
26798         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
26799         argument.  If true, adjust_address_nv of x with big-endian
26800         correction for the mode widening to GET_MODE (y).
26801         (make_field_assignment): Don't do MEM mode widening here.
26802         Use MEM_P instead of GET_CODE == MEM.
26803
26804 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
26805
26806         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
26807         the external decls.
26808
26809 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26810
26811         PR target/64600
26812         * config/arm/arm.c (arm_gen_constant, AND case): Use
26813         ARM_SIGN_EXTEND when constructing AND mask.
26814
26815 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26816
26817         * graph.c (print_graph_cfg): Make function names visible and append
26818         parenthesis to it.  Also make groups of basic blocks belonging to the
26819         same function visible.
26820
26821 2015-03-12  Richard Biener  <rguenther@suse.de>
26822
26823         PR middle-end/44563
26824         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
26825         to avoid quadratic behavior with inline expansion splitting blocks.
26826         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
26827         with the successor if the predecessor will be merged with it.
26828         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
26829         entry block with its successor.
26830
26831 2015-03-13  Richard Biener  <rguenther@suse.de>
26832
26833         PR middle-end/44563
26834         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
26835         (cleanup_tree_cfg_1): Do not call it.
26836         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
26837         (fixup_noreturn_call): Mark the stmt as control altering.
26838         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
26839         here.
26840         (pass_data_fixup_cfg): Produce a dump file.
26841         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
26842         (need_noreturn_fixup): New global.
26843         (pass_dominator::execute): Fixup queued noreturn calls.
26844         (optimize_stmt): Queue calls that became noreturn for fixup.
26845         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
26846         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
26847         (el_to_fixup): New global.
26848         (eliminate_dom_walker::before_dom_childre): Queue calls that
26849         became noreturn for fixup.
26850         (eliminate): Fixup queued noreturn calls.
26851         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
26852         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
26853         (substitute_and_fold_dom_walker::before_dom_children): Queue
26854         alls that became noreturn for fixup.
26855         (substitute_and_fold): Fixup queued noreturn calls.
26856
26857 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
26858
26859         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
26860         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
26861         are building; for methods check ODR type of class they belong to if
26862         they may lead to a polymorphic call.
26863         (sem_function::compare_polymorphic_p): Be bit smarter about testing
26864         when function may lead to a polymorphic call.
26865         (sem_function::compare_type_list): Remove.
26866         (sem_variable::equals): Update use of compatible_types_p.
26867         (sem_variable::parse_tree_refs): Remove.
26868         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
26869         cdtor.
26870         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
26871         matching here.
26872         (func_checker::compatible_polymorphic_types_p): Break out from ...
26873         (unc_checker::compatible_types_p): ... here.
26874         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
26875         Declare.
26876         (unc_checker::compatible_types_p): Update.
26877         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
26878         Remove.
26879
26880 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26881
26882         PR rtl-optimization/65235
26883         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
26884         When first element of vec_concat is const_int, calculate its size
26885         using second element.
26886
26887 2015-03-12  Richard Biener  <rguenther@suse.de>
26888
26889         PR middle-end/65270
26890         * fold-const.c (operand_equal_p): Fix ordering of resetting
26891         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
26892
26893 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26894
26895         * config/s390/s390.c (s390_reorg): Move code to output nops after label
26896         to s390_reorg ().
26897         (s390_asm_output_function_label): Likewise.
26898         * config/s390/s390.c (s390_asm_output_function_label):
26899         Fix function label alignment with -mhtopatch.
26900         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
26901         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
26902         ("nop_2_byte"): New define_insn.
26903         ("nop_4_byte"): Likewise.
26904         ("nop_6_byte"): Likewise.
26905         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
26906         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
26907
26908 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
26909
26910         PR target/65103
26911         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
26912         register.
26913
26914 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
26915
26916         PR target/65044
26917         * toplev.c (process_options): Restrict Pointer Bounds Checker
26918         usage with Address Sanitizer.
26919
26920 2015-03-12  Richard Biener  <rguenther@suse.de>
26921
26922         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
26923         to split on.
26924         * omp-low.c (expand_omp_taskreg): Split block before removing
26925         the stmt.
26926         (expand_omp_target): Likewise.
26927         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
26928         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
26929         stmt to split_block.
26930
26931 2015-03-12  Tom de Vries  <tom@codesourcery.com>
26932
26933         PR rtl-optimization/64895
26934         * lra-lives.c (check_pseudos_live_through_calls): Use
26935         actual_call_used_reg_set instead of call_used_reg_set, if available.
26936
26937 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
26938
26939         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
26940         (cgraph_node::remove): Likewise.
26941         (cgraph_node::get_untransformed_body): Likewise.
26942         * varpool.c (varpool_node::remove): Likewise.
26943         (varpool_node::get_constructor): Add sanity check.
26944
26945 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
26946
26947         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
26948         old GCC versions.
26949         (-fabi-compat-version): Likewise.
26950         (-ffriend-injection): Likewise.
26951         (-Wdeclaration-after-statement): Likewise.
26952         (-fomit-frame-pointer): Likewise.
26953         (-ftree-coalesce-inlined-vars): Likewise.
26954         (-fvisibility=): Likewise.
26955         * doc/extend.texi (Typeof): Likewise.
26956         (Zero Length): Likewise.
26957         (Escaped Newlines): Likewise.
26958         (Compound Literals): Likewise.
26959         (Function Attributes): Likewise.
26960         (Label Attributes): Likewise.
26961         (Type Attributes): Likewise.
26962         (Function Names): Likewise.
26963         (Other Builtins): Likewise.
26964         (Function Specific Option Pragmas): Likewise.
26965         (C++ Interface): Likewise.
26966
26967 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
26968
26969         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
26970
26971 2015-03-11  Marek Polacek  <polacek@redhat.com>
26972
26973         PR tree-optimization/65388
26974         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
26975
26976 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
26977
26978         PR target/65296
26979         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
26980         * configure: Regenerate.
26981         * config.in: Regenerate.
26982         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
26983         [-mn-flash]: Document it.
26984         [__AVR_ARCH__]: Document avrtiny.
26985
26986         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
26987         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
26988         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
26989
26990 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26991
26992         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
26993
26994 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
26995
26996         PR target/65242
26997         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
26998         allow reloads of PLUS in floating point/VSX registers.
26999
27000 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
27001
27002         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
27003         crypto_sha256_fast.
27004         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
27005
27006 2015-03-11  Richard Biener  <rguenther@suse.de>
27007
27008         PR tree-optimization/65310
27009         * tree-sra.c (build_ref_for_offset): Also preserve larger
27010         alignment.
27011
27012 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
27013
27014         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
27015
27016 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27017
27018         PR target/65368
27019         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
27020         new define_expand.
27021         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
27022
27023 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27024
27025         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
27026         (sem_function::equals_wpa): ... here.
27027
27028 2015-03-10  Marek Polacek  <polacek@redhat.com>
27029             Jakub Jelinek  <jakub@redhat.com>
27030
27031         PR sanitizer/65367
27032         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
27033         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
27034         separately.
27035
27036 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27037
27038         PR target/65286
27039         * config/rs6000/t-linux: For powerpc64* target set
27040         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
27041
27042 2015-03-10  Richard Biener  <rguenther@suse.de>
27043
27044         PR middle-end/44563
27045         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
27046         for redirect_all_calls.
27047
27048 2015-03-10  Marek Polacek  <polacek@redhat.com>
27049
27050         * gdbinit.in (pcfun): Define and document.
27051
27052 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
27053
27054         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
27055         of libgomp-plugin.h.
27056         (find_target_compiler): Support a case when the path to gcc is
27057         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
27058         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
27059         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
27060         libgomp-plugin.h.
27061         (main): Use GCC_INSTALL_NAME as target_driver_name.
27062         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
27063         define.
27064         (mkoffload.o): Remove obsolete include path and defines.
27065         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
27066
27067 2015-03-10  Richard Biener  <rguenther@suse.de>
27068
27069         PR middle-end/63155
27070         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
27071         * tree-ssa-coalesce.c: Include timevar.h.
27072         (attempt_coalesce): Handle graph being NULL.
27073         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
27074         Split out abnormal coalescing to ...
27075         (perform_abnormal_coalescing): ... this function.
27076         (coalesce_ssa_name): Perform abnormal coalescing without computing
27077         live/conflict.
27078         (verify_ssa_coalescing_worker): New function.
27079         (verify_ssa_coalescing): Likewise.
27080
27081 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
27082
27083         PR target/65296
27084         * config.gcc (extra_options) [avr]: Remove.
27085         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
27086         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
27087         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
27088
27089         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
27090         (-mmcu=): Add Var and MissingArgError properties.
27091         (-march=): Remove.
27092         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
27093         * config/avr/t-multilib: Regenerate.
27094         * config/avr/specs.h: New file.
27095         * config/avr/driver-avr.c: New file.
27096         * config/avr/genopt.sh: Remove file.
27097         * config/avr/avr-tables.opt: Remove file.
27098         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
27099         * config/avr/avr-c.c: Same.
27100         * avr-arch.h: Same.
27101         (avr_current_device): Remove proto.
27102         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
27103         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
27104         (EXTRA_SPEC_FUNCTIONS): Define.
27105         (avr_devicespecs_file): New specs function proto.
27106         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
27107         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
27108         (avr_current_device): Remove definition and usage.
27109         (avr_set_core_architecture): New static function.
27110         (avr_option_override): Use it.
27111         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
27112         (mcu_name): New static array.
27113         (comparator, avr_archs_str, avr_mcus_str): New static functions.
27114         (avr_inform_devices, avr_inform_core_architectures): New functions.
27115         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
27116         (avrlibc.h) [WITH_AVRLIBC]: Include.
27117         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
27118         (print_mcu): Rewrite from scratch.
27119         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
27120         Forward to avr-specific specs defined in device-specs file.
27121         * config/avr/t-avr (driver-avr.o): New rule.
27122         (avr-devices.o): Depend on avr-arch.h.
27123         (avr-mcus): No more depend on avr-tables.opt.
27124         (avr-tables.opt): Remove rule.
27125         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
27126
27127 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27128
27129         * c-family/c.opt (fchkp-use-wrappers): New.
27130         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
27131         (chkp_wrap_function): New.
27132         (chkp_build_instrumented_fndecl): Support wrapped
27133         functions.
27134         * doc/invoke.texi (-fcheck-pointer-bounds): New.
27135         (-fchkp-check-incomplete-type): New.
27136         (-fchkp-first-field-has-own-bounds): New.
27137         (-fchkp-narrow-bounds): New.
27138         (-fchkp-narrow-to-innermost-array): New.
27139         (-fchkp-optimize): New.
27140         (-fchkp-use-fast-string-functions): New.
27141         (-fchkp-use-nochk-string-functions): New.
27142         (-fchkp-use-static-bounds): New.
27143         (-fchkp-use-static-const-bounds): New.
27144         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
27145         (-fchkp-check-read): New.
27146         (-fchkp-check-write): New.
27147         (-fchkp-store-bounds): New.
27148         (-fchkp-instrument-calls): New.
27149         (-fchkp-instrument-marked-only): New.
27150         (-fchkp-use-wrappers): New.
27151         (-static-libmpx): New.
27152         (-static-libmpxwrappers): New.
27153
27154 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27155
27156         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
27157         (CHKP_SPEC): Add wrappers library.
27158         * c-family/c.opt (static-libmpxwrappers): New.
27159
27160 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27161
27162         * config/i386/linux-common.h (LIBMPX_LIBS): New.
27163         (LIBMPX_SPEC): New.
27164         (CHKP_SPEC): New.
27165         * gcc.c (CHKP_SPEC): New.
27166         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
27167         * c-family/c.opt (static-libmpx): New.
27168
27169 2015-03-10  Richard Biener  <rguenther@suse.de>
27170
27171         PR middle-end/44563
27172         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
27173         for compare_type.
27174         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
27175         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
27176         (cgraph_add_edge_to_call_site_hash): Likewise.
27177         (cgraph_node::get_edge): Likewise.
27178         (cgraph_edge::set_call_stmt): Likewise.
27179         (cgraph_edge::remove_caller): Likewise.
27180
27181 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
27182
27183         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
27184         (callee_saved_gpr_regs_size): ... this.
27185         (callee_saved_regs_first_regno): Rename to ...
27186         (callee_saved_first_gpr_regno): ... this.
27187         (callee_saved_regs_last_regno) Rename to ...
27188         (callee_saved_last_gpr_regno): ... this.
27189         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
27190         variables.
27191         (nds32_initial_elimination_offset): Likewise.
27192         (nds32_expand_prologue): Likewise.
27193         (nds32_expand_epilogue): Likewise.
27194         (nds32_expand_prologue_v3push): Likewise.
27195         (nds32_expand_epilogue_v3pop): Likewise.
27196         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
27197         Adjust renamed variables.
27198         (nds32_output_stack_pop): Likewise.
27199
27200 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27201
27202         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
27203         code in comment.
27204
27205 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27206
27207         PR rtl-optimization/65321
27208         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
27209         than shift mode.
27210         * var-tracking.c (use_narrower_mode): Likewise.
27211
27212 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27213
27214         PR tree-optimization/65355
27215         * varasm.c (notice_global_symbol): Do not produce RTL.
27216         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
27217         anchor.
27218         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
27219         check for section anchors.
27220
27221 2015-03-10  Alan Modra  <amodra@gmail.com>
27222
27223         PR target/65286
27224         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
27225         to be single-arch by default.  Set cpu_is_64bit for powerpc64
27226         given --with-cpu=native.
27227         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
27228         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
27229         and powerpc64le.
27230         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
27231         rs6000_isa_flags rather than TARGET_64BIT.
27232
27233 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
27234             Kaz Kojima  <kkojima@gcc.gnu.org>
27235
27236         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
27237
27238 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
27239
27240         PR lto/65361
27241         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
27242         on a TREE_BINFO, instead use BINFO_TYPE.
27243
27244 2015-03-09  Richard Biener  <rguenther@suse.de>
27245
27246         PR middle-end/65270
27247         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
27248         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
27249         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
27250         of that.  When comparing dereferences compare alignment.
27251         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
27252
27253 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
27254
27255         * ipa-inline-analysis.c (check_callers): Check
27256         node->can_remove_if_no_direct_calls_and_refs_p.
27257         (growth_likely_positive): Reorganize to call
27258         can_remove_if_no_direct_calls_p later.
27259         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
27260         will_be_removed_from_program_if_no_direct_calls_p): Add
27261         will_inline parameter.
27262         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
27263         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
27264         Handle inliner case correctly.
27265
27266 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27267
27268         PR tree-optimization/63743
27269         * cfgexpand.c (reorder_operands): Also reorder if only second operand
27270         had its definition forwarded by TER.
27271
27272 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
27273
27274         PR lto/65316
27275         * ipa-utils.h (types_odr_comparable): Add strict argument.
27276         * ipa-devirt.c: Fix whitespace;
27277         (odr_hasher): Remove.
27278         (odr_name_hasher, odr_vtable_hasher): New hashers.
27279         (can_be_name_hashed_p): New predicate.
27280         (hash_type_name): remove.
27281         (hash_odr_name): New.
27282         (odr_name_hasher::hash): new.
27283         (can_be_vtable_hashed_p): New.
27284         (hash_odr_vtable): New.
27285         (odr_vtable_hasher::hash): New.
27286         (types_same_for_odr): Add strict parameter.
27287         (types_odr_comparable): Likewise.
27288         (odr_name_hasher::equal): New.
27289         (odr_vtable_hasher::equal): New.
27290         (odr_name_hasher::remove): New.
27291         (odr_hash_type): Change to hash_table<odr_name_hasher>.
27292         (odr_vtable_hash_type): New.
27293         (odr_vtable_hash): New.
27294         (odr_subtypes_equivalent_p): Do strict comparsion.
27295         (add_type_duplicate): Merge type names; cleanup; avoid type
27296         duplicates.
27297         (register_odr_type): Initialize vtable hash.
27298         (build_type_inheritance_graph): Likewise
27299         (get_odr_type): Reorg to use two hashes.
27300         (dump_possible_polymorphic_call_targets): Move sanity check after debug
27301         output.
27302         (ipa_devirt): Dump type_inheritance_graph.
27303         (types_same_for_odr): Add strict mode.
27304
27305 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27306
27307         PR ipa/65334
27308         * cgraph.h (symtab_node): Add definition_alignment,
27309         can_increase_alignment_p and increase_alignment.
27310         * symtab.c (symtab_node::can_increase_alignment_p,
27311         increase_alignment_1, symtab_node::increase_alignment,
27312         symtab_node::definition_alignment): New.
27313         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
27314         can_increase_alignment_p.
27315         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
27316         * tree-vect-stmts.c (ensure_base_align): Likewise.
27317         * varasm.c (function_section_1): Use definition_alignment.
27318         (assemble_start_function): Likewise.
27319         (emit_local): likewise.
27320         (build_constant_desc): Likewsie.
27321         (output_constant_def_contents): Likewise.
27322         (place_block_symbol): Likewise.
27323         (output_object_block): Likewise.
27324
27325 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27326
27327         PR ipa/65316
27328         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
27329         when outputting debug.
27330
27331 2015-03-07  Marek Polacek  <polacek@redhat.com>
27332             Martin Uecker  <uecker@eecs.berkeley.edu>
27333
27334         PR sanitizer/65280
27335         * doc/invoke.texi: Update description of -fsanitize=bounds.
27336
27337 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
27338
27339         * tree-ssa-phiopt.c (neg_replacement): Remove.
27340         (tree_ssa_phiopt_worker): Remove negate optimization.
27341
27342 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27343
27344         PR ipa/65302
27345         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
27346
27347 2015-03-06  Richard Biener  <rguenther@suse.de>
27348
27349         PR middle-end/64928
27350         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
27351         and liveout_obstack members.
27352         (calculate_live_on_exit): Remove.
27353         (calculate_live_ranges): Change declaration.
27354         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
27355         (new_tree_live_info): Adjust.
27356         (calculate_live_ranges): Delete livein when not wanted.
27357         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
27358         Deal with partly deleted live info.
27359         (loe_visit_block): Remove temporary bitmap by using
27360         bitmap_ior_and_compl_into.
27361         (live_worklist): Adjust accordingly.
27362         (calculate_live_on_exit): Make static.
27363         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
27364         we do not need livein.
27365
27366 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
27367
27368         * real.c (real_from_string): Fix typo in assertion.
27369
27370 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
27371
27372         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
27373         the patch.
27374
27375 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27376
27377         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
27378
27379 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
27380
27381         PR target/64342
27382         * lra-assigns.c (find_hard_regno_for): Rename to
27383         find_hard_regno_for_1.  Add a new parameter.
27384         (find_hard_regno_for): New function using find_hard_regno_for_1.
27385
27386 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27387
27388         PR rtl-optimization/65067
27389         * expmed.c (store_bit_field, extract_bit_field): Reworked the
27390         strict volatile bitfield handling.
27391
27392 2015-03-05  Martin Liska  <mliska@suse.cz>
27393
27394         PR ipa/65318
27395         * ipa-icf.c (sem_variable::equals): Compare variables types.
27396
27397 2015-03-05  Richard Henderson  <rth@redhat.com>
27398
27399         PR target/65121
27400         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
27401         correctly check weak symbol binding.
27402
27403 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
27404
27405         PR middle-end/65315
27406         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
27407         needed alignment.
27408
27409 2015-03-05  Martin Liska  <mliska@suse.cz>
27410
27411         * ipa-inline.c (inline_small_functions): Set default value to
27412         prevent warning during bootstrap.
27413         * tree.h: Add pragma guard that ignores false positives during
27414         bootstrap.
27415
27416 2015-03-05  Richard Biener  <rguenther@suse.de>
27417
27418         PR tree-optimization/65310
27419         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
27420         Properly preserve alignment of the base of the access.
27421
27422 2015-03-05  Richard Biener  <rguenther@suse.de>
27423
27424         PR ipa/65270
27425         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
27426         Compare dependence info.
27427
27428 2015-03-05  Richard Biener  <rguenther@suse.de>
27429
27430         PR middle-end/65233
27431         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
27432         tree-into-ssa.h.
27433         (walk_ssa_copies): Revert last chage.  Instead do not walk
27434         SSA names registered for SSA update.
27435
27436 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
27437
27438         PR ipa/65270
27439         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
27440         vtable references for their containing type.
27441         (sem_function::equals_wpa): Compare TYPE_RESTRICT
27442         and type attributes.
27443
27444 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
27445
27446         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
27447         before negating it.
27448         * stor-layout.c (finalize_record_size): Revert latest change.
27449
27450 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
27451
27452         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
27453
27454 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
27455
27456         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
27457         for correct comdat handling.
27458         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
27459         Likewise.
27460         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
27461         (used_from_object_file_p_worker): Remove.
27462         (cgraph_node::only_called_directly_or_alised): Add
27463         used_from_object_file_p.
27464         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
27465         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
27466         can_remove_if_no_direct_calls_and_refs_p.
27467
27468 2015-03-04  Nick Clifton  <nickc@redhat.com>
27469
27470         * config/rl78/rl78.h (enum reg_class): Remove real registers from
27471         General register class.
27472         * config/rl78/rl78-real.md: Replace general register constraints
27473         with real+virtual register constraints.
27474
27475 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27476
27477         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
27478         from checking for -mhtm option.
27479
27480 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
27481
27482         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
27483         (struct ipa_sra_check_caller_data): Add has_thunk field.
27484         (ipa_sra_check_caller): Check for thunk.
27485         (ipa_sra_preliminary_function_checks): Give up on function with
27486         thunks.
27487         (ipa_early_sra): Use call_for_symbol_and_aliases.
27488
27489 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
27490
27491         PR target/65249
27492         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
27493         called for __stack_chk_guard symbol.
27494
27495 2015-03-03  DJ Delorie  <dj@redhat.com>
27496
27497         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
27498         inc/dec.
27499         (*addhi3_real): Likewise.
27500         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
27501         pattern to match incrementing memory.
27502         * config/rl78/predicates.md (rl78_1_2_operand): New.
27503         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
27504         it's the same and only mem.
27505         (rl78_alloc_physical_registers_op2): If there's effectively only
27506         one MEM, transcode it into HL.
27507         (rl78_far_p): Reject addresses that aren't legitimate.
27508
27509 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
27510
27511         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
27512         negating it.
27513
27514         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
27515
27516 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
27517
27518         Implement call0 ABI for xtensa
27519         * config/xtensa/constraints.md ("a" constraint): Include stack
27520         pointer in case of call0 ABI.
27521         ("q" constraint): Make empty in case of call0 ABI.
27522         ("D" constraint): Include stack pointer in case of call0 ABI.
27523         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
27524         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
27525         prototypes.
27526         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
27527         variable.
27528         (xtensa_regno_to_class): Make it a local variable in the
27529         function xtensa_regno_to_class.
27530         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
27531         macro, function prototype and implementation.
27532         (reg_nonleaf_alloc_order): Make it a local variable in the
27533         function order_regs_for_local_alloc.
27534         (xtensa_conditional_register_usage): New function.
27535         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
27536         (xtensa_valid_move): Allow direct moves to stack pointer
27537         register in call0 ABI.
27538         (xtensa_setup_frame_addresses): Only spill register windows in
27539         windowed ABI.
27540         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
27541         call0 ABI respectively.
27542         (xtensa_function_arg_1): Only mark a7 register for copying in
27543         windowed ABI.
27544         (xtensa_call_save_reg): New function.
27545         (compute_frame_size): Add space for callee saved register
27546         storage to the frame size in call0 ABI.
27547         (xtensa_expand_prologue): Generate code to set up stack frame
27548         and save callee-saved registers in call0 ABI.
27549         (xtensa_expand_epilogue): New function.
27550         (xtensa_set_return_address): New function.
27551         (xtensa_return_addr): Calculate return address in call0 ABI.
27552         (xtensa_builtin_saveregs): Only mark a7 register for copying and
27553         emit copying code in windowed ABI.
27554         (order_regs_for_local_alloc): Add preferred register allocation
27555         order for non-leaf function in call0 ABI.
27556         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
27557         (xtensa_asm_trampoline_template): Add trampoline generation for
27558         call0 ABI.
27559         (xtensa_trampoline_init): Add trampoline initialization for
27560         call0 ABI.
27561         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
27562         functions.
27563         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
27564         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
27565         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
27566         ABI call-used registers.
27567         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
27568         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
27569         call0 ABI.
27570         (REG_CLASS_CONTENTS): Include all registers into the preferred
27571         reload registers set, adjust the set in the
27572         xtensa_conditional_register_usage.
27573         (xtensa_regno_to_class): Drop variable declaration.
27574         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
27575         function.
27576         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
27577         respectively.
27578         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
27579         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
27580         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
27581         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
27582         location in call0 ABI.
27583         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
27584         stack adjustment size when handling exception.
27585         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
27586         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
27587         definitions.
27588         ("return" pattern): Generate ret.n/ret in call0 ABI.
27589         ("epilogue" pattern): Expand epilogue.
27590         ("nonlocal_goto" pattern): Use default in call0 ABI.
27591         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
27592         emit eh_set_a0_* depending on ABI.
27593         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
27594         ("eh_set_a0_call0", "blockage"): New patterns.
27595
27596 2015-03-03  Martin Liska  <mliska@suse.cz>
27597
27598         PR ipa/65287
27599         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
27600
27601 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
27602
27603         PR 65138/target
27604         * config/rs6000/rs6000-tables.opt: Regenerate table.
27605
27606 2015-03-03  Renlin Li  <renlin.li@arm.com>
27607
27608         * doc/md.texi (@item ^): Change ? into ^.
27609
27610 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
27611
27612         * doc/tm.texi: Regenerated.
27613
27614 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
27615
27616         * builtins.c (expand_builtin_return_addr): Add
27617         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
27618         surrounding #ifdef.
27619         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
27620         definition to 1.
27621         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
27622         Likewise.
27623         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
27624         undefined.
27625         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
27626         paragraph.
27627
27628 2015-03-03  Martin Jambor  <mjambor@suse.cz>
27629             Eric Botcazou  <ebotcazou@adacore.com>
27630
27631         * tree-sra.c (ipa_sra_check_caller_data): New type.
27632         (has_caller_p): Removed.
27633         (ipa_sra_check_caller): New function.
27634         (ipa_sra_preliminary_function_checks): Use it.
27635
27636 2015-03-03  Martin Liska  <mliska@suse.cz>
27637
27638         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
27639         instead of if branch.
27640
27641 2015-03-03  Martin Liska  <mliska@suse.cz>
27642
27643         PR ipa/65282
27644         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
27645
27646 2015-03-23  Jeff Law  <law@redhat.com>
27647
27648         PR tree-optimization/65241
27649         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
27650         hash table if INSERT is true.
27651
27652 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
27653
27654         PR target/65296
27655         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
27656
27657 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
27658
27659         PR target/64331
27660         * config/avr/avr.c (context.h, tree-pass.h): Include them.
27661         (avr_pass_data_recompute_notes): New static variable.
27662         (avr_pass_recompute_notes): New class.
27663         (avr_register_passes): New static function.
27664         (avr_option_override): Call it.
27665
27666 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
27667
27668         Fix various problems with specs file generation.
27669
27670         PR target/65296
27671         * config.gcc (extra_gcc_objs) [avr]: Remove.
27672         * config/avr/driver-avr.c: Remove file.
27673         * config/avr/t-avr (driver-avr.o): Remove rule.
27674         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
27675         INCLUDES to build.  Depend on TM_H.
27676         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
27677         build warnings.  Fix non-matching types and non-existing %-codes.
27678         (tm.h): Include.
27679         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
27680         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
27681         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
27682         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
27683         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
27684         (LIBGCC_SPEC): Remove definitions.
27685
27686 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
27687
27688         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
27689         to create a register in testing mode.
27690
27691 2015-03-03  Martin Liska  <mliska@suse.cz>
27692             Jan Hubicka  <hubicka@ucw.cz>
27693
27694         PR ipa/65263
27695         * cgraph.c (cgraph_node::has_thunk_p): New function.
27696         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
27697         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
27698         (sem_function::merge): Assert is changed.
27699
27700 2015-03-03  Martin Liska  <mliska@suse.cz>
27701             Martin Jambor  <mjambor@suse.cz>
27702
27703         PR ipa/65087
27704         * ipa-icf.c (sem_item_optimizer::execute): Change function
27705         return value to boolean.
27706         (sem_item_optimizer::merge_classes): Likewise.
27707         (ipa_icf_driver): Return TODO_remove_functions in case there's
27708         a merge operation processed.
27709         * ipa-icf.h: Change function return value to boolean.
27710
27711 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
27712
27713         PR 65138/target
27714         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
27715         processor type for 64-bit little endian PowerPC.
27716
27717         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
27718         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
27719         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
27720         printing built-in mask so it does not pass NULL pointers.
27721
27722         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
27723         -mcpu=powerpc64le.
27724
27725 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
27726
27727         PR target/58158
27728         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
27729         !ISA_HAS_FP_CONDMOVE.
27730
27731 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
27732
27733         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
27734         reload_completed.
27735
27736 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
27737
27738         * doc/invoke.texi (Options for Code Generation Conventions):
27739         Fix URL of DSO paper.
27740
27741 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
27742
27743         PR ipa/65130
27744         * ipa-inline.c (check_callers): Looks for recursion.
27745         (inline_to_all_callers): Give up on uninlinable or recursive edges.
27746         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
27747         summary of inline clones.
27748         (do_estimate_growth_1): Fix recursion check.
27749
27750 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
27751
27752         PR ipa/64988
27753         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
27754         comdat groups.
27755
27756 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
27757             Aldy Hernandez  <aldyh@redhat.com>
27758
27759         PR lto/65276
27760         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
27761         when checking TYPE_BINFO.
27762
27763 2015-03-02  Richard Biener  <rguenther@suse.de>
27764
27765         PR ipa/65270
27766         * ipa-icf-gimple.c: Include builtins.h.
27767         (func_checker::compare_memory_operand): Compare base alignment.
27768
27769 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
27770
27771         PR target/65184
27772         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
27773         are never passed by reference.
27774
27775 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
27776
27777         PR target/65183
27778         * tree-chkp.c (chkp_check_lower): Don't check against
27779         zero bounds for already instrumented functions.
27780         (chkp_check_upper): Likewise.
27781         (chkp_fini): Clean pass local data to avoid wrong reusage.
27782
27783 2015-02-28  Martin Liska  <mliska@suse.cz>
27784             Jan Hubicka  <hubicka@ucw.cz>
27785
27786         * ipa-icf.c (sem_variable::equals): Improve debug output;
27787         get variable constructor.
27788         (sem_variable::parse): Do not filter out too early; give up on
27789         volatile and register vars.
27790         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
27791         variables.
27792         * ipa-icf.h (sem_variable::init): Do not set ctor.
27793         (sem_variable::ctor): Remove.
27794
27795 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
27796
27797         PR middle-end/65233
27798         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
27799
27800 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27801
27802         * ipa-icf.c: Include stor-layout.h
27803         (sem_function::compare_cgraph_references): Rename to ...
27804         (sem_item::compare_cgraph_references): ... this one.
27805         (sem_variable::equals_wpa): New function
27806         (sem_variable::equals): Do not check stuff already verified by
27807         equals_wpa.
27808         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
27809         * ipa-icf.h (sem_item): Add compare_cgraph_references.
27810         (sem_function): Remove compare_cgraph_references.
27811         (sem_variable): Turns equals_wpa into non-inline.
27812
27813 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27814
27815         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
27816         (sem_item::add_expr): New function.
27817         (sem_function::hash_stmt): Handle operands of most statements.
27818         (sem_variable::get_hash): Hash the actual constructor.
27819         * ipa-icf.h (sem_item): Add add_expr.
27820         (sem_function): Update prototype of hash_stmt
27821
27822 2015-02-28  Martin Liska  <mliska@suse.cz>
27823             Jan Hubicka  <hubicka@ucw.cz>
27824
27825         PR ipa/65245
27826         * ipa-icf-gimple.c (func_checker::compare_function_decl):
27827         Remove.
27828         (func_checker::compare_variable_decl): Skip symtab vars.
27829         (func_checker::compare_cst_or_decl): Update.
27830         * ipa-icf.c (sem_function::parse): Do not consider aliases.
27831         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
27832         use correct symtab predicates.
27833         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
27834         (sem_variable::parse):  Update comment.
27835         (sem_item_optimizer::build_graph): Consider ultimate aliases
27836         for references.
27837
27838 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27839
27840         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
27841         of OBJ_TYPE_REF.
27842
27843 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27844
27845         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
27846         (sem_variable::merge) Likewise.
27847
27848 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27849
27850         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
27851         target; also match flag_ipa_devirt.
27852
27853 2015-03-01  Martin Liska  <mliska@suse.cz>
27854             Jan Hubicka  <hubicka@ucw.cz>
27855
27856         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
27857         Validate variable alignment.
27858         * ipa-icf.c (sem_function::equals_private): Be more precise
27859         about non-common function attributes.
27860         (sem_variable::equals): Likewise.
27861
27862 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27863
27864         PR ipa/65237
27865         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
27866         across COMDAT group boundary.
27867
27868 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27869
27870         PR ipa/65232
27871         * ipa-icf.c (clear_decl_rtl): New function.
27872         (sem_function::merge): Clear RTL before forming alias.
27873         (sem_variable::merge): Clear RTL before forming alias.
27874
27875 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
27876
27877         PR ipa/65236
27878         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
27879
27880 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
27881
27882         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
27883         to neon_to_gp<q>.
27884
27885 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
27886
27887         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
27888         a typo in the description.
27889
27890 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
27891
27892         PR target/64317
27893         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
27894         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
27895         * lra-constraints.c: Include "params.h".
27896         (EBB_PROBABILITY_CUTOFF): Use
27897         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
27898         (lra_inheritance): Use '<' instead of '<=' for
27899         EBB_PROBABILITY_CUTOFF.
27900         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
27901         Document change.
27902
27903 2015-02-27  Martin Liska  <mliska@suse.cz>
27904
27905         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
27906         vector length condition.
27907
27908 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
27909
27910         * doc/extend.texi (x86 transactional memory intrinsics):
27911         Reorganize discussion of _xbegin.  Clarify that the return
27912         value is a bit mask.  Expand example and move to end of section.
27913
27914 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
27915             Aldy Hernandez  <aldyh@redhat.com>
27916
27917         PR rtl-optimization/65220
27918         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
27919
27920 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
27921
27922         PR target/65032
27923         * lra-remat.c (update_scratch_ops): New.
27924         (do_remat): Call it.
27925         * lra.c (lra_register_new_scratch_op): New. Take code from ...
27926         (remove_scratches): ... here.
27927         * lra-int.h (lra_register_new_scratch_op): New prototype.
27928
27929 2015-02-27  Marek Polacek  <polacek@redhat.com>
27930
27931         PR c/65040
27932         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
27933         -Wformat-signedness anymore.
27934
27935 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27936
27937         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
27938         function.
27939         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
27940
27941 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27942
27943         * config/s390/s390.c (enum s390_builtin):
27944         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
27945         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
27946         (s390_init_builtins): Generate new builtin functions.
27947         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
27948         (s390_sfpc, s390_efpc): New pattern definitions.
27949
27950 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27951
27952         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
27953         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
27954         (s390_builtin_decls): New array.
27955         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
27956         (s390_builtin_decl): New function.
27957         (TARGET_BUILTIN_DECL): Define macro.
27958
27959 2015-02-27  Richard Biener  <rguenther@suse.de>
27960
27961         PR middle-end/63175
27962         * builtins.c (get_object_alignment_2): Make sure to re-apply
27963         the ANDed mask after recursing to its operand gets us a new
27964         misalignment bit position.
27965
27966 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
27967             Martin Liska  <mliska@suse.cz>
27968
27969         PR bootstrap/65150
27970         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
27971         Use address_matters_p.
27972         (redirect_all_callers, set_addressable): New functions.
27973         (sem_function::merge): Reorganize and fix merging issues.
27974         (sem_variable::merge): Likewise.
27975         (sem_variable::compare_sections): Remove.
27976         * common.opt (fmerge-all-constants, fmerge-constants): Remove
27977         Optimization flag.
27978         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
27979         redirect them.
27980         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
27981         decl is used.
27982         (address_matters_1): New function.
27983         (symtab_node::address_matters_p): New function.
27984         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
27985         check for merged flag.
27986         * cgraph.h (address_matters_p): Declare.
27987         (symtab_node::address_taken_from_non_vtable_p): Remove.
27988         (symtab_node::address_can_be_compared_p): New method.
27989         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
27990         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
27991         Remove.
27992         (comdat_can_be_unshared_p_1) Use address_matters_p.
27993         (update_vtable_references): Fix formating.
27994         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
27995         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
27996         * cgraphclones.c: Preserve merged and icf_merged flags.
27997
27998 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
27999
28000         * doc/extend.texi (Function Attributes): Fix spelling and typos.
28001         (Label Attributes): Likewise.
28002         (Cilk Plus Builtins): Likewise.
28003         (ARC SIMD Built-in Functions): Likewise.
28004         (ARM C Language Extensions (ACLE)): Likewise.
28005         (PowerPC Built-in Functions): Likewise.
28006         (PowerPC Hardware Transactional Memory Built-in Functions):
28007         Likewise.
28008
28009 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28010
28011         PR tree-optimization/65216
28012         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
28013         new stmt and new SSA_NAME for lhs whenever the arguments have
28014         changed and weren't just swapped.  Fix comment typo.
28015
28016         PR tree-optimization/65215
28017         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
28018         for PDP endian targets.
28019         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
28020         Fix up formatting issues.
28021         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
28022         size is smaller than the original, adjust MEM_REF offset by the
28023         difference of sizes.  Use is_gimple_mem_ref_addr instead of
28024         is_gimple_min_invariant test to avoid adding address temporaries.
28025
28026 2015-02-26  Martin Liska  <mliska@suse.cz>
28027             Jan Hubicka  <hubicka@ucw.cz>
28028
28029         PR ipa/64693
28030         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
28031         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
28032         (sem_item_optimizer::process_cong_reduction): Include division by
28033         sensitive references.
28034         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
28035         * ipa-ref.c (ipa_ref::address_matters_p): New function.
28036         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
28037
28038 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
28039
28040         PR target/65192
28041         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
28042         Remove.
28043         * config/avr/avr.c: Same.
28044         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
28045         Refuse any constant address not in 0..0xbf.
28046         * config/avr/avr.md (*mov<mode>, *movsf): Remove
28047         tiny_valid_direct_memory_access_range from insn conditions.
28048         (mov<mode>): Don't special-case expansion of avrtiny addresses.
28049
28050 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
28051
28052         PR target/61142
28053         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
28054         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
28055         * config/sh/predicates.md (const_logical_operand): New predicate.
28056         * config/sh/sh.md: Add new peephole2 patterns.
28057
28058 2015-02-26  Marek Polacek  <polacek@redhat.com>
28059
28060         PR ipa/65008
28061         * ipa-inline.c (early_inliner): Recompute inline parameters.
28062
28063 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28064
28065         PR target/65171
28066         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
28067         instructions with TImode operands are included in the analysis.
28068
28069 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
28070
28071         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
28072         of an EDGE_FSM_THREAD.
28073
28074 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
28075
28076         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
28077
28078 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
28079
28080         PR debug/46102
28081         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
28082
28083 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
28084
28085         PR tree-optimization/65048
28086         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
28087         (thread_through_all_blocks): Call valid_jump_thread_path.
28088         Remove invalid FSM jump-thread paths.
28089
28090 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28091
28092         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
28093         (ipa_write_optimization_summaries): Likewise.
28094         * tree-streamer.h: Include data-streamer.h.
28095         (streamer_mode_table): Declare extern variable.
28096         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
28097         * lto-streamer-out.c (lto_output_init_mode_table,
28098         lto_write_mode_table): New functions.
28099         (produce_asm_for_decls): Call lto_write_mode_table when streaming
28100         offloading LTO.
28101         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
28102         (lto_create_simple_input_block): Add mode_table argument to the
28103         lto_input_block constructors.
28104         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
28105         Likewise.
28106         * data-streamer-in.c (string_for_index): Likewise.
28107         * ipa-inline-analysis.c (inline_read_section): Likewise.
28108         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
28109         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
28110         * lto-streamer-in.c (lto_read_body_or_constructor,
28111         lto_input_toplevel_asms): Likewise.
28112         (lto_input_mode_table): New function.
28113         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
28114         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
28115         Use bp_pack_machine_mode.
28116         * real.h (struct real_format): Add name field.
28117         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
28118         (class lto_input_block): Add mode_table member.
28119         (lto_input_block::lto_input_block): Add mode_table_ argument,
28120         initialize mode_table.
28121         (struct lto_file_decl_data): Add mode_table field.
28122         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
28123         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
28124         unpack_ts_decl_common_value_fields,
28125         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
28126         * tree-streamer.c (streamer_mode_table): New variable.
28127         * real.c (ieee_single_format, mips_single_format,
28128         motorola_single_format, spu_single_format, ieee_double_format,
28129         mips_double_format, motorola_double_format,
28130         ieee_extended_motorola_format, ieee_extended_intel_96_format,
28131         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
28132         ibm_extended_format, mips_extended_format, ieee_quad_format,
28133         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
28134         decimal_single_format, decimal_double_format, decimal_quad_format,
28135         ieee_half_format, arm_half_format, real_internal_format): Add name
28136         field.
28137         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
28138
28139 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
28140
28141         PR target/65161
28142         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
28143         reordering for selective scheduling.
28144
28145 2015-02-26  Terry Guo  <terry.guo@arm.com>
28146
28147         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
28148         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
28149         (arm_arch_no_volatile_ce): Declare new global variable.
28150         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
28151         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
28152         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
28153         (TARGET_NO_VOLATILE_CE): New macro.
28154         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
28155         volatile memory access in IT block
28156
28157 2015-02-25  Kai Tietz  <ktietz@redhat.com>
28158
28159         PR tree-optimization/61917
28160         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
28161         that reduc_def_stmt is null.
28162
28163 2015-02-25  Martin Liska  <mliska@suse.cz>
28164
28165         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
28166         hard register variables.
28167
28168 2015-02-25  Kai Tietz  <ktietz@redhat.com>
28169
28170         PR target/64212
28171         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
28172         (symtab::noninterposable_alias): Likewise.
28173
28174 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
28175
28176         PR target/65167
28177         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
28178         bounds registers.
28179         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
28180
28181 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
28182
28183         PR target/64997
28184         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
28185         as split condition; force split via '#' in output pattern.
28186
28187 2015-02-25  Richard Biener  <rguenther@suse.de>
28188             Kai Tietz  <ktietz@redhat.com>
28189
28190         PR tree-optimization/61917
28191         * tree-vect-loop.c (vectorizable_reduction): Allow
28192         vect_internal_def without reduction to exit graceful.
28193
28194 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
28195
28196         PR target/65196
28197         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
28198         only with NONDEBUG_INSN_P.
28199
28200 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
28201
28202         Use variadic macros with avr-log.c.
28203
28204         * config/avr/avr-protos.h (avr_vdump): New prototype.
28205         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
28206         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
28207         * config/avr/avr-log.c: Adjust comments.
28208         (avr_vdump): New function.
28209         (avr_vadump): Pass caller as 2nd argument instead of format string.
28210         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
28211         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
28212
28213 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
28214
28215         PR lto/64374
28216         * target.def (target_option_stream_in): New target hook.
28217         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
28218         targetm.target_option.post_stream_in if non-NULL.
28219         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
28220         * doc/tm.texi: Updated.
28221         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
28222         function.
28223         (TARGET_OPTION_POST_STREAM_IN): Redefine.
28224
28225 2015-02-24  Jeff Law  <law@redhat.com>
28226
28227         PR target/65117
28228         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
28229         of operand 0 and operand 2.
28230         (zero_cost_loop_end, loop_end): Similarly.
28231
28232 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
28233
28234         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
28235         CXX_MEM_STAT_INFO.
28236
28237 2015-02-24  DJ Delorie  <dj@redhat.com>
28238
28239         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
28240         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
28241         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
28242         instead of hardcoding SImode.
28243
28244 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
28245
28246         * omp-low.c (create_omp_child_function): Tag entrypoint
28247         functions with a special attribute.
28248
28249 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
28250
28251         PR target/65058
28252         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
28253
28254 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
28255
28256         PR rtl-optimization/65123
28257         * lra-remat.c (operand_to_remat): Check hard regs in insn
28258         definition too.
28259
28260 2015-02-24  Nick Clifton  <nickc@redhat.com>
28261
28262         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
28263         to the assembler.
28264
28265 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
28266
28267         PR libgomp/64625
28268         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
28269         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
28270         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
28271         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
28272         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
28273         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
28274         (BUILT_IN_GOACC_PARALLEL): Specify as
28275         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
28276         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
28277         * builtin-types.def
28278         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
28279         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
28280         Remove function types.
28281         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
28282         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
28283         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
28284         New function types.
28285
28286 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
28287
28288         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
28289
28290 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
28291
28292         PR tree-optimization/65170
28293         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
28294         if val[1] < 0, clear also val[2] and return 3.
28295
28296 2015-02-24  Alan Modra  <amodra@gmail.com>
28297
28298         PR target/65172
28299         * config/rs6000/rs6000.c (get_memref_parts): Only return true
28300         when *base is a reg.  Handle nested plus addresses.  Simplify
28301         pre_modify test.
28302
28303 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
28304
28305         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
28306         use natural alignment when optimizing for size.
28307
28308 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
28309
28310         PR target/65153
28311         * config/sh/sh.md (movsicc_true+3): Remove peephole.
28312         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
28313         * config/sh/sh.c (replace_n_hard_rtx): Remove.
28314
28315 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
28316
28317         PR fortran/63427
28318         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
28319         too big for a wide_int.  Implement missing wrapping operation.
28320
28321 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
28322
28323         PR target/65163
28324         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
28325         instead of const_int 4294901760.
28326
28327 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
28328
28329         * config/avr/t-avr: Fix typo in comment.
28330
28331 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
28332
28333         * doc/rtl.texi (fma): Clarify documentation.
28334
28335 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
28336
28337         PR debug/58123
28338         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
28339         over input_location.
28340
28341 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28342
28343         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
28344         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
28345         restrict alignments to absolute_biggest_alignment.
28346         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
28347         Define.
28348         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
28349         * doc/tm.texi: Regenerate.
28350         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
28351
28352 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
28353
28354         PR target/64172
28355         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
28356
28357 2015-02-20  Richard Biener  <rguenther@suse.de>
28358
28359         PR tree-optimization/65136
28360         * tree-ssa-propagate.c: Include cfgloop.h.
28361         (replace_phi_args_in): Avoid replacing loop latch edge PHI
28362         arguments with constants.
28363
28364 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
28365             Martin Liska  <mliska@suse.cz>
28366
28367         PR target/63892
28368         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
28369         don't try to create_thunk if stdarg_p.  If
28370         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
28371         redirect_callers if possible.
28372         (sem_item_optimizer::execute): Call unregister_hooks here...
28373         (ipa_icf_driver): ... instead of here.
28374
28375 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28376
28377         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
28378         Mark operand 0 as earlyclobber in 2nd alternative.
28379         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
28380         Write negated shift amount into QI lowpart operand 0 and use it
28381         in the shift step.
28382         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
28383
28384 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28385
28386         * cgraph.h (clone_function_name_1): Declare.
28387         * cgraphclones.c (clone_function_name_1): New function.
28388         (clone_function_name): Use it.
28389         * lto-partition.c: Include "stringpool.h".
28390         (must_not_rename, maybe_rewrite_identifier)
28391         (validize_symbol_for_target): New static functions.
28392         (privatize_symbol_name): Use must_not_rename.
28393         (promote_symbol): Call validize_symbol_for_target.
28394         (lto_promote_cross_file_statics): Likewise.
28395         (lto_promote_statics_nonwpa): Likewise.
28396
28397 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
28398
28399         PR target/64452
28400         * config/avr/avr.md (pushhi_insn): New insn.
28401         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
28402
28403 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28404             Jakub Jelinek  <jakub@redhat.com>
28405
28406         * tree-streamer.c (preload_common_nodes): Don't preload
28407         TI_VA_LIST* for offloading.
28408         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
28409         in_lto_p.
28410
28411 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
28412
28413         * config/pa/pa.c (pa_emit_move_sequence): Always force
28414         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
28415         note on insn.
28416
28417         * config/pa/pa.c (pa_reloc_rw_mask): New function.
28418         (TARGET_ASM_RELOC_RW_MASK): Define.
28419         (pa_cannot_force_const_mem): Revert previous change.
28420
28421 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
28422             Jan Hubicka  <hubicka@ucw.cz>
28423
28424         PR ipa/65028
28425         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
28426         across jump functions.
28427
28428 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
28429
28430         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
28431
28432 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
28433
28434         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
28435
28436 2015-02-19  Richard Henderson  <rth@redhat.com>
28437
28438         PR middle-end/65074
28439         * varasm.c (default_binds_local_p_2): Don't test node->definition;
28440         test DECL_EXTERNAL independent of symtab_node.
28441
28442 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
28443
28444         PR lto/65012
28445         * varpool.c (varpool_node::get_constructor): Return early
28446         if this->lto_file_data is NULL.
28447
28448 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28449
28450         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
28451         (rank_for_schedule_debug): Update.
28452         (ready_sort): Make static.  Move sorting logic to ...
28453         (ready_sort_debug, ready_sort_real): New static functions.
28454         (schedule_block): Sort both debug insns and real insns in preparation
28455         for ready list trimming.  Improve debug output.
28456         * sched-int.h (ready_sort): Remove global declaration.
28457
28458 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
28459
28460         * ipa-icf.c (sem_function::equals_private): Adjust.
28461         (sem_function::bb_dict_test): Take a vec<int> * instead of
28462         auto_vec<int>.
28463         * ipa-icf.h (bb_dict_test): Likewise.
28464
28465 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
28466
28467         PR gcov-profile/64634
28468         * tree-eh.c (frob_into_branch_around): Fix up typos
28469         in function comment.
28470         (lower_catch): Put eh_seq resulting from EH lowering of
28471         the cleanup sequence after the cleanup rather than before it.
28472
28473 2015-02-18  Tom de Vries  <tom@codesourcery.com>
28474
28475         * common.opt (fstdarg-opt): New option.
28476         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
28477         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
28478         (@item -fstdarg-opt): New item.
28479
28480 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
28481
28482         PR target/65064
28483         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
28484         for common symbols.
28485
28486 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
28487
28488         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
28489         insn-modes.h.
28490         (ALL_HOST_OBJS): Add mkoffload.o.
28491         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
28492
28493 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
28494
28495         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
28496         (compare_virtual_tables): Be smarter about skipping typeinfos;
28497         do sane output on virtual table table mismatch.
28498         (warn_odr): Be ready for forward declarations of enums;
28499         output sane info on base mismatch and virtual table mismatch.
28500         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
28501         when only one type is polymorphic.
28502         (get_odr_type): Fix hashtable corruption.
28503         (dump_odr_type): Dump mangled names.
28504
28505 2015-02-18  Richard Biener  <rguenther@suse.de>
28506
28507         PR tree-optimization/65063
28508         * tree-predcom.c (determine_unroll_factor): Return 1 if we
28509         have replaced looparound PHIs.
28510
28511 2015-02-18  Martin Liska  <mliska@suse.cz>
28512
28513         * lto-streamer.c (lto_streamer_init): Encapsulate
28514         streamer_check_handled_ts_structures with checking macro.
28515
28516 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
28517
28518         PR ipa/65087
28519         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
28520         section if !implicit_section.
28521         (cgraph_node::create_version_clone_with_body): Likewise.
28522         * trans-mem.c (ipa_tm_create_version): Likewise.
28523
28524 2015-02-18  Richard Biener  <rguenther@suse.de>
28525
28526         PR tree-optimization/62217
28527         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
28528         into BIVs.
28529
28530 2015-02-18  Marek Polacek  <polacek@redhat.com>
28531
28532         PR sanitizer/65081
28533         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
28534         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
28535         is in range [-16K, -1].  Don't issue run-time error if
28536         (ptr > ptr + offset).
28537
28538 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
28539
28540         * doc/install.texi (nvptx-*-none): New section.
28541         * doc/invoke.texi (Nvidia PTX Options): Likewise.
28542         * config/nvptx/nvptx.opt: Update.
28543
28544         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
28545         (access_check): New functions, copied from
28546         config/i386/intelmic-mkoffload.c.
28547         (main): For non-installed testing, look in all COMPILER_PATHs for
28548         GCC_INSTALL_NAME.
28549
28550         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
28551
28552 2015-02-18  Andrew Pinski  <apinski@cavium.com>
28553             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
28554
28555         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
28556         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
28557
28558 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
28559
28560         * ipa-visibility.c (function_and_variable_visibility): Only
28561         check locality if node is not already local.
28562         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
28563         call_for_symbol_and_aliases instead of
28564         call_for_symbol_thunks_and_aliases.
28565         (ipa_inline): Likewise.
28566         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
28567         first walk aliases.
28568         * ipa.c (symbol_table::remove_unreachable_nodes): Use
28569         call_for_symbol_and_aliases.
28570         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
28571         (ipa_propagate_frequency_1): Use it; use opt_for_fn
28572         (ipa_propagate_frequency): Update.
28573         (ipa_profile): Add opt_for_fn gueards.
28574
28575 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
28576
28577         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
28578         * doc/invoke.texi (SH options): Document it.
28579         * config/sh/sh.c (sh_insn_length_adjustment): Check
28580         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
28581
28582 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
28583
28584         * common.opt (fipa-cp-alignment): New.
28585         * ipa-cp.c (ipcp_store_alignment_results): Check
28586         flag_ipa_cp_alignment.
28587         * opts.c (default_options_table): Enable -fipa-cp-alignment for
28588         -O2.
28589         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
28590         * doc/invoke.texi: Document -fipa-cp-alignment.
28591
28592 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
28593
28594         PR target/64793
28595         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
28596         to nil.  Adjust comments.
28597
28598 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
28599
28600         * ipa-visibility.c (function_and_variable_visibility): Only
28601         check locality if node is not already local.
28602         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
28603         call_for_symbol_and_aliases instead of
28604         call_for_symbol_thunks_and_aliases.
28605         (ipa_inline): Likewise.
28606         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
28607         first walk aliases.
28608         * ipa.c (symbol_table::remove_unreachable_nodes): Use
28609         call_for_symbol_and_aliases.
28610         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
28611         (ipa_propagate_frequency_1): Use it; use opt_for_fn
28612         (ipa_propagate_frequency): Update.
28613         (ipa_profile): Add opt_for_fn guards.
28614
28615 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
28616
28617         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
28618         skipping of "strange" tokens.
28619
28620 2015-02-17  Jeff Law  <law@redhat.com>
28621
28622         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
28623         obsolete comment.
28624
28625 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
28626
28627         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
28628         as forcing a HARD_DEP between instructions, thereby
28629         disallowing rewriting to break dependencies.
28630
28631 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
28632
28633         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
28634         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
28635         variables in boundary that have no inlitalizer encoded and are
28636         not aliases.
28637         * varasm.c (default_binds_local_p_2): External definitions do not
28638         count as definitions here.
28639
28640 2015-02-16  Jeff Law  <law@redhat.com>
28641
28642         PR tree-optimization/64823
28643         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
28644         statements.
28645         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
28646         threading through blocks with PHIs, but no statements.
28647         (thread_through_normal_block): Distinguish between blocks where
28648         we did not process all the statements and blocks with no statements.
28649
28650 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
28651             James Greenhalgh  <james.greenhalgh@arm.com>
28652
28653         PR ipa/64963
28654         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
28655         section if not linkonce.  Fix up formatting.
28656         (cgraph_node::create_version_clone_with_body): Copy section.
28657         * trans-mem.c (ipa_tm_create_version): Likewise.
28658
28659 2015-02-16  Richard Biener  <rguenther@suse.de>
28660
28661         PR tree-optimization/65077
28662         * tree-ssa-structalias.c (get_constraint_for_1): Handle
28663         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
28664         (find_func_aliases): Allow float values to carry pointers again.
28665
28666 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
28667
28668         * doc/install.texi (Specific): Reorder targets list to put
28669         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
28670         from the top menu.
28671
28672 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
28673             David Edelsohn  <dje.gcc@gmail.com>
28674
28675         PR target/65058
28676         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
28677         mapping class to external variable or function reference.
28678         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
28679         mapping class.
28680
28681 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
28682
28683         PR target/53348
28684         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
28685         ASM_WEAKEN_DECL if defined.
28686
28687 2015-02-16  Richard Biener  <rguenther@suse.de>
28688
28689         PR lto/65015
28690         * varasm.c (default_file_start): For LTO produced units
28691         emit <artificial> as file directive.
28692
28693 2015-02-16  Richard Biener  <rguenther@suse.de>
28694
28695         PR tree-optimization/63593
28696         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
28697         stmts and releasing SSA names until...
28698         (execute_pred_commoning): ... after processing all chains.
28699
28700 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
28701
28702         PR ipa/65059
28703         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
28704         external functions.
28705
28706 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
28707
28708         * doc/bugreport.texi: Adjust section titles throughout the file
28709         to use "Title Case".
28710         * doc/extend.texi: Likewise.
28711         * doc/gcov.texi: Likewise.
28712         * doc/implement-c.texi: Likewise.
28713         * doc/implement-cxx.texi: Likewise.
28714         * doc/invoke.texi: Likewise.
28715         * doc/objc.texi: Likewise.
28716         * doc/standards.texi: Likewise.
28717         * doc/trouble.texi: Likewise.
28718
28719 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
28720
28721         * cgraph.h (symtab_node::has_aliases_p): Simplify.
28722         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
28723         * tree.c (lookup_binfo_at_offset): Make static.
28724         (get_binfo_at_offset): Do not shadow offset; add explanatory
28725         comment.
28726
28727 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
28728
28729         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
28730         for all floading point loads and stores except those using a register
28731         index address.
28732         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
28733         to a register.
28734
28735 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
28736
28737         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
28738         (do_estimate_growth_1): Record if any uninlinable edge was seen.
28739         (estimate_growth): Handle uninlinable edges correctly.
28740         (check_callers): New.
28741         (growth_likely_positive): Handle aliases correctly.
28742
28743 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
28744
28745         * ipa-chkp.c: Use iterate_direct_aliases.
28746         * symtab.c (resolution_used_from_other_file_p): Move inline.
28747         (symtab_node::create_reference): Fix formating.
28748         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
28749         (symtab_node::iterate_reference): Move inline.
28750         (symtab_node::iterate_referring): Move inline.
28751         (symtab_node::iterate_direct_aliases): Move inline.
28752         (symtab_node::used_from_object_file_p_worker): Inline into ...
28753         (symtab_node::used_from_object_file_p): ... this one; move inline.
28754         (symtab_node::call_for_symbol_and_aliases): Move inline;
28755         use iterate_direct_aliases.
28756         (symtab_node::call_for_symbol_and_aliases_1): New method.
28757         (cgraph_node::call_for_symbol_and_aliases): Move inline;
28758         use iterate_direct_aliases.
28759         (cgraph_node::call_for_symbol_and_aliases_1): New method.
28760         (varpool_node::call_for_node_and_aliases): Rename to ...
28761         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
28762         use iterate_direct_aliases.
28763         (varpool_node::call_for_symbol_and_aliases_1): New method.
28764         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
28765         (ipa_discover_readonly_nonaddressable_var): Update.
28766         * ipa-devirt.c: Fix formating.
28767         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
28768         Move inline.
28769         (cgraph_node::call_for_symbol_and_aliases): Move inline.
28770         (cgraph_node::call_for_symbol_and_aliases_1): New function..
28771         * cgraph.h (used_from_object_file_p_worker): Remove.
28772         (resolution_used_from_other_file_p): Move inline.
28773         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
28774         (symtab_node::iterate_reference): Move inline.
28775         (symtab_node::iterate_referring): Move inline.
28776         (symtab_node::iterate_direct_aliases): Move inline.
28777         (symtab_node::used_from_object_file_p_worker): Inline into ...
28778         (symtab_node::used_from_object_file_p): Move inline.
28779         * tree-emutls.c (ipa_lower_emutls): Update.
28780         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
28781         (varpool_node::call_for_node_and_aliases): Remove.
28782
28783 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
28784
28785         PR tree-optimization/62209
28786         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
28787         op == range->exp, insert seq and gimplified code after labels
28788         instead of after the phi.
28789
28790 2015-02-13  Jeff Law  <law@redhat.com>
28791
28792         PR bootstrap/65060
28793         Revert my change for tree-optimization/64823.
28794
28795 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
28796
28797         PR tree-optimization/65053
28798         * tree-ssa-phiopt.c (value_replacement): When moving assign before
28799         cond, either reset VR on lhs or set it to phi result VR.
28800
28801 2015-02-13  Jeff Law  <law@redhat.com>
28802
28803         PR tree-optimization/64823
28804         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
28805         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
28806         threading through blocks with PHIs, but no statements.
28807         (thread_through_normal_block): Distinguish between blocks where
28808         we did not process all the statements and blocks with no statements.
28809
28810         PR rtl-optimization/47477
28811         * match.pd (convert (plus/minus (convert @0) (convert @1): New
28812         simplifier to narrow arithmetic.
28813
28814 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
28815
28816         PR ipa/65028
28817         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
28818         polymorphic call info when type is not known to be preserved.
28819
28820 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
28821
28822         PR ipa/65028
28823         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
28824         (inline_call): Use it.
28825
28826 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
28827
28828         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
28829         GOMP_DEVICE_NVIDIA_PTX.
28830
28831 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
28832
28833         PR ipa/65034
28834         * stmt.c (emit_case_nodes): Use void_type_node instead of
28835         NULL_TREE as LABEL_DECL type.
28836
28837 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
28838
28839         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
28840         constraints.
28841         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
28842         symbolic references to data to be forced to constant memory on the
28843         SOM target.
28844
28845 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
28846
28847         PR tree-optimization/65002
28848         * tree-cfg.c (pass_data_fixup_cfg): Don't update
28849         SSA on start.
28850         * tree-sra.c (some_callers_have_no_vuse_p): New.
28851         (ipa_early_sra): Reject functions whose callers
28852         assume function is read only.
28853
28854 2015-02-13  Richard Biener  <rguenther@suse.de>
28855
28856         PR lto/65015
28857         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
28858         for LTO produced CUs.
28859
28860 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
28861
28862         PR tree-optimization/64705
28863         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
28864         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
28865         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
28866         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
28867         expand_simple_operations.
28868
28869 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
28870             Richard Henderson  <rth@redhat.com>
28871
28872         PR rtl/32219
28873         * cgraphunit.c (cgraph_node::finalize_function): Set definition
28874         before notice_global_symbol.
28875         (varpool_node::finalize_decl): Likewise.
28876         * varasm.c (default_binds_local_p_2): Rename from
28877         default_binds_local_p_1, add weak_dominate argument.  Use direct
28878         returns instead of assigning to local variable.  Unify varpool and
28879         cgraph paths via symtab_node.  Reject undef weak variables before
28880         testing visibility.  Reorder tests for simplicity.
28881         (default_binds_local_p): Use default_binds_local_p_2.
28882         (default_binds_local_p_1): Likewise.
28883         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
28884         via symtab_node.
28885         (default_elf_asm_output_external): Emit visibility when specified.
28886
28887 2015-02-13  Alan Modra  <amodra@gmail.com>
28888
28889         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
28890         code setting up r11 for out-of-line fp restore.
28891
28892 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
28893
28894         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
28895         (muser-mode): Likewise.
28896
28897 2015-02-13  Alan Modra  <amodra@gmail.com>
28898
28899         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
28900         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
28901
28902 2015-02-12  David Howells  <dhowells@redhat.com>
28903
28904         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
28905         warning.
28906         * tree-ssa-uninit.c (dump_predicates): Likewise.
28907         * opts.c (print_filtered_help): Likewise.
28908
28909 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
28910
28911         * dwarf2out.c (output_die): Use "%s", name instead of name to
28912         avoid -Wformat-security warning.
28913
28914         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
28915         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
28916         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
28917         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
28918
28919 2015-02-12  Jason Merrill  <jason@redhat.com>
28920
28921         * common.opt (-flifetime-dse): New.
28922
28923 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
28924
28925         PR sanitizer/65019
28926         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
28927
28928         PR tree-optimization/65014
28929         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
28930         use original second operand of arg0 or arg1 instead of
28931         that adjusted by STRIP_NOPS.
28932
28933 2015-02-11  Jeff Law  <law@redhat.com>
28934
28935         PR target/63347
28936         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
28937         that needs to be queued, just queue it for a single cycle.
28938
28939 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
28940
28941         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
28942         bodies of thunks; comment on why.
28943         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
28944         symbols are extern.
28945
28946 2015-02-11  Richard Henderson  <rth@redhat.com>
28947
28948         PR sanitize/65000
28949         * tree-eh.c (mark_reachable_handlers): Mark source and destination
28950         regions of __builtin_eh_copy_values.
28951
28952 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
28953
28954         PR middle-end/65003
28955         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
28956         ultimate alias is MEM with SYMBOL_REF satisfying
28957         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
28958         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
28959
28960 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
28961
28962         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
28963         "diagnostic-core.h".
28964         (main): Initialize progname, and call diagnostic_initialize.
28965
28966         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
28967         instead of __OPENMP_TARGET__.
28968
28969         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
28970         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
28971         hard-coding PTX_ID.
28972
28973 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
28974
28975         * doc/sourcebuild.texi (pie_enabled): Document.
28976
28977 2015-02-11  Martin Liska  <mliska@suse.cz>
28978
28979         PR ipa/64813
28980         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
28981         a return value for call to a function that is noreturn.
28982
28983 2015-02-11  Richard Biener  <rguenther@suse.de>
28984
28985         PR lto/65015
28986         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
28987         and -fresolution.
28988
28989 2015-02-11  Andrew Pinski  <apinski@cavium.com>
28990
28991         PR target/64893
28992         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
28993         Change the first argument type to size_type_node and add another
28994         size_type_node.
28995         (aarch64_simd_expand_builtin): Handle the new argument to
28996         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
28997         print an out when the first two arguments are not
28998         nonzero integer constants.
28999         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
29000         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
29001
29002 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
29003
29004         PR target/61925
29005         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
29006         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
29007         (ix86_set_current_function): Rewritten.
29008         (ix86_add_new_builtins): Temporarily clear current_target_pragma
29009         when creating builtin fndecls.
29010
29011 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29012
29013         PR ipa/65005
29014         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
29015         function.
29016         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
29017         have no comdat group.
29018         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
29019         (lto_output_varpool_node): Always output alias info.
29020         (output_refs): Output refs of boundary aliases, too.
29021         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
29022         (output_symtab): Output call eges in thunks in boundary.
29023         (get_alias_symbol): Remove.
29024         (input_node, input_varpool_node): Do not special case weakrefs.
29025         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
29026         alias and thunks targets in the boundary; do not take removed symbols
29027         from their comdat groups.
29028         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
29029         (cgraph_node::global_info): Remove.
29030         (cgraph_node::rtl_info): Look through aliases and thunks.
29031         * cgrpah.h (global_info): Remove.
29032         (non_local_p): Remove.
29033
29034 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29035             Sandra Loosemore  <sandra@codesourcery.com>
29036
29037         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
29038         to inline asm.  List dialects in proper order.
29039
29040 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29041             Sandra Loosemore  <sandra@codesourcery.com>
29042
29043         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
29044
29045 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29046
29047         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
29048         modified) reference to Solaris.
29049
29050 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
29051
29052         * doc/extend.texi (Extended Asm): Fix typos.
29053
29054 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
29055
29056         PR sanitizer/65004
29057         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
29058
29059 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
29060
29061         PR target/64661
29062         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
29063         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
29064         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
29065         * config/sh/constraints.md (Ara, Add): New constraints.
29066         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
29067         predicates.
29068         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
29069         atomic_mem_operand_0.  Don't use force_reg on the memory address.
29070         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
29071         Sra constraint.  Convert to insn_and_split.  Add workaround for
29072         PR 64974.
29073         (atomic_compare_and_swap<mode>_hard): Copy to
29074         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
29075         Use atomic_mem_operand_0 predicate.
29076         (atomic_compare_and_swap<mode>_soft_gusa,
29077         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
29078         AraAdd constraints.
29079         (atomic_compare_and_swap<mode>_soft_tcb,
29080         atomic_compare_and_swap<mode>_soft_imask,
29081         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
29082         atomic_mem_operand_0 predicate and SraSdd constraints.
29083         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
29084         constraint.
29085         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
29086         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
29087         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
29088         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
29089         force_reg on the memory address.
29090         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
29091         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
29092         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
29093         atomic_mem_operand_1 predicate and Sra constraint.
29094         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
29095         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
29096         Use atomic_mem_operand_1 predicate.
29097         (atomic_<fetchop_name><mode>_hard): Copy to
29098         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
29099         Use atomic_mem_operand_1 predicate.
29100         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
29101         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
29102         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
29103         insn_and_split.  Use atomic_mem_operand_1 predicate.
29104         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
29105         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
29106         Use atomic_mem_operand_1 predicate.
29107         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
29108         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
29109         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
29110         in generated insn with original mem operand before emitting the insn.
29111         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
29112         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
29113         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
29114         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
29115         Use atomic_mem_operand_1 predicate and AraAdd constraints.
29116         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
29117         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
29118         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
29119         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
29120         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
29121         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
29122         atomic_not_fetch<mode>_soft_tcb,
29123         atomic_<fetchop_name>_fetch<mode>_soft_imask,
29124         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
29125         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
29126         Use atomic_mem_operand_1 predicate and SraSdd constraints.
29127
29128 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
29129
29130         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
29131         and 3 earlyclobber operands.
29132
29133 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29134
29135         * common.opt (fstack-reuse): Mark as optimization.
29136
29137 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29138
29139         PR ipa/64982
29140         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
29141
29142 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
29143
29144         PR tree-optimization/64326
29145         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
29146
29147 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
29148
29149         PR gcov-profile/61889
29150         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
29151
29152 2015-02-10  Richard Biener  <rguenther@suse.de>
29153
29154         PR tree-optimization/64995
29155         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
29156         value we use is final.
29157         (visit_reference_op_store): Always valueize op.
29158         (visit_use): Properly valueize vuses.
29159
29160 2015-02-10  Richard Biener  <rguenther@suse.de>
29161
29162         PR tree-optimization/64909
29163         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
29164         pass a scalar-stmt count estimate to the cost model.
29165         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
29166
29167 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
29168
29169         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
29170         enabled by default together with var-tracking.
29171
29172 2015-02-10  Nick Clifton  <nickc@redhat.com>
29173
29174         * config/rl78/rl78.c: Remove DIV attribute code accidentally
29175         included in previous rl78 commit.
29176
29177 2015-02-10  Richard Biener  <rguenther@suse.de>
29178
29179         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
29180         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
29181         return the bitpack.
29182
29183 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
29184
29185         PR gcov-profile/61889
29186         * config.in: regenerate.
29187         * configure.in: Likewise.
29188         * configure.ac: Check for ftw.h.
29189         * gcov-tool.c: Check for ftw.h before using nftw.
29190
29191 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
29192
29193         PR lto/64076
29194         * ipa-visibility.c (update_visibility_by_resolution_info): Only
29195         assert when not in lto mode.
29196
29197 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
29198
29199         * ira-color.c (setup_left_conflict_sizes_p): Simplify
29200         initialization/assignment of conflict_size.
29201
29202 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
29203
29204         PR ipa/64978
29205         * ipa-cp.c (gather_caller_stats): Skip thunks.
29206         (propagate_constants_topo): Skip aliases.
29207
29208 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
29209
29210         PR target/64761
29211         * config/sh/sh.c (sh_option_override): Don't change
29212         -freorder-blocks-and-partition to -freorder-blocks even when
29213         unwinding is enabled.
29214         (sh_can_follow_jump): Return false if the followee jump is
29215         a crossing jump when -freorder-blocks-and-partition is specified.
29216         * config/sh/sh.md (*jump_compact_crossing): New insn.
29217
29218 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
29219             Kaz Kojima  <kkojima@gcc.gnu.org>
29220
29221         PR target/64761
29222         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
29223         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
29224         (sh_can_redirect_branch): Rename to ...
29225         (sh_can_follow_jump): ... this.  Constify argument types.
29226         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
29227         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
29228         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
29229         * doc/tm.texi: Regenerate.
29230
29231 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
29232
29233         PR sanitizer/64981
29234         * builtins.c (expand_builtin): Call targetm.expand_builtin
29235         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
29236
29237 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29238
29239         PR ipa/61548
29240         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
29241
29242 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29243
29244         PR ipa/63566
29245         * ipa-icf.c (set_local): New function.
29246         (sem_function::merge): Use it.
29247
29248 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29249
29250         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
29251         (add_type_duplicate): Fix comparison of BINFOs.
29252
29253 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29254
29255         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
29256         on getting VOID pointer.
29257
29258 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
29259
29260         PR target/64979
29261         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
29262         va_list escapes.
29263
29264 2015-02-09  Richard Biener  <rguenther@suse.de>
29265
29266         * genmatch.c (replace_id): Copy expr_type.
29267
29268 2015-02-09  Richard Biener  <rguenther@suse.de>
29269
29270         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
29271         (streamer_write_tree_bitfields): Declare.
29272         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
29273         properly unpack padding.
29274         (unpack_value_fields): Inline ...
29275         (streamer_read_tree_bitfields): ... here.
29276         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
29277         and properly add padding bits.
29278         (streamer_pack_tree_bitfields): Fold into ...
29279         (streamer_write_tree_bitfields): ... this new function,
29280         exposing the bitpack object.
29281         * lto-streamer-out.c (lto_write_tree_1): Call
29282         streamer_write_tree_bitfields.
29283
29284 2015-02-09  Richard Biener  <rguenther@suse.de>
29285
29286         PR tree-optimization/54000
29287         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
29288         (struct ivopts_data): Add loop_loc member.
29289         (tree_ssa_iv_optimize_loop): Dump loop location.
29290         (create_new_ivs): Likewise, also dump number of IVs generated.
29291
29292 2015-02-09  Martin Liska  <mliska@suse.cz>
29293
29294         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
29295         just if not yet registered.
29296         (ipa_icf_generate_summary): Register callgraph hooks.
29297
29298 2015-02-08  Andrew Pinski  <apinski@cavium.com>
29299
29300         * config/aarch64/aarch64.c (gty_dummy): Delete.
29301
29302 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29303
29304         PR ipa/63566
29305         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
29306         (cgraph_node::local_p): Remove thunk related FIXME.
29307
29308 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29309
29310         PR ipa/63566
29311         * i386.c (ix86_function_regparm): Look through aliases to see if callee
29312         is local and optimized.
29313         (ix86_function_sseregparm): Likewise; also use target's SSE math
29314         settings; error out instead of silently generating wrong code
29315         on mismatches.
29316         (init_cumulative_args): Look through aliases.
29317
29318 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29319
29320         PR ipa/63566
29321         * ipa-split.c (execute_split_functions): Split if function has aliases.
29322
29323 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29324
29325         PR ipa/63566
29326         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
29327         aliases before trying to expand it.
29328         (cgraph_node::expand_thunk): Fix formating.
29329
29330 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
29331
29332         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
29333         (Using Assembly Language with C): Expand introduction.
29334         (Basic Asm): Copy-edit.  Add more information about uses of
29335         basic asm.
29336         (Extended Asm): Copy-edit.  Document new escape syntax and
29337         %l[label] syntax.
29338         (Global Reg Vars): Copy-edit.
29339         (Local Reg Vars): Likewise.
29340
29341 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
29342
29343         PR debug/2714
29344         PR bootstrap/64256
29345         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
29346         (DBX_CONTIN_CHAR): Define.
29347
29348 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
29349             Brian Rzycki  <b.rzycki@samsung.com>
29350
29351         PR tree-optimization/64878
29352         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
29353         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
29354         Stop recursion at loop phi nodes after having visited a loop phi node.
29355
29356 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29357
29358         * toplev.c (process_options): Change flag_ipa_ra before creating
29359         optimization_{default,current}_node.
29360
29361         PR ipa/64896
29362         * cgraphunit.c (cgraph_node::expand_thunk): If
29363         restype is not is_gimple_reg_type nor the thunk_fndecl
29364         returns aggregate_value_p, set restmp to a temporary variable
29365         instead of resdecl.
29366
29367 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
29368
29369         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
29370
29371 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
29372
29373         PR target/64205
29374         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
29375         add a general secondary reload handler for SDmode, unless we have
29376         both read/write support for SDmode.
29377
29378 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29379
29380         PR middle-end/64937
29381         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
29382         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
29383         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
29384         1 before, push it to abstract_vec.
29385         (dwarf2out_abstract_function): Adjust caller.  Don't call
29386         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
29387         DECL_ABSTRACT_P flags for all abstract_vec elts.
29388
29389 2015-02-06  Renlin Li  <renlin.li@arm.com>
29390
29391         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
29392         complex gimple.
29393         * tree-ssa.c (execute_update_addresses_taken): Likewise.
29394
29395 2015-02-06  Jeff Law  <law@redhat.com>
29396
29397         PR target/64889
29398         * config/h8300/h8300.c (push): New argument "in_prologue".
29399         Pass "in_prologue" along to "F".
29400         (h8300_push_pop): Corresponding changes.
29401         (h8300_expand_prologue): Likewise.
29402         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
29403
29404 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29405
29406         PR rtl-optimization/64957
29407         PR debug/64817
29408         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
29409         IOR rather than for AND.
29410
29411 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
29412
29413         PR target/62631
29414         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
29415         of shift-add and (add + shift) operations.  Rename local variable.
29416
29417 2015-02-05  Jeff Law  <law@redhat.com>
29418
29419         PR target/17306
29420         * config/h8300/constraints.md (U): Correctly dectect
29421         "eightbit_data" memory addresses.
29422         * config/h8300/h8300.c (eightbit_constant_address_p): Also
29423         handle (const (plus (symbol_ref (x)))) where x is declared
29424         as an 8-bit data memory address.
29425         * config/h8300/h8300.md (call, call_value): Correctly detect
29426         "funcvec" functions.
29427
29428         PR target/43264
29429         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
29430         24 to 28 bits for the H8/300.
29431
29432 2015-02-06  Alan Modra  <amodra@gmail.com>
29433
29434         PR target/64876
29435         * config/rs6000/rs6000.c (chain_already_loaded): New function.
29436         (rs6000_call_aix): Use it.
29437
29438 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
29439
29440         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
29441         check.
29442
29443 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
29444
29445         * config/h8300/constraints.md ("U" constraint): Use strict
29446         variant of REG_OK_FOR_BASE_P after reload has started.
29447
29448 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
29449
29450         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
29451         define to zero if !TARGET_NEON.
29452         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
29453
29454 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29455             Trevor Saunders  <tsaunders@mozilla.com>
29456
29457         PR ipa/61548
29458         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
29459
29460 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29461
29462         PR ipa/61548
29463         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
29464         when removing varpool nodes.
29465
29466 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29467
29468         PR ipa/61548
29469         * varpool.c (varpool_node::remove): Fix order of variables.
29470
29471 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29472
29473         PR ipa/64686
29474         * ipa-inline.c (inline_small_functions): Fix ordering issue between
29475         speculation resolution and key updates.
29476
29477 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29478
29479         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
29480         about not letting any speculative edges unupdated.
29481
29482 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29483
29484         PR gcov/64123
29485         * gcov-io.c (gcov_var): Export.
29486
29487 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29488
29489         PR middle-end/64922
29490         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
29491         edges that become speculative.
29492
29493 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
29494
29495         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
29496         or DW_LANG_Fortran08.
29497         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
29498         DW_LANG_Fortran08.
29499         (gen_compile_unit_die): Handle "GNU Fortran2003" and
29500         "GNU Fortran2008" language strings.
29501         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
29502         * langhooks.h (lang_GNU_Fortran): New prototype.
29503         * langhooks.c (lang_GNU_Fortran): New function.
29504         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
29505         lang_GNU_Fortran.
29506
29507 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
29508
29509         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
29510         (RTX_OK_FOR_OLO10_P): Likewise.
29511
29512 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
29513
29514         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
29515
29516 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29517
29518         PR middle-end/64922
29519         * gimple.c: Include gimple-ssa.h.
29520         (maybe_remove_unused_call_args): New function.
29521         * gimple.h (maybe_remove_unused_call_args): Declare.
29522         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
29523         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
29524         * gimple-fold.c (gimple_fold_call): Likewise.
29525
29526 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
29527
29528         PR rtl-optimization/64905
29529         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
29530         pointer alignment if it isn't needed.
29531
29532 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
29533
29534         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
29535         cortex-a72.cortex-a53.
29536         * config/aarch64/aarch64-tune.md: Regenerate.
29537         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
29538
29539 2015-02-04  Nick Clifton  <nickc@redhat.com>
29540
29541         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
29542         inside a MEM.
29543
29544 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
29545
29546         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
29547         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
29548         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
29549         of DEF_BUILTIN.
29550         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
29551         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
29552         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
29553         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
29554         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
29555         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
29556         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
29557         * tree-core.h (enum built_in_function): In between
29558         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
29559         for builtins that use DEF_BUILTIN_CHKP macro.
29560
29561 2015-02-04  Alexandre Oliva  <aoliva@redhat.com>
29562
29563         PR debug/64817
29564         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
29565         operands for tcc_comparison exprs.  Fix typos.
29566
29567         PR debug/64817
29568         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
29569         of two XORs that have an intervening AND or IOR.
29570
29571         PR debug/64817
29572         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
29573         simplification of XOR of AND to not allocate new rtx before
29574         committing to a simplification.
29575
29576 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29577
29578         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
29579         manual swaps in all peepholes.
29580
29581 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29582
29583         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
29584         of manual swapping implementation.
29585         (aarch64_expand_vec_perm_const_1): Likewise.
29586
29587 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
29588
29589         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
29590         (generic_addrcost_table): Remove NAMED_PARAM.
29591         (cortexa57_addrcost_table): Likewise.
29592         (xgene1_addrcost_table): Likewise.
29593         (generic_regmove_table): Likewise.
29594         (cortexa53_regmove_table): Likewise.
29595         (xgene1_regmove_table): Likewise.
29596         (generic_vector_table): Likewise.
29597         (cortexa57_vector_table): Likewise.
29598         (xgene1_vector_table): Likewise.
29599         (generic_tunings): Likewise.
29600         (cortexa53_tunings): Likewise.
29601         (cortexa57_tunings): Likewise.
29602         (xgene1_tunings): Likewise.
29603
29604 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
29605
29606         * config/arm/arm-cores.def: Add cortex-a72 and
29607         cortex-a72.cortex-a53.
29608         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
29609         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
29610         * config/arm/arm-tune.md: Regenerate.
29611         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
29612         "cortex-a72.cortex-a53".
29613         * doc/invoke.texi (ARM Options/-mtune): Likewise.
29614
29615 2015-02-04  Nick Clifton  <nickc@redhat.com>
29616
29617         PR target/64408
29618         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
29619         of accepted codes.
29620         (nonimmediate_di_operand): Likewise.
29621
29622         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
29623         prefixes of known F5 using MSP430 MCUs.
29624
29625 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29626
29627         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
29628         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
29629         instead of __builtin_sqrt.
29630
29631 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
29632
29633         * varasm.c (do_assemble_alias): Follow transparent alias
29634         chain for target.
29635         (default_assemble_visibility): Follow transparent alias
29636         chain for decl name.
29637
29638 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29639
29640         PR middle-end/62103
29641         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
29642         to compute size of referenced value in the constant case.
29643
29644 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
29645
29646         PR rtl-optimization/64756
29647         * cse.c (invalidate_dest): New function.
29648         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
29649         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
29650         invalidate and do not record it.
29651
29652 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
29653
29654         PR target/64660
29655         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
29656         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
29657         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
29658         atomic_nand<mode>_soft_tcb): New insns.
29659         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
29660         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
29661         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
29662         Split into atomic_not_fetchsi_hard if operands[0] is unused.
29663         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
29664         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
29665         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
29666         atomic_not<mode>_hard if operands[0] is unused.
29667         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
29668         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
29669         if operands[0] is unused.
29670         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
29671         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
29672         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
29673         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
29674         unused.
29675         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
29676         into atomic_not<mode>_soft_tcb if operands[0] is unused.
29677         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
29678         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
29679         if operands[0] is unused.
29680         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
29681         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
29682         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
29683         atomic_nand_fetchsi_hard if operands[0] is unused.
29684         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
29685         atomic_nand<mode>_hard if operands[0] is unused.
29686         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
29687         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
29688         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
29689         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
29690         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
29691         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
29692         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
29693         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
29694         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
29695         atomic_not<mode>_hard if operands[0] is unused.
29696         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
29697         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
29698         unused.
29699         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
29700         into atomic_not<mode>_soft_tcb if operands[0] is unused.
29701         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
29702         atomic_nand<mode>_hard if operands[0] is unused.
29703         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
29704         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
29705
29706 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
29707
29708         PR jit/64810
29709         * Makefile.in (GCC_OBJS): Add gcc-main.o.
29710         * gcc-main.c: New file, containing "main" taken from gcc.c.
29711         * gcc.c (do_self_spec): Free decoded_options.
29712         (class driver): Move declaration to gcc.h.
29713         (main): Move declaration and implementation to new file
29714         gcc-main.c.
29715         (driver_get_configure_time_options): New function.
29716         * gcc.h (class driver): Move this declaration here, from
29717         gcc.c.
29718         (driver_get_configure_time_options): New declaration.
29719
29720 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
29721
29722         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
29723         cross-module inlining.
29724         * cgraph.h (cgraph_node): Add flag merged.
29725         * ipa-icf.c (sem_function::merge): Maintain it.
29726
29727 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
29728
29729         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
29730         instead of OBJECT_P.
29731
29732 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
29733
29734         PR target/62631
29735         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
29736         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
29737         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
29738         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
29739
29740 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
29741
29742         PR other/63504
29743         * combine.c (reg_n_sets_max): New variable.
29744         (can_change_dest_mode, reg_nonzero_bits_for_combine,
29745         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
29746         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
29747         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
29748         (rest_of_handle_combine): Initialize reg_n_sets_max.
29749
29750 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
29751
29752         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
29753         if some always_inline was inlined, apply changes before inlining
29754         heuristically.
29755
29756 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
29757
29758         PR jit/64810
29759         * config/arm/arm.c (arm_option_override): Set
29760         arm_selected_arch/cpu/tune to NULL on entry.
29761
29762 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
29763             Andrew Pinski  <pinskia@gcc.gnu.org>
29764             Jakub Jelinek  <jakub@gcc.gnu.org>
29765
29766         PR target/64231
29767         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
29768         integer typing for small model. Use IN_RANGE.
29769
29770 2015-02-02  Richard Biener  <rguenther@suse.de>
29771
29772         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
29773         * tree-vrp.c (vrp_valueize_1): Likewise.
29774
29775 2015-02-02  Alan Modra  <amodra@gmail.com>
29776
29777         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
29778         than mem for toc_restore.
29779         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
29780         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
29781         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
29782
29783 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
29784
29785         PR target/64047
29786         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
29787         explicit default options.
29788
29789 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
29790
29791         PR ipa/64872
29792         * ipa-utils.c (ipa_merge_profiles): Add release argument.
29793         * ipa-icf.c (sem_function::merge): Do not release body when merging.
29794         * ipa-utils.h (ipa_merge_profiles): Update prototype.
29795
29796 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
29797
29798         PR debug/64817
29799         * cfgexpand.c (deep_ter_debug_map): New variable.
29800         (avoid_deep_ter_for_debug): New function.
29801         (expand_debug_expr): If TERed SSA_NAME is in
29802         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
29803         instead of trying to expand SSA_NAME's def stmt.
29804         (expand_debug_locations): When expanding debug bind
29805         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
29806         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
29807         value.
29808         (pass_expand::execute): Call avoid_deep_ter_for_debug on
29809         all debug bind stmts.  Delete deep_ter_debug_map after
29810         expand_debug_location if non-NULL and clear it.
29811
29812 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
29813
29814         PR target/64851
29815         * config/sh/sync.md (atomic_fetch_notsi_hard,
29816         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
29817         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
29818         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
29819         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
29820         atomic_not_fetch<mode>_soft_imask): New insns.
29821
29822 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
29823
29824         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
29825         (rank_for_schedule_debug): Split from ...
29826         (rank_for_schedule): ... this.
29827         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
29828         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
29829
29830 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
29831
29832         * doc/md.texi (Machine Constraints): Alphabetize table by target.
29833         * doc/extend.texi (x86 Variable Attributes): Move section to
29834         correct alphabetization after renaming.
29835         (x86 Type Attributes): Likewise.
29836         (Target Builtins): Re-alphabetize menu.
29837         (x86 Built-in Functions): Move section to correct alphabetization
29838         after renaming.
29839         (x86 transactional memory intrinsics): Likewise.
29840         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
29841         and x86 Windows Options in table and menu.
29842         (x86 Options): Move section to correct alphabetization after
29843         renaming.
29844         (x86 Windows Options): Likewise.
29845
29846 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
29847
29848         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
29849         preferred names of the architecture and its 32- and 64-bit
29850         variants.
29851         * doc/invoke.texi: Likewise.
29852         * doc/md.texi: Likewise.
29853
29854 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
29855
29856         PR target/64882
29857         * config/i386/predicates.md (address_no_seg_operand): Reject
29858         non-CONST_INT_P operands in invalid mode.
29859
29860 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
29861
29862         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
29863         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
29864         * config/i386/predicates.md (address_no_seg_operand): Call
29865         address_operand with VOIDmode.
29866         (vsib_address_operand): Ditto.
29867         (address_mpx_no_base_operand): Ditto.
29868         (address_mpx_no_index_operand): Ditto.
29869
29870 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
29871
29872         PR target/64688
29873         * lra-constraints.c (original_subreg_reg_mode): New.
29874         (simplify_operand_subreg): Try to simplify subreg of const.  Use
29875         original_subreg_reg_mode for it.
29876         (swap_operands): Update original_subreg_reg_mode.
29877         (curr_insn_transform): Set up original_subreg_reg_mode.
29878
29879 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
29880
29881         PR target/64617
29882         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
29883         function.
29884         (process_alt_operands): Use it.
29885         (curr_insn_transform): Check the optional reload pseudo class is
29886         ok for the mode.
29887
29888 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
29889
29890         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
29891         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
29892         prototype.
29893         * toplev.h (init_asm_output): Update comment on use of
29894         UNKNOWN_LOCATION with fatal_error.
29895         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
29896         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
29897         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
29898         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
29899         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
29900         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
29901         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
29902         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
29903         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
29904         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
29905         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
29906         fatal_error changed to pass input_location as first argument.
29907
29908 2015-01-30  Martin Liska  <mliska@suse.cz>
29909
29910         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
29911         in #pragma GCC diagnostic guards.
29912
29913 2015-01-30  Richard Biener  <rguenther@suse.de>
29914
29915         PR tree-optimization/64829
29916         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
29917         not add a widening conversion pattern but hand off extra
29918         widenings to callers.
29919         (vect_recog_widen_mult_pattern): Handle extra widening produced
29920         by vect_handle_widen_op_by_const.
29921         (vect_recog_widen_shift_pattern): Likewise.
29922         (vect_pattern_recog_1): Remove excess vertical space in dumping.
29923         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
29924         (vect_init_vector_1): Likewise.
29925         (vect_get_vec_def_for_operand): Likewise.
29926         (vect_finish_stmt_generation): Likewise.
29927         (vectorizable_load): Likewise.
29928         (vect_analyze_stmt): Likewise.
29929         (vect_is_simple_use): Likewise.
29930
29931 2015-01-29  Jeff Law  <law@redhat.com>
29932
29933         * combine.c (try_combine): Fix typo in comment.
29934
29935 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
29936
29937         PR target/64580
29938         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
29939         (rs6000_stack_info): Add assert.
29940         (rs6000_output_savres_externs): New function, split off from...
29941         (rs6000_output_function_prologue): ... here.  Do not call it for
29942         thunks.
29943
29944 2015-01-29  Jeff Law  <law@redhat.com>
29945
29946         PR target/15184
29947         * combine.c (try_combine): If I0 is a memory load and I3 a store
29948         to a related address, increase the "goodness" of doing a 4-insn
29949         combination with I0-I3.
29950         (make_field_assignment): Handle SUBREGs in the ior+and case.
29951
29952 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
29953
29954         PR tree-optimization/64746
29955         * tree-if-conv.c (mask_exists): New function.
29956         (predicate_mem_writes): Save created mask with given size for further
29957         use.
29958         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
29959         (ifcvt_repair_bool_pattern): Collect all statements that are root
29960         of bool pattern and use iterative algorithm to remove multiple uses
29961         of predicates, display number of required iterations.
29962
29963 2015-01-29  Richard Biener  <rguenther@suse.de>
29964
29965         PR tree-optimization/64853
29966         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
29967         stmt will get simulated again.
29968         * tree-ssa-ccp.c (valueize_op_1): Likewise.
29969
29970 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29971
29972         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
29973         return_in_pc.  Remove redundant assignments.
29974         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
29975         (arm_expand_epilogue): Don't compare boolean with true in if condition.
29976
29977 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
29978
29979         * config/i386/i386.c (ix86_mode_after): Make static.
29980
29981 2015-01-29  Richard Biener  <rguenther@suse.de>
29982
29983         PR tree-optimization/64844
29984         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
29985         dump cost model analysis.
29986         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
29987         Do not register adjusted load/store costs here.
29988
29989 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
29990             Uros Bizjak  <ubizjak@gmail.com>
29991
29992         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
29993         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
29994         using x86_use_pseudo_pic_reg.
29995         * config/i386/i386.c (ix86_conditional_register_usage): Remove
29996         support for fixed PIC register.
29997         (ix86_use_pseudo_pic_reg): Not static any more.
29998
29999 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
30000
30001         PR middle-end/64805
30002         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
30003         to avoid error in cgraph node verification.
30004
30005 2015-01-29  Marek Polacek  <polacek@redhat.com>
30006
30007         * doc/standards.texi: Reflect that the default for C is gnu11.
30008
30009 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
30010
30011         PR target/64761
30012         * reorg.c (switch_text_sections_between_p): New function.
30013         (relax_delay_slots): Call it when testing if the jump insn
30014         is removable.  Use targetm.can_follow_jump when testing if
30015         the conditional branch can follow an unconditional jump.
30016
30017 2015-01-27  Caroline Tice  <cmtice@google.com>
30018
30019         Committing VTV Cywin/Ming patch for Patrick Wollgast
30020         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
30021         if -fvtable-verify=preinit/std is used.
30022         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
30023         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
30024         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
30025         if -fvtable-verify=preinit/std is used.
30026         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
30027         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
30028         if -fvtable-verify=preinit/std is used.
30029         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
30030         * config/i386/mingw32.h (LIB_SPEC): Likewise.
30031         * varasm.c (assemble_variable): Add code to properly set the comdat
30032         section and name for the .vtable_map_vars section in case the
30033         target is PE or COFF.
30034
30035 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
30036
30037         PR ipa/64801
30038         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
30039         make sane BB profile.
30040         (cgraph_node::expand_thunk): Make sane BB profile.
30041         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
30042         * cgraph.h (init_lowered_empty_function): Update prototype.
30043         * config/i386/i386.c (make_resolver_func): Update call.
30044         * predict.c (gate): Disable branch prediction pass if
30045         profile is already there.
30046
30047 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
30048
30049         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
30050         * opth-gen.awk: Likewise.
30051         * common.opt: Mark flag_fp_contract_mode as Optimization.
30052
30053 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30054
30055         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
30056         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
30057
30058 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
30059
30060         PR target/64659
30061         * config/sh/predicates.md (atomic_arith_operand,
30062         atomic_logical_operand): Remove.
30063         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
30064         (atomic_arith_operand_0): New predicate.
30065         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
30066         Use atomic_arith_operand_0 for input values.
30067         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
30068         atomic_compare_and_swap<mode>_soft_gusa,
30069         atomic_compare_and_swap<mode>_soft_tcb,
30070         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
30071         arith_reg_operand instead of register_operand.
30072         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
30073         atomic_arith_operand_0 for newval input.
30074         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
30075         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
30076         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
30077         arith_reg_operand instead of register_operand.
30078         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
30079         fetchop_predicate_1, fetchop_constraint_1_llcs,
30080         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
30081         fetchop_constraint_1_imask): New code iterator attributes.
30082         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
30083         register_operand.  Use fetchop_predicate_1.
30084         (atomic_fetch_<fetchop_name>si_hard,
30085         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
30086         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
30087         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
30088         and arith_reg_operand instead of register_operand.  Use
30089         fetchop_predicate_1, fetchop_constraint_1_gusa.
30090         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
30091         and arith_reg_operand instead of register_operand.  Use
30092         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
30093         to allow R0 usage.
30094         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
30095         and arith_reg_operand instead of register_operand.  Use
30096         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
30097         to allow R0 usage.
30098         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
30099         register_operand.  Use atomic_logical_operand_1.
30100         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
30101         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
30102         arith_reg_operand instead of register_operand.
30103         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
30104         Use arith_reg_dest and arith_reg_operand instead of register_operand.
30105         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
30106         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
30107         register_operand.  Use fetchop_predicate_1.
30108         (atomic_<fetchop_name>_fetchsi_hard,
30109         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
30110         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30111         fetchop_constraint_1_llcs.
30112         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
30113         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30114         fetchop_constraint_1_gusa.
30115         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
30116         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30117         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
30118         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
30119         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30120         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
30121         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
30122         register_operand.  Use atomic_logical_operand_1.
30123         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
30124         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
30125         arith_reg_operand instead of register_operand.
30126         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
30127         arith_reg_operand instead of register_operand.  Use logical_operand
30128         and K08.  Adjust asm sequence to allow R0 usage.
30129         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
30130         arith_reg_operand instead of register_operand.  Use logical_operand
30131         and K08.
30132
30133 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
30134
30135         PR other/63504
30136         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
30137         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
30138         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
30139         only get_full_len HOST_WIDE_INTs from get_val () array rather than
30140         all bits in *val_wide.
30141
30142 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
30143
30144         * varpool.c (tls_model_names): Fix names.
30145         (varpool_node::dump): Dump tls- prefix for tls models.
30146
30147 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
30148             Bernd Schmidt  <bernds@codesourcery.com>
30149             Nathan Sidwell  <nathan@codesourcery.com>
30150
30151         * config/nvptx/mkoffload.c: New file.
30152         * config/nvptx/t-nvptx: Add build rules for it.
30153         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
30154         (extra_programs): Add mkoffload.
30155         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
30156         function.
30157         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
30158
30159 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
30160
30161         PR middle-end/64809
30162         * cfgexpand.c (reorder_operands): Skip debug gimples.
30163
30164 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
30165
30166         PR tree-optimization/64277
30167         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
30168         range info when possible to refine estimation.
30169
30170 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30171
30172         PR tree-optimization/64718
30173         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
30174         be a 16bit unsigned integer when n->range is 16.
30175         (bswap_replace): Convert src to that type if necessary for all bswap
30176         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
30177         set in pass_optimize_bswap::execute ().
30178
30179 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
30180
30181         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
30182         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
30183         integer and floating point variants.
30184         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
30185
30186 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
30187
30188         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
30189         for all vector modes.
30190
30191 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
30192
30193         PR bootstrap/64612
30194         * doc/sourcebuild.texi (comdat_group): Document.
30195
30196 2015-01-28  Terry Guo  <terry.guo@arm.com>
30197
30198         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
30199
30200 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
30201
30202         * toplev.c (print_version): Add param "show_global_state", and
30203         only print GGC and plugin information if it is true.
30204         (init_asm_output): Pass in "true" for the new param when calling
30205         print_version.
30206         (process_options): Likewise.
30207         (toplev::main): Likewise.
30208         * toplev.h (print_version): Add new param to decl.
30209
30210 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
30211
30212         PR ipa/60871
30213         PR ipa/64139
30214         * tree.c (lookup_binfo_at_offset): New function.
30215         (get_binfo_at_offset): Use it.
30216
30217 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
30218
30219         PR ipa/64282
30220         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
30221         on vtable being vtable.
30222
30223 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
30224
30225         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
30226         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
30227         -mhotpatch= option.
30228         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
30229         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
30230         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
30231         Renamed.
30232         (s390_hotpatch_trampoline_halfwords_max): Renamed.
30233         (s390_hotpatch_hw_max): New name.
30234         (s390_hotpatch_trampoline_halfwords): Renamed.
30235         (s390_hotpatch_hw_before_label): New name.
30236         (get_hotpatch_attribute): Removed.
30237         (s390_hotpatch_hw_after_label): New name.
30238         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
30239         attribute.
30240         (s390_attribute_table): Ditto.
30241         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
30242         (s390_function_num_hotpatch_hw): New name.
30243         Remove special handling of inline functions and hotpatching.
30244         Return number of nops before and after the function label.
30245         (s390_can_inline_p): Removed.
30246         (s390_asm_output_function_label): Emit a configurable number of nops
30247         after the function label.
30248         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
30249         (TARGET_CAN_INLINE_P) Removed.
30250         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
30251
30252 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30253             Jiong Wang  <jiong.wang@arm.com>
30254
30255         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
30256         of scratch reg.
30257         (cb<optab><mode>1): Likewise.
30258         * config/aarch64/iterators.md (bcond): New define_code_attr.
30259
30260 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30261
30262         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
30263         memory accesses.
30264
30265 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30266
30267         * config/s390/s390.c (s390_register_move_cost): Increase costs for
30268         FPR->GPR moves.
30269
30270 2015-01-27  Richard Biener  <rguenther@suse.de>
30271
30272         * tree-vrp.c (update_value_range): Intersect the range with
30273         old recorded SSA name range information.
30274
30275 2015-01-27  Nick Clifton  <nickc@redhat.com>
30276
30277         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
30278         BC, DE and HL registers directly, not via AX.
30279         When decrementing the stack pointer by a large amount, transfer SP
30280         into AX and perform the subtraction there.
30281         (rl78_expand_epilogue): Perform the inverse of the above
30282         enhancements.
30283
30284 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30285
30286         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
30287
30288 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30289             Yury Gribov  <y.gribov@samsung.com>
30290
30291         PR ubsan/64741
30292         * ubsan.c (ubsan_source_location): Refactor code.
30293         (ubsan_type_descriptor): Update type size. Refactor code.
30294
30295 2015-01-27  Richard Biener  <rguenther@suse.de>
30296
30297         PR tree-optimization/56273
30298         PR tree-optimization/59124
30299         PR tree-optimization/64277
30300         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
30301         from the first VRP pass.
30302
30303 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30304
30305         PR ipa/64776
30306         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
30307         handle the first argument in the same loop as all the other arguments.
30308
30309         PR rtl-optimization/61058
30310         * jump.c (cleanup_barriers): Update basic block boundaries
30311         if BLOCK_FOR_INSN is non-NULL on PREV.
30312
30313 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
30314
30315         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
30316         bounds narrowing, already instrumented calls and calls to
30317         not instrumentable functions.
30318
30319 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30320
30321         PR tree-optimization/64807
30322         * wide-int.cc (wi::divmod_internal): Clear
30323         b_dividend[dividend_blocks_needed].
30324
30325 2015-01-26  DJ Delorie  <dj@redhat.com>
30326
30327         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
30328         volatile memory references.
30329
30330 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
30331
30332         PR target/49263
30333         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
30334         remove_insn.
30335         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
30336         shifts if it already fits into K08.
30337
30338 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
30339
30340         PR ipa/64730
30341         * ipa-inline.c (inline_small_functions): Print "unknown" even
30342         if edge->call_stmt is non-NULL, but has builtins or unknown
30343         location.
30344
30345         PR middle-end/64421
30346         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
30347         with asterisk, skip the first character.
30348
30349 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
30350
30351         PR target/64806
30352         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
30353         order change.
30354
30355 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
30356
30357         PR target/64795
30358         * config/i386/i386.md (*movdi_internal): Also check operand 0
30359         to determine TYPE_LEA operand.
30360         (*movsi_internal): Ditto.
30361
30362 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
30363
30364         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
30365         OPTION_MASK_QUAD_MEMORY_ATOMIC.
30366
30367 2015-01-26  Renlin Li  <renlin.li@arm.com>
30368
30369         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
30370         the comment.
30371         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
30372         for higher part.
30373
30374 2015-01-26  Richard Biener  <rguenther@suse.de>
30375
30376         PR middle-end/64764
30377         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
30378         combining two BIT_AND_EXPR predicates.
30379
30380 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
30381
30382         PR bootstrap/64754
30383         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
30384
30385 2015-01-26  Terry Guo  <terry.guo@arm.com>
30386
30387         * config/arm/arm.c (arm_file_start): Update the assignment of
30388         Tag_ABI_HardFP_use.
30389
30390 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
30391
30392         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
30393         pipeline model.
30394         config/arm/arm.md: Include the new Cortex-A57 model.
30395         (generic_sched): Don't use generic_sched when tuning for
30396         Cortex-A57.
30397
30398 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
30399             Uros Bizjak  <ubizjak@gmail.com>
30400
30401         * config/i386/i386.c (get_builtin_code_for_version): Add
30402         support for BMI and BMI2 multiversion functions.
30403
30404 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
30405
30406         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
30407         (extract_bit_field): Likewise.
30408         (extract_low_bits): Likewise.
30409         (expand_mult): Likewise.
30410         (expand_mult_highpart_adjust): Likewise.
30411
30412 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
30413
30414         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
30415         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
30416         * config/i386/i386.c (processor_model): Add
30417         M_INTEL_COREI7_BROADWELL.
30418         (arch_names_table): Add "broadwell".
30419
30420 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
30421
30422         PR target/49263
30423         PR target/53987
30424         PR target/64345
30425         PR target/59533
30426         PR target/52933
30427         PR target/54236
30428         PR target/51244
30429         * config/sh/sh-protos.h
30430         (sh_extending_set_of_reg::can_use_as_unextended_reg,
30431         sh_extending_set_of_reg::use_as_unextended_reg,
30432         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
30433         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
30434         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
30435         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
30436         (sh_treg_insns): New class.
30437         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
30438         (scope_counter): New class.
30439         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
30440         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
30441         sh_extending_set_of_reg::can_use_as_unextended_reg,
30442         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
30443         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
30444         sh_split_treg_set_expr): New functions.
30445         (addsubcosts): Handle treg_set_expr.
30446         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
30447         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
30448         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
30449         (sh_insn_operands_modified_between_p): Make non-static.
30450         * config/sh/predicates.md (zero_extend_movu_operand): Allow
30451         simple_mem_operand in addition to displacement_mem_operand.
30452         (zero_extend_operand): Don't allow zero_extend_movu_operand.
30453         (treg_set_expr, treg_set_expr_not_const01,
30454         arith_reg_or_treg_set_expr): New predicates.
30455         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
30456         arith_or_int_operand instead of logical_operand.  Convert to
30457         insn_and_split.  Try to optimize constant operand in splitter.
30458         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
30459         (*tstqi_t_zero): Delete.
30460         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
30461         (tstsi_t_and_not): Delete.
30462         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
30463         Convert to insn_and_split.
30464         (unnamed split, tstsi_t_zero_extract_xor,
30465         tstsi_t_zero_extract_subreg_xor_little,
30466         tstsi_t_zero_extract_subreg_xor_big): Delete.
30467         (*tstsi_t_shift_mask): New insn_and_split.
30468         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
30469         to recombine with surrounding insns when splitting.
30470         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
30471         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
30472         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
30473         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
30474         (*cbranch_div0s: Delete.
30475         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
30476         Try to recombine with surrounding insns when splitting.  Add operand
30477         order variants.
30478         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
30479         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
30480         *addc_r_r_msb, *addc_2r_msb): Delete.
30481         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
30482         order variant.
30483         (*addc_negreg_t): New insn_and_split.
30484         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
30485         Try to recombine with surrounding insns when splitting.
30486         Add operand order variants.
30487         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
30488         insn_and_split patterns.
30489         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
30490         surrounding insns when splitting.
30491         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
30492         (*rotcl): Likewise.  Add zero_extract variant.
30493         (*ashrsi2_31): New insn_and_split.
30494         (*negc): Convert to insn_and_split.  Use treg_set_expr.
30495         (*zero_extend<mode>si2_disp_mem): Update comment.
30496         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
30497         condition.
30498         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
30499         with surrounding insns when splitting.
30500         (any_treg_expr_to_reg): New insn_and_split.
30501         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
30502         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
30503         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
30504         *zero_extract_2): New single bit zero extract patterns.
30505         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
30506         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
30507         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
30508         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
30509         set destination.
30510         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
30511         register_operand for set source.
30512
30513 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
30514
30515         * i386.opt (prefetch_sse): New targetsave.
30516         * i386.c (ix86_function_specific_save): Save prefetch_sse.
30517         (ix86_function_specific_restore): Restore prefetch_sse and initialize
30518         ix86_cost/ix86_tune_cost.
30519
30520 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
30521
30522         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
30523         Support the JIT by using 0 as the language type.
30524
30525 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
30526
30527         PR target/64317
30528         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
30529         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
30530         (mark_regno_live, process_bb_lives): Pass new parameter value to
30531         make_hard_regno_born.
30532
30533 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
30534
30535         PR rtl-optimization/63637
30536         PR rtl-optimization/60663
30537         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
30538         if elt->cost is MAX_COST for ASM_OPERANDS.
30539         (find_sets_in_insn): Fix up comment typo.
30540         (cse_insn): Don't set src_volatile for all non-volatile
30541         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
30542         or with "memory" clobber.  Set elt->cost to MAX_COST
30543         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
30544         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
30545
30546 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
30547
30548         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
30549         alternative 1.
30550
30551 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
30552
30553         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
30554         libgcc/config/i386/elf-lib.h.
30555
30556 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
30557
30558         PR driver/64737
30559         * gcc.c (print_configuration): Don't print a blank line at the end
30560         here...
30561         (run_attempt): ... but here unstead.
30562
30563         PR middle-end/64734
30564         * omp-low.c (scan_sharing_clauses): Don't ignore
30565         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
30566         on target data/update constructs.
30567
30568 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30569
30570         PR target/50928
30571         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
30572         (DEBUG_RELOAD): Removed define.
30573         (m32c_limit_reload_class): Enable traces with if DEBUG0.
30574         (m32c_function_arg): Added a type cast.
30575         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
30576         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
30577         * config/m32c/bitops.md (andqi3_16): Likewise.
30578         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
30579         (push_a01_l): Likewise.
30580
30581 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
30582
30583         PR jit/64721
30584         * main.c (main): Construct toplev instances with init_signals=true.
30585         * toplev.c (general_init): Add param "init_signals", and use it to
30586         conditionalize the calls to signal and host_hooks.extra_signals.
30587         (toplev::toplev): Add param "init_signals".
30588         (toplev::main): When invoking general_init, pass m_init_signals
30589         to control whether signal-handlers are installed.
30590         * toplev.h (toplev::toplev): Add param "init_signals".
30591         (toplev::m_init_signals): New field.
30592
30593 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
30594
30595         PR jit/64722
30596         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
30597         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
30598         latter may be affected by the former (e.g. on i686).
30599
30600 2015-01-23  Martin Liska  <mliska@suse.cz>
30601
30602         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
30603         false positive during profiledbootstrap.
30604
30605 2015-01-23  Tom de Vries  <tom@codesourcery.com>
30606
30607         PR libgomp/64672
30608         * lto-opts.c (lto_write_options): Output non-explicit conservative
30609         -fno-openacc.
30610         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
30611         (append_compiler_options): Pass -fopenacc through.
30612
30613 2015-01-23  Tom de Vries  <tom@codesourcery.com>
30614
30615         PR libgomp/64707
30616         * lto-opts.c (lto_write_options): Output non-explicit conservative
30617         -fno-openmp.
30618         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
30619         (append_compiler_options): Pass -fopenmp through.
30620
30621 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
30622
30623         PR debug/64511
30624         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
30625         GTY markup.
30626
30627         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
30628         * diagnostic.def (DK_ICE_NOBT): New kind.
30629         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
30630         like DK_ICE, but never print backtrace.
30631         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
30632         (internal_error_no_backtrace): New function.
30633         * gcc.c (execute): Use internal_error_no_backtrace instead of
30634         internal_error.
30635
30636 2015-01-22  Jeff Law  <law@redhat.com>
30637
30638         PR target/52076
30639         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
30640         improve code density for small immediate to memory case.
30641         (insv): Better handle bitfield assignments when the field is
30642         being set to all ones.
30643         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
30644         operand predicate.
30645
30646 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30647             Jakub Jelinek  <jakub@redhat.com>
30648
30649         PR middle-end/64729
30650         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
30651         for !TARGET_LIBC_PROVIDES_SSP version and
30652         -fstack-protector-{all,strong,explicit} otherwise.
30653         * config/freebsd.h (LINK_SSP_SPEC): Handle
30654         -fstack-protector-{strong,explicit}.
30655
30656 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
30657             H.J. Lu  <hongjiu.lu@intel.com>
30658
30659         PR ipa/64694
30660         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
30661         heap.
30662
30663 2015-01-22  Wei Mi  <wmi@google.com>
30664
30665         PR rtl-optimization/64557
30666         * dse.c (record_store): Call get_addr for mem_addr.
30667         (check_mem_read_rtx): Likewise.
30668
30669 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
30670
30671         * fold-const.c (const_binop): Add early return for non-tcc_binary.
30672
30673 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
30674
30675         * toplev.c (init_local_tick): Process the failure when read
30676         fails for random_seed.
30677
30678         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
30679         'pretty_name' to avoid memory overflow.
30680
30681 2015-01-22  Richard Biener  <rguenther@suse.de>
30682
30683         PR middle-end/64728
30684         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
30685         abnormal coalescing on undefined SSA names.
30686
30687 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
30688
30689         PR target/64688
30690         PR target/64477
30691         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
30692         for alternative 3.
30693         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
30694
30695 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
30696
30697         PR middle-end/63325
30698         * fold-const.c (fold_checksum_tree): Don't include value of
30699         expr->decl_with_vis.symtab_node in the checksum.
30700
30701 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30702
30703         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
30704
30705 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
30706
30707         PR driver/64690
30708         * gcc.c (insert_comments): New function.
30709         (try_generate_repro): Call it.
30710         (append_text): Removed.
30711
30712 2015-01-22  Richard Biener  <rguenther@suse.de>
30713
30714         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
30715         with IL incompatible options.  Properly honor user optimize
30716         attributes.
30717
30718 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
30719
30720         PR rtl-optimization/64682
30721         * combine.c (distribute_notes): When moving a death note for
30722         a register that is set in the new I2, make sure to put it
30723         before that new I2.
30724
30725 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
30726
30727         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
30728         not TARGET_DEFAULT.
30729
30730 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
30731
30732         PR debug/64511
30733         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
30734         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
30735         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
30736
30737         PR sanitizer/64706
30738         * doc/invoke.texi (-fsanitize=vptr): Document.
30739
30740         PR rtl-optimization/62078
30741         * dse.c: Include cfgcleanup.h.
30742         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
30743         anything call purge_all_dead_edges and cleanup_cfg at the end
30744         of the pass.
30745
30746 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
30747
30748         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
30749         edges.
30750
30751 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30752
30753         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
30754         decl attribute.
30755
30756 2015-01-21  David Sherwood  <david.sherwood@arm.com>
30757             Tejas Belagod <Tejas.Belagod@arm.com>
30758
30759         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
30760         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
30761         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
30762         Removed.
30763
30764 2015-01-21  David Sherwood  <david.sherwood@arm.com>
30765             Tejas Belagod <Tejas.Belagod@arm.com>
30766
30767         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
30768         (aarch64_reverse_mask): New decls.
30769         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
30770         (insn_count): New mode_attr.
30771         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
30772         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
30773         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
30774         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
30775         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
30776         (aarch64_simd_st4): New patterns.
30777         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
30778         (aarch64_reverse_mask): New functions.
30779
30780 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
30781
30782         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
30783         Declare.
30784         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
30785         addressing modes for BE.
30786         (aarch64_print_operand): Add 'R' specifier.
30787         (aarch64_simd_disambiguate_copy): Delete.
30788         (aarch64_simd_emit_reg_reg_move): New function.
30789         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
30790         in define_splits for structural moves.
30791         (mov<mode>): Use less restrictive predicates.
30792         (*aarch64_mov<mode>): Simplify and only allow for LE.
30793         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
30794
30795 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
30796
30797         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
30798
30799 2015-01-21  Richard Henderson  <rth@redhat.com>
30800
30801         PR target/64669
30802         * ccmp.c (used_in_cond_stmt_p): Remove.
30803         (expand_ccmp_expr): Don't use it.
30804
30805 2015-01-21  Nick Clifton  <nickc@redhat.com>
30806
30807         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
30808         PARALLELs.
30809
30810 2015-01-21  Richard Biener  <rguenther@suse.de>
30811
30812         PR middle-end/64313
30813         * tree-core.h (builtin_info, builtin_info_type): Turn from
30814         an object with two arrays into an array of an object with
30815         decl and two flags, implicit_p and declared_p.
30816         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
30817         set_builtin_decl, set_builtin_decl_implicit_p,
30818         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
30819         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
30820         * builtins.c (builtin_info): Adjust.
30821         * gimplify.c (gimplify_addr_expr): References to builtins
30822         that have been declared by the user makes them eligible for
30823         use by the compiler.  Call set_builtin_decl_implicit_p on them.
30824
30825 2015-01-20  Jeff Law  <law@redhat.com>
30826
30827         PR target/59946
30828         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
30829         allow pc-relative addresses in operand predicates or constraints.
30830
30831 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
30832
30833         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
30834         neon on aarch32 processors for stringops.
30835
30836 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
30837
30838         PR ipa/63576
30839         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
30840
30841 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
30842
30843         PR lto/45375
30844         * ipa-inline.c: Include lto-streamer.h
30845         (report_inline_failed_reason): Output source file differences and
30846         flags on optimization/target node mismatch.
30847         (can_inline_edge_p): Consider caller to be the outer inline function;
30848         be less restrictive about matching opimize and optimize_size attributes.
30849         (inline_account_function_p): Break out from ...
30850         (inline_small_functions): ... here.
30851         * ipa-inline-transform.c (clone_inlined_nodes): Use
30852         inline_account_function_p.
30853         (inline_call): Use optimize attribution; use inline_account_function_p.
30854         (inline_transform): Use opt_for_fn.
30855         * ipa-inline.h (inline_account_function_p): Declare.
30856
30857 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
30858
30859         PR debug/64663
30860         * dwarf2out.c (decl_piece_node): Don't put bitsize into
30861         mode if bitsize <= 0.
30862         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
30863         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
30864         sizes and positions.
30865
30866 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
30867
30868         * config/nios2/nios2.c (nios2_asm_file_end): Implement
30869         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
30870         needed.
30871         (TARGET_ASM_FILE_END): Define.
30872
30873 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
30874
30875         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
30876         (struct tune_params): Use the enum.
30877         * arm.c (arm_*_tune): Update.
30878         (arm_option_override): Update.
30879
30880 2015-01-20  Richard Biener  <rguenther@suse.de>
30881
30882         PR ipa/64684
30883         * ipa-reference.c (add_static_var): Inline ...
30884         (analyze_function): ... here after splitting out from ...
30885         (is_proper_for_analysis): ... this.
30886
30887 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
30888
30889         PR target/64149
30890         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
30891         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
30892         replace the conditional with it's true branch.
30893         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
30894         (arm_lra_p): Remove.
30895
30896 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
30897
30898         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
30899
30900 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
30901
30902         * config/tilegx/mul-tables.c: Move symtab.h include after
30903         coretypes.h include.
30904         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
30905         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
30906         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
30907         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
30908         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
30909
30910 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
30911
30912         PR bootstrap/64676
30913         Revert:
30914         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
30915
30916         PR rtl-optimization/64081
30917         * loop-iv.c (def_pred_latch_p): New function.
30918         (latch_dominating_def): Allow specific cases with non-single
30919         definitions.
30920         (iv_get_reaching_def): Likewise.
30921         (check_complex_exit_p): New function.
30922         (check_simple_exit): Use check_complex_exit_p to allow certain cases
30923         with exits not executing on any iteration.
30924
30925 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
30926
30927         PR lto/45375
30928         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
30929         to set branch cost.
30930
30931 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
30932
30933         PR lto/45375
30934         * i386.c (gate): Check flag_expensive_optimizations and
30935         optimize_size.
30936         (ix86_option_override_internal): Drop optimize_size condition
30937         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
30938         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
30939         MASK_PREFER_AVX128.
30940         (ix86_avx256_split_vector_move_misalign,
30941         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
30942         * sse.md (all uses of TARGET_PREFER_AVX128): Add
30943         optimize_insn_for_speed_p check.
30944
30945 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
30946
30947         * config/mips/mips.h (FP_ASM_SPEC): New define.
30948         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
30949         instead.
30950
30951 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
30952
30953         PR target/53988
30954         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
30955         nullptr for insn when reaching the first insn.
30956         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
30957         (sh_insn_operands_modified_between_p): Add nullptr check.
30958         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
30959         sign extending mem load if the insn contains any UNSPEC or
30960         UNSPEC_VOLATILE.
30961
30962 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
30963
30964         * params.def (inline-unit-growth): Drop to 15%.
30965         * invoke.texi (inline-unit-growth): Document change.
30966
30967 2015-01-19  Martin Liska  <mliska@suse.cz>
30968
30969         PR ipa/64668
30970         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
30971         function for second argument of OBJ_TYPE_REF.
30972
30973 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
30974
30975         PR ipa/64218
30976         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
30977         whether function is an alias.
30978
30979 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
30980
30981         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
30982         cases.
30983
30984 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
30985
30986         PR rtl-optimization/64671
30987         * lra-remat.c (operand_to_remat): Don't consider jump and call
30988         insns.
30989
30990 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
30991
30992         PR target/59828
30993         * config/rs6000/default64.h: Include rs6000-cpus.def.
30994         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
30995         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
30996         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
30997         and POWER8.
30998         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
30999         POWER8.
31000         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
31001         pseudo-op to specify assembler dialect.
31002
31003 2015-01-19  Martin Liska  <mliska@suse.cz>
31004
31005         PR ipa/64664
31006         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
31007         Handle safe potentially removed nodes during filtering.
31008
31009 2015-01-19  Martin Liska  <mliska@suse.cz>
31010
31011         * doc/extend.texi (no_icf): Add new attribute description.
31012         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
31013         where the pass attempts to merge a function with no_icf attribute.
31014
31015 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31016
31017         PR target/64532
31018         * doc/md.texi (ARM Options): Document register constraints.
31019
31020 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
31021             Andrew Pinski  <apinski@cavium.com>
31022
31023         PR target/64304
31024         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
31025         (ashl<mode>3): Don't expand if operands[2] is not constant.
31026
31027 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31028
31029         PR target/64448
31030         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
31031         Match xor-and-xor RTL pattern.
31032
31033 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
31034
31035         PR rtl-optimization/64081
31036         * loop-iv.c (def_pred_latch_p): New function.
31037         (latch_dominating_def): Allow specific cases with non-single
31038         definitions.
31039         (iv_get_reaching_def): Likewise.
31040         (check_complex_exit_p): New function.
31041         (check_simple_exit): Use check_complex_exit_p to allow certain cases
31042         with exits not executing on any iteration.
31043
31044 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
31045
31046         * common.opt (fgraphite): Fix a typo.
31047
31048 2015-01-19  Felix Yang  <felix.yang@huawei.com>
31049
31050         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
31051         pattern.
31052         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
31053         uminp, smax_nanp, smin_nanp): New builtins.
31054         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
31055         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
31056         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
31057         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
31058         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
31059         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
31060         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
31061         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
31062         vpminnms_f32): Rewrite using builtin functions.
31063
31064 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
31065
31066         PR libgomp/64625
31067         * omp-low.c (offload_symbol_decl): Remove variable.
31068         (get_offload_symbol_decl): Remove function.
31069         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
31070         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
31071         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
31072         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
31073         BUILT_IN_GOACC_UPDATE don't pass it at all.
31074
31075 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
31076
31077         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
31078         callers.
31079
31080 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
31081
31082         * ipa-chkp.c (chkp_produce_thunks): Add early param
31083         to split thunks production into two passes.  Keep
31084         'always_inline' function bodies after the first pass.
31085         (pass_data_ipa_chkp_early_produce_thunks): New.
31086         (pass_ipa_chkp_early_produce_thunks): New.
31087         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
31088         chkp_produce_thunks signature.
31089         (make_pass_ipa_chkp_early_produce_thunks): New.
31090         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
31091         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
31092         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
31093
31094 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31095
31096         * cgraph.c (cgraph_node::dump): Dump profile flags.
31097
31098 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
31099
31100         PR target/64652
31101         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
31102         reg appear first in the parallel.
31103
31104 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31105
31106         * ipa-reference.c (set_reference_optimization_summary,
31107         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
31108         disabled.
31109         (ignore_module_statics): New static var.
31110         (propagate_bits): If ipa-reference is disabled, do not look into local
31111         properties.
31112         (analyze_function): Disable analysis when ipa_reference is disabled.
31113         (generate_summary): Do not dump when reference is disabled;
31114         collect vars accessed from functions with ipa-reference disabled.
31115         (get_read_write_all_from_node): When ipa-reference is disabled, use the
31116         node flags.
31117         (gate): Enable for LTO.
31118         (ignore_edge_p): New function.
31119         (propagate): Skip functions w/o ipa-reference analysis.
31120         * optc-save-gen.awk: Handle optimize_debug correctly.
31121         * opth-gen.awk: Likewise.
31122         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
31123         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
31124         fira-share-save-slots, fira-share-spill-slots,
31125         fmodulo-sched-allow-regmoves, fpartial-inlining,
31126         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
31127         ftracer, ftree-parallelize-loops, fassociative-math,
31128         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
31129         Optimization
31130         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
31131         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
31132         Optimization.
31133         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
31134         Fix for IPA.
31135
31136 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31137
31138         PR ipa/64378
31139         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
31140         flag correctly.
31141         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
31142
31143 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
31144
31145         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
31146         Remove duplicate option listings.
31147
31148 2015-01-18  Felix Yang  <felix.yang@huawei.com>
31149
31150         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
31151         (autofdo_source_profile::get_callsite_total_count,
31152         function_instance::get_function_instance_by_decl,
31153         string_table::get_index, string_table::get_index_by_decl,
31154         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
31155         Fix comment typos. Reformatting and minor code rearrangement.
31156
31157 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31158
31159         * config/rs6000/rs6000.md (probe_stack): Delete.
31160         (probe_stack_address): New.
31161
31162 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31163
31164         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
31165         to test for 32-bit ABIs, not !TARGET_POWERPC64.
31166
31167 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31168
31169         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
31170         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
31171         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
31172         snafu.
31173         (rs6000_libcall_value): Use the new function.
31174
31175 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
31176
31177         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
31178
31179 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
31180
31181         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
31182         implement a more precise life analysis for it during backward scan.
31183
31184 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
31185
31186         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
31187
31188 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
31189
31190         PR rtl-optimization/52773
31191         * calls.c (emit_library_call_value): When pushing arguments use
31192         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
31193         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
31194         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
31195
31196 2015-01-17  Jeff Law  <law@redhat.com>
31197
31198         PR rtl-optimization/32790
31199         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
31200         not ZERO_EXTEND in SET_DESTs.
31201
31202 2015-01-17  Alan Modra  <amodra@gmail.com>
31203
31204         * cprop.c (do_local_cprop): Revert last change.
31205
31206 2015-01-16  DJ Delorie  <dj@redhat.com>
31207             Nick Clifton  <nickc@redhat.com>
31208
31209         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
31210         (addhi3_real): Likewise.  Fix [HL+0] syntax.
31211         (subqi3_real): Likewise.
31212         (subhi3_real): Likewise.
31213         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
31214         (cbranchhi4_real): Likewise.
31215         (cbranchhi4_real_inverted): Likewise.
31216         (cbranchsi4_real_lt): Likewise.
31217         (cbranchsi4_real_ge): Likewise.
31218         (cbranchsi4_real_ge): Likewise.
31219         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
31220         (sub<mode>3_virt): Likewise.
31221         (cbranchqi4_virt): Likewise.
31222         (cbranchhi4_virt): Likewise.
31223         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
31224         always use '[reg+imm]' even when imm is zero.
31225         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
31226         (rl78_general_operand): New.
31227         (rl78_nonimmediate_operand): New.
31228         (rl78_nonfar_operand): Use them.
31229         (rl78_nonfar_nonimm_operand): Likewise.
31230         (rl78_stack_based_mem): Fix.
31231         * config/rl78/constraints.md (Ibqi): New.
31232         (IBqi): New.
31233         (Wsa): New.
31234         (Wsf): New.
31235         (Cs1): Fix.
31236         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
31237         (iorqi3): Likewise.
31238         (xorqi3): Likewise.
31239         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
31240
31241         * config/rl78/constrains (Qs8): New constraint.
31242         * config/rl78/rl78.c (rl78_flags_already_set): New function.
31243         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
31244         * config/rl78/rl78-real.md (update_Z): New attribute.
31245         Update patterns to set it.
31246         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
31247         shorter compare and branch sequence can be used.
31248         (cbranchhi4_real): Likewise.
31249         (cbranchhi4_real_inverted): Likewise.
31250
31251         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
31252         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
31253         address space.
31254         * config/rl78/rl78.c (rl78_get_name_encoding): New.
31255         (rl78_option_override): Allow -mes0 only if C.
31256         (characterize_address): Support subregs of symbol_refs.
31257         (rl78_addr_space_address_mode): Move.  Add __near.
31258         (rl78_far_p): Likewise.
31259         (rl78_addr_space_pointer_mode): Likewise.
31260         (rl78_as_legitimate_address): Likewise.
31261         (rl78_addr_space_subset_p): Likewise.
31262         (rl78_addr_space_convert): Likewise.
31263         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
31264         symbols with -mes0.
31265         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
31266         addressing.
31267         (rl78_alloc_physical_registers_op1): Change logic to prefer
31268         symbol[BC] addressing.
31269         (frodata_section): New.
31270         (rl78_asm_init_sections): Initialize it.
31271         (rl78_select_section): Put __far readonly symbols in .frodata.
31272         (rl78_make_type_far): New.
31273         (rl78_insert_attributes): Force all readonly symbols to be
31274         __far when -mes0.
31275         (rl78_asm_out_integer): New.
31276         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
31277         * config/rl78/rl78.opt (-mes0): New.
31278
31279         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
31280         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
31281         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
31282         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
31283         (rl78_saddr_p): New.
31284         (rl78_output_aligned_common): New.
31285         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
31286         (rl78_handle_saddr_attribute): New.
31287         (rl78_handle_naked_attribute): New.
31288         (rl78_attribute_table): Add saddr.
31289         (rl78_print_operand_1): Don't print '!' on saddr operands.
31290         (rl78_print_operand_1): Strip encodings.
31291         (rl78_sfr_p): New.
31292         (rl78_strip_name_encoding): New.
31293         (rl78_attrlist_to_encoding): New.
31294         (rl78_encode_section_info): New.
31295         (rl78_asm_init_sections): New.
31296         (rl78_select_section): New.
31297         (rl78_output_labelref): New.
31298         (rl78_output_aligned_common): New.
31299         (rl78_asm_out_integer): New.
31300         (rl78_asm_ctor_dtor): New.
31301         (rl78_asm_constructor): New.
31302         (rl78_asm_destructor): New.
31303
31304         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
31305         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
31306         (transcode_memory_rtx): Update.
31307         (rl78_expand_epilogue): Use A_REG instead of 0.
31308
31309 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31310
31311         * config/arm/arm-protos.h (struct tune_params): New field
31312         sched_autopref_queue_depth.
31313         * config/arm/arm.c (sched-int.h): Include header.
31314         (arm_first_cycle_multipass_dfa_lookahead_guard,)
31315         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
31316         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
31317         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
31318         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
31319         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
31320         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
31321         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
31322         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
31323         * config/arm/t-arm (arm.o): Update.
31324         * haifa-sched.c (update_insn_after_change): Update.
31325         (rank_for_schedule): Use auto-prefetcher model, if requested.
31326         (autopref_multipass_init): New static function.
31327         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
31328         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
31329         variable for debug dumps.
31330         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
31331         (autopref_multipass_dfa_lookahead_guard): New global function that
31332         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
31333         (init_h_i_d): Update.
31334         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
31335         * sched-int.h (enum autopref_multipass_data_status): New const enum.
31336         (autopref_multipass_data_): Structure for auto-prefetcher data.
31337         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
31338         (struct _haifa_insn_data:autopref_multipass_data): New field.
31339         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
31340         (autopref_multipass_dfa_lookahead_guard): Declare.
31341
31342 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31343
31344         * rtlanal.c (get_base_term): Handle SCRATCH.
31345
31346 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31347
31348         * config/aarch64/aarch64.c
31349         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
31350         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
31351         * config/arm/arm.c
31352         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
31353         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
31354
31355 2015-01-17  Alan Modra  <amodra@gmail.com>
31356
31357         * cprop.c (do_local_cprop): Disallow replacement of fixed
31358         hard registers.
31359
31360 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31361
31362         PR target/62066
31363         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
31364         early return 0.
31365
31366 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31367
31368         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
31369         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
31370
31371 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31372
31373         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
31374         * config/arm/thumb1.md: ... Here.
31375
31376 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31377
31378         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
31379         TImode for TARGET_32BIT.
31380
31381 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31382
31383         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
31384         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
31385         as ...
31386         (rs6000_abi_word_mode): New function.
31387
31388 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31389
31390         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
31391         instead of UNITS_PER_WORD to describe the size of stack slots.
31392
31393 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31394
31395         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
31396         as rs6000_promote_function_mode.  Move comment to there.
31397         (rs6000_promote_function_mode): New function.
31398
31399 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31400
31401         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
31402         -mpowerpc64 is active.
31403
31404 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
31405
31406         PR middle-end/64353
31407         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
31408         virtuals on start.
31409
31410 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
31411
31412         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
31413         introduced in revision 219724.
31414
31415 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31416             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31417
31418         PR target/64263
31419         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
31420         destination is not a GP reg.
31421         (*movdi_aarch64): Likewise.
31422
31423 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
31424
31425         PR target/64623
31426         * config/rs6000/default64.h: Revert ISA change.
31427
31428 2015-01-16  Richard Biener  <rguenther@suse.de>
31429
31430         PR middle-end/64614
31431         * tree-ssa-uninit.c: Include tree-cfg.h.
31432         (MAX_SWITCH_CASES): New define.
31433         (convert_control_dep_chain_into_preds): Handle switch statements.
31434         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
31435         (normalize_one_pred_1): Do not split bit-manipulations.
31436         Record (x & CST).
31437
31438 2015-01-16  Richard Biener  <rguenther@suse.de>
31439
31440         PR tree-optimization/64568
31441         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
31442         complex load rewriting for TARGET_MEM_REFs.
31443
31444 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
31445
31446         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
31447
31448 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
31449
31450         PR target/64149
31451         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
31452         variable.
31453         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
31454         (aarch64_lra_p): Remove.
31455
31456 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
31457
31458         PR target/64363
31459         * ipa-chkp.h (chkp_instrumentable_p): New.
31460         * ipa-chkp.c: Include tree-inline.h.
31461         (chkp_instrumentable_p): New.
31462         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
31463         Fix processing of not instrumentable functions.
31464         (chkp_versioning): Use chkp_instrumentable_p. Warn about
31465         not instrumentable functions.
31466         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
31467         chkp_instrumentable_p.
31468         * tree-inline.h (copy_forbidden): New.
31469         * tree-inline.c (copy_forbidden): Not static anymore.
31470
31471 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31472
31473         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
31474         ptr1, ptr2 unused.
31475
31476 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
31477
31478         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
31479         type OP_OUT to OP_INOUT.
31480
31481 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
31482
31483         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
31484         (high x) y) to y if x and y have the same base.
31485
31486 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
31487
31488         * config/arm/cortex-a57.md: New.
31489         * config/aarch64/aarch64.md: Include it.
31490         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
31491         * config/aarch64/aarch64-tune.md: Regenerate.
31492
31493 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
31494
31495         PR target/64015
31496         * ccmp.c (expand_ccmp_next): New function.
31497         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
31498         and compare insn sequence.
31499         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
31500         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
31501         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
31502         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
31503         (*ccmp_ior): Changed to ccmp_ior<mode>.
31504         (cmp<mode>): New pattern.
31505         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
31506         parameters.
31507         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
31508
31509 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
31510
31511         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
31512         _mm256_bsrli_epi128): New.
31513         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
31514
31515 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
31516
31517         * expmed.c (store_bit_field_using_insv): Improve warning message.
31518         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
31519
31520 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
31521
31522         PR rtl-optimization/64011
31523         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
31524         there is partial overflow.
31525
31526 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31527
31528         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
31529         prototype.
31530         (nds32_expand_epilogue_v3pop): Likewise.
31531         * config/nds32/nds32.md (sibcall): Define this for sibling call
31532         optimization.
31533         (sibcall_register): Likewise.
31534         (sibcall_immediate): Likewise.
31535         (sibcall_value): Likewise.
31536         (sibcall_value_register): Likewise.
31537         (sibcall_value_immediate): Likewise.
31538         (sibcall_epilogue): Likewise.
31539         (epilogue): Pass false to indicate this is not a sibcall epilogue.
31540         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
31541         (nds32_expand_epilogue_v3pop): Likewise.
31542
31543 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31544
31545         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
31546         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
31547         (return_internal): New.
31548         (return): Define this named pattern.
31549         (simple_return): Define this named pattern.
31550         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
31551         pattern instead of unspec_volatile_func_return.
31552         (nds32_expand_epilogue_v3pop): Likewise.
31553         (nds32_can_use_return_insn): New function.
31554
31555 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31556
31557         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
31558         * config/nds32/nds32.md (pop25return): New.
31559         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
31560         pop25return pattern.
31561
31562 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31563
31564         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
31565         -mforbid-fp-as-gp, and -mex9 options.
31566
31567 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31568
31569         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
31570         remove -mgp-direct option.
31571
31572 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
31573
31574         * doc/invoke.texi (--param early-inlining-insns): Update default value.
31575         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
31576
31577 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
31578
31579         * ipa-inline.c (inline_small_functions): Work around hints
31580         cache issue.
31581
31582 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
31583
31584         PR target/59710
31585         * doc/invoke.texi (Option Summary): Document new Nios II
31586         -mgpopt= syntax.
31587         (Nios II Options): Likewise.
31588         * config/nios2/nios2.opt: Add -mgpopt= option support.
31589         Modify existing -mgpopt and -mno-gpopt options to be aliases.
31590         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
31591         * config/nios2/nios2.c (nios2_option_override): Adjust
31592         -mgpopt defaulting.
31593         (nios2_in_small_data_p): Return true for explicit small data
31594         sections even with -G0.
31595         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
31596         option choices.
31597
31598 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
31599
31600         PR ipa/64612
31601         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
31602         of comdat locals.
31603         (inline_call): Fix removal of aliases.
31604
31605 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
31606
31607         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
31608         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
31609         * opts.c (common_handle_option): Add -fsanitize=vptr.
31610         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
31611         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
31612         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
31613         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
31614         (ubsan_expand_vptr_ifn): New prototype.
31615         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
31616         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
31617         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
31618         expand_LOOP_VECTORIZED): Make argument nameless, remove
31619         ATTRIBUTE_UNUSED.
31620         (expand_UBSAN_VPTR): New function.
31621         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
31622         in fn spec.
31623         (UBSAN_VPTR): New internal function.
31624         * sanopt.c (tree_map_traits): Renamed to ...
31625         (sanopt_tree_map_traits): ... this.
31626         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
31627         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
31628         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
31629         (maybe_optimize_ubsan_vptr_ifn): New function.
31630         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
31631         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
31632         -fsanitize=vptr.
31633         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
31634         internal calls like pure functions for aliasing, even when they
31635         have other side-effects that prevent making them ECF_PURE.
31636         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
31637         (ubsan_expand_vptr_ifn): New function.
31638
31639 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
31640
31641         PR rtl-optimization/64110
31642         * stmt.c (parse_output_constraint): Process '^' and '$'.
31643         (parse_input_constraint): Ditto.
31644         * lra-constraints.c (process_alt_operands): Process the new
31645         constraints.
31646         * ira-costs.c (record_reg_classes): Process the new constraint
31647         '^'.
31648         * genoutput.c (indep_constraints): Add '^' and '$'.
31649         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
31650         * doc/md.texi: Add description of the new constraints.
31651
31652 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
31653             Bernd Schmidt  <bernds@codesourcery.com>
31654             Cesar Philippidis  <cesar@codesourcery.com>
31655             James Norris  <jnorris@codesourcery.com>
31656             Tom de Vries  <tom@codesourcery.com>
31657             Ilmir Usmanov  <i.usmanov@samsung.com>
31658             Dmitry Bocharnikov  <dmitry.b@samsung.com>
31659             Evgeny Gavrin  <e.gavrin@samsung.com>
31660             Jakub Jelinek  <jakub@redhat.com>
31661
31662         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
31663         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
31664         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
31665         New function types.
31666         * builtins.c: Include "gomp-constants.h".
31667         (expand_builtin_acc_on_device): New function.
31668         (expand_builtin, is_inexpensive_builtin): Handle
31669         BUILT_IN_ACC_ON_DEVICE.
31670         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
31671         New macros.
31672         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
31673         flag_openmp.
31674         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
31675         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
31676         i386/intelmic-offload.h.
31677         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
31678         to libgomp and its dependencies.
31679         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
31680         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
31681         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
31682         * config/ia64/hpux.h (LIB_SPEC): Likewise.
31683         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
31684         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
31685         * doc/generic.texi: Update for OpenACC changes.
31686         * doc/gimple.texi: Likewise.
31687         * doc/invoke.texi: Likewise.
31688         * doc/sourcebuild.texi: Likewise.
31689         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
31690         GF_OMP_FOR_KIND_OACC_LOOP.
31691         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
31692         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
31693         GF_OMP_TARGET_KIND_OACC_UPDATE,
31694         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
31695         Dump more data.
31696         * gimple.c: Update comments for OpenACC changes.
31697         * gimple.def: Likewise.
31698         * gimple.h: Likewise.
31699         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
31700         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
31701         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
31702         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
31703         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
31704         appropriate place.
31705         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
31706         * gimplify.c: Include "gomp-constants.h".
31707         Update comments for OpenACC changes.
31708         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
31709         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
31710         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
31711         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
31712         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
31713         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
31714         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
31715         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
31716         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
31717         OMP_CLAUSE_SEQ.
31718         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
31719         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
31720         OMP_CLAUSE_SET_MAP_KIND.
31721         (gimplify_oacc_cache): New function.
31722         (gimplify_omp_for): Handle OACC_LOOP.
31723         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
31724         OACC_DATA.
31725         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
31726         OACC_EXIT_DATA, OACC_UPDATE.
31727         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
31728         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
31729         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
31730         (gimplify_body): Consider flag_openacc next to flag_openmp.
31731         * lto-streamer-out.c: Include "gomp-constants.h".
31732         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
31733         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
31734         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
31735         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
31736         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
31737         (BUILT_IN_ACC_ON_DEVICE): New builtins.
31738         * omp-low.c: Include "gomp-constants.h".
31739         Update comments for OpenACC changes.
31740         (struct omp_context): Add reduction_map, gwv_below, gwv_this
31741         members.
31742         (extract_omp_for_data, use_pointer_for_field, install_var_field)
31743         (new_omp_context, delete_omp_context, scan_sharing_clauses)
31744         (create_omp_child_function, scan_omp_for, scan_omp_target)
31745         (check_omp_nesting_restrictions, lower_reduction_clauses)
31746         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
31747         Update for OpenACC changes.
31748         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
31749         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
31750         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
31751         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
31752         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
31753         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
31754         OMP_CLAUSE_MAP_*.
31755         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
31756         Handle GF_OMP_FOR_KIND_OACC_LOOP.
31757         (expand_omp_target, lower_omp_target): Handle
31758         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
31759         GF_OMP_TARGET_KIND_OACC_UPDATE,
31760         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
31761         GF_OMP_TARGET_KIND_OACC_DATA.
31762         (pass_expand_omp::execute, execute_lower_omp)
31763         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
31764         flag_openmp.
31765         (offload_symbol_decl): New variable.
31766         (oacc_get_reduction_array_id, oacc_max_threads)
31767         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
31768         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
31769         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
31770         (oacc_gimple_assign, oacc_initialize_reduction_data)
31771         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
31772         functions.
31773         (is_targetreg_ctx): Remove function.
31774         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
31775         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
31776         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
31777         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
31778         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
31779         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
31780         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
31781         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
31782         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
31783         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
31784         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
31785         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
31786         * tree-core.h: Update comments for OpenACC changes.
31787         (enum omp_clause_map_kind): Remove.
31788         (struct tree_omp_clause): Change type of map_kind member from enum
31789         omp_clause_map_kind to unsigned char.
31790         * tree-inline.c: Update comments for OpenACC changes.
31791         * tree-nested.c: Likewise.  Include "gomp-constants.h".
31792         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
31793         (convert_tramp_reference_stmt, convert_gimple_call): Update for
31794         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
31795         OMP_CLAUSE_SET_MAP_KIND.
31796         * tree-pretty-print.c: Include "gomp-constants.h".
31797         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
31798         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
31799         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
31800         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
31801         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
31802         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
31803         instead of OMP_CLAUSE_MAP_*.
31804         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
31805         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
31806         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
31807         * tree-streamer-in.c: Include "gomp-constants.h".
31808         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
31809         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
31810         * tree-streamer-out.c: Include "gomp-constants.h".
31811         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
31812         OMP_CLAUSE_MAP_*.
31813         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
31814         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
31815         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
31816         * tree.c (omp_clause_num_ops): Update accordingly.
31817         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
31818         Likewise.
31819         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
31820         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
31821         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
31822         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
31823         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
31824         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
31825         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
31826         (OMP_CLAUSE_SET_MAP_KIND): New macro.
31827         * varpool.c (varpool_node::get_create): Consider flag_openacc next
31828         to flag_openmp.
31829         * config/i386/intelmic-offload.h: New file.
31830         * config/nvptx/offload.h: Likewise.
31831
31832 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31833
31834         * explow.h: Remove duplicate contents.
31835         * dojump.h: Likewise.
31836
31837 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
31838
31839         * arm.c (arm_xgene_tune): Add default initializer for instruction
31840         fusion.
31841
31842 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
31843
31844         PR ipa/64068
31845         PR ipa/64559
31846         * ipa.c (symbol_table::remove_unreachable_nodes):
31847         Do not put abstract origins into boundary.
31848
31849 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
31850
31851         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
31852         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
31853
31854 2015-01-15  Steve Ellcey  <sellcey@mips.com>
31855
31856         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
31857         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
31858         builtins.def, and chkp-builtins.def.
31859
31860 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
31861
31862         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
31863         ISA 2.7 (POWER8).
31864
31865 2015-01-15  Richard Biener  <rguenther@suse.de>
31866
31867         PR tree-optimization/61743
31868         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
31869         information on PHIs for some simple cases.
31870
31871 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
31872
31873         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
31874         Include xgene1.md.
31875         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
31876         * config/arm/arm-cores.def (xgene1): New entry.
31877         * config/arm/arm-tables.opt: Regenerate.
31878         * config/arm/arm-tune.md: Regenerate.
31879         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
31880
31881 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
31882
31883         * tree-if-conv.c: Include hash-map.h.
31884         (aggressive_if_conv): New variable.
31885         (fold_build_cond_expr): Add simplification of non-zero condition.
31886         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
31887         destination block is not always executed.
31888         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
31889         than two predecessors if AGGRESSIVE_IF_CONV is true.
31890         (if_convertible_stmt_p): Fix commentary.
31891         (all_preds_critical_p): New function.
31892         (has_pred_critical_p): New function.
31893         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
31894         BB can have more than two predecessors and all incoming edges can be
31895         critical.
31896         (predicate_bbs): Skip predication for loop exit block, use build2_loc
31897         to compute predicate for true edge.
31898         (find_phi_replacement_condition): Delete this function.
31899         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
31900         Allow interchange PHI arguments if EXTENDED is false.
31901         Change check that block containing reduction statement candidate
31902         is predecessor of phi-block since phi may have more than two arguments.
31903         (phi_args_hash_traits): New helper structure.
31904         (struct phi_args_hash_traits): New type.
31905         (phi_args_hash_traits::hash): New function.
31906         (phi_args_hash_traits::equal_keys): New function.
31907         (gen_phi_arg_condition): New function.
31908         (predicate_scalar_phi): Add handling of phi nodes with more than two
31909         arguments, delete COND and TRUE_BB arguments, insert body of
31910         find_phi_replacement_condition to predicate ordinary phi nodes.
31911         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
31912         delete call of find_phi_replacement_condition and invoke
31913         predicate_scalar_phi with two arguments.
31914         (insert_gimplified_predicates): Add assert that non-predicated block
31915         don't have statements to insert.
31916         (ifcvt_split_critical_edges): New function.
31917         (ifcvt_split_def_stmt): Likewise.
31918         (ifcvt_walk_pattern_tree): Likewise.
31919         (stmt_is_root_of_bool_pattern): Likewise.
31920         (ifcvt_repair_bool_pattern): Likewise.
31921         (ifcvt_local_dce): Likewise.
31922         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
31923         is copy of inner or outer loop force_vectorize field, invoke
31924         ifcvt_split_critical_edges, ifcvt_local_dce and
31925         ifcvt_repair_bool_pattern for aggressive if-conversion.
31926
31927 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
31928
31929         * config/aarch64/aarch64.md: Include xgene1.md.
31930         * config/aarch64/xgene1.md: New file.
31931
31932 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
31933
31934         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
31935         xgene1 (APM XGene-1) core definition.
31936         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
31937         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
31938         * doc/invoke.texi: Document -mcpu=xgene1.
31939
31940 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31941
31942         * dojump.h: New header file.
31943         * explow.h: Likewise.
31944         * expr.h: Remove includes.
31945         Move expmed.c prototypes to expmed.h.
31946         Move dojump.c prototypes to dojump.h.
31947         Move alias.c prototypes to alias.h.
31948         Move explow.c prototypes to explow.h.
31949         Move calls.c prototypes to calls.h.
31950         Move emit-rtl.c prototypes to emit-rtl.h.
31951         Move varasm.c prototypes to varasm.h.
31952         Move stmt.c prototypes to stmt.h.
31953         (saved_pending_stack_adjust): Move to dojump.h.
31954         (adjust_address): Move to explow.h.
31955         (adjust_address_nv): Move to emit-rtl.h.
31956         (adjust_bitfield_address): Likewise.
31957         (adjust_bitfield_address_size): Likewise.
31958         (adjust_bitfield_address_nv): Likewise.
31959         (adjust_automodify_address_nv): Likewise.
31960         * explow.c (expr_size): Move to expr.c.
31961         (int_expr_size): Likewise.
31962         (tree_expr_size): Likewise.
31963         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
31964         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
31965         * genemit.c (main): Generate includes statistics.h, real.h,
31966         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
31967         stmt.h.
31968         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
31969         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
31970         explow.h, emit-rtl.h, stmt.h.
31971         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
31972         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
31973         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
31974         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
31975         emit-rtl.h, varasm.h, stmt.h.
31976         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
31977         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
31978         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
31979         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
31980         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
31981         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
31982         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
31983         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
31984         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
31985         tm.h tree.h varasm.h vec.h wide-int.h.
31986         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
31987         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
31988         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
31989         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
31990         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
31991         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
31992         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
31993         * loop-iv.c: Likewise.
31994         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
31995         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
31996         statistics.h stmt.h tree.h varasm.h wide-int.h.
31997         * lra-constraints.c: Likewise.
31998         * lra-eliminations.c: Likewise.
31999         * lra-lives.c: Likewise.
32000         * lra-remat.c: Likewise.
32001         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32002         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
32003         statistics.h stmt.h tree.h varasm.h wide-int.h.
32004         * hw-doloop.c: Likewise.
32005         * ira-color.c: Likewise.
32006         * ira-emit.c: Likewise.
32007         * loop-doloop.c: Likewise.
32008         * loop-invariant.c: Likewise.
32009         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32010         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
32011         statistics.h stmt.h tree.h varasm.h wide-int.h.
32012         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
32013         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
32014         statistics.h stmt.h tree.h varasm.h wide-int.h.
32015         * combine-stack-adj.c: Likewise.
32016         * cse.c: Likewise.
32017         * ddg.c: Likewise.
32018         * ifcvt.c: Likewise.
32019         * ira-costs.c: Likewise.
32020         * jump.c: Likewise.
32021         * lra-coalesce.c: Likewise.
32022         * lra-spills.c: Likewise.
32023         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32024         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
32025         stmt.h varasm.h wide-int.h.
32026         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32027         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
32028         varasm.h.
32029         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
32030         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
32031         statistics.h stmt.h varasm.h wide-int.h.
32032         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
32033         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
32034         varasm.h wide-int.h.
32035         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
32036         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32037         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
32038         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
32039         statistics.h stmt.h.
32040         * config/tilepro/tilepro.c: Likewise.
32041         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
32042         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
32043         * config/pdp11/pdp11.c: Likewise.
32044         * config/xtensa/xtensa.c: Likewise.
32045         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
32046         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
32047         varasm.h.
32048         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32049         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
32050         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
32051         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32052         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
32053         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
32054         * rtl-chkp.c: Likewise.
32055         * tree-chkp-opt.c: Likewise.
32056         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
32057         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
32058         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
32059         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32060         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
32061         statistics.h stmt.h.
32062         * tree-vect-data-refs.c: Likewise.
32063         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
32064         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32065         rtl.h statistics.h stmt.h varasm.h.
32066         * internal-fn.c: Likewise.
32067         * ipa-icf-gimple.c: Likewise.
32068         * lto-section-out.c: Likewise.
32069         * tree-data-ref.c: Likewise.
32070         * tree-nested.c: Likewise.
32071         * tree-outof-ssa.c: Likewise.
32072         * tree-predcom.c: Likewise.
32073         * tree-pretty-print.c: Likewise.
32074         * tree-scalar-evolution.c: Likewise.
32075         * tree-ssa-strlen.c: Likewise.
32076         * tree-vect-loop.c: Likewise.
32077         * tree-vect-patterns.c: Likewise.
32078         * tree-vect-slp.c: Likewise.
32079         * tree-vect-stmts.c: Likewise.
32080         * tsan.c: Likewise.
32081         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32082         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
32083         stmt.h.
32084         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
32085         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32086         statistics.h stmt.h varasm.h.
32087         * loop-unroll.c: Likewise.
32088         * ubsan.c: Likewise.
32089         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
32090         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
32091         stmt.h varasm.h.
32092         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32093         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
32094         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
32095         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
32096         statistics.h stmt.h.
32097         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
32098         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
32099         statistics.h stmt.h varasm.h.
32100         * gimple-match-head.c: Likewise.
32101         * lto-cgraph.c: Likewise.
32102         * lto-section-in.c: Likewise.
32103         * lto-streamer-in.c: Likewise.
32104         * lto-streamer-out.c: Likewise.
32105         * tree-affine.c: Likewise.
32106         * tree-cfg.c: Likewise.
32107         * tree-cfgcleanup.c: Likewise.
32108         * tree-if-conv.c: Likewise.
32109         * tree-into-ssa.c: Likewise.
32110         * tree-ssa-alias.c: Likewise.
32111         * tree-ssa-copyrename.c: Likewise.
32112         * tree-ssa-dse.c: Likewise.
32113         * tree-ssa-forwprop.c: Likewise.
32114         * tree-ssa-live.c: Likewise.
32115         * tree-ssa-math-opts.c: Likewise.
32116         * tree-ssa-pre.c: Likewise.
32117         * tree-ssa-sccvn.c: Likewise.
32118         * tree-tailcall.c: Likewise.
32119         * tree-vect-generic.c: Likewise.
32120         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32121         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
32122         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32123         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
32124         * varasm.c: Likewise.
32125         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32126         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
32127         varasm.h.
32128         * init-regs.c: Likewise.
32129         * ira.c: Likewise.
32130         * omp-low.c: Likewise.
32131         * stack-ptr-mod.c: Likewise.
32132         * tree-ssa-reassoc.c: Likewise.
32133         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32134         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
32135         varasm.h.
32136         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32137         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
32138         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32139         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
32140         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32141         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
32142         * tree-ssa-phiopt.c: Likewise.
32143         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32144         fixed-value.h hashtab.h real.h statistics.h stmt.h.
32145         * config/fr30/fr30.c: Likewise.
32146         * config/frv/frv.c: Likewise.
32147         * expr.c: Likewise.
32148         * final.c: Likewise.
32149         * optabs.c: Likewise.
32150         * passes.c: Likewise.
32151         * simplify-rtx.c: Likewise.
32152         * stmt.c: Likewise.
32153         * toplev.c: Likewise.
32154         * var-tracking.c: Likewise.
32155         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32156         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32157         * lower-subreg.c: Likewise.
32158         * postreload-gcse.c: Likewise.
32159         * ree.c: Likewise.
32160         * reginfo.c: Likewise.
32161         * store-motion.c: Likewise.
32162         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32163         fixed-value.h hashtab.h real.h stmt.h varasm.h.
32164         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32165         fixed-value.h hashtab.h statistics.h stmt.h.
32166         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32167         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
32168         * except.c: Likewise.
32169         * explow.c: Likewise.
32170         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32171         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
32172         varasm.h.
32173         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32174         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
32175         * tree-ssa-structalias.c: Likewise.
32176         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32177         fixed-value.h insn-config.h real.h statistics.h.
32178         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32179         fixed-value.h insn-config.h real.h statistics.h stmt.h.
32180         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32181         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
32182         * cfgbuild.c: Likewise.
32183         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32184         fixed-value.h real.h rtl.h statistics.h stmt.h.
32185         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32186         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32187         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32188         fixed-value.h real.h statistics.h stmt.h.
32189         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32190         fixed-value.h real.h statistics.h stmt.h varasm.h.
32191         * cprop.c: Likewise.
32192         * modulo-sched.c: Likewise.
32193         * postreload.c: Likewise.
32194         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
32195         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
32196         statistics.h stmt.h varasm.h.
32197         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
32198         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32199         rtl.h statistics.h stmt.h varasm.h.
32200         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
32201         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
32202         varasm.h.
32203         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
32204         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
32205         varasm.h.
32206         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
32207         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
32208         varasm.h.
32209         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
32210         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32211         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32212         function.h real.h statistics.h stmt.h varasm.h.
32213         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32214         insn-config.h real.h statistics.h stmt.h.
32215         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32216         statistics.h stmt.h.
32217         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
32218         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
32219         statistics.h stmt.h varasm.h.
32220         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
32221         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
32222         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32223         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
32224         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
32225         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
32226         statistics.h stmt.h varasm.h.
32227         * ipa-polymorphic-call.c: Likewise.
32228         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
32229         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32230         statistics.h stmt.h.
32231         * config/c6x/c6x.c: Likewise.
32232         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
32233         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32234         statistics.h stmt.h varasm.h.
32235         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
32236         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
32237         stmt.h varasm.h.
32238         * ipa-split.c: Likewise.
32239         * tree-eh.c: Likewise.
32240         * tree-ssa-dce.c: Likewise.
32241         * tree-ssa-loop-niter.c: Likewise.
32242         * tree-vrp.c: Likewise.
32243         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
32244         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
32245         stmt.h.
32246         * config/nds32/nds32-fp-as-gp.c: Likewise.
32247         * config/nds32/nds32-intrinsic.c: Likewise.
32248         * config/nds32/nds32-isr.c: Likewise.
32249         * config/nds32/nds32-md-auxiliary.c: Likewise.
32250         * config/nds32/nds32-memory-manipulation.c: Likewise.
32251         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
32252         * config/nds32/nds32-predicates.c: Likewise.
32253         * config/nds32/nds32.c: Likewise.
32254         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
32255         fixed-value.h hashtab.h real.h statistics.h.
32256         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
32257         fixed-value.h hashtab.h real.h statistics.h stmt.h.
32258         * config/arm/arm.c: Likewise.
32259         * config/avr/avr.c: Likewise.
32260         * config/bfin/bfin.c: Likewise.
32261         * config/h8300/h8300.c: Likewise.
32262         * config/i386/i386.c: Likewise.
32263         * config/ia64/ia64.c: Likewise.
32264         * config/iq2000/iq2000.c: Likewise.
32265         * config/m32c/m32c.c: Likewise.
32266         * config/m32r/m32r.c: Likewise.
32267         * config/m68k/m68k.c: Likewise.
32268         * config/mcore/mcore.c: Likewise.
32269         * config/mep/mep.c: Likewise.
32270         * config/mips/mips.c: Likewise.
32271         * config/mn10300/mn10300.c: Likewise.
32272         * config/moxie/moxie.c: Likewise.
32273         * config/pa/pa.c: Likewise.
32274         * config/rl78/rl78.c: Likewise.
32275         * config/rx/rx.c: Likewise.
32276         * config/s390/s390.c: Likewise.
32277         * config/sh/sh.c: Likewise.
32278         * config/sparc/sparc.c: Likewise.
32279         * config/spu/spu.c: Likewise.
32280         * config/stormy16/stormy16.c: Likewise.
32281         * config/v850/v850.c: Likewise.
32282         * config/vax/vax.c: Likewise.
32283         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
32284         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32285         * config/msp430/msp430.c: Likewise.
32286         * predict.c: Likewise.
32287         * value-prof.c: Likewise.
32288         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
32289         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
32290         * config/microblaze/microblaze.c: Likewise.
32291         * config/nios2/nios2.c: Likewise.
32292         * config/rs6000/rs6000.c: Likewise.
32293         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32294         insn-config.h real.h rtl.h statistics.h stmt.h.
32295         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32296         insn-config.h real.h statistics.h stmt.h.
32297         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
32298         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
32299         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
32300         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32301         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
32302         fixed-value.h real.h statistics.h stmt.h.
32303         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
32304         fixed-value.h statistics.h stmt.h.
32305         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
32306         stmt.h.
32307
32308 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
32309
32310         * gengtype.c (create_user_defined_type): Workaround
32311         -Wmaybe-uninitialized false positives.
32312         * cse.c (fold_rtx): Likewise.
32313         * loop-invariant.c (gain_for_invariant): Likewise.
32314
32315 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
32316
32317         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
32318         set the memory attributes in all cases but clear MEM_EXPR if need be.
32319
32320 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
32321
32322         PR tree-optimization/64434
32323         * cfgexpand.c (reorder_operands): New function.
32324         (expand_gimple_basic_block): Insert call of reorder_operands if
32325         optimized is true.
32326
32327 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
32328
32329         * config/mips/micromips.md (*swp): Remove explicit parallel.
32330         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
32331         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
32332         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
32333         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
32334         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
32335         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
32336         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
32337         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
32338         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
32339         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
32340         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
32341         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
32342         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
32343         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
32344         (mips_wrdsp): Likewise.
32345         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
32346         parallel.
32347         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
32348         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
32349         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
32350         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
32351         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
32352         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
32353         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
32354         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
32355         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
32356
32357 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32358
32359         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
32360         (mips_print_operand): Support 'y' to print exact log2 in decimal
32361         of a const_int.
32362         * config/mips/mips.h (ISA_HAS_LSA): New define.
32363         (ISA_HAS_DLSA): Likewise.
32364         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
32365         * config/mips/predicates.md (const_immlsa_operand): New predicate.
32366
32367 2015-01-15  Martin Liska  <mliska@suse.cz>
32368
32369         PR target/64377
32370         * optc-save-gen.awk: Add support for array types.
32371
32372 2015-01-15  Richard Biener  <rguenther@suse.de>
32373
32374         PR middle-end/64365
32375         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
32376         for MEM_REF access functions with the same base can never partially
32377         overlap.
32378
32379 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
32380
32381         * common.opt: New option -fstack-protector-explicit.
32382         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
32383         (stack_protect_decl_phase): Handle stack_protect attribute for
32384         explicit stack protection requests.
32385         (expand_used_vars): Similarly.
32386         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
32387         * doc/extend.texi: Add documentation for "stack_protect" attribute.
32388         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
32389
32390 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
32391
32392         PR target/53988
32393         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
32394         reg-reg copies.
32395         (sh_extending_set_of_reg): New struct.
32396         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
32397         sh_remove_reg_dead_or_unused_notes): New Declarations.
32398         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
32399         sh_find_extending_set_of_reg, sh_split_tst_subregs,
32400         sh_extending_set_of_reg::use_as_extended_reg): New functions.
32401         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
32402         convert to insn_and_split and use new function sh_split_tst_subregs.
32403
32404 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
32405
32406         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
32407         option.
32408         (Optimization Options): Move -fuse-ld documentation to...
32409         (Link Options): ...here.
32410
32411 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32412
32413         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
32414         offsets.
32415         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
32416         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
32417         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
32418         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
32419         instead of ZR for the memory operand of LL/SC.
32420         (compare_and_swap_12, sync_add<mode>): Likewise.
32421         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
32422         (sync_new_<optab>_12, sync_nand_12): Likewise.
32423         (sync_old_nand_12, sync_new_nand_12): Likewise.
32424         (sync_sub<mode>, sync_old_add<mode>): Likewise.
32425         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
32426         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
32427         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
32428         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
32429         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
32430         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
32431         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
32432         * doc/md.texi (ZC): Update description.
32433
32434 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
32435
32436         * builtins.c (expand_builtin_atomic_exchange): Remove error when
32437         memory model is CONSUME.
32438         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
32439         expand_builtin_atomic_store): Change invalid memory model errors to
32440         warnings.
32441         (expand_builtin_atomic_clear): Change invalid model errors to warnings
32442         and issue warning for CONSUME.
32443
32444 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
32445
32446         * lto-cgraph: Update function comments for
32447         lto_symtab_encoder_encode_*.
32448
32449 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
32450
32451         * Makefile.in (site.exp): Do not set ENABLE_LTO.
32452
32453 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
32454
32455         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
32456         * lto-cgraph.c (select_what_to_stream): Remove argument, use
32457         lto_stream_offload_p instead.
32458         * lto-streamer.h (select_what_to_stream): Remove argument.
32459         * passes.c (ipa_write_summaries): Likewise.
32460         * tree-pass.h (ipa_write_summaries): Likewise.
32461
32462 2015-01-14  Richard Biener  <rguenther@suse.de>
32463
32464         PR tree-optimization/59354
32465         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
32466         groups larger than the slp group size as having gaps.
32467
32468 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
32469
32470         PR middle-end/59448
32471         * builtins.c (get_memmodel): Promote consume to acquire always.
32472
32473 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
32474
32475         PR target/64386
32476         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
32477         V32HImode.
32478
32479 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
32480
32481         PR target/64393
32482         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
32483         Enable AVX512BW.
32484         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
32485         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
32486         AVX512VBMI, as it implies AVX512BW.
32487
32488 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
32489
32490         PR target/64387
32491         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
32492         (vec_unpacks_hi_v16sf): Ditto.
32493
32494 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32495
32496         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
32497         is not available.
32498
32499 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32500
32501         * doc/invoke.texi (mapcs): Mention deprecation.
32502         (mapcs-frame): Likewise.
32503
32504 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32505
32506         PR target/64453
32507         * config/arm/arm.c (callee_saved_reg_p): Define.
32508         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
32509         register is callee saved instead of !call_used_regs[reg].
32510         (thumb1_compute_save_reg_mask): Likewise.
32511
32512 2015-01-14  Hale Wang  <hale.wang@arm.com>
32513
32514         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
32515         Cortex-M7.
32516
32517 2015-01-14  Richard Biener  <rguenther@suse.de>
32518
32519         PR lto/64415
32520         * tree-inline.c (insert_debug_decl_map): Check destination
32521         function MAY_HAVE_DEBUG_STMTS.
32522         (insert_init_debug_bind): Likewise.
32523         (insert_init_stmt): Remove redundant check.
32524         (remap_gimple_stmt): Drop debug stmts if the destination
32525         function has var-tracking assignments disabled.
32526
32527 2015-01-14  Martin Liska  <mliska@suse.cz>
32528
32529         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
32530         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
32531
32532 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32533
32534         PR target/64460
32535         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
32536         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
32537
32538 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32539
32540         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
32541         level from an ARCH; do not inject the default.
32542         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
32543         MIPS_ISA_LEVEL_SPEC.
32544         (MIPS_ISA_NAN2008_SPEC): Update comment.
32545         (BASE_DRIVER_SELF_SPECS): Likewise.
32546         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
32547         MIPS_DEFAULT_ISA_LEVEL_SPEC.
32548         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
32549         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
32550         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
32551
32552 2015-01-14  Richard Biener  <rguenther@suse.de>
32553
32554         PR tree-optimization/64493
32555         PR tree-optimization/64495
32556         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
32557         assign the proper vectorized PHI to the inner loop exit PHIs.
32558
32559 2015-01-14  Joey Ye  <joey.ye@arm.com>
32560
32561         * config/arm/arm.c (arm_compute_save_reg_mask):
32562         Do not save lr in case of tail call.
32563         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
32564
32565 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
32566
32567         * tree-vrp.c (check_array_ref): Emit more warnings
32568         for warn_array_bounds >= 2.
32569         * common.opt: New option -Warray-bounds=.
32570         * doc/invoke.texi: Document -Warray-bounds=.
32571
32572 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
32573
32574         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
32575         (mforbid-fp-as-gp): Remove.
32576         (mex9): Remove.
32577         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
32578         (nds32_symbol_load_store_p): Remove.
32579         (nds32_fp_as_gp_check_available): Clean up implementation.
32580         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
32581         cases.
32582         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
32583         fp-as-gp and ex9 cases.
32584
32585 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
32586
32587         * tree-profile.c (init_ic_make_global_vars): Drop workaround
32588         for bintuils bug 14342.
32589         (init_ic_make_global_vars): Likewise.
32590         (gimple_init_edge_profiler): Likewise.
32591         (gimple_gen_ic_func_profiler): Likewise.
32592
32593 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
32594
32595         * ipa-inline.c (inline_small_functions): Swap the operands in
32596         enum.
32597
32598 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
32599
32600         PR ipa/64481
32601         * ipa-inline-analysis.c (node_growth_cache): Remove.
32602         (initialize_growth_caches): Do not initialize it.
32603         (free_growth_caches): Do not free it.
32604         (do_estimate_growth): Rename to ...
32605         (estimate_growth): ... this one; drop growth cache code.
32606         (growth_likely_positive): Always go the heuristics way.
32607         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
32608         (reset_edge_caches): Do not reset node growth.
32609         (heap_edge_removal_hook): Do not maintain cache.
32610         (inline_small_functions): Likewise; strenghten sanity check.
32611         (ipa_inline): Do not maintain caches.
32612         * ipa-inline.h (node_growth_cache): Remove.
32613         (do_estimate_growth): Remove to ...
32614         (estimate_growth): this one; remove inline version.
32615         (reset_node_growth_cache): Remove.
32616
32617 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
32618
32619         PR ipa/64565
32620         * ipa-inline.c (inline_small_functions): Update callee keys after
32621         resolving speculation
32622         (inline_small_functions): Always check monotonicity of the queue.
32623
32624 2015-01-13  Marek Polacek  <polacek@redhat.com>
32625
32626         PR middle-end/64391
32627         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
32628
32629 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
32630
32631         PR rtl-optimization/64286
32632         * ree.c (combine_reaching_defs): Move part of comment earlier,
32633         remove !SCALAR_INT_MODE_P check.
32634         (add_removable_extension): Don't add vector mode
32635         extensions if all uses of the source register aren't the same
32636         vector extensions.
32637
32638 2015-01-13  Renlin Li  <renlin.li@arm.com>
32639
32640         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
32641         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
32642
32643 2015-01-13  Martin Liska  <mliska@suse.cz>
32644
32645         * ipa-icf.c (sem_function::equals_private): Call new functions
32646         cl_target_option_print_diff and cl_optimization_print_diff.
32647         * optc-save-gen.awk (cl_target_option_print_diff): New function.
32648         (cl_optimization_print_diff): Likewise.
32649         * opth-gen.awk: Likewise.
32650
32651 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
32652
32653         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
32654         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
32655         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
32656         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
32657         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
32658         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
32659
32660 2015-01-13  Andrew Pinski  <apinski@cavium.com>
32661
32662         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
32663         instead of src mode.
32664
32665 2015-01-13  Richard Biener  <rguenther@suse.de>
32666
32667         PR lto/64373
32668         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
32669         DECL_CONTEXT.
32670
32671 2015-01-13  Andrew Pinski  <apinski@cavium.com>
32672
32673         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
32674         volatile mems.
32675         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
32676
32677 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
32678
32679         PR middle-end/63974
32680         * cfgexpand.c (expand_computed_goto): Don't call
32681         convert_memory_address here.
32682
32683 2015-01-13  Richard Biener  <rguenther@suse.de>
32684
32685         PR tree-optimization/64406
32686         * tree-loop-distibution.c (pass_loop_distribution::execute):
32687         Reset the SCEV hashtable if we distributed anything.
32688
32689 2015-01-13  Richard Biener  <rguenther@suse.de>
32690
32691         PR tree-optimization/64404
32692         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
32693         SLP types for CSEd loads.
32694
32695 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32696
32697         PR tree-optimization/64436
32698         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
32699         merge of two symbolic numbers for a bitwise OR to ...
32700         (perform_symbolic_merge): This. Also fix computation of the range and
32701         end of the symbolic number corresponding to the result of a bitwise OR.
32702
32703 2015-01-13  Richard Biener  <rguenther@suse.de>
32704
32705         PR tree-optimization/64568
32706         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
32707         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
32708
32709 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
32710
32711         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
32712         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
32713
32714 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
32715
32716         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
32717         target-specific symbol_ref flag.
32718         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
32719         resides in rodata section.
32720         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
32721         (nds32_encode_section_info): New function.
32722
32723 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
32724
32725         * config/nds32/nds32.md (call): Use pseudo instruction bal which
32726         clobbers TA_REGNUM if large code model is specified.
32727         (call_register): Likewise.
32728         (call_immediate): Likewise.
32729         (call_value): Likewise.
32730         (call_value_register): Likewise.
32731         (call_value_immediate): Likewise.
32732
32733 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
32734
32735         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
32736         (TARGET_CMODEL_MEDIUM): New macro.
32737         (TARGET_CMODEL_LARGE): New macro.
32738         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
32739         code model setting in assembly code.
32740
32741 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
32742
32743         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
32744         Remove MASK_GP_DIRECT flag.
32745         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
32746         one of the multilib default options.
32747         * config/nds32/nds32.opt (mgp-direct): Remove.
32748         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
32749         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
32750
32751 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
32752
32753         * config/nds32/nds32.opt (mcmodel): Add new option.
32754         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
32755         to describe code model.
32756
32757 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
32758
32759         PR target/64479
32760         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
32761
32762 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
32763
32764         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
32765         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
32766         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
32767         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
32768         __builtin_sh_set_fpscr.
32769
32770 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
32771
32772         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
32773         after a funtion name just to indicate it is a function.
32774         ([-fsanitize-undefined-trap-on-error]): Likewise.
32775         ([-fdbg-cnt=]): Likewise.
32776         ([-mmemcpy]): Likewise.
32777         ([-mflush-func]): Likewise.
32778         ([-msynci]): Likewise.
32779
32780 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
32781
32782         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
32783         example.
32784
32785 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
32786
32787         PR tree-optimization/64563
32788         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
32789         instead of != VR_VARYING.
32790
32791         PR target/64513
32792         * config/i386/i386.c (ix86_expand_prologue): Add
32793         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
32794
32795         PR tree-optimization/64454
32796         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
32797         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
32798         for signed or [0, op1 - 1] for unsigned modulo.
32799         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
32800         even if op1 does not satisfy integer_pow2p.
32801
32802         PR other/64370
32803         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
32804
32805 2015-01-12  Jeff Law  <law@redhat.com>
32806
32807         PR target/64461
32808         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
32809         (trunchiqi2, truncsihi2): Similarly.
32810
32811         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
32812         rather than calling F.
32813
32814 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32815
32816         * tsan.c (instrument_expr): Use force_gimple_operand.
32817         Use may_be_nonaddressable_p instead of is_gimple_addressable.
32818
32819 2015-01-12  Richard Biener  <rguenther@suse.de>
32820
32821         PR tree-optimization/64530
32822         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
32823         back dr1.
32824
32825 2015-01-12  Richard Biener  <rguenther@suse.de>
32826
32827         PR middle-end/64357
32828         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
32829         latches properly.
32830
32831 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32832
32833         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
32834         Cortex-A17 tuning parameters.
32835         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
32836
32837 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32838
32839         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
32840         * config/arm/arm.c (arm_macro_fusion_p): New function.
32841         (arm_macro_fusion_pair_p): Likewise.
32842         (TARGET_SCHED_MACRO_FUSION_P): Define.
32843         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
32844         (ARM_FUSE_NOTHING): Likewise.
32845         (ARM_FUSE_MOVW_MOVT): Likewise.
32846         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
32847         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
32848         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
32849         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
32850         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
32851         arm_cortex_a5_tune): Specify fuseable_ops value.
32852
32853 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
32854
32855         PR bootstrap/64561
32856         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
32857         test for PIE with copy reloc.
32858         * configure: Regenerated.
32859
32860 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32861
32862         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
32863         in gen_rtx_REG.
32864         (arm_tls_descseq_addr): Likewise.
32865         (arm_gen_movmemqi): Likewise.
32866         (arm_expand_epilogue_apcs_frame): Likewise.
32867         (arm_expand_epilogue): Likewise.
32868         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
32869         in gen_rtx_REG.
32870
32871 2015-01-12  Martin Liska  <mliska@suse.cz>
32872
32873         PR ipa/64550
32874         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
32875         volatility for correct operands.
32876
32877 2015-01-12  Martin Liska  <mliska@suse.cz>
32878
32879         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
32880         indication that a function is not leaf.
32881         (sem_function::compare_polymorphic_p): Likewise.
32882
32883 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32884
32885         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
32886         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
32887         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
32888         fold-const.h, tree-check.h.
32889
32890 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
32891
32892         PR ipa/63967
32893         PR ipa/64425
32894         * ipa-inline.c (compute_uninlined_call_time,
32895         compute_inlined_call_time): Use counts for extra precision when
32896         needed possible.
32897         (big_speedup_p): Fix formating.
32898         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
32899         (relative_time_benefit): Remove.
32900         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
32901         merge guessed and read profile paths.
32902         (inline_small_functions): Count only !optimize_size functions into
32903         initial size; be more lax about sanity check when profile is used;
32904         be sure to update inlined function profile when profile is read.
32905
32906 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
32907
32908         PR ipa/63470
32909         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
32910         cost when edge becomes direct.
32911         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
32912         is resolved or when introducing new speculation.
32913
32914 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
32915
32916         PR ipa/64551
32917         PR ipa/64552
32918         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
32919         '||' to fix typo issue.
32920
32921         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
32922         accept and return NULL.
32923
32924 2015-01-12  Martin Liska  <mliska@suse.cz>
32925
32926         * cgraph.c (cgraph_edge::remove_callee): Move function to header
32927         file for being inlined.
32928         (cgraph_set_edge_callee): Delete.
32929         (cgraph_edge::redirect_callee): Move function to header file
32930         for being inlined.
32931         (cgraph_edge::make_direct): Use new function.
32932         (cgraph_edge::dump_edge_flags): New function created from
32933         static dump_edge_flags function.
32934         (cgraph_node::dump): Use new function.
32935         (cgraph_edge::verify_count_and_frequency): New function created
32936         from verify_edge_count_and_frequency.
32937         (cgraph_edge::verify_corresponds_to_fndecl): New function created
32938         from verify_edge_corresponds_to_fndecl.
32939         (verify_edge_corresponds_to_fndecl): Delete.
32940         (cgraph_node::verify_node): Use new function.
32941         * cgraph.h (cgraph_edge::set_callee): New function.
32942         (cgraph_edge::dump_edge_flags): Likewise.
32943         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
32944
32945 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
32946
32947         * ipa-utils.c (estimate_function_body_sizes): Do not
32948         free node params when called late with early=true.
32949
32950 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
32951
32952         * doc/md.texi (Instruction Patterns): Rewrite text for
32953         clarity.
32954         (Example): Likewise.
32955
32956 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
32957
32958         * doc/invoke.texi (Option Summary): Break long lines.
32959         [(-fdiagnostics-color)]: Put long literal in @smallexample
32960         instead of inline.
32961         [(-fsanitize-recover)]: Likewise.
32962         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
32963         [(-ffast-math)]: Likewise.
32964         [(--param max-inline-insns-recursive)]: Likewise.
32965         [(--param max-inline-recursive-depth)]: Likewise.
32966         [(-mno-text-section-literals)]: Likewise.
32967
32968 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
32969
32970         * doc/install.texi: Update for libgomp being renamed from "GNU
32971         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
32972         Runtime Library".
32973         * doc/sourcebuild.texi: Likewise.
32974
32975 2015-01-10  Anthony Green  <green@moxielogic.com>
32976
32977         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
32978         mul.x availability for moxiebox configuration.
32979
32980 2015-01-09  Anthony Green  <green@moxielogic.com>
32981
32982         * config/moxie/moxie.md: Tabify assembly output.
32983
32984 2015-01-09  Anthony Green  <green@moxielogic.com>
32985
32986         * config/moxie/moxie.md (CC_REG): Correct register definition.
32987
32988 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
32989
32990         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
32991         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
32992         of log files.
32993
32994 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
32995
32996         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
32997
32998 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
32999             Jakub Jelinek  <jakub@redhat.com>
33000
33001         PR middle-end/64412
33002         * lto-streamer.h (lto_stream_offload_p): New declaration.
33003         * lto-streamer.c (lto_stream_offload_p): New variable.
33004         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
33005         at the same time as section_name_prefix.
33006         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
33007         if lto_stream_offload_p.
33008         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
33009         stream TREE_TARGET_OPTION if lto_stream_offload_p.
33010         (write_ts_function_decl_tree_pointers): Don't
33011         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
33012         * tree-streamer-in.c (unpack_value_fields): Don't stream
33013         TREE_TARGET_OPTION in if ACCEL_COMPILER.
33014         (lto_input_ts_function_decl_tree_pointers): Don't stream
33015         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
33016         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
33017         instead of section_name_prefix string comparisons.
33018
33019 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
33020
33021         PR rtl-optimization/64536
33022         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
33023         tablejumps.
33024
33025 2015-01-09  Michael Collison  <michael.collison@linaro.org>
33026
33027         PR tree-optimization/64322
33028         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
33029         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
33030
33031 2015-01-09  Tom de Vries  <tom@codesourcery.com>
33032
33033         PR rtl-optimization/64539
33034         * regcprop.c (kill_clobbered_values): Factor out of ...
33035         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
33036         instead of note_stores with kill_clobbered_value.
33037
33038 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33039
33040          * ginclude/unwind-arm-common.h: Revert previous commit.
33041
33042 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33043
33044         * config.gcc (arm*-*-freebsd*): New configuration.
33045         * config/arm/freebsd.h: New file.
33046         * config.host: Add extra components for arm*-*-freebsd*.
33047         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
33048         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
33049
33050 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33051
33052         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
33053         for -mcpu=e6500.
33054         * config/rs6000/t-rtems: Add e6500 multilibs.
33055
33056 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33057
33058         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
33059         MPC8540.
33060
33061 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33062
33063         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
33064         MULTILIB_EXCEPTIONS.
33065
33066 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33067
33068         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
33069         MULTILIB_EXCEPTIONS.
33070
33071 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33072
33073         * config/arm/t-rtems-eabi: Rename to...
33074         * config/arm/t-rtems: ...this.
33075         * config/arm/rtems-eabi.h: Rename to...
33076         * config/arm/rtems.h: ...this.
33077         * config.gcc (arm*-*-rtems*): Reflect changes above.
33078
33079 2015-01-09  Richard Biener  <rguenther@suse.de>
33080
33081         PR tree-optimization/64410
33082         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
33083         on the LHS.
33084         (execute_update_addresses_taken): Deal with that.
33085         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
33086         loads/stores for complex variables.
33087
33088 2015-01-09  Martin Liska  <mliska@suse.cz>
33089
33090         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
33091         name comparison.
33092         (func_checker::compare_memory_operand): New function.
33093         (func_checker::compare_operand): Split case to newly
33094         added functions.
33095         (func_checker::compare_cst_or_decl): New function.
33096         (func_checker::compare_gimple_call): Identify
33097         memory operands.
33098         (func_checker::compare_gimple_assign): Likewise.
33099         * ipa-icf-gimple.h: New function.
33100
33101 2015-01-09  Martin Liska  <mliska@suse.cz>
33102
33103         PR ipa/64503
33104         * sreal.c (sreal::dump): Change unsigned format to signed for
33105         m_exp value.
33106         (sreal::to_double): Replace exp2 with scalbln.
33107
33108 2015-01-09  Martin Liska  <mliska@suse.cz>
33109
33110         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
33111         * ipa-icf.c (sem_function::equals_private): Add support for target and
33112         (sem_item_optimizer::merge_classes): Remove redundant function
33113         optimization flags comparison.
33114         * tree.h (target_opts_for_fn): New function.
33115
33116 2015-01-09  Tom de Vries  <tom@codesourcery.com>
33117
33118         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
33119
33120 2015-01-09  Kito Cheng  <kito@0xlab.org>
33121
33122         PR rtl-optimization/64348
33123         * lra-constraints.c (split_reg): Fix caller-save store/restore
33124         instruction generation.
33125
33126 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
33127
33128         PR gcov-profile/61790
33129         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
33130         long long.  Fallback to int64_t if host doesn't have long long and
33131         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
33132
33133 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33134
33135         PR tree-optimization/63989
33136         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
33137         from 1000 to 10000.
33138         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
33139         (get_stridx): If we don't have a record for certain SSA_NAME,
33140         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
33141         constant offset, call get_stridx_plus_constant.
33142         (get_stridx_plus_constant): New function.
33143         (zero_length_string): Don't use get_stridx here.
33144
33145         PR target/55023
33146         PR middle-end/64388
33147         * dse.c (struct insn_info): Mention frame_read set also
33148         before reload for tail calls on some targets.
33149         (scan_insn): Revert 2014-12-22 change.  Set frame_read
33150         also before reload for tail calls if
33151         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
33152         instead of add_non_frame_wild_read for non-const/memset
33153         tail calls after reload.
33154
33155 2015-01-08  Jason Merrill  <jason@redhat.com>
33156
33157         * ubsan.c (do_ubsan_in_current_function): New.
33158         (pass_ubsan::gate): Use it.
33159         * ubsan.h: Declare it.
33160         * convert.c (convert_to_integer): Use it.
33161
33162 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33163
33164         PR target/64338
33165         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
33166         compare_code when it is unconditionally overwritten afterwards.
33167         Use ix86_reverse_condition instead of reverse_condition.  Don't
33168         change code if *reverse_condition* returned UNKNOWN and don't
33169         swap ct/cf and negate diff in that case.
33170
33171 2015-01-08  Mike Stump  <mikestump@comcast.net>
33172
33173         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
33174         (pass_tsan_O0::gate): Likewise.
33175         * extend.texi (Function Attributes): Add no_sanitize_thread
33176         documentation.
33177
33178 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
33179
33180         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
33181         for registering builtins.
33182         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
33183         add -fopenmp to the argv_obstack used when invoking
33184         compile_for_target.
33185
33186         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
33187         add "-m32" or "-m64" to argv_obstack.
33188         (generate_host_descr_file): Likewise, when invoking host_compiler.
33189         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
33190         ld.
33191
33192 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
33193
33194         * config/sh/sh-mem.cc: Use constant as second operand when emitting
33195         tstsi_t insns.
33196
33197 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
33198
33199         PR target/55212
33200         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
33201         constant load if constant operand fits into I08.
33202
33203 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33204
33205         PR sanitizer/64336
33206         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
33207         and TREE_THIS_VOLATILE for MEM_REFs.
33208         (build5_stat): Fix up initialization of TREE_READONLY and
33209         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
33210
33211 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
33212
33213         PR target/64533
33214         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
33215         of r for the second alternative of the destination operand.
33216
33217 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
33218
33219         PR target/36557
33220         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
33221
33222 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
33223
33224         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
33225         keywords.
33226         ([-fivar-visibility], [-fvisibility]): Likewise.
33227
33228 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
33229
33230         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
33231         the file where @code, @command, etc is more appropriate.
33232
33233 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
33234
33235         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
33236         of -mrecip= documentation.
33237
33238 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
33239
33240         PR target/64505
33241         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
33242         correct reload handler if -m32 -mpowerpc64 is used.
33243
33244 2015-01-06  Tom de Vries  <tom@codesourcery.com>
33245
33246         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
33247
33248 2015-01-08  Christian Bruel  <christian.bruel@st.com>
33249
33250         PR target/64507
33251         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
33252
33253 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33254
33255         PR tree-optimization/63259
33256         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
33257         if optab exists for 16bit byteswap.
33258
33259 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
33260
33261         * opts.c (common_handle_option): Add support for
33262         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
33263         * doc/invoke.texi: Document -fno-sanitize=all,
33264         -f{,no-}sanitize-recover=all.  Document that
33265         -fsanitize=float-cast-overflow is not enabled
33266         by -fsanitize=undefined.  Fix up documentation
33267         of -f{,no-}sanitize-recover.
33268
33269 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
33270
33271         * config.gcc: Add Visium support.
33272         * configure.ac: Likewise.
33273         * configure: Regenerate.
33274         * doc/extend.texi (interrupt attribute): Add Visium.
33275         * doc/invoke.texi: Document Visium options.
33276         * doc/install.texi: Document Visium target.
33277         * doc/md.texi: Document Visium constraints.
33278         * common/config/visium: New directory.
33279         * config/visium: Likewise.
33280
33281 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
33282
33283         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
33284         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
33285
33286 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
33287
33288         * combine.c (combine_validate_cost): Do not count the cost of a
33289         split I2 twice.  Do not display it twice in the dump, either.
33290
33291 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
33292
33293         Revert parts of r219199.
33294         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
33295         <inttypes.h>.
33296         ([-Wtraditional]): Restore markup on <limits.h>.
33297
33298 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
33299
33300         PR c++/31397
33301         * doc/invoke.texi: Document -Wsuggest-override.
33302
33303 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
33304
33305         PR rtl-optimization/64287
33306         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
33307         (process_options): Disable flag_ipa_ra if profiling.
33308
33309 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
33310
33311         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
33312
33313 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
33314
33315         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
33316         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
33317         put under #if TARGET_LOOPS guard.
33318
33319 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
33320
33321         * config/i386/i386.c (output_387_binary_op): Use std::swap.
33322
33323 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
33324
33325         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
33326         * rtl.h (refers_to_regno_p): Add overload.
33327         * cse.c: Use it.
33328         * bt-load.c: Likewise.
33329         * combine.c: Likewise.
33330         * df-scan.c: Likewise.
33331         * sched-deps.c: Likewise.
33332         * config/s390/s390.c: Likewise.
33333         * config/m32r/m32r.c: Likewise.
33334         * config/rs6000/spe.md: Likewise.
33335         * config/rs6000/rs6000.c: Likewise.
33336         * config/pa/pa.c: Likewise.
33337         * config/stormy16/stormy16.c: Likewise.
33338         * config/cris/cris.c: Likewise.
33339         * config/arc/arc.md: Likewise.
33340         * config/arc/arc.c: Likewise.
33341         * config/sh/sh.md: Likewise.
33342         * config/sh/sh.c: Likewise.
33343         * config/frv/frv.c: Likewise.
33344
33345 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33346
33347         PR sanitizer/64265
33348         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
33349         call as cleanup of the whole body.
33350         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
33351         * tsan.c (replace_func_exit): New function.
33352         (instrument_func_exit): Moved earlier.
33353         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
33354         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
33355         been found.
33356         (tsan_pass): Don't call instrument_func_exit.
33357         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
33358         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
33359         inlining.
33360
33361         PR sanitizer/64344
33362         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
33363         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
33364         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
33365         if the result is integer_zerop, return NULL_TREE.
33366         * convert.c (convert_to_integer): Pass expr as ARG.
33367
33368         PR tree-optimization/64465
33369         * tree-inline.c (redirect_all_calls): During inlining
33370         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
33371         changed the stmt to a non-throwing call.
33372
33373 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
33374
33375         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
33376         etc markup throughout the file.
33377
33378 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33379
33380         Enable experimental TSAN support for Ada.
33381         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
33382
33383 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33384
33385         PR tree-optimization/64494
33386         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
33387         clear SSA_NAME_ANTI_RANGE_P flag.
33388
33389 2015-01-05  Marek Polacek  <polacek@redhat.com>
33390
33391         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
33392
33393 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33394
33395         Update copyright years.
33396
33397         * gcc.c (process_command): Update copyright notice dates.
33398         * gcov-dump.c: Ditto.
33399         * gcov.c: Ditto.
33400         * doc/cpp.texi: Bump @copying's copyright year.
33401         * doc/cppinternals.texi: Ditto.
33402         * doc/gcc.texi: Ditto.
33403         * doc/gccint.texi: Ditto.
33404         * doc/gcov.texi: Ditto.
33405         * doc/install.texi: Ditto.
33406         * doc/invoke.texi: Ditto.
33407
33408         * auto-profile.c, auto-profile.h: Fix up Copyright line.
33409
33410 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
33411
33412         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
33413         verb tense, etc.
33414         ([-fvtable-verify], [-fvtv-debug]): Likewise.
33415         ([-Wabi]): Likewise.
33416         ([-fmessage-length]): Likewise.
33417         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
33418         ([-Wno-discarded-qualifiers]): Likewise.
33419         ([-Wnodiscarded-array-qualifiers]): Likewise.
33420         ([-Wno-virtual-move-assign]): Likewise.
33421         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
33422         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
33423         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
33424         ([-fsanitize-undefined-trap-on-error]): Likewise.
33425         ([-floop-interchange]): Likewise.
33426         ([-ftree-coalesce-inlined-vars]): Likewise.
33427         ([-fvect-cost-model]): Likewise.
33428         ([-flto]): Likewise.
33429         ([--param]): Likewise.
33430         (Spec Files): Likewise.
33431         ([-mstrict-align]): Likewise.
33432         ([-mfix-cortex-a53-835769]): Likewise.
33433         ([-march], [-mtune]): Likewise.
33434         ([-mpic-register]): Likewise.
33435         ([-munaligned-access]): Likewise.
33436         ([-msp8]): Likewise.
33437         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
33438         (AVR Built-in Macros): Likewise.
33439         ([-mpreferred-stack-boundary]): Likewise.
33440         ([-mtune-crtl]): Likewise.
33441         ([-mashf]): Likewise.
33442         ([-mmcu=]): Likewise.
33443         ([-minrt]): Likewise.
33444         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
33445         ([-mupper-regs]): Likewise.
33446         ([-matomic-model]): Likewise.
33447         ([-mdiv]): Likewise.
33448         ([-mzdcbranch]): Likewise.
33449         ([-mdisable-callt]): Likewise.
33450         ([-msoft-float]): Likewise.
33451         ([-m8byte-align]): Likewise.
33452         ([-fstack-reuse]): Likewise.
33453
33454 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33455
33456         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
33457         Fix markup, light copy-editing.
33458         ([-fauto-profile]): Rewrite to fix formatting and content
33459         problems.
33460
33461 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33462
33463         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
33464         Copy-edit description.
33465         ([-fisolate-erroneous-paths-attribute]): Likewise.
33466         * common.opt (fisolate-erroneous-paths-dereference):
33467         Copy-edit description.
33468         (fisolate-erroneous-paths-attribute): Likewise.
33469
33470 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33471
33472         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
33473         tidy grammar.
33474
33475 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33476
33477         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
33478         ([-fvtv-debug]): Likewise.
33479         ([-Wc++-compat]): Likewise.
33480         ([-Wc++11-compat]): Likewise.
33481         ([-Wc++14-compat]): Likewise.
33482         ([-Wno-sized-deallocation]): Likewise.
33483         ([-femit-class-debug-always]): Likewise.
33484         ([-femit-struct-debug-detailed]): Likewise.
33485         ([-fno-keep-inline-dllexport]): Likewise.
33486         ([-fira-algorithm]): Likewise.
33487         ([-fira-region]): Likewise.
33488         ([-flra-remat]): Likewise.
33489         ([-fipa-ra]): Likewise.
33490         ([-fhoist-adjacent-loads]): Likewise.
33491         ([-fisolate-erroneous-paths-dereference]): Likewise.
33492         ([-fisolate-erroneous-paths-attribute]): Likewise.
33493         ([-ftree-switch-conversion]): Likewise.
33494         ([-ftree-tail-merge]): Likewise.
33495         ([-ftree-loop-if-convert]): Likewise.
33496         ([-ftree-loop-if-convert-stores]): Likewise.
33497         ([-ftree-loop-distribution]): Likewise.
33498         ([-ftree-loop-distribute-patterns]): Likewise.
33499         ([-flto-compression-level]): Likewise.
33500         ([-flto-report]): Likewise.
33501         ([-flto-report-wpa]): Likewise.
33502         ([-fuse-linker-plugin]): Likewise.
33503         ([-mfix-cortex-a53-835769]): Likewise.
33504         ([-mno-fix-cortex-a53-835769]): Likewise.
33505         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
33506         explicit listing; add a note to the discussion indicating they
33507         exist.  Reorder table to group similar options.  Add missing
33508         @opindex entries.  Add @need commands throughout the table to
33509         allow it to be split across multiple pages.
33510         ([-m8bit-idiv]): Fix @opindex.
33511         ([-mavx256-split-unaligned-load]): Likewise.
33512         ([-mavx256-split-unaligned-store]): Likewise.
33513         ([-mstack-protector-guard]): Likewise.
33514         ([-mcpu=]): Likewise.
33515         ([-mcpu]): Likewise.
33516         ([-mpointer-size=]): Likewise.
33517
33518 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
33519
33520         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
33521         instead of `m' constraint.  Likewise for unnamed movb comparison
33522         patterns using reg_before_reload_operand predicate.
33523         * config/pa/predicates.md (reg_before_reload_operand): Tighten
33524         predicate to reject register index and LO_SUM DLT memory forms
33525         after reload.
33526
33527 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
33528
33529         * doc/invoke.texi (Option Summary): Fix spelling of
33530         -fdevirtualize-at-ltrans.
33531         ([-fdevirtualize]): Fix markup.
33532         ([-fdevirtualize-speculatively]): Fix typo.
33533         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
33534         implementor-speaky.
33535         * common.opt (fdevirtualize-at-ltrans): Likewise.
33536         * ipa-devirt.c: Fix typos in comments throughout the file.
33537         (ipa_devirt): Fix typos in format strings for dump output.
33538
33539 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
33540
33541         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
33542         discussion of defaults, light copy-editing.
33543
33544 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33545
33546         * tsan.c (instrument_expr): corrected previous checkin.
33547
33548 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33549
33550         Instrument bit field and unaligned accesses for TSAN.
33551         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
33552         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
33553         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
33554         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
33555         unaligned memory regions.
33556
33557 2015-01-01  Anthony Green  <green@moxielogic.com>
33558
33559         * config/moxie/predicates.md (moxie_general_movsrc_operand):
33560         Restrict move source register offsets to 16 bits.
33561 \f
33562 Copyright (C) 2015 Free Software Foundation, Inc.
33563
33564 Copying and distribution of this file, with or without modification,
33565 are permitted in any medium without royalty provided the copyright
33566 notice and this notice are preserved.