233763c332926ff9e44e0d513ba2e1f37be8ab80
[platform/upstream/linaro-gcc.git] / gcc / ChangeLog
1 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
2
3         PR rtl-optimization/66237
4         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
5         location of an "as_a" cast.
6
7 2015-05-22  Jeff Law  <law@redhat.com>
8
9         * config/pa/pa.md (non-canonical shift-add insns): Remove.
10         (peepholes with non-canonical RTL sources): Remove.
11         (peepholes for indexed stores of FP regs in integer modes): Match and
12         generate canonical RTL.
13
14 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
15
16         PR tree-optimization/63387
17         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
18         ((x ord x) & (y ord y) -> (x ord y),
19         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
20         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
21         vectors like scalars.
22
23 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
24
25         * convert.c (convert_to_integer, convert_to_vector): Include the
26         types in the error message.
27
28 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
29
30         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
31         simplifications.
32
33 2015-05-22  Jeff Law  <law@redhat.com>
34
35         * config/pa/pa.md (integer_indexed_store splitters): Use
36         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
37         insns -- adjusting the constant 2nd operand accordingly.
38
39         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
40         (plus (ashift X log2) Y) if it is a split point.
41
42         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
43         out of hppa_legitimize_address to handle both forms of a multiply
44         by 2, 4 or 8.
45         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p. 
46         Always generate the ASHIFT variant as the result is not directly
47         used in a MEM.  Update comments and refactor slightly to improve
48         readability.
49
50 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
51
52         PR target/65491
53         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
54         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
55         (aarch64_composite_type_p): Return false if given type and mode are
56         for a short vector.
57
58 2015-05-22  Richard Biener  <rguenther@suse.de>
59
60         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
61         member.
62         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
63         patterns when determining whether SLP is pure.
64         (vect_is_slp_reduction): Remove check for pattern stmts.
65         (vect_is_simple_reduction_1): Remove dead code.
66         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
67         (vect_get_and_check_slp_defs): Pass in the stmt number.
68         Allow the first def in a reduction to be not a pattern stmt when
69         the rest of the stmts def are patterns.
70         (vect_build_slp_tree_1): Allow tcc_expression codes like
71         SAD_EXPR and DOT_PROD_EXPR.
72         (vect_build_slp_tree): Adjust.
73         (vect_analyze_slp): Refactor and move BB vect error message ...
74         (vect_slp_analyze_bb_1): ... here.
75
76 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
77
78         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
79         for CSWTCH temporary.
80
81 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
82
83         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
84         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
85         unknown unspecs.
86
87 2015-05-22  Richard Biener  <rguenther@suse.de>
88
89         PR tree-optimization/66251
90         * tree-vect-stmts.c (vectorizable_conversion): Properly
91         set STMT_VINFO_VEC_STMT even for the SLP case.
92
93 2015-05-22  Marek Polacek  <polacek@redhat.com>
94
95         * doc/extend.texi: Use @pxref instead of @xref.
96
97 2015-05-22  hiraditya  <hiraditya@msn.com>
98
99         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
100         redundant if.
101
102 2015-05-22  Richard Biener  <rguenther@suse.de>
103
104         PR tree-optimization/65701
105         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
106         Move peeling cost models into one place.  Peel for alignment
107         for single loads only if an aligned load is cheaper than
108         an unaligned load.
109
110 2015-05-22  Marek Polacek  <polacek@redhat.com>
111
112         PR c/47043
113         * doc/extend.texi (Enumerator Attributes): New section.
114         Document syntax of enumerator attributes.
115
116 2015-05-22  Richard Biener  <rguenther@suse.de>
117
118         * tree-vect-loop.c (get_reduction_op): New function.
119         (vect_model_reduction_cost): Use it, add reduc_index parameter.
120         Make ready for BB reductions.
121         (vect_create_epilog_for_reduction): Use get_reduction_op.
122         (vectorizable_reduction): Init reduc_index to a valid value.
123         Adjust vect_model_reduction_cost call.
124         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
125         operand for reduction defaults.  Add SAD_EXPR support.
126         Assert we have a neutral op for SLP reductions.
127         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
128         walking pattern stmt ops only recurse to SSA names.
129
130 2015-05-22  Richard Biener  <rguenther@suse.de>
131
132         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
133         assert with guard, remove check on detected reduction.
134         (vect_recog_sad_pattern): Likewise.
135         (vect_recog_widen_sum_pattern): Likewise.
136
137 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
138
139         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
140         __always_inline__ attribute.
141         (vaesdq_u8): Likewise.
142         (vaesmcq_u8): Likewise.
143         (vaesimcq_u8): Likewise.
144         (vsha1cq_u32): Likewise.
145         (vsha1mq_u32): Likewise.
146         (vsha1pq_u32): Likewise.
147         (vsha1h_u32): Likewise.
148         (vsha1su0q_u32): Likewise.
149         (vsha1su1q_u32): Likewise.
150         (vsha256hq_u32): Likewise.
151         (vsha256h2q_u32): Likewise.
152         (vsha256su0q_u32): Likewise.
153         (vsha256su1q_u32): Likewise.
154         (vmull_p64): Likewise.
155         (vmull_high_p64): Likewise.
156
157 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
158
159         * final.c (final_scan_insn): Don't check HAVE_peephole with the
160         preprocessor.
161         * output.h: Likewise.
162         * genconfig.c (main): Alwways define HAVE_peephole.
163         * genpeep.c: Don't emit checks of HAVE_peephole.
164
165 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
166
167         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
168         check HAVE_conditional_move with the preprocessor.
169
170 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
171
172         * genconfig.c (main): Always define HAVE_conditional_move.
173         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
174         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
175         is defined.
176
177 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
178
179         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
180         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
181         and FRAME_POINTER_REGNUM with the preprocessor.
182
183 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
184
185         * defaults.h: Add default for STACK_PUSH_CODE.
186         * expr.c: Don't redefine STACK_PUSH_CODE.
187         * recog.c: Likewise.
188
189 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
190
191         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
192         sched-deps.c: Use if instead of preprocessor checks with
193         STACK_GROWS_DOWNWARD.
194
195 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
196
197         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
198         is defined.
199         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
200         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
201         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
202         * doc/tm.texi: Regenerate.
203
204 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
205
206         PR target/66232
207         * config/i386/constraints.md (Bg): New constraint for GOT memory
208         operand.
209         * config/i386/i386.md (*call_got_x32): New pattern.
210         (*call_value_got_x32): Likewise.
211         * config/i386/predicates.md (GOT_memory_operand): New predicate.
212
213 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
214
215         PR tree-optimization/66233
216         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
217         Simplify.
218
219 2015-05-21  Jeff Law  <law@redhat.com>
220
221         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
222         than MULT for shadd sequences.
223
224 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
225
226         * alias.c (alias_stats): New static var.        
227         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
228         (dump_alias_stats_in_alias_c): New function.
229         * alias.h (dump_alias_stats_in_alias_c): Declare.
230         * tree-ssa-alias.c (dump_alias_stats): Call it.
231
232 2015-05-08  Michael Matz  <matz@suse.de>
233
234         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
235         to strided_p.
236         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
237         (STMT_VINFO_STRIDED_P): ... this.
238         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
239         (vect_verify_datarefs_alignment): Likewise.
240         (vect_enhance_data_refs_alignment): Likewise.
241         (vect_analyze_data_ref_access): Likewise.
242         (vect_analyze_data_refs): Accept strided stores.
243         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
244         (vect_model_load_cost): Adjust for macro rename.
245         (vectorizable_mask_load_store): Likewise.
246         (vectorizable_load): Likewise.
247         (vectorizable_store): Open code strided stores.
248
249 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
250
251         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
252         Document sqrt_insn.
253
254 2015-05-21  Richard Biener  <rguenther@suse.de>
255
256         PR c++/66211
257         * match.pd: Guard pattern optimzing (int)(float)int
258         conversions to apply only on GIMPLE.
259
260 2015-05-21  Jeff Law  <law@redhat.com>
261
262         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
263         multiply-accumulate/shift-add insn generation.
264
265 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
266
267         PR target/54236
268         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
269         operands[1] are the same.
270
271 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
272
273         PR middle-end/66221
274         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
275         build_distinct_type_copy to copy bounds.
276
277 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
278
279         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
280         Change to unsigned int.
281
282 2015-05-20  Jeff Law  <law@redhat.com>
283
284         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
285         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
286         (pa_shadd_constant_p): Allow constants for shadd insns rather
287         than valid scaling constants for memory addresses.
288         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
289         * config/pa/predicates.md (mem_shadd_operand): New predicate.
290         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
291         (shift-add insns using ASHIFT): New patterns.
292
293 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
294
295         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
296         feasible.
297         (fix_up_fall_thru_edges): Likewise.
298         (fix_crossing_conditional_branches): Likewise. Promote jump targets
299         from to rtx_insn to rtx_code_label where feasible.
300         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
301         gen_move_insn (returned type changed to rtx_insn).
302         * builtins.c (expand_errno_check): Fix arguments of
303         do_compare_rtx_and_jump (now expects rtx_code_label).
304         (expand_builtin_acc_on_device): Likewise.
305         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
306         invert_jump (now exprects rtx_jump_insn).
307         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
308         (construct_init_block): Use rtx_code_label.
309         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
310         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
311         calling redirect_jump.
312         (patch_jump_insn): Likewise.
313         (redirect_branch_edge): Likewise.
314         (force_nonfallthru_and_redirect): Likewise.
315         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
316         when suitable.
317         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
318         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
319         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
320         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
321         to store the value retured by gen_label_rtx.
322         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
323         rtx_jump_insn.
324         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
325         (split_branches): Fix calls of redirect_jump.
326         * dojump.c (jumpifnot): Promote argument type from rtx to rtx_code_label.
327         (jumpifnot_1): Likewise.
328         (jumpif): Likewise.
329         (jumpif_1): Likewise.
330         (do_jump_1): Likewise.
331         (do_jump): Likewise. Use rtx_code_label when feasible.
332         (do_jump_by_parts_greater_rtx): Likewise.
333         (do_jump_by_parts_zero_rtx): Likewise.
334         (do_jump_by_parts_equality_rtx): Likewise.
335         (do_compare_rtx_and_jump): Likewise.
336         * dojump.h: Update function prototypes.
337         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
338         returns rtx_insn).
339         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
340         rtx_jump_insn.
341         (emit_label_before): Likewise.
342         (emit_jump_insn_after_noloc): Likewise.
343         (emit_jump_insn_after_setloc): Likewise.
344         (emit_jump_insn_after): Likewise
345         (emit_jump_insn_before_setloc): Likewise.
346         (emit_jump_insn_before): Likewise.
347         (emit_label_before): Promote return type to rtx_code_label.
348         (emit_label): Likewise.
349         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
350         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
351         gen_move_insn.
352         (emit_stack_restore): Likewise.
353         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
354         (do_cmp_and_jump): Likewise.
355         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
356         from rtx to rtx_code_label.
357         (gen_move_insn_uncast): New function.
358         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
359         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
360         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
361         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
362         invert_jump_1 and redirect_jump_1.
363         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
364         do_compare_rtx_and_jump.
365         (expand_addsub_overflow): Likewise.
366         (expand_neg_overflow): Likewise.
367         (expand_mul_overflow): Likewise.
368         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
369         return value of gen_move_insn.
370         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
371         * loop-doloop.c (add_test): Use rtx_code_label.
372         (doloop_modify): Likewise.
373         (doloop_optimize): Likewise.
374         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
375         * lra-constraints.c (emit_spill_move): Remove cast of value returned
376         by gen_move_insn.
377         (inherit_reload_reg): Add cast when calling dump_insn_slim.
378         (split_reg): Likewise.
379         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
380         gen_move_insn.
381         * optabs.c (expand_binop_directly): Remove casts of values returned by
382         maybe_gen_insn.
383         (expand_unop_direct): Likewise.
384         (expand_abs): Likewise.
385         (maybe_emit_unop_insn): Likewise.
386         (maybe_gen_insn): Promote return type to rtx_insn.
387         * optabs.h: Update prototype of maybe_gen_insn.
388         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
389         redundant cast.
390         * recog.c (struct peep2_insn_data): Promote type of insn field to
391         rtx_insn.
392         (peep2_reinit_state): Use NULL instead of NULL_RTX.
393         (peep2_attempt): Remove casts of insn in peep2_insn_data.
394         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
395         * recog.h (struct insn_gen_fn): Promote return types of function
396         pointers and operator ().from rtx to rtx_insn.
397         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
398         (fill_eager_delay_slots): Likewise.
399         (relax_delay_slots): Likewise.
400         (make_return_insns): Likewise.
401         (dbr_schedule): Likewise.
402         (optimize_skips): Likewise.
403         (reorg_redirect_jump): Likewise.
404         (fill_slots_from_thread): Likewise.
405         * reorg.h: Update prototypes.
406         * resource.c (find_dead_or_set_registers): Use dyn_cast to
407         rtx_jump_insn instead of check.  Use it's jump_target method.
408         * rtl.h (rtx_jump_insn::jump_label): Define new method.
409         (rtx_jump_insn::jump_target): Define new method.
410         (rtx_jump_insn::set_jump_target): Define new method.
411         * rtlanal.c (tablejump_p): Promote type of one local variable.
412         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
413         (sched_analyze_insn): Likewise.
414         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
415         (print_insn): Likewise.
416         * stmt.c (label_rtx): Promote return type to rtx_insn.
417         (force_label_rtx): Likewise.
418         (jump_target_rtx): Define new function.
419         (expand_label): Use it, get rid of one cast.
420         (expand_naked_return): Promote rtx to rtx_code_label.
421         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
422         (expand_case): Use rtx_code_label instread of rtx where feasible.
423         (expand_sjlj_dispatch_table): Likewise.
424         (emit_case_nodes): Likewise.
425         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
426         * store-motion.c (insert_store): Make use of new return type of
427         gen_move_insn and remove a cast.
428         (replace_store_insn): Likewise.
429
430 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
431
432         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
433         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
434
435 2015-05-20  Jeff Law  <law@redhat.com>
436
437         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
438         dispose of the jump thread path when the jump threading
439         opportunity is cancelled.
440
441 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
442
443         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
444         when printing the caret character.
445
446 2015-05-20  Marek Polacek  <polacek@redhat.com>
447
448         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
449
450 2015-05-20  Marek Polacek  <polacek@redhat.com>
451
452         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
453         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
454         * gimple-fold.c (canonicalize_bool): Likewise.
455         (same_bool_result_p): Likewise.
456         * tree-if-conv.c (parse_predicate): Likewise.
457
458 2015-05-20  Marek Polacek  <polacek@redhat.com>
459
460         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
461         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
462
463 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
464
465         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
466         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
467         values.
468
469 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
470
471         * config/mips/mips.h (micromips_globals): Declare.
472
473 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
474
475         * timevar.def (TV_INITIALIZE_RTL): New.
476         * toplev.c (initialize_rtl): Use an auto_timevar to account this
477         function's time to TV_INITIALIZE_RTL.
478
479 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
480
481         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
482         gimple_build_nop calls.
483         (chkp_find_bounds_for_elem): Likewise.
484         (chkp_get_zero_bounds): Likewise.
485         (chkp_get_none_bounds): Likewise.
486         (chkp_get_bounds_by_definition): Likewise.
487         (chkp_generate_extern_var_bounds): Likewise.
488         (chkp_get_bounds_for_decl_addr): Likewise.
489         (chkp_get_bounds_for_string_cst): Likewise.
490
491 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
492
493         PR tree-optimization/65447
494         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
495         (dump_use, dump_uses): Support to dump sub use.
496         (record_use): New parameters to support sub use.  Remove call to
497         dump_use.
498         (record_sub_use, record_group_use): New functions.
499         (compute_max_addr_offset, split_all_small_groups): New functions.
500         (group_address_uses, rewrite_use_address): New functions.
501         (strip_offset): New declaration.
502         (find_interesting_uses_address): Call record_group_use.
503         (add_candidate): New assertion.
504         (infinite_cost_p): Move definition forward.
505         (add_costs): Check INFTY cost and return immediately.
506         (get_computation_cost_at): Clear setup cost and dependent bitmap
507         for sub uses.
508         (determine_use_iv_cost_address): Compute cost for sub uses.
509         (rewrite_use_address_1): Rename from old rewrite_use_address.
510         (free_loop_data): Free sub uses.
511         (tree_ssa_iv_optimize_loop): Call group_address_uses.
512
513 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
514             Jim Wilson  <jim.wilson@linaro.org>
515
516         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
517         new  fields loadv and storev.
518         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
519         Initialize loadv and storev.
520         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
521         (cortexa53_extra_costs): Likewise.
522         (cortexa57_extra_costs): Likewise.
523         (xgene1_extra_costs): Likewise.
524         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
525         rtx_costs.
526
527 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
528
529         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
530          storev.
531         (cortexa8_extra_costs): Likewise.
532         (cortexa5_extra_costs): Likewise.
533         (cortexa7_extra_costs): Likewise.
534         (cortexa12_extra_costs): Likewise.
535         (cortexa15_extra_costs): Likewise.
536         (v7m_extra_costs): Likewise.
537
538 2015-05-20  Jeff Law  <law@redhat.com>
539
540         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
541         instead of open-coded version.  Also delete the jump thread created
542         within this function.
543
544 2015-05-20  Alan Modra  <amodra@gmail.com>
545
546         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
547         stack adjusting insn.  Formatting.
548         (rs6000_emit_prologue): Track stack adjusting insn, and use of
549         r12.  If possible, emit first -fsplit-stack arg pointer insn
550         before stack adjust.  Don't use r12 to save cr if split-stack.
551
552 2015-05-20  Alan Modra  <amodra@gmail.com>
553
554         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
555         Define.
556         (rs6000_supports_split_stack): New function.
557         * gcc/config/rs6000/rs6000.c (machine_function): Add
558         split_stack_arg_pointer.
559         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
560         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
561         rather than virtual_incoming_args_rtx.
562         (rs6000_va_start): Likewise.
563         (split_stack_arg_pointer_used_p): New function.
564         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
565         (morestack_ref): New var.
566         (gen_add3_const, rs6000_expand_split_stack_prologue,
567         rs6000_internal_arg_pointer, rs6000_live_on_entry,
568         rs6000_split_stack_space_check): New functions.
569         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
570         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
571         (UNSPECV_SPLIT_STACK_RETURN): Define.
572         (split_stack_prologue, load_split_stack_limit,
573         load_split_stack_limit_di, load_split_stack_limit_si,
574         split_stack_return, split_stack_space_check): New expands and insns.
575         * gcc/config/rs6000/rs6000-protos.h
576         (rs6000_expand_split_stack_prologue): Declare.
577         (rs6000_split_stack_space_check): Declare.
578
579 2015-05-20  Alan Modra  <amodra@gmail.com>
580
581         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
582         (rs6000_stack_info): Don't zero offsets when not saving registers.
583         (debug_stack_info): Adjust to omit printing unused offsets,
584         as before.
585         (direct_return): Test vrsave_size rather than vrsave_mask.
586         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
587         (rs6000_emit_epilogue): Likewise.
588
589 2015-05-20  Alan Modra  <amodra@gmail.com>
590
591         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
592         when not saving registers.
593         (debug_stack_info): Adjust to omit printing unused offsets,
594         as before.
595         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
596         expression.
597
598 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
599
600         PR c++/65835
601         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
602         value_type to const char *.
603
604 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
605
606         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
607         to build a biarch toolchain again.
608
609 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
610
611         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
612         or implicit declarations.
613         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
614         into it.
615         (get_odr_type): Check type has linkage before adding bases.
616         (register_odr_type): Check that type has linkage before adding it.
617         (type_known_to_have_no_deriavations_p): Rename to ..
618         (type_known_to_have_no_derivations_p): This one.
619         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
620         (type_known_to_have_no_derivations_p): This one.
621         * ipa-polymorphic-call.c
622         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
623         type has linkage.
624
625 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
626
627         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
628         (layout_type): Use RECORD_OR_UNION_TYPE_P.
629
630 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
631
632         * config/s390/s390.c (s390_vector_bool_type_p): New function.
633         (s390_invalid_binary_op): New function.
634         (TARGET_INVALID_BINARY_OP): Define macro.
635
636 2015-05-19  David Sherwood  <david.sherwood@arm.com>
637
638         * loop-invariant.c (create_new_invariant): Don't calculate address cost
639         if mode is not a scalar integer.
640         (get_inv_cost): Increase computational cost for unused invariants.
641
642 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
643
644         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
645         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
646         * config/s390/s390-builtin-types.def: New file.
647         * config/s390/s390-builtins.def: New file.
648         * config/s390/s390-builtins.h: New file.
649         * config/s390/s390-c.c: New file.
650         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
651         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
652         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
653         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
654         prototypes.
655         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
656         Include.
657         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
658         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
659         variable definitions.
660         (s390_const_operand_ok): New function.
661         (s390_expand_builtin): Rewrite.
662         (s390_init_builtins): New function.
663         (s390_handle_vectorbool_attribute): New function.
664         (s390_attribute_table): Add s390_vector_bool attribute.
665         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
666         (s390_branch_condition_mask): Generate masks for new modes.
667         (s390_expand_vec_compare_cc): New function.
668         (s390_mangle_type): Add mangling for vector bool types.
669         (enum s390_builtin): Remove.
670         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
671         efpc builtins.
672         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
673         s390_cpu_cpp_builtins.
674         (REGISTER_TARGET_PRAGMAS): New macro.
675         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
676         (insn_cmp mode attribute): Add new CC modes.
677         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
678         (lcbb): New pattern definition.
679         * config/s390/s390intrin.h: Include vecintrin.h.
680         * config/s390/t-s390: New file.
681         * config/s390/vecintrin.h: New file.
682         * config/s390/vector.md: Include vx-builtins.md.
683         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
684         support.
685
686 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
687
688         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
689         CCVFHE.
690         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
691         (s390_select_ccmode): Likewise.
692         (s390_canonicalize_comparison): Swap operands if necessary.
693         (s390_expand_vec_compare_scalar): Expand DFmode compare using
694         single element vector instructions.
695         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
696         (s390_branch_condition_mask): Generate CC masks for the new modes.
697         * config/s390/s390.md (v0, vf, vd): New mode attributes.
698         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
699         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
700         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
701         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
702         (*extend<DSF:mode><BFP:mode>2): New insn definition.
703         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
704         (extend<DSF:mode><BFP:mode>2): Turn into expander.
705         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
706         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
707         (sqrt<mode>2): Add vector instruction.
708
709 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
710
711         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
712         constraints.
713         * config/s390/predicates.md (const0_operand, constm1_operand)
714         (constable_operand): Accept vector operands.
715         * config/s390/s390-modes.def: Add supported vector modes.
716         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
717         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
718         (s390_bytemask_vector_p, s390_expand_vec_strlen)
719         (s390_expand_vec_compare, s390_expand_vcond)
720         (s390_expand_vec_init): Add prototypes.
721         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
722         (s390_vector_mode_supported_p): New function.
723         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
724         (s390_contiguous_bitmask_vector_p): New function.
725         (s390_bytemask_vector_p): New function.
726         (s390_split_ok_p): Vector regs don't work either.
727         (regclass_map): Add VEC_REGS.
728         (s390_legitimate_constant_p): Handle vector constants.
729         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
730         (legitimate_reload_vector_constant_p): New function.
731         (s390_preferred_reload_class): Handle CONST_VECTOR.
732         (s390_reload_symref_address):  Likewise.
733         (s390_secondary_reload): Vector memory instructions only support
734         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
735         (s390_emit_ccraw_jump): New function.
736         (s390_expand_vec_strlen): New function.
737         (s390_expand_vec_compare): New function.
738         (s390_expand_vcond): New function.
739         (s390_expand_vec_init): New function.
740         (s390_dwarf_frame_reg_mode): New function.
741         (print_operand): Handle addresses with 'O' and 'R' constraints.
742         (NR_C_MODES, constant_modes): Add vector modes.
743         (s390_output_pool_entry): Handle vector constants.
744         (s390_hard_regno_mode_ok): Handle vector registers.
745         (s390_class_max_nregs): Likewise.
746         (s390_cannot_change_mode_class): New function.
747         (s390_invalid_arg_for_unprototyped_fn): New function.
748         (s390_function_arg_vector): New function.
749         (s390_function_arg_float): Remove size variable.
750         (s390_pass_by_reference): Handle vector arguments.
751         (s390_function_arg_advance): Likewise.
752         (s390_function_arg): Likewise.
753         (s390_return_in_memory): Vector values are returned in a VR if
754         possible.
755         (s390_function_and_libcall_value): Handle vector arguments.
756         (s390_gimplify_va_arg): Likewise.
757         (s390_call_saved_register_used): Consider the arguments named.
758         (s390_conditional_register_usage): Disable v16-v31 for non-vec
759         targets.
760         (s390_preferred_simd_mode): New function.
761         (s390_support_vector_misalignment): New function.
762         (s390_vector_alignment): New function.
763         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
764         (TARGET_VECTOR_MODE_SUPPORTED_P)
765         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
766         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
767         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
768         (TARGET_VECTOR_ALIGNMENT): Define target macro.
769         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
770         (FIRST_PSEUDO_REGISTER): Increase value.
771         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
772         (VECTOR_REG_P): Define macros.
773         (FIXED_REGISTERS, CALL_USED_REGISTERS)
774         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
775         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
776         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
777         Add vector registers.
778         (CANNOT_CHANGE_MODE_CLASS): Call C function.
779         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
780         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
781         memory.
782         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
783         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
784         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
785         (VR*_REGNUM): New constants.
786         (ALL): New mode iterator.
787         (INTALL): Remove mode iterator.
788         Include vector.md.
789         (movti): Implement TImode moves for VRs.
790         Disable TImode splitter for VR targets.
791         Implement splitting TImode GPR<->VR moves.
792         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
793         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
794         reload<mode>_la_in, reload<mode>_la_out.
795         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
796         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
797         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
798         (mov<mode> SF SD): Prefer lder, lde for loading.
799         Add lrl and strl instructions.
800         Add vector instructions.
801         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
802         Call s390_expand_vec_strlen on z13.
803         (*cc_to_int): Change predicate to nonimmediate_operand.
804         (addti3): Rename to *addti3.  New expander.
805         (subti3): Rename to *subti3.  New expander.
806         * config/s390/vector.md: New file.
807
808 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
809
810         * common/config/s390/s390-common.c (processor_flags_table): Add
811         z13.
812         * config.gcc: Add z13.
813         * config/s390/s390-opts.h (enum processor_type): Add
814         PROCESSOR_2964_Z13.
815         * config/s390/s390.c (s390_adjust_priority): Check for
816         PROCESSOR_2964_Z13.
817         (s390_reorg): Likewise.
818         (s390_sched_reorder): Likewise.
819         (s390_sched_variable_issue): Likewise.
820         (s390_loop_unroll_adjust): Likewise.
821         (s390_option_override): Likewise. Default to -mvx when available.
822         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
823         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
824         (TARGET_VX_ABI): Define macros.
825         macros.
826         (TARGET_DEFAULT): Add MASK_OPT_VX.
827         * config/s390/s390.md ("cpu" attribute): Add z13.
828         ("cpu_facility" attribute): Add vec.
829         * config/s390/s390.opt (processor_type): Add z13.
830         (mvx): New options.
831         * doc/invoke.texi: Add z13 option for -march.
832
833 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
834
835         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
836         mode check to make sure that only scalar integer values are
837         accepted.
838
839 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
840
841         * tree.c (verify_type_variant): Fix #undef.
842         (gimple_canonical_types_compatible_p): Move here from lto.c
843         (verify_type): Verify TYPE_CANONICAL compatibility.
844         * tree.h (gimple_canonical_types_compatible_p): Declare.
845
846 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
847
848         PR middle-end/66199
849         * tree.h (OMP_TEAMS_COMBINED): Define.
850         * gimplify.c (enum gimplify_omp_var_data): Add
851         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
852         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
853         (omp_notice_variable): Accept both ORT_TEAMS
854         and ORT_COMBINED_TEAMS.  Don't recurse if
855         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
856         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
857         GOVD_FIRSTPRIVATE.
858         (omp_no_lastprivate): New function.
859         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
860         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
861         notice_outer and set appropriate bits, otherwise make
862         sure default(none) combined constructs won't complain.
863         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
864         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
865         omp_no_lastprivate either remove the clause or turn it
866         into OMP_CLAUSE_PRIVATE.
867         (gimplify_omp_for): Fix up handling of implicit
868         lastprivate or linear iterators.
869         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
870         ORT_COMBINED_TEAMS.
871         * omp-low.c (lower_omp_for_lastprivate): For combined
872         for simd use fd.loop.n2 from the for rather than simd.
873
874 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
875
876         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
877         instead of gen_rtx_raw_REG.
878         (cris_expand_epilogue): Likewise.
879         * config/microblaze/microblaze.c (microblaze_classify_address):
880         Likewise.
881         * config/sparc/sparc.md: Likewise.
882
883 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
884
885         * config/alpha/alpha.c (alpha_legitimize_reload_address)
886         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
887         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
888         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
889         Use CASE_CONST_SCALAR_INT.
890         (print_operand) <case 'M'>: Use mode_width_operand to check the
891         value of the constant.
892         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
893         * config/alpha/predicates.md (input_operand): Use general_operand
894         instead of match_code as operand check.
895         (symbolic_operand): Use match_code with subexpression digits.
896         * config/alpha/constraints.md (Q): Ditto.
897
898 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
899
900         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
901
902 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
903
904         * config/s390/s390.c (s390_secondary_reload): Fix check for
905         load/store relative.
906
907 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
908
909         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
910         alternative_mask to uint64_t.
911
912 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
913
914         PR tree-optimization/66187
915         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
916         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
917         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
918
919 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
920
921         * diagnostic.c (diagnostic_report_current_module): Strengthen
922         local "new_map" from const line_map * to
923         const line_map_ordinary *.
924         * genmatch.c (error_cb): Likewise for local "map".
925         (output_line_directive): Likewise for local "map".
926         * input.c (expand_location_1): Likewise for local "map".
927         Pass NULL rather than &map to
928         linemap_unwind_to_first_non_reserved_loc, since the value is never
929         read from there, and the value written back not read from here.
930         (is_location_from_builtin_token): Strengthen local "map" from
931         const line_map * to const line_map_ordinary *.
932         (dump_location_info): Strengthen locals "map" from
933         line_map *, one to const line_map_ordinary *, the other
934         to const line_map_macro *.
935         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
936         const line_map * to const line_map_macro *.
937         (maybe_unwind_expanded_macro_loc): Add a call to
938         linemap_check_macro when writing to the "map" field of the
939         loc_map_pair.
940         Introduce local const line_map_ordinary * "ord_map", using it in
941         place of "map" in the part of the function where we know we have
942         an ordinary map.  Strengthen local "m" from const line_map * to
943         const line_map_ordinary *.
944
945 2015-05-19  Nick Clifton  <nickc@redhat.com>
946
947         PR target/66156
948         * config/msp430/msp430.md (zero_extendhisi2): Add support for
949         separate source and destination registers.
950
951 2015-05-19  Richard Biener  <rguenther@suse.de>
952
953         PR tree-optimization/66165
954         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
955         for no load permutation.
956
957         PR tree-optimization/66185
958         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
959         when building the SLP node from scalars.
960
961 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
962             Tristan Gingold  <gingold@adacore.com>
963
964         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
965         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
966         (expand_stack_restore): Call record_new_stack_level.
967         (expand_stack_save): Do not call do_pending_stack_adjust.
968         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
969         * calls.c (expand_call): Call record_new_stack_level for alloca.
970         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
971         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
972         (update_sjlj_context): New global function.
973         * except.h (update_sjlj_context): Declare.
974         * explow.c (record_new_stack_level): New global function.
975         (allocate_dynamic_stack_space): Call record_new_stack_level.
976         * explow.h (record_new_stack_level): Declare.
977         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
978         * cfgrtl.c (duplicate_insn_chain): Likewise.
979
980 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
981
982         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
983         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
984         STACK_GROWS_DOWNWARD as normal if.
985         (expand_call): Likewise.
986
987 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
988
989         PR target/54236
990         * config/sh/sh.md (*round_int_even): New insn_and_split and
991         accompanying new unnamed split.
992
993 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
994
995         * bitmap.c (bitmap_set_range): Handle count==1 specially.
996         (bitmap_clear_range): Likewise.
997         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
998         bitmap_set_range unconditionally.
999         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
1000         * df-scan.c (df_mark_reg): Likewise.
1001         * haifa-sched.c (setup_ref_regs): Likewise.
1002         * sched-rgn.c (update_live_1): Likewise.
1003
1004 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
1005
1006         * regs.h (END_HARD_REGNO): Delete.
1007         (END_REGNO): Move to...
1008         * rtl.h: ...here.
1009         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
1010         * caller-save.c (mark_set_regs): Likewise.
1011         * combine.c (move_deaths, distribute_notes): Likewise.
1012         * cse.c (invalidate, invalidate_for_call): Likewise.
1013         * df-scan.c (df_ref_record): Likewise.
1014         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
1015         (record_last_reg_set_info): Likewise.
1016         * reg-stack.c (convert_regs_exit): Likewise.
1017         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
1018         * resource.c (update_live_status): Likewise.
1019         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
1020
1021 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
1022
1023         * rtl.h (reg_info): Add an nregs field.
1024         (REG_NREGS): Use it.
1025         (SET_REGNO_RAW): Delete.
1026         (set_regno_raw): New function.
1027         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
1028         (END_REGNO): Redefine in terms of REG_NREGS.
1029         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
1030         SET_REGNO_RAW.
1031         * emit-rtl.c (set_mode_and_regno): Likewise.
1032         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
1033         instead of SET_REGNO_RAW.
1034
1035 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
1036
1037         * rtl.h (PUT_MODE_RAW): New macro.
1038         (PUT_REG_NOTE_KIND): Use it.
1039         (set_mode_and_regno): Declare.
1040         (gen_raw_REG): Change regno to "unsigned int".
1041         (gen_rtx_REG): Change "unsigned" to "unsigned int".
1042         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
1043         use set_mode_and_regno to change the mode of registers.
1044         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
1045         * emit-rtl.c (set_mode_and_regno): New function.
1046         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
1047         * caller-save.c (reg_save_code): Use set_mode_and_regno.
1048         * expr.c (init_expr_target): Likewise.
1049         * ira.c (setup_prohibited_mode_move_regs): Likewise.
1050         * postreload.c (reload_cse_simplify_operands): Likewise.
1051
1052 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
1053
1054         * caller-save.c (init_caller_save): Use word_mode and
1055         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
1056         * expr.c (init_expr_target): Likewise.
1057         * ira.c (setup_prohibited_mode_move_regs): Likewise.
1058         * postreload.c (reload_cse_regs_1): Likewise.
1059
1060 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
1061
1062         * rtl.def (REG): Change format to "r".
1063         * rtl.h (rtunion): Remove rt_reg.
1064         (reg_info): New structure.
1065         (rtx_def): Add reg field to main union.
1066         (X0REGATTR): Delete.
1067         (REG_CHECK): New macro.
1068         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
1069         * rtl.c (rtx_format): Document "r".
1070         (rtx_code_size): Handle REG specially.
1071         * gengenrtl.c (special_format): Return true for formats
1072         that include 'r'.
1073         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
1074         Deal with REG_ATTRS after the field loop.
1075         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
1076         * expmed.c (init_expmed): Call gen_raw_REG instead of
1077         gen_rtx_raw_REG.
1078         * expr.c (init_expr_target): Likewise.
1079         * regcprop.c (maybe_mode_change): Likewise.
1080         * varasm.c (make_decl_rtl): Likewise.
1081         * final.c (leaf_renumber_regs_insn): Return early after
1082         handling REGs.
1083         * genemit.c (gen_exp): Handle 'r' fields.
1084         * genpeep.c (match_rtx): Likewise.
1085         * gensupport.c (subst_pattern_match): Likewise.
1086         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
1087         (alter_constraints, subst_dup): Likewise.
1088         * read-rtl.c (read_rtx_code): Likewise.
1089         * print-rtl.c (print_rtx): Likewise.
1090         * genrecog.c (find_operand, find_matching_operand): Likewise.
1091         (validate_pattern, match_pattern_2): Likewise.
1092         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
1093         (rtx_test::regno_field): New function.
1094         (operator ==, safe_to_hoist_p, transition_parameter_type)
1095         (parameter_type_string, print_parameter_value)
1096         (print_nonbool_test, print_test): Handle new enum values.
1097         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
1098         * lra-constraints.c (operands_match_p): Likewise.
1099
1100 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
1101
1102         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
1103         Change type of new_regno to unsigned int.
1104         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
1105         new_regno to unsigned int.
1106         (df_ref_change_reg_with_loc): Remove old_regno parameter.
1107         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
1108         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
1109         (SET_REGNO_RAW): Add space after ",".
1110
1111 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
1112
1113         * rtl.h (REG_NREGS): New macro
1114         * alias.c (record_set): Use it.
1115         * cfgcleanup.c (mark_effect): Likewise.
1116         * combine.c (likely_spilled_retval_1): Likewise.
1117         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
1118         (move_deaths, distribute_notes): Likewise.
1119         * cselib.c (cselib_record_set): Likewise.
1120         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
1121         * df-scan.c (df_mark_reg): Likewise.
1122         * dse.c (look_for_hardregs): Likewise.
1123         * dwarf2out.c (reg_loc_descriptor): Likewise.
1124         (multiple_reg_loc_descriptor): Likewise.
1125         * expr.c (write_complex_part, read_complex_part): Likewise.
1126         (emit_move_complex): Likewise.
1127         * haifa-sched.c (setup_ref_regs): Likewise.
1128         * ira-lives.c (mark_hard_reg_live): Likewise.
1129         * lra.c (lra_set_insn_recog_data): Likewise.
1130         * mode-switching.c (create_pre_exit): Likewise.
1131         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
1132         (reload_combine_recognize_pattern): Likewise.
1133         (reload_combine_note_use, move2add_record_mode): Likewise.
1134         (reload_cse_move2add): Likewise.
1135         * reg-stack.c (subst_stack_regs_pat): Likewise.
1136         * regcprop.c (kill_value, copy_value): Likewise.
1137         (copyprop_hardreg_forward_1): Likewise.
1138         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
1139         (build_def_use): Likewise.
1140         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
1141         (deps_analyze_insn): Likewise.
1142         * sched-rgn.c (check_live_1, update_live_1): Likewise.
1143         * sel-sched.c (count_occurrences_equiv): Likewise.
1144         * valtrack.c (dead_debug_insert_temp): Likewise.
1145
1146 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
1147
1148         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
1149         * dse.c (note_add_store): Likewise.
1150         * ira-lives.c (mark_hard_reg_dead): Likewise.
1151         * loop-invariant.c (mark_reg_store): Likewise.
1152         (mark_reg_death): Likewise.
1153         * postreload.c (reload_combine): Likewise.
1154         (reload_combine_note_store): Likewise.
1155         (reload_combine_note_use): Likewise.
1156         * recog.c (peep2_reg_dead_p): Likewise.
1157
1158 2015-05-19  Alan Modra  <amodra@gmail.com>
1159
1160         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
1161         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
1162         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
1163         unused predicates.
1164         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
1165         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
1166         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
1167         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
1168
1169 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
1170
1171         * config/mips/mips.md (JOIN_MODE): New mode iterator.
1172         (join2_load_Store<JOIN_MODE:mode>): New pattern.
1173         (join2_loadhi): Likewise.
1174         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
1175         load-load and store-stores.
1176         * config/mips/mips.opt (mload-store-pairs): New option.
1177         (TARGET_LOAD_STORE_PAIRS): New macro.
1178         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
1179         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
1180         * config/mips/mips.c (mips_load_store_bonding_p): New function.
1181
1182 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
1183
1184         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
1185         explicit swaps.
1186         * dojump.c (do_compare_rtx_and_jump): Likewise.
1187         * expmed.c (emit_store_flag_1): Likewise.
1188         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
1189         * final.c (sprint_ul): Use std::reverse for reversing a string.
1190         * fold-const.c (extract_muldiv_1): Use std::swap.
1191         * genmodes.c (emit_mode_int_n): Likewise.
1192         * ifcvt.c (dead_or_predicable): Likewise.
1193         * ira-build.c (ira_merge_live_ranges): Likewise.
1194         (swap_allocno_copy_ends_if_necessary): Likewise.
1195         * ira.c (ira_setup_alts): Likewise.
1196         * loop-iv.c (iv_analyze_expr): Likewise.
1197         (implies_p): Likewise.
1198         (canon_condition): Likewise.
1199         * lra-constraints.c (swap_operands): Likewise.
1200         * lra-lives.c (lra_merge_live_ranges): Likewise.
1201         * omega.c (swap): Remove.
1202         (bswap): Remove.
1203         (omega_unprotect_1): Use std::swap.
1204         (omega_solve_geq): Likewise.
1205         * optabs.c (expand_binop_directly): Likewise.
1206         (expand_binop): Likewise.
1207         (emit_conditional_move): Likewise.
1208         (emit_conditional_add): Likewise.
1209         * postreload.c (reload_cse_simplify_operands): Likewise.
1210         * reg-stack.c (emit_swap_insn): Likewise.
1211         (swap_to_top): Likewise.
1212         (compare_for_stack_reg): Likewise.
1213         (subst_asm_stack_regs): Likewise.
1214         * reload.c (find_reloads): Likewise.
1215         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
1216         * sel-sched.c (invoke_reorder_hooks): Likewise.
1217         (create_block_for_bookkeeping): Likewise.
1218         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
1219         (lambda_matrix_right_hermite): Use std::swap.
1220         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
1221         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
1222         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
1223         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
1224         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
1225         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
1226         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1227         * tree-vrp.c (compare_ranges): Likewise.
1228         * var-tracking.c (add_with_sets): Likewise.
1229         (vt_find_locations): Likewise.
1230
1231 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
1232
1233         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
1234         pie executables.
1235         (FBSD_ENDFILE_SPEC): Likewise.
1236         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
1237         config/freebsd-spec.h.
1238         (ENDFILE_SPEC): Likewise.
1239
1240 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
1241             Richard Henderson  <rth@redhat.com>
1242
1243         PR target/57032
1244         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
1245         Check for a memory location that is not a reference (using an AND)
1246         to an unaligned location here.
1247         * config/alpha/predicates.md (normal_memory_operand): Remove.
1248
1249 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
1250
1251         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
1252         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
1253
1254 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
1255
1256         * config/mips/mips.c (micromips_globals): New variable.
1257         (mips_set_compression_mode): Save and reinitialize target-dependent
1258         state for microMIPS.
1259
1260 2015-05-18  Martin Liska  <mliska@suse.cz>
1261
1262         * dbgcnt.def: Add new counter.
1263         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
1264
1265 2015-05-18  Martin Liska  <mliska@suse.cz>
1266
1267         * dbgcnt.def: Sort counters.
1268         * opts.c (common_handle_option): Do not compile if
1269         -fdbg-cnt-list is enabled.
1270
1271 2015-05-18  Tom de Vries  <tom@codesourcery.com>
1272
1273         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
1274         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
1275         address operator to va_list operand.
1276         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
1277         unconditionally.
1278         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
1279         operand.
1280         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
1281         * config/s390/s390.c (s390_gimplify_va_arg): Same.
1282         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
1283
1284 2015-05-18  Tom de Vries  <tom@codesourcery.com>
1285
1286         * tree-ssa-tail-merge.c: Fix whitespace.
1287
1288 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
1289
1290         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
1291         cortex-a17, and cortex-a17.cortex-a7.
1292
1293 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
1294
1295         PR target/54236
1296         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
1297
1298 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
1299
1300         PR target/66174
1301         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
1302         QImode inner modes for TARGET_AVX512BW.  Force mask operand
1303         to a register for AVX512F modes.
1304
1305 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
1306
1307         * toplev.c (emit_debug_global_declarations): Do not output debug info
1308         when doing slim LTO objects.
1309
1310 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
1311
1312         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
1313         odr_types_equivalent_p): Declare.
1314         (odr_type_p): Use gcc_checking_assert.
1315         (type_in_anonymous_namespace_p) Declare.
1316         (type_with_linkage_p): Declare.
1317         * common.opt (Wlto-type-mismatch): New warning.
1318         * ipa-devirt.c (compound_type_base): New function.
1319         (odr_or_derived_type_p): New function.
1320         (odr_types_equivalent_p): New function.
1321         (add_type_duplicate): Simplify.
1322         (type_with_linkage_p): Add hack to prevent false positives on C types
1323         (type_in_anonymous_namespace_p): Likewise.
1324         * tree.c (need_assembler_name_p): Use type_with_linkage.
1325         * tree.h (type_in_anonymous_namespace_p): Remove.
1326         * doc/invoke.texi (-Wlto-type-mismatch): Document
1327
1328 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
1329
1330         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
1331         (verify_type): Verify STRING_FLAG.
1332
1333 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1334
1335         PR fortran/44054
1336         * tree-pretty-print.c (percent_K_format): Replace locus pointer
1337         with accessor function.
1338         * tree-diagnostic.c (diagnostic_report_current_function): Use
1339         diagnostic_location function.
1340         (maybe_unwind_expanded_macro_loc): Likewise.
1341         (virt_loc_aware_diagnostic_finalizer): Likewise.
1342         (default_tree_printer): Replace locus pointer with accessor function.
1343         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
1344         (diagnostic_set_info_translated): Initialize second location.
1345         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
1346         (diagnostic_show_locus): Handle two locations. Call
1347         diagnostic_print_caret_line.
1348         (diagnostic_print_caret_line): New.
1349         (default_diagnostic_starter): Use diagnostic_location function.
1350         (diagnostic_report_diagnostic): Use diagnostic_location function.
1351         (verbatim): Do not set text.locus.
1352         * diagnostic.h (struct diagnostic_info): Remove location field.
1353         (struct diagnostic_context): Make caret_chars an array of two.
1354         (diagnostic_location): New inline.
1355         (diagnostic_expand_location): Handle two locations.
1356         (diagnostic_same_line): New inline.
1357         (diagnostic_print_caret_line): Declare.
1358         (CARET_LINE_MARGIN): New constant.
1359         * pretty-print.c (pp_printf): Do not set text.locus.
1360         (pp_verbatim): Do not set text.locus.
1361         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
1362         (struct text_info): Replace locus pointer with locations
1363         array. Add accessor functions.
1364
1365 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
1366             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1367
1368         PR target/65768
1369         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
1370         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
1371          large constants in register instead of splitting them.
1372
1373 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
1374
1375         PR target/66140
1376         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
1377         replacements in memory addresses.
1378         (get_unaligned_address): Ditto.
1379
1380 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
1381
1382         PR tree-optimization/64454
1383         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
1384         (-1 - A -> ~A): Remove unnecessary condition.
1385
1386 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
1387
1388         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
1389         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
1390         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
1391
1392 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
1393
1394         * ipa-chkp.h (chkp_wrap_function): New.
1395         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
1396         (chkp_wrap_function_name): New.
1397         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
1398         to get wrapper name.
1399         * lto-cgraph.c: Include ipa-chkp.h.
1400         (input_cgraph_1): Avoid alias chain for wrappers.
1401
1402 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
1403
1404         PR middle-end/66134
1405         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
1406         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
1407
1408 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1409
1410         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
1411         (AARCH64_FL_SLOWMUL): Delete.
1412         (AARCH64_FL_CRC): Redefine to 1<<3.
1413         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
1414
1415 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1416
1417         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
1418         casting.
1419
1420 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
1421
1422         * config/alpha/alpha.md (extendqidi2): Use general_operand
1423         instead of some_operand for operand[1] predicate.
1424         (extendhidi2): Ditto.
1425         (cbranchdi4): Use general_operand instead of some_operand
1426         for operand[1] and operands[2] predicates.
1427         (cstoredi4): Ditto.
1428         * config/alpha/predicates.md (some_operand): Remove unused predicate.
1429         (some_ni_operand): Ditto.
1430
1431 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
1432
1433         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
1434         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
1435         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
1436         low part of the constant using alpha_emit_set_const_1.
1437         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
1438
1439 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
1440
1441         * varasm.c (output_constant_pool_1): Pass down alignment from
1442         constant pool entry's descriptor to output_constant_pool_2.
1443         (output_object_block): Add comment prior to call to
1444         output_constant_pool_1.
1445
1446 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
1447
1448         PR rtl-optimization/65862
1449         * target.def (ira_change_pseudo_allocno_class): New hook.
1450         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
1451         value of the hook.
1452         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
1453         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
1454         hook.
1455         * ira-costs.c (find_costs_and_classes): Call the hook and change
1456         classes when it is necessary.
1457         * doc/tm.texi: Update.
1458
1459 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
1460
1461         * config/i386/i386.md (sibcall_memory): Check that register with
1462         callee address is not also used as one of the arguments, instead
1463         of checking that it is not live after the sibcall.
1464         (sibcall_pop_memory): Ditto.
1465         (sibcall_value_memory): Ditto.
1466         (sibcall_value_pop_memory): Ditto.
1467
1468 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
1469
1470         * generic-match-head.c (types_match): Handle non-types.
1471         * gimple-match-head.c (types_match): Likewise.
1472         * match.pd: Remove unnecessary TREE_TYPE for types_match.
1473
1474 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
1475
1476         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
1477         (csneg3<mode>_insn): Enable expansion of pattern.
1478
1479 2015-05-14  Nick Clifton  <nickc@redhat.com>
1480
1481         * config/rl78/rl78.c (rl78_select_section): Select the correct
1482         default section based upon the category of the decl.
1483
1484 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
1485
1486         PR rtl-optimization/30967
1487         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
1488         destination mode for the cost of scc patterns.
1489
1490 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
1491
1492         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
1493         using SWIM248 mode iterator.
1494         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
1495         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
1496         for operand[2] constraint.
1497         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
1498
1499 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
1500
1501         PR middle-end/66133
1502         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
1503         make sure it is never noreturn, even when the task body does not
1504         return.
1505         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
1506         right before GIMPLE_OMP_RETURN.
1507         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
1508         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
1509         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
1510
1511 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1512
1513         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
1514         * tree-ssa-math-opts.c: Include params.h
1515         (pow_synth_sqrt_info): New struct.
1516         (representable_as_half_series_p): New function.
1517         (get_fn_chain): Likewise.
1518         (print_nested_fn): Likewise.
1519         (dump_fractional_sqrt_sequence): Likewise.
1520         (dump_integer_part): Likewise.
1521         (expand_pow_as_sqrts): Likewise.
1522         (gimple_expand_builtin_pow): Use above to attempt to expand
1523         pow as series of square roots.  Removed now unused variables.
1524
1525 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
1526
1527         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
1528         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
1529         Remove *p0 and *p1 arguments.  Rewrite function.
1530         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
1531         (alpha_split_const_mov): Update calls to alpha_extract_integer and
1532         alpha_emit_set_long_const.
1533         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
1534         (alpha_output_mi_thunk_osf): Ditto.
1535         * config/alpha/alpha.md (movti): Do not check operands[1]
1536         for CONST_DOUBLE.
1537
1538 2015-05-13  Richard Biener  <rguenther@suse.de>
1539
1540         PR tree-optimization/66129
1541         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
1542         commutative.
1543         (vect_schedule_slp_instance): Fix typo.
1544
1545 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
1546
1547         * common.opt (fdump-internal-locations): New option.
1548         * input.c: Include diagnostic-core.h.
1549         (get_end_location): New function.
1550         (write_digit): New function.
1551         (write_digit_row): New function.
1552         (dump_location_range): New function.
1553         (dump_labelled_location_range): New function.
1554         (dump_location_info): New function.
1555         * input.h (dump_location_info): New prototype.
1556         * toplev.c (compile_file): Handle flag_dump_locations.
1557
1558 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
1559
1560         * gimple-expr.h (is_gimple_constant): Reorder.
1561         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
1562
1563 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
1564
1565         * combine.c (simplify_set): When generating a CC set, if the
1566         source already is in the correct mode, do not wrap it in a
1567         compare.  Simplify the rest of that code.
1568
1569 2015-05-13  Richard Biener  <rguenther@suse.de>
1570
1571         PR tree-optimization/66123
1572         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
1573         a taken edge.
1574
1575 2015-05-13  Richard Biener  <rguenther@suse.de>
1576
1577         PR middle-end/66110
1578         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
1579         specially.
1580         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
1581
1582 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
1583
1584         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
1585         * aclocal.m4: Regenerated with automake-1.11.6.
1586
1587 2015-05-13  Tom de Vries  <tom@codesourcery.com>
1588
1589         PR tree-optimization/66010
1590         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
1591         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
1592         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
1593         and rval based on do_deref.
1594
1595 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
1596
1597         PR target/65103
1598         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
1599         link time constants into adress expressions and therefore set
1600         their cost to 0.
1601
1602 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
1603
1604         PR target/66112
1605         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
1606         Use SWI248 iterator instead of SWI.
1607         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
1608         Use eq_attr "alternative" "0" instead of match_test in
1609         length_immediate attribute computation.
1610         (*mulvhi4, *mulvhi4_1): New define_insns.
1611
1612         PR target/66112
1613         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
1614         SIGNED to get precision of non-negative value.
1615
1616 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
1617
1618         PR target/66048
1619         * function.c (diddle_return_value_1): Process bounds first.
1620         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
1621         register.
1622
1623 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1624
1625         PR rtl-optimization/64616
1626         * loop-invariant.c (can_move_invariant_reg): New.
1627         (move_invariant_reg): Call above new function to decide whether
1628         instruction can just be moved, skipping creation of temporary
1629         register.
1630
1631 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
1632
1633         PR target/pr66047.c
1634         * i386.c (ix86_function_sseregparm): Only return -1 if local function
1635         with implied regparm is called from -mno-sse function.
1636         (init_cumulative_args): Output error if ix86_function_sseregparm
1637         return -1 and SSE register would be needed.
1638         (function_arg_advance_32): Likewise.
1639         (function_arg_32): Likewise.
1640         * i386.h (ix86_args): Add decl field.
1641
1642 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
1643
1644         PR ipa/65873
1645         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
1646         inlines across optimization boundary.
1647
1648 2015-05-12  Jason Merrill  <jason@redhat.com>
1649
1650         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
1651         string literal and macro name.
1652
1653 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
1654
1655         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
1656         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
1657         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
1658
1659 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
1660
1661         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
1662         (-Wmisleading-indentation): New option.
1663         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
1664
1665 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
1666
1667         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
1668         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
1669         (alpha_extract_integer): Ditto.
1670         (alpha_legitimate_constant_p): Ditto.
1671         (alpha_split_tmode_pair): Ditto.
1672         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
1673         (alpha_expand_mov): Ditto.
1674         (print_operand): Remove handling of 'H' modifier.
1675         <case 'm'>: Remove CONST_DOUBLE handling.
1676         (summarize_insn): Handle CONST_WIDE_INT.
1677         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
1678         (anddi3): Ditto.
1679         (movti): Handle CONST_WIDE_INT.
1680         * config/alpha/constraints.md ('H'): Remove constraint definition.
1681         ('G'): Do not match MODE_FLOAT class.
1682         * config/alpha/predicates.md (const0_operand): Also match
1683         const_wide_int.
1684         (non_add_const_operand): Ditto.
1685         (non_zero_const_operand): Ditto.
1686         (some_operand): Ditto.
1687         (input_operand): Ditto.  Handle CONST_WIDE_INT.
1688         (and_operand): Do not match const_double.
1689         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
1690
1691 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
1692
1693         PR target/65697
1694         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
1695         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
1696         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
1697         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
1698         is_mm_seq_cst, is_mm_sync): New accessor functions.
1699         * builtins.c (expand_builtin_sync_operation,
1700         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
1701         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
1702         (get_memmodel,  expand_builtin_atomic_compare_exchange,
1703         expand_builtin_atomic_load, expand_builtin_atomic_store,
1704         expand_builtin_atomic_clear): Use new accessor routines.
1705         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
1706         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
1707         (maybe_emit_sync_lock_test_and_set): Use new accessors and
1708         MEMMODEL_SYNC_ACQUIRE.
1709         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
1710         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
1711         expand_atomic_store): Use new accessors.
1712         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
1713         * tsan.c (instrument_builtin_call): Update check for memory model beyond
1714         final enum to use MEMMODEL_LAST.
1715         * c-family/c-common.c: Use new accessor for memmodel_base.
1716         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
1717         accessors.
1718         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
1719         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
1720         mem_thread_fence, *dmb): Likewise.
1721         * config/alpha/alpha.c (alpha_split_compare_and_swap,
1722         alpha_split_compare_and_swap_12): Likewise.
1723         * config/arm/arm.c (arm_expand_compare_and_swap,
1724         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
1725         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
1726         atomic_loaddi): Likewise.
1727         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
1728         Likewise.
1729         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
1730         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
1731         use new accessors.
1732         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
1733         atomic_store<mode>, atomic_compare_and_swap<mode>,
1734         atomic_exchange<mode>): Use new accessors.
1735         * config/mips/mips.c (mips_process_sync_loop): Likewise.
1736         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
1737         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
1738         rs6000_post_atomic_barrier): Add new cases.
1739         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
1740         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
1741         (atomic_load<mode>): Add new cases and use new accessors.
1742         (store_quadpti): Add new cases.
1743         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
1744         accessors.
1745         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
1746         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
1747         model, not 8.
1748
1749 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
1750
1751         * ipa-devirt.c (type_with_linkage_p): New function.
1752         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
1753         type has linkage.
1754         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
1755         (can_be_name_hashed_p): Simplify.
1756         (hash_odr_name): Check that type has linkage before checking if it is
1757         anonymous.
1758         (types_same_for_odr): Likewise.
1759         (odr_name_hasher::equal): Likewise.
1760         (odr_subtypes_equivalent_p): Likewise.
1761         (warn_types_mismatch): Likewise.
1762         (get_odr_type): Likewise.
1763         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
1764         * ipa-utils.h (odr_type_p): Move offline.
1765         * tree.c (need_assembler_name_p): Fix handling of types
1766         without linkages.
1767         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
1768
1769 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
1770
1771         * timevar.c (timevar_enable): Delete in favor of...
1772         (g_timer): New global.
1773         (struct timevar_def): Move to timevar.h inside class timer.
1774         (struct timevar_stack_def): Likewise.
1775         (timevars): Delete global in favor of field "m_timevars" within
1776         class timer in timevar.h
1777         (stack): Likewise, in favor of field "m_stack".
1778         (unused_stack_instances): Likewise, in favor of field
1779         "m_unused_stack_instances".
1780         (start_time): Likewise, in favor of field "m_start_time".
1781         (get_time): Eliminate check for timevar_enable.
1782         (timer::timer): New function, built from part of timevar_init.
1783         (timevar_init): Rewrite idempotency test from using
1784         "timevar_enable" bool to using dynamic allocation of "g_timer".
1785         Move rest of implementation into timer's constructor.
1786         (timevar_push_1): Rename to...
1787         (timer::push): ...this, adding "m_" prefixes to variables that
1788         are now fields of timer.
1789         (timevar_pop_1): Likewise, rename to...
1790         (timer::pop): ...this, and add "m_" prefixes.
1791         (timevar_start): Replace test for "timevar_enable" with one for
1792         "g_timer", and move bulk of implementation to...
1793         (timer::start): ...here, adding "m_" prefixes.
1794         (timevar_stop): Likewise, from here...
1795         (timer::stop): ...to here.
1796         (timevar_cond_start): Likewise, from here...
1797         (timer::cond_start): ...to here.
1798         (timevar_cond_stop): Likewise, from here...
1799         (timer::cond_stop): ...to here.
1800         (validate_phases): Rename to...
1801         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
1802         locals "total" and "tv" const.
1803         (timevar_print): Rename to...
1804         (timer::print): ...this, and add "m_" prefixes.  Make locals
1805         "total" and "tv" const.  Eliminate test for timevar_enable.
1806         * timevar.h (timevar_enable): Eliminate.
1807         (g_timer): New declaration.
1808         (timevar_push_1): Eliminate.
1809         (timevar_pop_1): Eliminate.
1810         (timevar_print): Eliminate.
1811         (class timer): New class.
1812         (timevar_push): Rewrite to use g_timer.
1813         (timevar_pop): Likewise.
1814         * toplev.c (toplev::~toplev): Likewise.
1815
1816 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
1817
1818         * arm-protos.h (arm_sched_autopref): Delete.
1819         (tune_params): Re-organize, use enums for flag values.
1820         (FUSE_OPS): New macro.
1821         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
1822         (ARM_PREFETCH_BENEFICIAL): Likewise.
1823         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
1824         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
1825         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
1826         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
1827         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
1828         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
1829         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
1830         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
1831         format.
1832         (arm_option_override, thumb2_reorg, arm_print_tune_info)
1833         (aarch_macro_fusion_pair_p): Update uses of current_tune.
1834         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
1835
1836 2015-05-12 Sandra Loosemore <sandra@codesourcery.com>
1837
1838         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
1839         "break".
1840
1841 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
1842             Sandra Loosemore <sandra@codesourcery.com>
1843
1844         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
1845         value.
1846         (REG_CLASS_NAMES): Add "IJMP_REGS".
1847         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
1848         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
1849         use new "c" register constraint.
1850         * config/nios2/constraint.md (c): New register constraint
1851         corresponding to IJMP_REGS.
1852
1853 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
1854
1855         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
1856         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
1857         define_splits): Delete, revamp, transmogrify into ...
1858         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
1859         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
1860         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
1861         New.
1862
1863 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
1864
1865         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
1866         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
1867
1868 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
1869
1870         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
1871         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
1872         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
1873         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
1874         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
1875         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
1876         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
1877         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
1878         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
1879         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
1880         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
1881         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
1882         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
1883         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
1884         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
1885         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
1886         and 30 corresponding splitters): Delete.
1887
1888 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
1889
1890         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
1891         zero_extract.
1892
1893 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
1894
1895         * combine.c (recog_for_combine_1): New function, factored out
1896         from recog_for_combine.
1897         (change_zero_ext): New function.
1898         (recog_for_combine): If recog fails, try again with the pattern
1899         modified by change_zero_ext; if that still fails, restore the
1900         pattern.
1901
1902 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
1903
1904         * combine.c (get_undo_marker): New function.
1905         (undo_to_marker): New function, largely factored out from ...
1906         (undo_all): ... this.  Adjust.
1907
1908 2015-05-12  Richard Biener  <rguenther@suse.de>
1909
1910         PR tree-optimization/66101
1911         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
1912         fixup if we turn a loop exit edge to a fallthru edge.
1913
1914 2015-05-12  Richard Biener  <rguenther@suse.de>
1915
1916         PR tree-optimization/37021
1917         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
1918         (SLP_TREE_TWO_OPERATORS): New define.
1919         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
1920         SLP_TREE_TWO_OPERATORS.
1921         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
1922         SLP node.
1923         (vect_build_slp_tree): Adjust.
1924         (vect_analyze_slp_cost_1): Likewise.
1925         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
1926         emitting two vector stmts and mixing the results.
1927
1928 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1929
1930         * call.c (print_z_candidates): Remove dead code.
1931
1932 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1933
1934         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
1935         and zEC12_simple_fp.
1936         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
1937         to 1.
1938
1939 2015-05-12  Tom de Vries  <tom@codesourcery.com>
1940
1941         PR tree-optimization/66010
1942         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
1943         ifn_va_arg.
1944         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
1945         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
1946         va_lists are passed, and remove corresponding handling.
1947         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
1948         do_deref argument to ifn_va_arg.
1949         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
1950         ifn_va_arg.
1951
1952 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1953
1954         PR target/65955
1955         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
1956         REG before taking its REGNO.
1957
1958 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1959
1960         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
1961         rsp->sign_bit_copies and rsp->nonzero_bits into ...
1962         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
1963         present to get more accurate information about the number of sign bit
1964         copies and non zero bits.
1965
1966 2015-05-12  Richard Biener  <rguenther@suse.de>
1967
1968         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
1969         do not allow unrolling.
1970
1971 2015-05-11  Richard Henderson  <rth@redhat.com>
1972
1973         * config/i386/i386-modes.def (CCP): New.
1974         * config/i386/i386.c (put_condition_code): Handle it.
1975         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
1976
1977 2015-05-11  Richard Henderson  <rth@redhat.com>
1978
1979         * target.def (md_asm_clobbers): Replace with...
1980         (md_asm_adjust): this.
1981         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
1982         (TARGET_MD_ASM_ADJUST): New.
1983         * tm.texi: Rebuild.
1984         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
1985         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
1986         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
1987
1988         * cfgexpand.c (check_operand_nalternatives): Accept vector of
1989         constraints instead of lists of outputs and inputs.
1990         (expand_asm_stmt): Save and restore input_location around the
1991         body of the function.  Move asm data into vectors instead of
1992         building tree lists.  Generate cleanup sequences as needed,
1993         rather than waiting til the end.  Use new md_asm_adjust hook.
1994
1995         * config/vxworks.c: Include vec.h before target.h.
1996         * gimple.c: Likewise.
1997         * incpath.c: Likewise.
1998         * mode-switching.c: Likewise.
1999
2000         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
2001         (cris_md_asm_adjust): this.
2002         (TARGET_MD_ASM_CLOBBERS): Remove.
2003         (TARGET_MD_ASM_ADJUST): New.
2004         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
2005         (ix86_md_asm_adjust): this.
2006         (TARGET_MD_ASM_CLOBBERS): Remove.
2007         (TARGET_MD_ASM_ADJUST): New.
2008         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
2009         (mn10300_md_asm_adjust): this.
2010         (TARGET_MD_ASM_CLOBBERS): Remove.
2011         (TARGET_MD_ASM_ADJUST): New.
2012         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
2013         (rs6000_md_asm_adjust): this.
2014         (TARGET_MD_ASM_CLOBBERS): Remove.
2015         (TARGET_MD_ASM_ADJUST): New.
2016         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
2017         (visium_md_asm_adjust): this.
2018         (TARGET_MD_ASM_CLOBBERS): Remove.
2019         (TARGET_MD_ASM_ADJUST): New.
2020
2021 2015-05-11  Richard Henderson  <rth@redhat.com>
2022
2023         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
2024         if noutputs is zero.
2025         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
2026
2027         * cfgexpand.c (expand_asm_operands): Merge into...
2028         (expand_asm_stmt): ... here.
2029
2030         * cfgexpand.c (expand_asm_operands): Don't call
2031         resolve_asm_operand_names.
2032         * stmt.c (resolve_asm_operand_names): Clarify block comment.
2033
2034 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
2035
2036         * dwarf2out.c (gen_member_die): Sanity check that we access
2037         TYPE_MAIN_VARIANT for TYPE_METHODS.
2038         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
2039         checking TYPE_METHODS.
2040         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
2041         if non-null.
2042         (build_distinct_type_copy): Clear TYPE_METHODS.
2043         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
2044         (verify_type): Allow TYPE_METHODS to be error_mark_node.
2045         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
2046
2047 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
2048
2049         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
2050         (emit_pattern_before_setloc): Likewise.
2051
2052 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
2053
2054         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
2055         for define_peephole2s.
2056         (get_peephole2_pattern): New function.
2057         (main): Use it.  Call validate_pattern.
2058
2059 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
2060
2061         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
2062         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
2063         (Last callee saved reg is different for AVR_TINY architecture)
2064
2065 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
2066
2067         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
2068         when looking for memory references.
2069
2070 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
2071
2072         PR target/65753
2073         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
2074         via function pointers.
2075
2076 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
2077
2078         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
2079         indirect call by forcing address into a pseudo with -fno-plt.
2080         * common.opt (flag_plt): New option.
2081         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
2082         ([-fno-plt]): Document.
2083
2084 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
2085
2086         PR bootstrap/66105
2087         * config/rs6000/option-defaults.h: Add space between string literal
2088         and macro name.
2089
2090 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2091
2092         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
2093         accross ARM targets.
2094
2095 2015-05-11  Christian Bruel  <christian.bruel@st.com>
2096
2097         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
2098         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
2099
2100 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
2101
2102         PR rtl-optimization/66076
2103         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
2104         Don't grow the heap array if it is already big enough from a
2105         previous iteration.
2106
2107 2015-05-11  Christian Bruel  <christian.bruel@st.com>
2108
2109         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
2110         (is_called_in_ARM_mode): Remove.
2111         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
2112         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
2113         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
2114          arm_declare_function_name.
2115
2116 2015-05-11  Christian Bruel  <christian.bruel@st.com>
2117
2118         * config/arm/arm.c (arm_option_override): Reoganized and split into :
2119         (arm_option_params_internal); New function.
2120         (arm_option_check_internal): New function.
2121         (arm_option_override_internal): New function.
2122         (thumb_code, thumb1_code): Remove.
2123         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
2124         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
2125         (thumb_code, thumb1_code): Remove.
2126         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
2127
2128 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
2129
2130         * config/alpha/alpha.c (alpha_emit_set_const_1)
2131         (alpha_emit_set_long_const, alpha_extract_integer)
2132         (alpha_legitimate_constant_p, alpha_split_const_mov)
2133         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
2134         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
2135         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
2136         HOST_WIDE_INT_1U.
2137         * config/alpha/predicates.md (mode_mask_operand): Do not match
2138         const_double RTX.
2139         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
2140         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
2141         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
2142         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
2143         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
2144
2145 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
2146
2147         PR target/65780
2148         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
2149         default_binds_local_p_2.
2150         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
2151         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
2152
2153 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
2154
2155         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
2156
2157 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
2158
2159         Patch by Richard Biener
2160         * coverage.c (coverage_obj_init): Delay building of type variant
2161         until the type is finished.
2162
2163 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
2164
2165         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
2166         mismatch between C and C++ type; compoare correctly ARG_TYPES
2167         for non-prototypes and output correctly parameter index for METHOD_TYPE.
2168         (odr_types_equivalent_p): Fix wording of warning about attributes;
2169         it is OK to match prototype and non-prototype.
2170
2171 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
2172
2173         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
2174         TYPE_ARG_TYPES list.
2175         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
2176         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
2177
2178 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
2179
2180         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
2181         * tree.h (is_lang_specific): Constify.
2182
2183 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
2184
2185         PR tree-optimization/64454
2186         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
2187         Rewrite.
2188
2189 2015-05-08  Jason Merrill  <jason@redhat.com>
2190
2191         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
2192         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
2193         config/darwin.h, config/darwin9.h, config/elfos.h,
2194         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
2195         config/microblaze/microblaze.h, config/mips/mips.h,
2196         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
2197         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
2198         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
2199         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
2200         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
2201         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
2202         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
2203         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
2204         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
2205         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
2206         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
2207         between string literal and macro name.
2208
2209 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2210
2211         * jump.c: Change argument types to rtx_insn *.
2212         * rtl.h: Adjust.
2213
2214 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2215
2216         * lra-constraints.c: Change argument type to rtx_insn *.
2217
2218 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2219
2220         * df-problems.c: Change argument type to rtx_insn *.
2221
2222 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2223
2224         * combine.c: Change argument type to rtx_insn *.
2225
2226 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2227
2228         * rtl.h: Adjust.
2229         * rtlanal.c: Change argument type to rtx_insn *.
2230
2231 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2232
2233         * sched-deps.c: Change argument types to rtx_insn *.
2234         * sched-int.h: Adjust.
2235
2236 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2237
2238         * dwarf2cfi.c: Change argument type to rtx_insn *.
2239
2240 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2241
2242         * ira.c (decrease_live_ranges_number): Changetype of local
2243         variable to rtx_insn *.
2244         * recog.c: Change argument types to rtx_insn *.
2245         * recog.h: Adjust.
2246
2247 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2248
2249         * reorg.c: Change argument types to rtx_insn *.
2250
2251 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2252
2253         * ira-color.c: Change argument types to rtx_insn *.
2254         * lra-eliminations.c: Likewise.
2255         * ira.h: Adjust.
2256
2257 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2258
2259         * gcse.c: Change argument types to rtx_insn *.
2260
2261 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2262
2263         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
2264
2265 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2266
2267         * emit-rtl.c (emit_debug_insn_before): Change argument type to
2268         rtx_insn *.
2269         * rtl.h: Adjust.
2270
2271 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2272
2273         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
2274         * rtl.h: Adjust.
2275
2276 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2277
2278         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
2279         * rtl.h: Adjust.
2280
2281 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2282
2283         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
2284         * rtl.h: Adjust.
2285
2286 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2287
2288         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
2289         * rtl.h: Adjust.
2290
2291 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2292
2293         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
2294         to rtx_insn *.
2295         * rtl.h: Adjust.
2296
2297 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2298
2299         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
2300         to rtx_insn *.
2301         * rtl.h: Likewise.
2302
2303 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2304
2305         * except.c (can_nonlocal_goto): Change type of argument to
2306         rtx_insn *.
2307         * rtl.h: Adjust.
2308
2309 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2310
2311         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
2312         * rtl.h: Adjust.
2313
2314 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2315
2316         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
2317         * cfgrtl.c (can_delete_label_p): Adjust.
2318         * rtl.h: likewise.
2319
2320 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2321
2322         * reorg.c (stop_search_p): Change argument to rtx_insn *.
2323
2324 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2325
2326         * except.c (make_reg_eh_region_note): Change argument to
2327         rtx_insn *.
2328         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
2329         * except.h: Adjust.
2330
2331 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2332
2333         * mode-switching.c (commit_mode_sets): Change type of local
2334         variable from rtx to rtx_insn *.
2335
2336 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
2337
2338         * doc/install.texi (--enable-languages): Add missing jit and lto info.
2339         Add ^ to grep command.
2340         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
2341         arg to last gimple_simplify declaration.  Add missing gimple_build
2342         declaration for built-in function case with four tree args.
2343
2344 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
2345             Szabolcs Nagy  <szabolcs.nagy@arm.com>
2346
2347         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
2348         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
2349         (GNU_USER_DYNAMIC_LINKERN32): Update.
2350
2351 2015-05-08  Richard Biener  <rguenther@suse.de>
2352
2353         PR tree-optimization/66036
2354         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
2355         Handle strided group loads.
2356         (vect_verify_datarefs_alignment): Likewise.
2357         (vect_enhance_data_refs_alignment): Likewise.
2358         (vect_analyze_group_access): Likewise.
2359         (vect_analyze_data_ref_access): Likewise.
2360         (vect_analyze_data_ref_accesses): Likewise.
2361         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
2362         (vectorizable_load): Likewise.
2363
2364 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
2365
2366         * config/rs6000/rs6000.md: Require operand inequality in one
2367         of the peepholes.
2368
2369 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
2370             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2371
2372         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
2373         from (set ...).
2374         * config/rx/rx.md (movdi, movdf): Likewise.
2375         Likewise for define_peephole2s.
2376
2377 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
2378
2379         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
2380         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
2381         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
2382         vtst_u64): Rewrite using gcc vector extensions.
2383
2384 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
2385
2386         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
2387         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
2388
2389 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
2390
2391         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
2392
2393 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
2394
2395         * config/glibc-stdint.h (OPTION_MUSL): Define.
2396         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
2397         Change the definition based on OPTION_MUSL for 64 bit targets.
2398         * config/linux.h (OPTION_MUSL): Redefine.
2399         * config/alpha/linux.h (OPTION_MUSL): Redefine.
2400         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
2401         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
2402
2403 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
2404             Szabolcs Nagy  <szabolcs.nagy@arm.com>
2405
2406         * config.gcc (LIBC_MUSL): New tm_defines macro.
2407         * config/linux.h (OPTION_MUSL): Define.
2408         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
2409         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
2410         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
2411         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
2412         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
2413         * config/linux.opt (mmusl): New option.
2414         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
2415         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
2416         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
2417         * configure: Regenerate.
2418
2419 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
2420             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2421
2422         PR target/48904
2423         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
2424         * config/i386/knetbsd-gnu64.h: New file.
2425
2426 2015-05-08  Marek Polacek  <polacek@redhat.com>
2427
2428         PR c/64918
2429         * doc/invoke.texi: Document -Woverride-init-side-effects.
2430
2431 2015-05-07  Marek Polacek  <polacek@redhat.com>
2432
2433         PR c/65179
2434         * doc/invoke.texi: Document -Wshift-negative-value.
2435
2436 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
2437
2438         * gcov-tool.c (do_merge): Refactore to remove int ret.
2439         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
2440         !type == FUNC to type != FUNC.
2441         * reload.h (struct target_reload): Changee to type of
2442         x_spill_indirect_levels from bool to unsigned char.
2443
2444 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
2445
2446         * rtl.h (always_void_p): New function.
2447         * gengenrtl.c (always_void_p): Likewise.
2448         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
2449         with code foo are always VOIDmode.
2450         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
2451         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
2452         compare-elim.c, config/aarch64/aarch64.c,
2453         config/aarch64/aarch64.md, config/alpha/alpha.c,
2454         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
2455         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
2456         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
2457         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
2458         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
2459         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
2460         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
2461         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
2462         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
2463         config/ia64/vect.md, config/iq2000/iq2000.c,
2464         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
2465         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
2466         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
2467         config/mep/mep.c, config/microblaze/microblaze.c,
2468         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
2469         config/mn10300/mn10300.c, config/msp430/msp430.c,
2470         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
2471         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
2472         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
2473         config/rs6000/altivec.md, config/rs6000/rs6000.c,
2474         config/rs6000/rs6000.md, config/rs6000/vector.md,
2475         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
2476         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
2477         config/sh/sh.md, config/sh/sh_treg_combine.cc,
2478         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
2479         config/spu/spu.md, config/stormy16/stormy16.c,
2480         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
2481         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
2482         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
2483         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
2484         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
2485         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
2486         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
2487         var-tracking.c: Update calls accordingly.
2488
2489 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
2490
2491         PR middle-end/192
2492         PR middle-end/54303
2493         * varasm.c (function_mergeable_rodata_prefix): New function.
2494         (mergeable_string_section): Use it.
2495         (mergeable_constant_section): Use it.
2496
2497 2015-05-07  Jeff Law  <law@redhat.com>
2498
2499         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
2500         simplifier to narrow arithmetic.
2501         * generic-match-head.c: (types_match, single_use): New functions.
2502         * gimple-match-head.c: (types_match, single_use): New functions.
2503
2504 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
2505
2506         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
2507         rtx type.
2508
2509 2015-05-07  Richard Biener  <rguenther@suse.de>
2510
2511         PR tree-optimization/66002
2512         * passes.def: Schedule another pass_merge_phi after ifcombine, right
2513         before phiopt.
2514
2515 2015-05-07  Marek Polacek  <polacek@redhat.com>
2516             Martin Uecker  <uecker@eecs.berkeley.edu>
2517
2518         * doc/invoke.texi: Document -fsanitize=bounds-strict.
2519         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
2520         into SANITIZE_NONDEFAULT.
2521         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
2522
2523 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
2524
2525         PR target/66015
2526         * config/alpha/alpha.c (alpha_override_options_after_change): New.
2527         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
2528         (alpha_override_options): Move align_loops, align_jumps and
2529         align_functions handling into alpha_override_options_after_change.
2530
2531 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
2532             Chris Jones  <chrisj@nvidia.com>
2533             Joshua Conner  <jconner@nvidia.com>
2534
2535         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
2536         linking of crtfastmath.o.
2537         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
2538
2539 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
2540
2541         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
2542         (cstore<mode>4_unsigned_imm): New expander.
2543         (cstore<mode>4): Remove empty constraint strings.  Use the new
2544         expanders.
2545
2546 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
2547
2548         PR target/64208
2549         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
2550         alternatives.
2551
2552 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
2553
2554         * config/aarch64/geniterators.sh: Use standard BRE in sed.
2555
2556 2015-05-06  Alan Modra  <amodra@gmail.com>
2557
2558         PR target/66033
2559         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
2560         (UNSPEC_NOP): Define.
2561         (reload_vsx_from_gpr<mode>): Add missing DONE.
2562         (reload_gpr_from_vsx<mode>): Likewise.
2563         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
2564         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
2565
2566 2015-05-06  Christian Bruel  <christian.bruel@st.com>
2567
2568         PR target/66015
2569         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
2570         align_jumps, align_functions into aarch64_override_options_after_change.
2571
2572 2015-05-06  Richard Biener  <rguenther@suse.de>
2573
2574         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
2575         vect_transform_slp_perm_load to check if we support a permutation
2576         for basic-block vectorization.
2577
2578 2015-05-06  Nick Clifton  <nickc@redhat.com>
2579
2580         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
2581         used, even if it is not being used as a frame pointer.
2582
2583 2015-05-05  Jason Merrill  <jason@redhat.com>
2584
2585         * dwarf2out.c (gen_member_die): Don't emit anything for an
2586         anonymous class constructor.
2587
2588 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
2589
2590         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
2591         that it reflects the block structure.
2592         (afdo_propagate_edge): Likewise.
2593         (afdo_calculate_branch_prob): Likewise.
2594         (afdo_annotate_cfg): Likewise.
2595         * cfgcleanup.c (equal_different_set_p): Likewise.
2596         (try_crossjump_to_edge): Likewise.
2597         * cgraph.c (cgraph_node::verify_node): Likewise.
2598         * cgraphunit.c (expand_all_functions): Likewise.
2599         * config/i386/i386.c (ix86_expand_copysign): Likewise.
2600         (exact_dependency_1): Likewise.
2601         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
2602         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
2603         * gensupport.c (process_define_subst): Likewise.
2604         * lto-wrapper.c (merge_and_complain): Likewise.
2605         * tree-if-conv.c (if_convertible_bb_p): Likewise.
2606         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
2607         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
2608         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
2609         * tree-vect-loop.c (vectorizable_reduction): Likewise.
2610         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
2611         * tree-vect-stmts.c (vectorizable_shift): Likewise.
2612         * tree-vrp.c (vrp_finalize): Likewise.
2613         * tree.c (variably_modified_type_p): Likewise.
2614
2615 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
2616
2617         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
2618         on darwin12 and later.
2619         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
2620         file to pass -rdynamic on darwin12 and later.
2621         * config/darwin.opt (rdynamic): Add.
2622
2623 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
2624
2625         * doc/extend.texi (C Extensions): Update menu for moved Variable
2626         Attributes and Type Attributes sections.
2627
2628 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
2629
2630         PR target/65990
2631         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
2632         if rep_8byte stringop strategy was specified for 32-bit target.
2633
2634 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
2635
2636         PR target/65915
2637         * config/i386/i386.md (vector convert to float spltiter): Check for
2638         xmm16+, when splitting scalar float conversion.
2639         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
2640
2641 2015-05-05  Nick Clifton  <nickc@redhat.com>
2642
2643         * config/msp430/msp430-opts.h (enum msp430_regions): New.
2644         * config/msp430/msp430.c (msp430_override_options): Complain if
2645         -mcode-region or -mdata-region is used on a non MSP430X.
2646         (msp430_section_attr): New function.  Checks lower, upper and
2647         either attributes.
2648         (msp430_attribute_table): Add lower, upper and either.
2649         (gen_prefix): New function.  Generates a prefix for a section
2650         name.
2651         (msp430_select_section): New function - handles the choice of
2652         section for an object.  Takes into account memory region
2653         attributes and options.
2654         (msp430_function_section): Use gen_prefix.
2655         (TARGET_SECTION_TYPE_FLAGS): Define.
2656         (msp430_section_type_flags): New function.
2657         (TARGET_ASM_UNIQUE_SECTION): Define.
2658         (msp430_unique_section): New function.
2659         (msp430_output_aligned_decl_common): New function.
2660         (msp430_do_not_relax_short_jumps): New function.
2661         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
2662         Define.
2663         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
2664         * config/msp430/msp430-protos.h
2665         (msp430_do_not_relax_short_jumps): New prototype.
2666         (msp430_output_aligned_decl_common): New prototype.
2667         * config/msp430/msp430.md (length): New attribute.
2668         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
2669         then use a long code sequence for short jumps.
2670         * config/msp430/msp430.opt (mcode-region): New.
2671         (mdata-region): New.
2672         * doc/invoke.texi: Document new options.
2673         * doc/extend.texi: Document new attributes.
2674
2675 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
2676
2677         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
2678         (tune_params): Add field branch_costs.
2679         (aarch64_branch_cost): Declare.
2680         * gcc/config/aarch64.c (generic_branch_cost): New.
2681         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
2682         (cortexa53_tunings): Likewise.
2683         (cortexa57_tunings): Likewise.
2684         (thunderx_tunings): Likewise.
2685         (xgene1_tunings): Likewise.
2686         (aarch64_branch_cost): Define.
2687         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
2688
2689 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
2690
2691         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
2692         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
2693         * config/i386/i386.md: Ditto.
2694         * config/i386/winnt.c: Ditto.
2695
2696 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
2697
2698         * doc/extend.texi (__atomic Builtins): Move implementation details
2699         to the end of the description, rewrite opening paragraphs, state
2700         difference with __sync builtins, state C11/C++11 assumptions,
2701         weaken itemized descriptions, add explanation of memory model
2702         behaviour, expand description of compare-exchange, simplify text.
2703
2704 2015-05-05  Renlin Li  <renlin.li@arm.com>
2705
2706         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
2707
2708 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
2709
2710         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
2711         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
2712         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
2713         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
2714         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
2715         * configure: Regenerate.
2716         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
2717         * doc/install.texi (aarch64*-*-*): Document new
2718         --enable-fix-cortex-a53-843419 option.
2719         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
2720         and -mno-fix-cortex-a53-843419 options.
2721
2722 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
2723
2724         PR target/65871
2725         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
2726
2727 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
2728
2729         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
2730         fix overactive TYPE_MIN_VALUE check and add FIXME for type
2731         compatibility problems.
2732
2733 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
2734
2735         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
2736         constraints.
2737         (cbranchsi4_reg): New.
2738         * config/microblaze/microblaze.c
2739         (microblaze_expand_conditional_branch_reg): New.
2740         * config/microblaze/microblaze-protos.h
2741         (microblaze_expand_conditional_branch_reg): New prototype.
2742
2743 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
2744
2745         * config/microblaze/microblaze.md (peephole2): New.
2746
2747 2015-05-04  Jeff Law  <law@redhat.com>
2748
2749         Revert:
2750         2015-05-04  Jeff Law  <law@redhat.com>
2751
2752         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
2753         simplifier to narrow arithmetic.
2754         * generic-match-head.c: (types_match, single_use): New functions.
2755         * gimple-match-head.c: (types_match, single_use): New functions.
2756
2757 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
2758
2759         PR target/65987
2760         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
2761         (split_branches): Likewise.
2762
2763 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
2764
2765         * common.opt (fdelete-null-pointer-checks): Init to -1.
2766         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
2767         override flag_delete_null_pointer_checks default.
2768         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
2769         behavior re address zero.  Better document target-specific behavior.
2770         (-fisolate-errneous-paths-dereference): Mention relationship to
2771         -fdelete-null-pointer-checks.
2772
2773 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
2774
2775         PR tree-optimization/65984
2776         * ubsan.c: Include tree-cfg.h.
2777         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
2778         stmt_could_throw_p test, rename can_throw variable to ends_bb.
2779
2780 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
2781
2782         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
2783         to CONST_DOUBLE_P predicate.
2784         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
2785         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
2786         allow only operands that satisfy standard_sse_constant_p predicate.
2787         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
2788         to CONST_DOUBLE_P predicate.
2789
2790 2015-05-04  Jeff Law  <law@redhat.com>
2791
2792         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
2793         simplifier to narrow arithmetic.
2794         * generic-match-head.c: (types_match, single_use): New functions.
2795         * gimple-match-head.c: (types_match, single_use): New functions.
2796
2797 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
2798
2799         * config/arm/arm.c: Restore bootstrap.
2800
2801 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
2802
2803         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
2804         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
2805         as CONST_WIDE_INT, not CONST_DOUBLE.
2806         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
2807         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
2808         (ix86_find_base_term): Do not check for CONST_DOUBLE.
2809         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
2810         (ix86_build_signbit_mask): Rewrite using wide ints.
2811         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
2812         (ix86_rtx_costs): Handle CONST_WIDE_INT.
2813         (find_constant): Ditto.
2814         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
2815         using gen_int_mode.
2816         * config/i386/predicates.md (x86_64_immediate_operand)
2817         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
2818         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
2819         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
2820         (const0_operand): Also match const_wide_int.
2821         (constm1_operand): Ditto.
2822         (const1_operand): Ditto.
2823
2824 2015-05-04  Richard Biener  <rguenther@suse.de>
2825
2826         PR tree-optimization/65965
2827         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
2828         store groups at gaps.
2829
2830 2015-05-04  Richard Biener  <rguenther@suse.de>
2831
2832         PR tree-optimization/65935
2833         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
2834         then make sure to apply that swapping to the IL.
2835
2836 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
2837
2838         * Makefile.in (PATCHLEVEL_c): New variable.
2839         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
2840         expand the same way as if DEVPHASE_c was non-empty.
2841
2842 2015-05-04  Kai Tietz  <ktietz@redhat.com>
2843
2844         PR target/65559
2845         * lto-wrapper.c (run_gcc): Open filename
2846         in binary-mode.
2847
2848 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
2849
2850         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
2851         sections up in file, to immediately after the Function Attributes
2852         section.
2853
2854 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
2855
2856         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
2857
2858 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2859
2860         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
2861         (insert_partition_copy_on_edge): Adjust.
2862         (insert_rtx_to_part_on_edge): Likewise.
2863         (insert_part_to_rtx_on_edge): Likewise.
2864
2865 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2866
2867         * function.c (set_return_jump_label): Change type of argument to
2868         rtx_insn *.
2869         * function.h (set_return_jump_label): Adjust.
2870
2871 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2872
2873         * reload.h (struct reg_equivs_t): Change type of init to
2874         rtx_insn *.
2875         * ira.c (fix_reg_equiv_init): Adjust.
2876         * reload1.c (eliminate_regs_1): Likewise.
2877         (init_eliminable_invariants): Likewise.
2878
2879 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2880
2881         * cselib.c (fp_setter_insn): Take a rtx_insn *.
2882         * cselib.h (fp_setter_insn): Adjust.
2883
2884 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2885
2886         * recog.c (struct validate_replace_src_data): Change type of
2887         insn field to rtx_insn *.
2888         (validate_replace_src_group): Change type of argument to rtx_insn *.
2889         * recog.h (validate_replace_src_group): Adjust.
2890
2891 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2892
2893         * haifa-sched.c: Change the type of some variables to rtx_insn *.
2894         * sched-deps.c: Likewise.
2895         * sched-int.h: Likewise.
2896         * sched-rgn.c: Likewise.
2897         * sel-sched.c: Likewise.
2898
2899 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2900
2901         to rtx_insn *.
2902         * config/i386/i386.c: Change the type of some arguments to
2903         rtx_insn *.
2904         * config/arm/arm.c: Likewise.
2905
2906 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2907
2908         * lra-constraints.c: Change type of some arguments to rtx_insn *.
2909
2910 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2911
2912         * regcprop.c (kill_autoinc_value): Change type of argument to
2913         rtx_insn *.
2914
2915 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2916
2917         * genrecog.c (print_subroutine): Adjust.
2918         * recog.c (get_bool_attr_mask_uncached): Likewise.
2919         * recog.h (struct recog_data_d): Change the type of insn to
2920         rtx_insn *.
2921
2922 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2923
2924         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
2925
2926 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2927
2928         * df-problems.c (df_set_note): Change type of argument to
2929         rtx_insn *.
2930
2931 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2932
2933         * builtins.c (expand_builtin_trap): Change type of local
2934         variable to rtx_insn *.
2935         (add_sched_insns_for_speculation): Likewise.
2936         (ix86_emit_save_regs): Likewise.
2937         (get_scratch_register_on_entry): Likewise.
2938         (ix86_emit_restore_reg_using_pop): Likewise.
2939         (ix86_emit_leave): Likewise.
2940         (ix86_emit_restore_regs_using_mov): Likewise.
2941         (ix86_expand_epilogue): Likewise.
2942         Likewise.
2943         (rl78_alloc_physical_registers_umul): Likewise.
2944         * cselib.c (discard_useless_locs): Likewise.
2945         (cselib_invalidate_regno): Likewise.
2946         (cselib_invalidate_mem): Likewise.
2947         * function.c (expand_function_start): Likewise.
2948         (emit_use_return_register_into_block): Likewise.
2949         * gcse.c: Likewise.
2950         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
2951         * ifcvt.c (noce_get_alt_condition): Likewise.
2952         * loop-doloop.c (doloop_condition_get): Likewise.
2953         * lra-constraints.c (inherit_in_ebb): Likewise.
2954         * modulo-sched.c (sms_schedule_by_order): Likewise.
2955         * recog.c (next_insn_tests_no_inequality): Likewise.
2956         * reorg.c (emit_delay_sequence): Likewise.
2957         (update_reg_dead_notes): Likewise.
2958         (fix_reg_dead_note): Likewise.
2959         (fill_slots_from_thread): Likewise.
2960         (delete_computation): Likewise.
2961
2962 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
2963
2964         * doc/extend.texi (Variable Attributes): Add menu and proper
2965         @nodes to subsections.  Move Microsoft Windows attributes to
2966         their own subsection.
2967         (Type Attributes): Reorganize introduction to remove duplicate
2968         list of attributes.  Add menu and proper @nodes to subsections.
2969         Alphabetize the main table of common attributes.
2970
2971 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
2972
2973         * match.pd: New simplification patterns.
2974         (x + (x & 1))  -> ((x + 1) & ~1)
2975         (x & ~(x & y)) -> ((x & ~y))
2976         (x | ~(x | y)) -> ((x | ~y))
2977
2978 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2979
2980         * target.def (attribute_table): Mention that struct attribute_spec
2981         is defined in tree-core.h rather than tree.h
2982         * doc/tm.texi: Regenerate.
2983
2984 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
2985
2986         * genrecog.c (test): Rename to rtx_test.  Update rest of file
2987         accordingly.
2988
2989 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
2990
2991         PR translation/65959
2992         * params.h (DEFPARAM): Rename msgid to nocmsgid.
2993
2994 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
2995
2996         * gcc/config/aarch64/aarch64-protos.h (tune_params):
2997         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
2998         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
2999         Return value depending on target.
3000         (generic_tunings): Initialize new target settings.
3001         (cortexa53_tunings): Likewise.
3002         (cortexa57_tunings): Likewise.
3003         (thunderx_tunings): Likewise.
3004         (xgene1_tunings): Likewise.
3005
3006 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
3007
3008         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
3009         Make Cortex-A53 shift costs more accurate.
3010
3011 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3012
3013         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
3014         UNSIGNED_FLOAT.
3015
3016 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
3017
3018         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
3019         Calculate cost of op0 and op1 in PLUS and MINUS cases.
3020
3021 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3022
3023         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
3024         Add cost of op0 in the compare-with-fpzero case.
3025
3026 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
3027
3028         * builtins.c (fold_builtin_1): Remove spurious second
3029         semicolon.
3030         * cgraph.h (symtab_node::get_availability): Likewise.
3031         * opts.c (common_handle_option): Remove spurious second semicolon.
3032         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
3033         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
3034
3035 2015-04-30  Caroline Tice  <cmtice@google.com>
3036
3037         PR gcov-profile/65929
3038         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
3039         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
3040         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
3041         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
3042         * doc/tm.texi: Regenerate.
3043         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
3044         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
3045         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
3046         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
3047
3048 2015-04-30  Marek Polacek  <polacek@redhat.com>
3049
3050         * varasm.c (handle_cache_entry): Fix logic.
3051
3052 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3053
3054         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
3055         (*extrsi5_insn_uxtw_alt): Likewise.
3056         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
3057         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
3058         operations.
3059
3060 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3061
3062         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
3063         fabd in ABS case.
3064
3065 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3066
3067         * config/aarch64/aarch64.md
3068         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
3069         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
3070         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
3071         appropriately.  Handle alternative EON form.
3072
3073 2015-04-30  Renlin Li  <renlin.li@arm.com>
3074
3075         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
3076         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
3077
3078 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
3079
3080         PR ipa/65873
3081         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
3082         -fstrict-aliasing boundaries.
3083
3084 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3085
3086         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
3087         and [SU]MNEGL patterns.
3088
3089 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3090
3091         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
3092         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
3093         combined arithmetic-shift ops.  Properly handle all shift and extend
3094         operations that can occur in combination with PLUS/MINUS.
3095         Rename maybe_fma to compound_p.
3096         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
3097         arithmetic and shift operations.
3098
3099 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3100
3101         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
3102         rather than arith_shift cost when costing ADD/MINUS of an
3103         extended value.
3104
3105 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
3106
3107         PR lto/65948
3108         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
3109         to itself.
3110
3111 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
3112
3113         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
3114         are for the same position.
3115
3116 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
3117
3118         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
3119         vectorize_loops.
3120         (vectorize_loops): Use it.
3121
3122 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
3123
3124         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
3125         for aggregate types.
3126         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
3127         type to be non_ODR.
3128         * tree.c (need_assembler_name_p): Compute mangled name for
3129         non-fundamental types and integer types.
3130
3131 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
3132
3133         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
3134         manual swaps.
3135         * expr.c (expand_expr_real_2): Likewise.
3136
3137 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
3138
3139         * tree.c (build_common_builtin_nodes): Do not build
3140         __builtin_alloca_with_align as equivalent of library alloca.
3141
3142 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
3143
3144         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
3145         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
3146         bugus variants.
3147         * tree.c: Include print-tree.h and ipa-utils.h
3148         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
3149         (free_lang_data_in_cgraph): Call verify_type.
3150         (verify_type_variant): New function.
3151         (verify_type): New function.
3152         * tree.h (verify_type): Declare.
3153
3154 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
3155
3156         * config/mips/mips-cpus.def: (mips4): Change default processor
3157         from PROCESSOR_R8000 to PROCESSOR_R10000.
3158
3159 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
3160
3161         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
3162         la/jalr instead of jal.
3163
3164 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
3165
3166         PR target/65871
3167         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
3168         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
3169         (setcc+movzbl peephole2): Check also clobbered reg.
3170         (setcc+andl peephole2): Ditto.
3171
3172 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
3173
3174         PR libgomp/65099
3175         * config/nvptx/mkoffload.c (target_ilp32): New variable.
3176         (main): Set it depending on "-foffload-abi=[...]".
3177         (compile_native, main): Use it to pass "-m32" or "-m64" to the
3178         compiler.
3179
3180 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
3181
3182         PR target/65770
3183         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
3184         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
3185         Flip lane index back at assembly time for bigendian.
3186
3187 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
3188
3189         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
3190         * gimplify.c (gimplify_omp_workshare): Use it.
3191
3192 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
3193
3194         * Makefile.in (build/genrecog.o): Depend on inchash.h.
3195         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
3196         build/inchash.o
3197         * genrecog.c: Rewrite most of the code except for the third page.
3198
3199 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
3200
3201         * inchash.h, inchash.c: Include bconfig.h for build objects.
3202         * Makefile.in (build/inchash.o): New rule.
3203
3204 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
3205
3206         PR target/65924
3207         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
3208         number in type attribute expression.
3209
3210 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
3211
3212         * loop-iv.c (canon_condition): Generalize to all types of integer
3213         constant.
3214
3215 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
3216
3217         * gimple-walk.c: Prune duplicate or unneeded includes.
3218         (walk_gimple_asm): Only call parse_input_constraint or
3219         parse_output_constraint if their findings are used.
3220         Honour parse_input_constraint and parse_output_constraint
3221         result.
3222
3223 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
3224
3225         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
3226
3227 2015-04-29  Tom de Vries  <tom@codesourcery.com>
3228
3229         PR tree-optimization/65893
3230         * passes.def (pass_all_optimizations): Move pass_stdarg to after
3231         pass_dce.
3232
3233 2015-04-29  Richard Biener  <rguenther@suse.de>
3234
3235         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
3236         compute GROUP_SIZE for basic-block SLP.
3237         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
3238         take into account gaps.
3239         (vect_get_mask_element): Properly reject references to previous
3240         vectors.
3241         (vect_transform_slp_perm_load): Likewise.
3242
3243 2015-04-29  Christian Bruel  <christian.bruel@st.com>
3244
3245         PR target/64835
3246         * config/i386/i386.c (ix86_default_align): New function.
3247         (ix86_override_options_after_change): Call ix86_default_align.
3248         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
3249         (ix86_override_options_after_change): New function.
3250
3251 2015-04-28  Jeff Law  <law@redhat.com>
3252
3253         * tree-ssa-dom.c (record_equality); Fix comment typos.
3254
3255 2015-04-28  Tom de Vries  <tom@codesourcery.com>
3256
3257         PR tree-optimization/65887
3258         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
3259
3260 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
3261
3262         * doc/extend.texi (Declaring Attributes of Functions): Split into
3263         subsections by target.  Alphabetize the table of common attributes.
3264         Rewrite some of the introductory text to reflect the new structure.
3265         Update some cross-references to point to the new subsections.
3266         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
3267         duplicate copies in the discussion of function, label, and type
3268         attributes.
3269
3270 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
3271
3272         PR bootstrap/65910
3273         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
3274
3275 2015-04-28  Jason Merrill  <jason@redhat.com>
3276
3277         PR c++/65734
3278         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
3279         (finalize_type_size): Respect TYPE_USER_ALIGN.
3280         (layout_type) [ARRAY_TYPE]: Likewise.
3281
3282 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
3283
3284         * config/arm/arm.md (*arm_movt): Fix type attribute.
3285         (*cmpsi_shiftsi): Likewise.
3286         (*cmpsi_shiftsi_swp): Likewise.
3287         (*movsicc_insn): Likewise.
3288         (*cond_move): Likewise.
3289         (*if_plus_move): Likewise.
3290         (*if_move_plus): Likewise.
3291         (*if_arith_move): Likewise.
3292         (*if_move_arith): Likewise.
3293         (*if_shift_move): Likewise.
3294         (*if_move_shift): Likewise.
3295         (*arm_movtas_ze): Likewise.
3296         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
3297         redundancy and type attribute.
3298         (*thumb2_movsi_insn): Fix type attribute.
3299         (*thumb2_addsi_short): Likewise.
3300         (thumb2_addsi3_compare0): Likewise.
3301         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
3302         attributes accordingly.
3303
3304 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
3305
3306         PR other/65911
3307         * function.c (pad_to_arg_alignment): Add parentheses.
3308
3309 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
3310
3311         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
3312         libgcc/config/frv/elf-lib.h.
3313
3314 2015-04-28  Tom de Vries  <tom@codesourcery.com>
3315
3316         * tree-call-cdce.c: Fix example in header comment.
3317
3318 2015-04-28  Richard Biener  <rguenther@suse.de>
3319
3320         PR tree-optimization/62283
3321         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
3322         fails fatally and we are vectorizing a basic-block simply
3323         cause the child to be constructed piecewise.
3324         (vect_analyze_slp_cost_1): Adjust.
3325         (vect_detect_hybrid_slp_stmts): Likewise.
3326         (vect_bb_slp_scalar_cost): Likewise.
3327         (vect_get_constant_vectors): For piecewise constructed
3328         constants place them after the last def.
3329         (vect_get_slp_defs): Adjust.
3330         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
3331         externals for basic-block vectorization.
3332
3333 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3334
3335         PR target/63503
3336         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
3337         aarch64-*-*.
3338         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
3339         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
3340         (AARCH64_TUNE_FMA_STEERING): Likewise.
3341         * config/aarch64/aarch64-cores.def: Set
3342         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
3343         FMUL/FMADD instructions.
3344         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
3345         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
3346         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
3347         * config/aarch64/cortex-a57-fma-steering.h: New file.
3348         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
3349
3350 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
3351
3352         * gensupport.c (std_preds): Add missing codes to address_operand entry.
3353
3354 2015-04-28  Richard Biener  <rguenther@suse.de>
3355
3356         PR tree-optimization/65851
3357         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
3358         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
3359         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
3360         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
3361         (ccp_visit_phi_node): Adjust.
3362         (evaluate_stmt): For simplifications to SSA names return its
3363         lattice value if that isn't VARYING.  Return immediately when
3364         simplified to a constant.
3365         (visit_assignment): Adjust.
3366         (ccp_visit_stmt): Likewise.
3367
3368 2015-04-28  Tom de Vries  <tom@codesourcery.com>
3369
3370         PR tree-optimization/65818
3371         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
3372         evaluated.
3373
3374 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3375
3376         * calls.c (save_fixed_argument_area): Don't check
3377         ARGS_GROW_DOWNWARD with the preprocessor.
3378         (restore_fixed_argument_area): Likewise.
3379         (mem_overlaps_already_clobbered_arg_p): Likewise.
3380         (check_sibcall_argument_overlap): Likewise.
3381         (expand_call): Likewise.
3382         (emit_library_call_value_1): Likewise.
3383         (store_one_arg): Likewise.
3384         * function.c (assign_parms): Likewise.
3385         (locate_and_pad_parm): Likewise.
3386         (pad_to_arg_alignment): Likewise.
3387         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
3388
3389 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3390
3391         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
3392         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
3393         * calls.c (save_fixed_argument_area): Don't chekc if
3394         ARGS_GROW_DOWNWARD is defined.
3395         (restore_fixed_argument_area): Likewise.
3396         (mem_overlaps_already_clobbered_arg_p): Likewise.
3397         (check_sibcall_argument_overlap): Likewise.
3398         (expand_call): Likewise.
3399         (emit_library_call_value_1): Likewise.
3400         (store_one_arg): Likewise.
3401         * function.c (assign_parms): Likewise.
3402         (locate_and_pad_parm): Likewise.
3403         (pad_to_arg_alignment): Likewise.
3404         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
3405
3406 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3407
3408         * defaults.h (gen_epilogue): New function.
3409         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
3410         defined.
3411         * cfgrtl.c (cfg_layout_finalize): Likewise.
3412         * df-scan.c: Likewise.
3413         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3414         (reposition_prologue_and_epilogue_notes): Likewise.
3415         * reorg.c (find_end_label): Likewise.
3416         * toplev.c: Likewise.
3417
3418 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3419
3420         * bb-reorder.c (HAVE_return): Don't check if its undefined.
3421         * defaults.h (gen_simple_return): New function.
3422         (gen_simple_return): Likewise.
3423         (HAVE_return): Add default definition to false.
3424         (HAVE_simple_return): Likewise.
3425         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
3426         HAVE_return and HAVE_simple_return are defined.
3427         * function.c (gen_return_pattern): Likewise.
3428         (convert_jumps_to_returns): Likewise.
3429         (thread_prologue_and_epilogue_insns): Likewise.
3430         * reorg.c (find_end_label): Likewise.
3431         (dbr_schedule): Likewise.
3432         * shrink-wrap.c: Likewise.
3433         * shrink-wrap.h: Likewise.
3434
3435 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3436
3437         * defaults.h (EPILOGUE_USES): Add default definition of false.
3438         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
3439         * resource.c (init_resource_info): Likewise.
3440
3441 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3442
3443         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
3444         to false.
3445         * dwarf2out.c (field_byte_offset): REmove check if
3446         PCC_BITFIELD_TYPE_MATTERS is defined.
3447         * stor-layout.c (layout_decl): Likewise.
3448         (update_alignment_for_field): Likewise.
3449         (place_field): Likewise.
3450
3451 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3452
3453         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
3454         true.
3455         * regrename.c (check_new_reg_p): Remove check if
3456         HARD_REGNO_RENAME_OK is defined.
3457         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
3458
3459 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3460
3461         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
3462         * cse.c (fold_rtx): Likewise.
3463         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
3464         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
3465         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
3466         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
3467         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
3468         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
3469         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
3470         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
3471         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
3472         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
3473         * Likewise.
3474         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
3475         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
3476         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
3477         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
3478         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
3479         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
3480         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
3481         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
3482         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
3483         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
3484         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
3485         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
3486         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
3487         * doc/tm.texi: Regenerate.
3488         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
3489         either true or false.
3490
3491 2015-04-27  Jeff Law  <law@redhat.com>
3492
3493         PR tree-optimization/65217
3494         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
3495         of them has a single use, make sure it is the LHS of the implied
3496         copy.
3497
3498 2015-04-28  Alan Modra  <amodra@gmail.com>
3499
3500         PR target/65810
3501         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
3502         (offsettable_ok_by_alignment): Use minimum of decl and toc
3503         pointer alignment.  Replace dead code with assertion.
3504         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
3505         case if size exceeds toc pointer alignment.
3506         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
3507         (rs6000_emit_move): Likewise.
3508         * configure.ac: Add linker toc pointer alignment check.
3509         * configure: Regenerate.
3510         * config.in: Regenerate.
3511
3512 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
3513
3514         * config.gcc: Add h8300-*-linux.
3515         * config/h8300/linux.h: New.
3516         * config/h8300/t-linux: New.
3517         * config/h8300/h8300.c (h8300_option_override): Normal mode
3518         is not supported for h8300-*-linux.
3519         (h8300_file_start): Target priority change.
3520         (get_shift_alg): Likewise.
3521         (h8300_shift_need_scratch_p): Likewise.
3522         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
3523         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
3524
3525 2015-04-27  Caroline Tice  <cmtice@google.com>
3526
3527         * final.c (final_scan_insn):  Output cold_function_name as function
3528         type.
3529         * varasm.c (cold_function_name):  Make global.
3530         (assemble_start_function):  Re-set cold_function_name.
3531         (assemble_end_function): Output cold partition size.
3532         * varasm.h (cold_function_name):  Declare global.
3533
3534 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
3535
3536         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
3537         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
3538         constraint.
3539         (*movxi_internal_avx512f): Ditto.
3540         (define_split): Check for xmm16+, when splitting scalar float_extend.
3541         (*extendsfdf2_mixed): Use "v" constraint.
3542         (define_split): Check for xmm16+, when splitting scalar float_truncate.
3543         (*truncdfsf_fast_sse): Use "v" constraint.
3544         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
3545         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
3546         (define_peephole2): Check for xmm16+, when converting scalar
3547         float_truncate.
3548         (define_peephole2): Check for xmm16+, when converting scalar
3549         float_extend.
3550         (*fop_<mode>_comm_mixed): Use "v" constraint.
3551         (*fop_<mode>_comm_sse): Ditto.
3552         (*fop_<mode>_1_mixed): Ditto.
3553         (*sqrt<mode>2_sse): Ditto.
3554         (*ieee_s<ieee_maxmin><mode>3): Ditto.
3555
3556 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3557
3558         * combine.c (simplify_if_then_else): Use std::swap instead
3559         of manually swapping.
3560         (known_cond): Likewise.
3561         (simplify_comparison): Likewise.
3562
3563 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
3564
3565         PR target/64579
3566         * config/rs6000/htm.md: Remove all define_expands.
3567         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
3568         UNSPECV_HTM_TABORTWCI): Remove.
3569         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
3570         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
3571         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
3572         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
3573         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
3574         tabortwci_internal): Remove define_insns.
3575         (tabort<wd>c, tabort<wd>ci): New define_insns.
3576         (tabort): Use gpc_reg_operand.
3577         (tcheck): Remove operand.
3578         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
3579         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
3580         expected value.
3581         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
3582         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
3583         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
3584         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
3585         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
3586         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
3587         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
3588         (tcheck): Remove builtin argument.
3589         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
3590         not TARGET_64BIT.
3591         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
3592         tabortdc and tabortdci builtins when not in 64-bit mode.
3593         Modify code to handle the loss of the HTM define_expands.
3594         Emit code to copy the CR register to TARGET.
3595         (htm_init_builtins): Modify code to handle the loss of the HTM
3596         define_expands.
3597         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
3598         (RS6000_BTC_64BIT): Likewise.
3599         (RS6000_BTC_CR): New macro.
3600         * doc/extend.texi: Update documentation for htm builtins.
3601
3602 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3603
3604         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
3605         of manually swapping.
3606         (simplify_associative_operation): Likewise.
3607         (simplify_binary_operation): Likewise.
3608         (simplify_plus_minus): Likewise.
3609         (simplify_relational_operation): Likewise.
3610         (simplify_ternary_operation): Likewise.
3611
3612 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
3613
3614         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
3615         (xs_hi_nonmemory_operand): Remove error.
3616         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
3617         general_operand rather than xs_hi_general_operand.
3618
3619 2015-04-27  Richard Biener  <rguenther@suse.de>
3620
3621         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
3622         (record_equivalences_from_stmt): Valueize rhs.
3623         (record_equality): Canonicalize x and y order via
3624         tree_swap_operands_p.  Do not swap operands for same loop depth.
3625
3626 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
3627
3628         PR target/65296
3629         PR target/65895
3630         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
3631         Add hint how to use own spec file.
3632
3633 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
3634
3635         PR tree-optimization/65875
3636         * tree-vrp.c (update_value_range): If in is_new case setting
3637         old_vr to VR_VARYING, also set new_vr to it.  Remove
3638         old_vr->type == VR_VARYING test.
3639         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
3640         SSA_PROP_INTERESTING if update_value_range returned true,
3641         but new range is VR_VARYING.
3642
3643 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3644
3645         * combine.c (sign_extend_short_imm): New.
3646         (set_nonzero_bits_and_sign_copies): Use above new function for sign
3647         extension of src short immediate.
3648         (reg_nonzero_bits_for_combine): Likewise for tem.
3649
3650 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3651
3652         * stor-layout.c (self_referential_component_ref_p): New predicate.
3653         (copy_self_referential_tree_r): Use it.
3654         (self_referential_size): Punt for simple operations directly involving
3655         self-referential component references.
3656         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
3657
3658 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3659
3660         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
3661
3662 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
3663
3664         * vec.h (vec): Make splice arguments const.  Update definitions
3665         accordingly.
3666
3667 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
3668
3669         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
3670         alternatives.
3671
3672 2015-04-26  Tom de Vries  <tom@codesourcery.com>
3673
3674         PR tree-optimization/65826
3675         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
3676
3677 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
3678
3679         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
3680         (*madd3<mode>): Ditto.
3681         (*msub4<mode>): Ditto.
3682         (*msub3<mode>): Ditto.
3683         (*nmadd4<mode>): Ditto.
3684         (*nmadd3<mode>): Ditto.
3685         (*nmadd4<mode>_fastmath): Ditto.
3686         (*nmadd3<mode>_fastmath): Ditto.
3687         (*nmsub4<mode>): Ditto.
3688         (*nmsub3<mode>): Ditto.
3689         (*nmsub4<mode>_fastmath): Ditto.
3690         (*nmsub3<mode>_fastmath): Ditto.
3691
3692 2015-04-24  Jason Merrill  <jason@redhat.com>
3693
3694         PR c++/50800
3695         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
3696         down when building TYPE_CANONICAL.
3697         (build_pointer_type_for_mode): Likewise.
3698
3699 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
3700
3701         * genrecog.c (validate_pattern): Check matching constraint refers
3702         to a lower numbered operand.
3703
3704 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3705
3706         PR target/65849
3707         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
3708         save to independent variables use the Save attribute.  This will
3709         allow these options to be modified with the #pragma/attribute
3710         target support.
3711         (-mallow-movmisalign): Likewise.
3712         (-mallow-df-permute): Likewise.
3713         (-msched-groups): Likewise.
3714         (-malways-hint): Likewise.
3715         (-malign-branch-targets): Likewise.
3716         (-mvectorize-builtins): Likewise.
3717         (-msave-toc-indirect): Likewise.
3718
3719         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
3720         can be set via the #pragma/attribute target support.
3721         (rs6000_opt_vars): Likewise.
3722         (rs6000_inner_target_options): If VSX was set, also set
3723         -mno-avoid-indexed-addresses.
3724
3725 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3726
3727         * config/arm/iterators.md (shiftable_ops): Rename to...
3728         (SHIFTABLE_OPS): ... This.  Update use in comments.
3729         (ior_xor): Rename to...
3730         (IOR_XOR): ... This.
3731         (vqh_ops): Rename to...
3732         (VQH_OPS): ... This.
3733         (vqhs_ops): Rename to...
3734         (VQHS_OPS): ... This.
3735         (rshifts): Rename to...
3736         (RSHIFTS): ... This.
3737         (returns): Rename to...
3738         (RETURNS): ... This.
3739         * config/arm/arm.md: Update uses of the above.
3740         * config/arm/neon.md: Likewise.
3741
3742 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3743
3744         * config.host (case ${host}): Add aarch64*-*-linux case.
3745         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
3746         fields to all the cores.
3747         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
3748         Add MCPU_MTUNE_NATIVE_SPECS.
3749         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
3750         field to all extensions.
3751         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
3752         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
3753         Adjust definition of AARCH64_OPT_EXTENSION.
3754         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
3755         (MCPU_MTUNE_NATIVE_SPECS): Define.
3756         * config/aarch64/driver-aarch64.c: New file.
3757         * config/aarch64/x-arch64: New file.
3758         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
3759         -mtune and -march.
3760
3761 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
3762             Wei Mi  <wmi@google.com>
3763
3764         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
3765         * config/i386/i386.c (extract_base_offset_in_addr): New function.
3766         (ix86_operands_ok_for_move_multiple): Ditto.
3767         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
3768         (movlpd/movhpd to movupd peephole2): Ditto.
3769
3770 2015-04-24  Marek Polacek  <polacek@redhat.com>
3771
3772         PR c/61534
3773         * input.h (from_macro_expansion_at): Define.
3774
3775         PR c/63357
3776         * doc/invoke.texi: Update description of -Wlogical-op.
3777
3778 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3779
3780         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
3781         ternary operator in fprintf and harmonize spacing.
3782
3783 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
3784
3785         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
3786         Mark operand1 commutative.
3787
3788 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
3789
3790         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
3791         input operands in memory.
3792         (*vec_concatv2si_sse4_1): Ditto.
3793         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
3794         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
3795         register_operand.
3796         (vec_extract_hi_v32hi): Ditto.
3797         (vec_extract_hi_v64hi): Ditto.
3798         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
3799
3800 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3801             Steven Bosscher <steven@gcc.gnu.org>
3802
3803         PR rtl-optimization/34503
3804         * cprop.c (cprop_reg_p): New.
3805         (hash_scan_set): Use above function to check if register can be
3806         propagated.
3807         (find_avail_set): Return up to two sets, one whose source is a
3808         register and one whose source is a constant.  Sets are returned in an
3809         array passed as parameter rather than as a return value.
3810         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
3811         sets returned by find_avail_set, starting with the one whose source is
3812         a constant. Use cprop_reg_p to check if register can be propagated.
3813         (do_local_cprop): Use cprop_reg_p to check if register can be
3814         propagated.
3815         (implicit_set_cond_p): Likewise.
3816
3817 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
3818
3819         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
3820         (sem_function::equals): IGNORED_NODES parameter is now unused;
3821         update call of equals_private.
3822         (sem_function::equals_private): Do not call equals_wpa; skip
3823         gimple body matching if there is no body.
3824         (sem_function::init): Add logic to hash tthunk info.
3825         (sem_function::parse): Also parse thunks.
3826         * ipa-icf.h (equals_private): Update declaration.
3827
3828 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3829
3830         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
3831         asterisk from name so this can be generated directly.
3832         (*altivec_stvx_<mode>_internal): Likewise.
3833         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
3834         that this is never called during or after reload/lra.
3835         (rs6000_frame_related): Remove split_reg
3836         argument and logic that references it.
3837         (emit_frame_save): Remove last parameter from call to
3838         rs6000_frame_related.
3839         (rs6000_emit_prologue): Remove last parameter from eight calls to
3840         rs6000_frame_related.  Force generation of stvx instruction for
3841         Altivec register saves.  Remove split_reg handling, which is no
3842         longer needed.
3843         (rs6000_emit_epilogue):  Force generation of lvx instruction for
3844         Altivec register restores.
3845
3846 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3847
3848         * config/rs6000/rs6000.opt (mcrypto): Change option description to
3849         match category changes in ISA 2.07B.
3850
3851 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3852
3853         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
3854         iterators.
3855         (cmp_op, cmp_type): New code attributes.
3856         (NEON_VCMP, NEON_VACMP): New int iterators.
3857         (cmp_op_unsp): New int attribute.
3858         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
3859         (neon_vceq<mode>): Delete.
3860         (neon_vc<cmp_op><mode>_insn): New pattern.
3861         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
3862         (neon_vcgeu<mode>): Delete.
3863         (neon_vcle<mode>): Likewise.
3864         (neon_vclt<mode>: Likewise.
3865         (neon_vcage<mode>): Likewise.
3866         (neon_vcagt<mode>): Likewise.
3867         (neon_vca<cmp_op><mode>): New define_expand.
3868         (neon_vca<cmp_op><mode>_insn): New pattern.
3869         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
3870
3871 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
3872
3873         * tree.h (attribute_value_equal): Declare.
3874         * tree.c (attribute_value_equal): Export.
3875
3876 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
3877
3878         * ipa-icf.c (sem_item::compare_attributes): New function.
3879         (sem_item::compare_referenced_symbol_properties): Compare variable
3880         attributes.
3881         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
3882         (sem_function::param_used_p): New function.
3883         (sem_function::equals_wpa): Fix attribute comparsion; match
3884         parameter type codes; do not compare paremter flags when
3885         they are not used; compare edge flags; compare indirect calls.
3886         (sem_item::update_hash_by_addr_refs): Hash reference type.
3887         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
3888         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
3889         reference use type.
3890         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
3891         * ipa-icf.h (compare_attributes, param_used_p): Declare.
3892
3893 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
3894
3895         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
3896         cleanup.
3897         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
3898         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
3899         (sem_item::compare_referenced_symbol_properties): New.
3900         (sem_item::hash_referenced_symbol_properties): New.
3901         (sem_item::compare_cgraph_references): Rename to ...
3902         (sem_item::compare_symbol_references): ... this one; use
3903         compare_referenced_symbol_properties.
3904         (sem_function::equals_wpa): Do not compare
3905         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
3906         DECL_IS_OPERATOR_NEW; compare pointer sizes.
3907         (sem_item::update_hash_by_addr_refs): Call
3908         hash_referenced_symbol_properties.
3909         (sem_item::update_hash_by_local_refs): Cleanup.
3910         (sem_function::merge): Do not mix up symbol properties.
3911         (sem_variable::equals_wpa): Use compare_symbol_references.
3912         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
3913         (sem_item::hash_referenced_symbol_properties): New.
3914         (sem_item::compare_symbol_references): New.
3915         (sem_item::compare_cgraph_references): Remove.
3916
3917 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
3918
3919         PR target/26702
3920         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
3921         Emit size of local.
3922
3923 2015-04-23  Nick Clifton  <nickc@redhat.com>
3924
3925         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
3926         ATTRIBUTE_UNUSED to x parameter.
3927         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
3928
3929 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3930
3931         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
3932         TARGET_CRYPTO to TARGET_P8_VECTOR>
3933         (crypto_vpermxor_<mode>): Likewise.
3934         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
3935         (BU_CRYPTO_3A): Likewise.
3936         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
3937         (BU_CRYPTO_OVERLOAD_3A): New #define.
3938         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
3939         (VPMSUMH): Likewise.
3940         (VPMSUMW): Likewise.
3941         (VPMSUMD): Likewise.
3942         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
3943         (VPERMXOR_V4SI): Likewise.
3944         (VPERMXOR_V8HI): Likewise.
3945         (VPERMXOR_V16QI): Likewise.
3946         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
3947         BU_CRYPTO_OVERLOAD_2A.
3948         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
3949         BU_CRYPTO_OVERLOAD_3A.
3950         * config/rs6000/rs6000.opt (mcrypto): Change description of
3951         option.
3952
3953 2015-04-23  Richard Biener  <rguenther@suse.de>
3954
3955         * passes.def: Remove copy propagation passes run directly after CCP.
3956         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
3957         SSA names.
3958         (ccp_visit_phi_node): Rework to handle first executable edge
3959         specially.
3960
3961 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
3962
3963         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
3964         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
3965         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
3966         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
3967         (thumb_legimitimize_reload_address): Remove.
3968         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
3969         Remove.
3970         (thumb_legimitimize_reload_address): Remove.
3971
3972 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3973
3974         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
3975
3976 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3977
3978         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
3979         MAX_LDM_STM_OPS.
3980         (store_multiple): Likewise.
3981
3982 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3983
3984         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
3985         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
3986         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
3987         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
3988         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
3989         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
3990         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
3991         Specify issue_rate value.
3992         (arm_issue_rate): Look up issue rate from tuning structs. Remove
3993         large switch statement.
3994         (arm_marvell_pj4_tune): New struct.
3995         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
3996         struct.
3997
3998 2015-04-23  Richard Biener  <rguenther@suse.de>
3999
4000         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
4001         (vect_find_last_store_in_slp_instance): Rename to ...
4002         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
4003         (vect_analyze_slp_cost_1): Use vector_load for constant defs
4004         and vec_construct for external defs when estimating prologue cost.
4005         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
4006         Compute costs here only when vectorizing loops.
4007         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
4008         have been determined.
4009         (vect_schedule_slp_instance): Simplify vectorized code placement
4010         and prepare for in-BB external defs.
4011         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
4012         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
4013         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
4014         guard.
4015         (vect_model_load_cost): Likewise.
4016         (vectorizable_store): Instead add it here.
4017         (vectorizable_load): Likewise.
4018         (vect_is_simple_use): Dump def type textually.
4019
4020 2015-04-23  Richard Biener  <rguenther@suse.de>
4021
4022         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
4023         * cfgloop.c (verify_loop_structure): Verify the root loop node.
4024         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
4025         instead of get_eh_region_from_lp_number.
4026         * loop-init.c (fix_loop_structure): If we removed a loop, reset
4027         the SCEV cache.
4028
4029 2015-04-23  Anton Blanchard  <anton@samba.org>
4030
4031         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
4032         need for -mprofile-kernel to save LR to stack.
4033
4034 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4035
4036         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
4037         adjustments.
4038         (insn_is_swappable_p): Return 1 for a convert from double to
4039         single precision when all of its uses are splats of BE element
4040         zero.
4041
4042 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
4043
4044         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
4045
4046 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4047
4048         PR target/65456
4049         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
4050         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
4051         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
4052         option.
4053         (rs6000_builtin_mask_for_load): Return 0 for targets with
4054         efficient unaligned VSX accesses so that the vectorizer will use
4055         direct unaligned loads.
4056         (rs6000_builtin_support_vector_misalignment): Always return true
4057         for targets with efficient unaligned VSX accesses.
4058         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
4059         stores on targets with efficient unaligned VSX accesses is almost
4060         always the same as the cost of an aligned load or store, so model
4061         it that way.
4062         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
4063         unaligned vectors if we have efficient unaligned VSX accesses.
4064         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
4065         undocumented option.
4066
4067 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4068
4069         Revert:
4070         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
4071
4072         * config.gcc (LIBC_MUSL): New tm_defines macro.
4073         * config/linux.h (OPTION_MUSL): Define.
4074         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
4075         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
4076         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
4077
4078         * config/linux.opt (mmusl): New option.
4079         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
4080         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
4081
4082         * configure: Regenerate.
4083
4084 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
4085
4086         * config.gcc (LIBC_MUSL): New tm_defines macro.
4087         * config/linux.h (OPTION_MUSL): Define.
4088         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
4089         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
4090         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
4091
4092         * config/linux.opt (mmusl): New option.
4093         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
4094         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
4095
4096         * configure: Regenerate.
4097
4098 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
4099
4100         * doc/invoke.texi (-fsanitize-sections): Update description.
4101         * asan.c (set_sanitized_sections): Parse incoming arg.
4102         (section_sanitized_p): Support wildcards.
4103
4104 2015-04-22  Tom de Vries  <tom@codesourcery.com>
4105
4106         PR tree-optimization/65823
4107         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
4108         equality between ap_copy and ap.
4109
4110 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4111
4112         PR target/47098
4113         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
4114
4115 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4116
4117         PR target/47122
4118         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
4119
4120 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4121
4122         PR target/55144
4123         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
4124         remove already contained t-files.
4125
4126 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4127
4128         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
4129         Remove unneeded forward declarations.
4130         (suitable_for_tail_call_opt_p): Commentary typo fix.
4131
4132 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4133
4134         * varasm.c (emit_bss): Remove redundant guard.
4135
4136 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4137
4138         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
4139
4140 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4141
4142         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
4143
4144 2015-04-22  Hale Wang  <hale.wang@arm.com>
4145             Terry Guo  <terry.guo@arm.com>
4146
4147         PR rtl-optimization/64818
4148         * combine.c (can_combine_p): Don't combine user-specified
4149         register if it is in an asm input.
4150
4151 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
4152
4153         PR ipa/65076
4154         * passes.def (early_optimizations): Add pass_dse.
4155
4156 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4157
4158         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
4159         * reorg.c (redundant_insn): Remove ifdef
4160         INSN_REFERENCES_ARE_DELAYED.
4161         * resource.c (mark_referenced_resources): Likewise.
4162
4163 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4164
4165         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
4166         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
4167         * resource.c (mark_set_resources): Likewise.
4168
4169 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4170
4171         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
4172         * cfgcleanup.c (flow_find_cross_jump): Likewise.
4173         (flow_find_head_matching_sequence): Likewise.
4174         (try_head_merge_bb): Likewise.
4175         * combine.c (can_combine_p): Likewise.
4176         (try_combine): Likewise.
4177         (distribute_notes): Likewise.
4178         * df-problems.c (can_move_insns_across): Likewise.
4179         * final.c (final): Likewise.
4180         * gcse.c (insert_insn_end_basic_block): Likewise.
4181         * ira.c (find_moveable_pseudos): Likewise.
4182         * reorg.c (try_merge_delay_insns): Likewise.
4183         (fill_simple_delay_slots): Likewise.
4184         (fill_slots_from_thread): Likewise.
4185         * sched-deps.c (sched_analyze_2): Likewise.
4186
4187 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4188
4189         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
4190         PIC_OFFSET_TABLE_REGNUM.
4191
4192 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4193
4194         * alias.c (init_alias_target): Remove ifdef
4195         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
4196         * df-scan.c (df_insn_refs_collect): Likewise.
4197         (df_get_regular_block_artificial_uses): Likewise.
4198         (df_get_eh_block_artificial_uses): Likewise.
4199         (df_get_entry_block_def_set): Likewise.
4200         (df_get_exit_block_use_set): Likewise.
4201         * emit-rtl.c (gen_rtx_REG): Likewise.
4202         * ira.c (ira_setup_eliminable_regset): Likewise.
4203         * reginfo.c (init_reg_sets_1): Likewise.
4204         * regrename.c (rename_chains): Likewise.
4205         * reload1.c (reload): Likewise.
4206         (eliminate_regs_in_insn): Likewise.
4207         * resource.c (mark_referenced_resources): Likewise.
4208         (init_resource_info): Likewise.
4209
4210 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4211
4212         * defaults.h (MASK_RETURN_ADDR): New definition.
4213         * except.c (expand_builtin_extract_return_addr): Remove ifdef
4214         MASK_RETURN_ADDR.
4215
4216 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4217
4218         * defaults.h (RETURN_ADDR_OFFSET): New definition.
4219         * except.c (expand_builtin_extract_return_addr): Remove ifdef
4220         RETURN_ADDR_OFFSET.
4221         (expand_builtin_frob_return_addr): Likewise.
4222
4223 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4224
4225         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
4226         (try_redirect_by_replacing_jump): Likewise.
4227         (rtl_tidy_fallthru_edge): Likewise.
4228         * combine.c (insn_a_feeds_b): Likewise.
4229         (find_split_point): Likewise.
4230         (simplify_set): Likewise.
4231         * cprop.c (cprop_jump): Likewise.
4232         * cse.c (cse_extended_basic_block): Likewise.
4233         * df-problems.c (can_move_insns_across): Likewise.
4234         * function.c (emit_use_return_register_into_block): Likewise.
4235         * haifa-sched.c (sched_init): Likewise.
4236         * ira.c (find_moveable_pseudos): Likewise.
4237         * loop-invariant.c (find_invariant_insn): Likewise.
4238         * lra-constraints.c (curr_insn_transform): Likewise.
4239         * postreload.c (reload_combine_recognize_const_pattern):
4240         * Likewise.
4241         * reload.c (find_reloads): Likewise.
4242         * reorg.c (delete_scheduled_jump): Likewise.
4243         (steal_delay_list_from_target): Likewise.
4244         (steal_delay_list_from_fallthrough): Likewise.
4245         (redundant_insn): Likewise.
4246         (fill_simple_delay_slots): Likewise.
4247         (fill_slots_from_thread): Likewise.
4248         (delete_computation): Likewise.
4249         * sched-rgn.c (add_branch_dependences): Likewise.
4250
4251 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4252
4253         * genconfig.c (main): Always define HAVE_cc0.
4254         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
4255         HAVE_cc0.
4256         * cfgcleanup.c (flow_find_cross_jump): Likewise.
4257         (flow_find_head_matching_sequence): Likewise.
4258         (try_head_merge_bb): Likewise.
4259         * cfgrtl.c (rtl_merge_blocks): Likewise.
4260         (try_redirect_by_replacing_jump): Likewise.
4261         (rtl_tidy_fallthru_edge): Likewise.
4262         * combine.c (do_SUBST_MODE): Likewise.
4263         (insn_a_feeds_b): Likewise.
4264         (combine_instructions): Likewise.
4265         (can_combine_p): Likewise.
4266         (try_combine): Likewise.
4267         (find_split_point): Likewise.
4268         (subst): Likewise.
4269         (simplify_set): Likewise.
4270         (distribute_notes): Likewise.
4271         * cprop.c (cprop_jump): Likewise.
4272         * cse.c (cse_extended_basic_block): Likewise.
4273         * df-problems.c (can_move_insns_across): Likewise.
4274         * final.c (final): Likewise.
4275         (final_scan_insn): Likewise.
4276         * function.c (emit_use_return_register_into_block): Likewise.
4277         * gcse.c (insert_insn_end_basic_block): Likewise.
4278         * haifa-sched.c (sched_init): Likewise.
4279         * ira.c (find_moveable_pseudos): Likewise.
4280         * loop-invariant.c (find_invariant_insn): Likewise.
4281         * lra-constraints.c (curr_insn_transform): Likewise.
4282         * optabs.c (prepare_cmp_insn): Likewise.
4283         * postreload.c (reload_combine_recognize_const_pattern):
4284         * Likewise.
4285         * reload.c (find_reloads): Likewise.
4286         (find_reloads_address_1): Likewise.
4287         * reorg.c (delete_scheduled_jump): Likewise.
4288         (steal_delay_list_from_target): Likewise.
4289         (steal_delay_list_from_fallthrough): Likewise.
4290         (try_merge_delay_insns): Likewise.
4291         (redundant_insn): Likewise.
4292         (fill_simple_delay_slots): Likewise.
4293         (fill_slots_from_thread): Likewise.
4294         (delete_computation): Likewise.
4295         (relax_delay_slots): Likewise.
4296         * sched-deps.c (sched_analyze_2): Likewise.
4297         * sched-rgn.c (add_branch_dependences): Likewise.
4298
4299 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4300
4301         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
4302         that is trivially ded on non cc0 targets.
4303         (simplify_set): Likewise.
4304         (mark_used_regs_combine): Likewise.
4305         * cse.c (new_basic_block): Likewise.
4306         (fold_rtx): Likewise.
4307         (cse_insn): Likewise.
4308         (cse_extended_basic_block): Likewise.
4309         (set_live_p): Likewise.
4310         * rtlanal.c (canonicalize_condition): Likewise.
4311         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
4312
4313 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4314
4315         * conditions.h: Define macros even if HAVE_cc0 is undefined.
4316         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
4317         * final.c: Likewise.
4318         * jump.c: Likewise.
4319         * recog.c: Likewise.
4320         * recog.h: Declare functions even when HAVE_cc0 is undefined.
4321         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
4322
4323 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4324
4325         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
4326         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
4327         * builtins.c (expand_builtin): Remove check if
4328         EH_RETURN_DATA_REGNO is defined.
4329         * df-scan.c (df_bb_refs_collect): Likewise.
4330         (df_get_exit_block_use_set): Likewise.
4331         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
4332         * ira-lives.c (process_bb_node_lives): Likewise.
4333         * lra-lives.c (process_bb_lives): Likewise.
4334
4335 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
4336
4337         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
4338         FIRST_PSEUDO_REG): New.
4339         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
4340         (ARG_POINTER_REGNUM): Define to ARGP_REG.
4341         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
4342         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
4343         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
4344         (FIRST_INT_REG): New.
4345         (LAST_INT_REG): New.
4346         (FIRST_*_REG): Define using *_REG.
4347         (LAST_*_REG): Ditto.
4348         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
4349         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
4350         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
4351
4352 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4353
4354         * expmed.c: (synth_mult): Only assume overlapping
4355         shift with previous steps in alg_sub_t_m2 case.
4356
4357 2015-04-21  Richard Biener  <rguenther@suse.de>
4358
4359         PR tree-optimization/65650
4360         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
4361         transitions involving copies.
4362         (set_lattice_value): Adjust for copy lattice state.
4363         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
4364         if that doesn't dominate the merge point.
4365         (bit_value_unop): Adjust what we treat as varying mask.
4366         (bit_value_binop): Likewise.
4367         (bit_value_assume_aligned): Likewise.
4368         (evaluate_stmt): When we simplified to a SSA name record a copy
4369         instead of dropping to varying.
4370         (visit_assignment): Simplify.
4371
4372         * gimple-match.h (gimple_simplify): Add another callback.
4373         * gimple-fold.c (fold_stmt_1): Adjust caller.
4374         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
4375         for the 2nd callback.
4376         * gimple-match-head.c (gimple_simplify): Add a callback that is
4377         used to valueize the stmt operands and use it that way.
4378
4379 2015-04-21  Richard Biener  <rguenther@suse.de>
4380
4381         PR tree-optimization/65788
4382         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
4383
4384 2015-04-21  Richard Biener  <rguenther@suse.de>
4385
4386         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
4387         vec_construct cost by vec_stmt_cost.
4388
4389 2015-04-21  Richard Biener  <rguenther@suse.de>
4390
4391         * cfghooks.h (create_basic_block): Replace with two overloads
4392         for RTL and GIMPLE.
4393         (split_block): Likewise.
4394         * cfghooks.c (split_block): Rename to ...
4395         (split_block_1): ... this.
4396         (split_block): Add two type-safe overloads for RTL and GIMPLE.
4397         (split_block_after_labels): Call split_block_1.
4398         (create_basic_block): Rename to ...
4399         (create_basic_block_1): ... this.
4400         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
4401         (create_empty_bb): Call create_basic_block_1.
4402         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
4403         split_block_after_labels.
4404         * omp-low.c (expand_parallel_call): Likewise.
4405         (expand_omp_target): Likewise.
4406         (simd_clone_adjust): Likewise.
4407         * tree-chkp.c (chkp_get_entry_block): Likewise.
4408         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
4409         create_basic_block overload.
4410         (cgraph_node::expand_thunk): Likewise.
4411         * tree-cfg.c (make_blocks): Likewise.
4412         (handle_abnormal_edges): Likewise.
4413         * tree-inline.c (copy_bb): Likewise.
4414
4415 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4416
4417         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
4418         New pattern.
4419         (*xor_one_cmplsidi3_ze): Likewise.
4420
4421 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4422
4423         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
4424         use df_remove_problem rather than manually removing problems, leaving
4425         holes in df->problems_in_order[].
4426
4427 2015-04-21  Tom de Vries  <tom@codesourcery.com>
4428
4429         PR tree-optimization/65802
4430         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
4431
4432 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4433
4434         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
4435         Increase to 128.
4436         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
4437         at '.'.  Assert that there's enough space for everything.
4438
4439 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
4440
4441         PR tree-optimization/64950
4442         Revert:
4443         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
4444
4445         PR target/41089
4446         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
4447         as volatile.
4448
4449 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
4450
4451         PR rtl-optimization/64916
4452         * cfgcleanup.c (values_equal_p): New function.
4453         (can_replace_by): Use it.
4454
4455 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
4456
4457         PR c++/65801
4458         * doc/invoke.texi ([-Wnarrowing]): Update.
4459
4460 2015-04-20  Jeff Law  <law@redhat.com>
4461
4462         PR tree-optimization/65658
4463         * tree-ssa-threadupdate.c (redirection_block_p): Remove
4464         redundant test for GIMPLE_ASSIGN in last change.
4465
4466 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
4467
4468         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
4469         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
4470         (legitimize_tls_address): Ditto.
4471         (ix86_expand_move): Ditto.
4472         (ix86_expand_binary_operator): Remove reload_in_progress checks.
4473         (ix86_expand_unary_operator): Ditto.
4474         * config/i386/predicates.md (index_register_operand): Ditto.
4475
4476 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
4477
4478         * reorg.c (try_merge_delay_insns): Improve correctness checking
4479         for targets with multiple delay slots.
4480
4481 2015-04-20  Jeff Law  <law@redhat.com>
4482
4483         PR tree-optimization/65658
4484         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
4485         statements too.
4486
4487 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
4488
4489         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
4490         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
4491         Delete.
4492
4493 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
4494
4495         PR debug/65807
4496         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
4497
4498 2015-04-20  Richard Biener  <rguenther@suse.de>
4499
4500         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
4501         * gimple-fold.c (gimple_build_valueize): New function.
4502         (gimple_build): Always use gimple_build_valueize as valueize hook.
4503
4504 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
4505
4506         PR target/64134
4507         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
4508         and overwrite variable parts if <= 1/2 the elements are variable.
4509
4510 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
4511
4512         PR rtl-optimization/65805
4513         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
4514         Don't use difference of offset and previous offset if
4515         update_sp_offset is non-zero.
4516         (eliminate_regs_in_insn): Ditto.
4517         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
4518         lra_eliminate_regs_1 call.
4519         * lra-constraints.c (get_equiv_with_elimination): Ditto.
4520
4521 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
4522
4523         * hash-table.h: Remove version of hash_table that stored value_type *.
4524         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
4525         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
4526         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
4527         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
4528         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
4529         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
4530         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
4531         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
4532         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
4533         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
4534         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
4535         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
4536         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
4537         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
4538         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
4539         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
4540
4541 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4542             Jakub Jelinek  <jakub@redhat.com>
4543
4544         PR target/65787
4545         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
4546         subsequent SH_NONE operand does not overwrite an existing *special
4547         value.
4548         (adjust_extract): Handle case where a vec_extract operation is
4549         wrapped in a PARALLEL.
4550
4551 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4552
4553         PR target/65780
4554         * config/i386/i386.c (ix86_binds_local_p): Define only if
4555         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
4556
4557 2015-04-17  Jeff Law  <law@redhat.com>
4558
4559         PR tree-optimization/47679
4560         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
4561         * tree-ssa-scopedtables.c: New file.
4562         * tree-ssa-scopedtables.h: New file.
4563         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
4564         (const_and_copies): Change name/type.
4565         (record_const_or_copy): Move into tree-ssa-scopedtables.c
4566         (record_const_or_copy_1): Similarly.
4567         (restore_vars_to_original_value): Similarly.
4568         (pass_dominator::execute): Create and destroy const_and_copies table.
4569         (thread_across_edge): Update passing of const_and_copies.
4570         (record_temporary_equivalence): Use method calls rather than
4571         manipulating const_and_copies directly.
4572         (record_equality, cprop_into_successor_phis): Similarly.
4573         (dom_opt_dom_walker::before_dom_children): Similarly.
4574         (dom_opt_dom_walker::after_dom_children): Similarly.
4575         (eliminate_redundant_computations): Similarly.
4576         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
4577         (record_temporary_equivalence): Likewise.
4578         (invalidate_equivalences): Likewise.
4579         (record_temporary_equivalences_from_phis): Update due to type
4580         change of const_and_copies.  Use method calls rather than
4581         manipulating the stack directly.
4582         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
4583         (thread_through_normal_block, thread_across_edge): Likewise.
4584         (thread_across_edge): Likewise.
4585         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
4586         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
4587         of equiv_stack.
4588         (identify_jump_threads): Update due to type change of equiv_stack.
4589         (finalize_jump_threads): Delete the equiv_stack when complete.
4590
4591 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
4592
4593         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
4594         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
4595         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
4596
4597 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
4598
4599         PR target/65535
4600         * config.gcc: Exit with a comment when we do not have a major version
4601         number for the FreeBSD target.
4602
4603 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
4604
4605         PR target/65689
4606         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
4607         maybe_allows_mem bitfields.
4608         (maybe_allows_none_start, maybe_allows_none_end,
4609         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
4610         maybe_allows_mem_end): New variables.
4611         (compute_maybe_allows): New function.
4612         (add_constraint): Use it to initialize maybe_allows_reg and
4613         maybe_allows_mem fields.
4614         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
4615         is_address constraints such that those that allow neither mem nor
4616         reg come first, then those that only allow reg but not mem, then
4617         those that only allow mem but not reg, then the rest.
4618         (write_allows_reg_mem_function): New function.
4619         (write_tm_preds_h): Call it.
4620         * stmt.c (parse_output_constraint, parse_input_constraint): Use
4621         the generated insn_extra_constraint_allows_reg_mem function
4622         instead of always setting *allows_reg = true; *allows_mem = true;
4623         for unknown extra constraints.
4624
4625 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
4626
4627         PR target/65780
4628         * output.h (default_binds_local_p_3): New.
4629         * varasm.c (default_binds_local_p_3): Make it public.  Take an
4630         argument to indicate if common symbol may be local.  If common
4631         symbol may be local, treat non-external variable as defined
4632         locally.
4633         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
4634         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
4635         * config/i386/i386.c (ix86_binds_local_p): New.
4636         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
4637         ix86_binds_local_p.
4638
4639 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
4640
4641         PR debug/65771
4642         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
4643         trying mem_loc_descriptor on XEXP (rtl, 0).
4644
4645 2015-04-17  Martin Liska  <mliska@suse.cz>
4646
4647         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
4648         Release symbol_compare_collection.
4649         * ipa-reference.c: Add TODO that a vector should be released.
4650
4651 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
4652
4653         PR target/65296
4654         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
4655         to new AVR-LibC file layout (bug #44574).
4656         (*avrlibc_devicelib): Same.
4657         * config/avr/avr-mcus.def: Adjust comments.
4658         * config/avr/avr.opt (nodevicelib): Adjust help.
4659
4660 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
4661
4662         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
4663
4664 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
4665
4666         PR c++/64527
4667         * gimplify.c (gimplify_init_constructor): Always emit a
4668         side-effecting constructor.
4669
4670 2015-04-17  Tom de Vries  <tom@codesourcery.com>
4671
4672         PR tree-optimization/64950
4673         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
4674         in cfun->curr_properties.
4675         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
4676         if we generate an IFN_VA_ARG.
4677         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
4678         function if PROP_gimple_lva is not set in src function.
4679
4680 2015-04-17  Tom de Vries  <tom@codesourcery.com>
4681             Michael Matz  <matz@suse.de>
4682
4683         PR tree-optimization/64950
4684         * gimple-iterator.c (update_modified_stmts): Remove static.
4685         * gimple-iterator.h (update_modified_stmts): Declare.
4686         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
4687         (gimplify_va_arg_internal): New function.
4688         (gimplify_va_arg_expr): Use IFN_VA_ARG.
4689         * gimplify.h (gimplify_va_arg_internal): Declare.
4690         * internal-fn.c (expand_VA_ARG): New unreachable function.
4691         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
4692         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
4693         (expand_ifn_va_arg): New function.
4694         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
4695         (pass_stdarg::execute): Call expand_ifn_va_arg.
4696         (pass_data_lower_vaarg): New pass_data.
4697         (pass_lower_vaarg): New gimple_opt_pass.
4698         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
4699         (make_pass_lower_vaarg): New function.
4700         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
4701         properties_required field.
4702         * passes.def (all_passes): Add pass_lower_vaarg.
4703         * tree-pass.h (PROP_gimple_lva): Add define.
4704         (make_pass_lower_vaarg): Declare.
4705
4706 2015-04-17  Tom de Vries  <tom@codesourcery.com>
4707
4708         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
4709         * calls.c (call_expr_flags): Same.
4710
4711 2015-04-17  Tom de Vries  <tom@codesourcery.com>
4712
4713         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
4714         (pass_stdarg::execute): ... here.
4715
4716 2015-04-17  Tom de Vries  <tom@codesourcery.com>
4717             Michael Matz  <matz@suse.de>
4718
4719         * tree-cfg.c (make_blocks_1): Factor out of ...
4720         (make_blocks): ... here.
4721         (make_edges_bb): Factor out of ...
4722         (make_edges): ... here.
4723         (gimple_find_sub_bbs): New function.
4724         * tree-cfg.h (gimple_find_sub_bbs): Declare.
4725
4726 2015-04-17  Tom de Vries  <tom@codesourcery.com>
4727
4728         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
4729
4730 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
4731
4732         * asan.c (set_sanitized_sections): New function.
4733         (section_sanitized_p): Ditto.
4734         (asan_protect_global): Optionally sanitize user-defined
4735         sections.
4736         * asan.h (set_sanitized_sections): Declare new function.
4737         * common.opt (fsanitize-sections): New option.
4738         * doc/invoke.texi (-fsanitize-sections): Document new option.
4739         * opts-global.c (handle_common_deferred_options): Handle new
4740         option.
4741
4742 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
4743
4744         PR debug/65771
4745         * dwarf2out.c (loc_list_from_tree): Return NULL
4746         for DEBUG_EXPR_DECL.
4747
4748 2015-04-17  Christian Bruel  <christian.bruel@st.com>
4749
4750         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
4751         same attributes.
4752
4753 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
4754
4755         * ira-color.c (setup_left_conflict_sizes_p): Do not process
4756         node itself when computing left conflict subnode size.
4757
4758 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
4759
4760         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
4761         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
4762         *fop_<mode>_1_sse using enabled attribute.  Use
4763         register_mixssei387nonimm_operand operand 1 predicate. Change
4764         alternative 3 constraints from "x" to "v".
4765
4766 2015-04-16  Richard Biener  <rguenther@suse.de>
4767
4768         PR tree-optimization/65774
4769         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
4770         bit-value tracking on.
4771
4772 2015-04-16  Richard Biener  <rguenther@suse.de>
4773
4774         PR tree-optimization/64277
4775         * tree-vrp.c (check_array_ref): Fix anti-range handling,
4776         simplify upper bound handling.
4777         (search_for_addr_array): Simplify.
4778         (check_array_bounds): Handle ADDR_EXPRs here.
4779         (check_all_array_refs): Simplify.
4780
4781 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
4782
4783         * config/i386/i386.c (print_reg): Rewrite function.
4784
4785 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4786
4787         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
4788         Invert the condition.
4789
4790 2015-04-16  Renlin Li  <renlin.li@arm.com>
4791
4792         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
4793         simplifications for UNSIGNED_FLOAT.
4794
4795 2015-04-16  Nick Clifton  <nickc@redhat.com>
4796
4797         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
4798         MUL_UNINIT.
4799         (enum rl78_cpu_type): New.
4800         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
4801         (umulhi3_shift_virt): Remove m constraint from operand 1.
4802         (umulqihi3_virt): Likewise.
4803         * config/rl78/rl78.c (rl78_option_override): Add code to process
4804         -mcpu and -mmul options.
4805         (rl78_alloc_physical_registers): Add code to handle divhi and
4806         divsi valloc attributes.
4807         (set_origin): Likewise.
4808         * config/rl78/rl78.h (RL78_MUL_G14): Define.
4809         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
4810         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
4811         __RL78_Gxx__.
4812         (ASM_SPEC): Pass -mcpu on to assembler.
4813         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
4814         (mulqi3_rl78): Likewise.
4815         (mulhi3_g13): Likewise.
4816         (mulhi3): Generate the G13 or G14 versions of the insn directly.
4817         (mulsi3): Likewise.
4818         (mulhi3_g14): Add clobbers of AX and BC.
4819         (mulsi3_g14): Likewise.
4820         (mulsi3_g13): Likewise.
4821         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
4822         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
4823         * config/rl78/rl78.opt (mmul): Initialise value to
4824         RL78_MUL_UNINIT.
4825         (mcpu): New option.
4826         (m13, m14, mrl78): New option aliases.
4827         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
4828         (MULTILIB_DIRNAMES): Add g13 and g14.
4829         * doc/invoke.texi: Document -mcpu and -mmul options.
4830
4831 2015-04-16  Richard Biener  <rguenther@suse.de>
4832
4833         * tree-ssa-ccp.c (likely_value): See if we have operands that
4834         are marked as never simulate again and return CONSTANT in this
4835         case.
4836         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
4837         not have any operands that will be simulated again as
4838         not being simulated again.
4839
4840 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
4841
4842         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
4843         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
4844         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
4845         attribute.
4846         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
4847         enabled attribute.
4848         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
4849         *float<SWI48:mode><MODEF:mode>2_sse.
4850         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
4851         enabled attribute.
4852         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
4853         enabled attribute.
4854
4855 2015-04-15  Tom de Vries  <tom@codesourcery.com>
4856
4857         PR other/65487
4858         * function.c (push_dummy_function): New function.
4859         (init_dummy_function_start): Use push_dummy_function.
4860         (pop_dummy_function): New function.  Factored out of ...
4861         (expand_dummy_function_end): ... here.
4862         * function.h (push_dummy_function, pop_dummy_function): Declare.
4863         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
4864         pop_dummy_function.
4865         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
4866
4867 2015-04-15  Jeff Law  <law@redhat.com>
4868
4869         PR tree-optimization/47679
4870         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
4871         need for forward declaration in upcoming changes.
4872         (record_conditions, record_edge_info): Likewise.
4873
4874         PR rtl-optimization/42522
4875         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
4876         SIGN_EXTRACT as a whole object rather than simplifying
4877         its operand.
4878
4879 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
4880
4881         PR ipa/65765
4882         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
4883         and GIMPLE_PREDICT use break instead of return true. For
4884         GIMPLE_EH_DISPATCH, compare dispatch region.
4885
4886 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
4887
4888         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
4889         details about the implementation.  Make clear preference for
4890         __atomic builtins.  Reduce possibility of future change.
4891
4892 2015-04-15  Nick Clifton  <nickc@redhat.com>
4893
4894         * config/rx/rx.opt (mallow-string-insns): New option.
4895         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
4896         builtin if string instructions are denied.
4897         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
4898         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
4899         appropriate.
4900         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
4901         * config/rx/rx.md (movstr): Enable pattern only if string
4902         instructions are allowed.
4903         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
4904         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
4905         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
4906         (MULTILIB_DIRNAMES): Add no-strings.
4907         * doc/invoke.texi: Document -mno-allow-string-insns.
4908
4909 2015-04-15  Alan Modra  <amodra@gmail.com>
4910
4911         PR target/65408
4912         PR target/58744
4913         PR middle-end/36043
4914         * calls.c (load_register_parameters): Don't load past end of
4915         mem unless suitably aligned.
4916
4917 2015-04-15  Nick Clifton  <nickc@redhat.com>
4918
4919         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
4920         decrement instruction as being frame related.
4921         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
4922         based addresses.
4923         If zero extending a function address enclose the operation in
4924         %code(...).
4925         (rl78_preferred_reload_class): New function.
4926         (TARGET_PREFERRED_RELOAD_CLASS): Define.
4927         * config/rl78/rl78.md: Remove useless constraints in expanders.
4928         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
4929         (mulhi3_rl78): Likewise.
4930         (mulhi3_g13): Likewise.
4931         (mulsi3_rl78): Likewise.
4932         (es_addr): Move to before the multiply patterns.
4933
4934 2015-04-15  Alan Modra  <amodra@gmail.com>
4935
4936         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
4937         and sequence_stack.  Add seq.
4938         (seq_stack): Delete.
4939         * function.c (prepare_function_start): Don't access x_last_insn.
4940         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
4941         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
4942         * emit_rtl.c (start_sequence, push_topmost_sequence,
4943         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
4944         sequence accessors.
4945         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
4946         remove_insn): Likewise.  Simplify.
4947         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
4948         and pop_topmost_sequence.
4949         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
4950         debug insns.
4951         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
4952
4953 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
4954
4955         PR target/65729
4956         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
4957         the assertiion.
4958
4959 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
4960
4961         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
4962         (LEGACY_INT_REGNO_P): Ditto.
4963         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
4964         (ANY_MASK_REG_P): Remove.
4965         (BND_REG_P): Rename from ANY_BND_REG_P.
4966         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
4967         legacy integer registers.  Do not handle MMX_REG_P in a special way.
4968         Merge 64byte and 32byte SSE handling.
4969
4970 2015-04-14  Nick Clifton  <nickc@redhat.com>
4971
4972         * expr.c (expand_assignment): Force an address offset computation
4973         into a register before changing its mode.
4974         (expand_expr_real_1): Likewise.
4975
4976 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
4977
4978         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
4979         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
4980         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
4981         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
4982         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
4983         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
4984         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
4985         and __aarch64_vget_lane_any.
4986
4987 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
4988
4989         PR rtl-optimization/65761
4990         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
4991         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
4992
4993 2015-04-14  Richard Biener  <rguenther@suse.de>
4994
4995         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
4996         (graphite_can_represent_scev): Use POINTER_TYPE_P.
4997
4998 2015-04-14  Richard Biener  <rguenther@suse.de>
4999
5000         PR tree-optimization/65758
5001         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
5002         against -1.
5003         (ccp_lattice_meet): Likewise.
5004         (bit_value_unop): Likewise.
5005         (bit_value_binop): Likewise.
5006         (bit_value_assume_aligned): Likewise.
5007
5008 2015-04-14  Christian Bruel  <christian.bruel@st.com>
5009
5010         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
5011         function.
5012
5013 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
5014
5015         PR tree-optimization/63387
5016         * match.pd ((x unord x) | (y unord y) -> (x unord y),
5017         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
5018
5019 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
5020
5021         * config/i386/predicates.md (any_QIreg_operand): Rename from
5022         q_regs_operand.  Do not process subregs.
5023         (QIreg_operand): Use QI_REGNO_P predicate.
5024         (ext_QIreg_operand): Ditto.
5025         (ext_register_operand): Ditto.
5026         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
5027         (AND splitters): Ditto.
5028         (AND with -65536 splitter): Add SWI48 mode for operand 0.
5029         (AND with -256 splitter): Use any_QIreg_operand predicate and
5030         SWI248 mode for operand 0.
5031         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
5032         mode for operand 0.
5033         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
5034
5035 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
5036
5037         * doc/plugins.texi: Rewrite first introductory paragraph.
5038
5039 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
5040
5041         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
5042         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
5043
5044 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
5045
5046         * ipa-profie.c (ipa_profile): Check number of parameters
5047         and possible polymorphic call targets before
5048         devirtualizing.
5049
5050 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
5051
5052         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
5053         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
5054
5055 2015-04-13  Richard Biener  <rguenther@suse.de>
5056
5057         PR tree-optimization/65204
5058         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
5059         takens for bit-CCP.
5060
5061 2015-04-13  Richard Biener  <rguenther@suse.de>
5062
5063         PR target/65660
5064         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
5065         and cond_not_taken_branch_cost to 4 and 2.
5066         (bdver2_cost): Likewise.
5067         (bdver3_cost): Likewise.
5068         (bdver4_cost): Likewise.
5069
5070 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
5071
5072         * hash-table.h (hash_table constructor): Add mem stats.
5073         (alloc_entries): Likewise.
5074
5075 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
5076
5077         * ipa-cp.c (ipcp_driver): Relase prev_edge.
5078         * passes.c (execute_one_pass): Only add transform if pass has one.
5079
5080 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
5081
5082         * config/i386/i386.c (ix86_option_override_internal): Don't set
5083         -fprefetch-loop-arrays if optimizing for size.
5084
5085 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
5086             Gerald Pfeifer  <gerald@pfeifer.com>
5087
5088         * doc/contrib.texi (Contributors): Add Martin Jambor and
5089         Michael Matz.
5090
5091 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
5092
5093         * BASE-VER: Set to 6.0.0.
5094
5095         PR tree-optimization/65747
5096         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
5097         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
5098
5099 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
5100
5101         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
5102         sentence.  Improve grammar.
5103
5104 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
5105
5106         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
5107
5108 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
5109
5110         PR ipa/65743
5111         * ipa-inline-transform.c (speculation_removed): Remove static var.
5112         (check_speculations): New function.
5113         (clone_inlined_nodes): Do not check spculations.
5114         (inline_call): Call check_speculations.
5115         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
5116         consider non-invariants.
5117
5118 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
5119             Martin Liska  <mliska@suse.cz>
5120
5121         PR ipa/65722
5122         * ipa-icf.c (sem_item::compare_cgraph_references): function and
5123         variable can not match.
5124         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
5125         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
5126
5127 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
5128
5129         PR tree-optimization/65735
5130         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
5131         Remove visited_phis argument, add visited_bbs, avoid recursing into the
5132         same bb rather than just into the same phi node.
5133         (thread_through_normal_block): Adjust caller.
5134
5135 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
5136
5137         * doc/contrib.texi (Contributors): Add Ira Rosen.
5138
5139 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
5140
5141         * gcov.c (find_source): Fix miswording in error message.
5142         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
5143         (ix86_expand_sse_comi_round): Fix typo in error message.
5144
5145 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
5146
5147         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
5148
5149 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
5150
5151         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
5152
5153 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
5154
5155         PR target/65710
5156         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
5157         Print bad_spills_num and insn_pseudos_num.
5158
5159 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5160
5161         PR target/65694
5162         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
5163         when creating +1 values for SImode.
5164
5165 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
5166
5167         PR target/65729
5168         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
5169         assert.
5170
5171 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
5172             Iain Sandoe  <iain@codesourcery.com>
5173
5174         PR target/65351
5175         * configure: Regenerate.
5176
5177 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
5178
5179         PR target/65671
5180         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
5181
5182 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
5183
5184         * doc/contrib.texi (Contributors): Add John Marino.
5185
5186 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
5187
5188         PR tree-optimization/65709
5189         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
5190         TREE_TYPE (TREE_TYPE (t)).
5191
5192 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
5193
5194         PR target/65710
5195         * lra-int.h (lra_bad_spill_regno_start): New.
5196         * lra.c (lra_bad_spill_regno_start): New.
5197         (lra): Set up lra_bad_spill_regno_start.  Set up
5198         lra_constraint_new_regno_start unconditionally.
5199         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
5200         spill preferences.
5201
5202 2015-04-09  Marek Polacek  <polacek@redhat.com>
5203             Jakub Jelinek  <jakub@redhat.com>
5204
5205         PR middle-end/65554
5206         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
5207         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
5208         of STRIP_NOPS.
5209
5210 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
5211
5212         PR rtl-optimization/65693
5213         * combine.c (is_parallel_of_n_reg_sets): Move outside of
5214         #ifndef HAVE_cc0.
5215
5216 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
5217
5218         PR target/65296
5219         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
5220         device specs file if "device-specs%s" didn't resolve to a path.
5221
5222 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
5223
5224         PR target/65676
5225         * config/i386/i386.c (fixup_modeless_constant): New.
5226         (ix86_expand_args_builtin): Fixup modeless constant operand.
5227         (ix86_expand_round_builtin): Ditto.
5228         (ix86_expand_special_args_builtin): Ditto.
5229         (ix86_expand_builtin): Ditto.
5230
5231 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
5232
5233         PR target/65693
5234         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
5235         any pow2 integer in between 2 and 0x80000000U inclusive.
5236
5237 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
5238
5239         PR rtl-optimization/65693
5240         * combine.c (is_parallel_of_n_reg_sets): Change first argument
5241         from an rtx_insn * to an rtx.
5242         (try_combine): Adjust both callers.  Use it once more.
5243
5244 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
5245
5246         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
5247         (chkp_make_static_const_bounds): Search existing
5248         symbol by assembler name.  Use make_decl_one_only.
5249         (chkp_get_zero_bounds_var): Remove node search which
5250         is now performed in chkp_make_static_const_bounds.
5251         (chkp_get_none_bounds_var): Likewise.
5252
5253 2015-04-08  Michael Witten  <mfwitten@gmail.com>
5254
5255         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
5256         to an example.
5257
5258 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5259
5260         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
5261
5262 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
5263
5264         * doc/extend.texi (__sync Builtins): Fix grammar.
5265
5266 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5267
5268         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
5269
5270 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
5271
5272         * varasm.c (emit_local): Move definition of align.
5273
5274 2015-04-08  Julian Brown  <julian@codesourcery.com>
5275
5276         * config/nvptx/mkoffload.c (process): Support variable mapping.
5277
5278 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
5279
5280         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
5281         alpha_links **.
5282         (alpha_write_one_linkage): Correct typo.
5283
5284 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
5285
5286         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
5287
5288 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
5289
5290         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
5291
5292 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
5293
5294         * tree-chkp.h (chkp_insert_retbnd_call): New.
5295         * tree-chkp.c (chkp_insert_retbnd_call): New.
5296         * ipa-split.c (insert_bndret_call_after): Remove.
5297         (split_function): Use chkp_insert_retbnd_call.
5298         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
5299         bounds for instrumented functions.
5300
5301 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
5302
5303         PR ipa/65540
5304         * calls.c (initialize_argument_information): When producing tail
5305         call also turn SSA_NAMES passed by references to original PARM_DECLs
5306
5307 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
5308
5309         PR target/65648
5310         * lra-remat.c (do_remat): Process input and non-input insn
5311         registers separately.
5312
5313 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
5314
5315         PR debug/65678
5316         * valtrack.c (debug_lowpart_subreg): New function.
5317         (dead_debug_insert_temp): Use it.
5318
5319         PR middle-end/65680
5320         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
5321         into signed HOST_WIDE_INT the same as negative bit_offset.
5322
5323 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
5324
5325         * ipa-comdats.c (ipa_comdats): Visit all thunks
5326         to set proper comdat group.
5327
5328 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5329
5330         PR target/65489
5331         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
5332         on constants for NEON VSTRUCT modes.
5333
5334 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
5335             Iain Sandoe  <iain@codesourcery.com>
5336
5337         PR target/65351
5338         * configure: Regenerate.
5339
5340 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
5341
5342         PR target/65614
5343         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
5344         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
5345         that LFD is used to load double constants instead of LFS.  Add
5346         defaults for all costs structures.  Add comments for missing
5347         initialization fields.
5348         (size32_cost): Likewise.
5349         (size64_cost): Likewise.
5350         (rs64a_cost): Likewise.
5351         (mpccore_cost): Likewise.
5352         (ppc403_cost): Likewise.
5353         (ppc405_cost): Likewise.
5354         (ppc440_cost): Likewise.
5355         (ppc476_cost): Likewise.
5356         (ppc601_cost): Likewise.
5357         (ppc603_cost): Likewise.
5358         (ppc604_cost): Likewise.
5359         (ppc604e_cost): Likewise.
5360         (ppc620_cost): Likewise.
5361         (ppc630_cost): Likewise.
5362         (ppccell_cost): Likewise.
5363         (ppc750_cost): Likewise.
5364         (ppc7450_cost): Likewise.
5365         (ppc8540_cost): Likewise.
5366         (ppce300c2c3_cost): Likewise.
5367         (ppce500mc_cost): Likewise.
5368         (ppce500mc64_cost): Likewise.
5369         (ppce5500_cost): Likewise.
5370         (ppce6500_cost): Likewise.
5371         (titan_cost): Likewise.
5372         (power4_cost): Likewise.
5373         (power6_cost): Likewise.
5374         (power7_cost): Likewise.
5375         (power8_cost): Likewise.
5376         (ppca2_cost): Likewise.
5377         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
5378
5379         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
5380         instead of XXLOR to copy SFmode to clear out dirty bits created
5381         when SFmode denormals are generated.
5382         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
5383         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
5384
5385 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
5386
5387         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
5388         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
5389         * config/aarch64/aarch64-tune.md: Regenerate.
5390
5391 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
5392
5393         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
5394         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
5395         * config/arm/arm-cores.def (exynos-m1): New core.
5396         * config/arm/arm-tune.md: Regenerate.
5397         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
5398         * config/arm/bpabi.h: Likewise.
5399
5400 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
5401
5402         * ipa-cp (set_single_call_flag): Remove too
5403         restrictive assert.
5404
5405 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
5406
5407         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
5408         GOMP_offload_unregister from the destructor.
5409
5410 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
5411
5412         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
5413         flags for instrumentation thunk.
5414         (chkp_produce_thunks): Likewise.
5415
5416 2015-04-05  Martin Liska  <mliska@suse.cz>
5417
5418         PR ipa/65665
5419         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
5420         has computed data structure.
5421         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
5422
5423 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
5424
5425         * invoke.texi (inline-unit-growth): Increase growth to 20%
5426         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
5427
5428 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
5429
5430         PR target/65647
5431         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
5432         value checking.
5433         (lra_rematerialization_iter): New.
5434         * lra.c (lra): Initialize lra_rematerialization_iter.
5435         Stop updating lra_constraint_new_regno_start after switching of
5436         inheritance and rematerialization.
5437         * lra-remat.c (lra_rematerialization_iter): New.
5438         (lra_remat): Add printing pass iteration.  Do rematerialization
5439         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
5440
5441 2015-04-04  Richard Biener  <rguenther@suse.de>
5442
5443         PR tree-optimization/64909
5444         PR tree-optimization/65660
5445         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
5446         to take a cost vector for scalar iteration cost.
5447         (vect_get_single_scalar_iteration_cost): Likewise.
5448         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
5449         Compute the scalar iteration cost into a cost vector.
5450         (vect_get_known_peeling_cost): Use the scalar cost vector to
5451         account for the cost of the peeled iterations.
5452         (vect_estimate_min_profitable_iters): Likewise.
5453         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
5454         Likewise.
5455
5456 2015-04-04  Alan Modra  <amodra@gmail.com>
5457
5458         PR target/65576
5459         PR target/65240
5460         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
5461         0.0 constant unless TARGET_VSX.
5462         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
5463         alternative.
5464
5465 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
5466
5467         PR ipa/65654
5468         * ipa-inline-transform.c (inline_call): Skip sanity check to work
5469         around the ICE
5470
5471 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
5472
5473         PR ipa/65655
5474         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
5475         speculative indirect edges to avoid ordering issue.
5476
5477 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
5478
5479         PR ipa/65076
5480         * ipa-inline.c (edge_badness): Add combined size to the denominator.
5481
5482 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
5483
5484         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
5485         TYPE_ARTIFICIAL on the .omp_data* types.
5486
5487 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
5488
5489         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
5490         instrumentation thunks.
5491
5492 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
5493
5494         * config/i386/i386.c (ix86_expand_call): Avoid nested
5495         PARALLEL in returned call value.
5496
5497 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
5498
5499         * lto-cgraph.c (input_cgraph_1): Always link instrumented
5500         assembler name with original one.
5501
5502 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
5503
5504         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
5505
5506 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
5507
5508         Revert parts of r216820.
5509         * config/i386/i386.md (movqi_internal): Correct type calculation
5510         for alternatives 3 and 5.
5511
5512 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
5513
5514         PR preprocessor/61977
5515         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
5516         predefine __vector/__bool/__pixel macros nor context sensitive
5517         macros for CLK_ASM.
5518         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
5519
5520 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
5521
5522         * config/pa/pa.c (pa_output_move_double): Directly handle register
5523         indexed memory operand.  Simplify handling of scaled register indexed
5524         memory operands.
5525
5526 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
5527
5528         PR driver/65444
5529         * config/i386/linux-common.h (MPX_SPEC): New.
5530         (CHKP_SPEC): Add MPX_SPEC.
5531         * doc/invoke.texi (-fcheck-pointer-boudns): Document
5532         possible issues with '-z bndplt' support in linker.
5533
5534 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
5535
5536         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
5537         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
5538         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
5539         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
5540         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
5541
5542 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
5543
5544         * config/i386/sync.md (UNSPEC_MOVA): Remove.
5545         (atomic_load<mode>): Change operand 0 predicate to
5546         nonimmediate_operand and fix up the destination when needed.
5547         Use UNSPEC_LDA.
5548         (atomic_loaddi_fpu): Use UNSPEC_LDA.
5549         (atomic_store<mode>): Change operand 1 predicate to
5550         nonimmendate_operand and move the source to register when needed.
5551         Use UNSPEC_STA.
5552         (atomic_store<mode>_1): Use UNSPEC_STA.
5553         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
5554         Fix moves from memory operand.  Use UNSPEC_STA.
5555
5556 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5557
5558         * expmed.c (strict_volatile_bitfield_p): Check that the access will
5559         not cross a MODESIZE boundary.
5560         (store_bit_field, extract_bit_field): Added assertions in the
5561         strict volatile bitfields code path.
5562
5563 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
5564
5565         PR target/65624
5566         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
5567         Increase args array size by one to avoid buffer overflow.
5568
5569 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
5570
5571         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
5572         split_part.
5573         * ipa-inline.c (edge_badness): Add wrapper penalty.
5574         (sum_callers): Move up.
5575         (inline_small_functions): Set single_caller.
5576         * ipa-inline.h (inline_summary): Add single_caller.
5577         * ipa-split.c (split_function): Set split_part.
5578         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
5579         * cgraph.h (cgraph_node): Add split_part.
5580
5581 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
5582
5583         PR target/58945
5584         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
5585         Do not split operands 0 and operands 2 to halfmode.
5586         (atomic_compare_and_swap<mode>): Update for
5587         atomic_compare_and_swap<dwi>_doubleword changes.
5588
5589 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
5590
5591         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
5592         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
5593         no caching is done.
5594
5595 2015-03-31  Martin Liska  <mliska@suse.cz>
5596
5597         PR ipa/65557
5598         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
5599         has already filled up function summary.
5600         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
5601
5602 2015-03-31  Richard Biener  <rguenther@suse.de>
5603
5604         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
5605         of types.
5606
5607 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5608
5609         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
5610         nested functions.
5611         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
5612         (s390_asm_output_function_label): Adapt to new signature of
5613         s390_function_num_hotpatch_hw
5614         Optimise the code generating assembler output.
5615         Add comments to assembler file.
5616
5617 2015-03-31  Richard Biener  <rguenther@suse.de>
5618
5619         PR middle-end/65626
5620         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
5621         of the noreturn call so it is last and cleanup_control_flow_bb
5622         can do the CFG part.
5623
5624 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
5625
5626         PR target/65531
5627         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
5628         same_comdat_group for external symbols.
5629         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
5630         infinite same_comdat_group traversal loop.
5631
5632 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
5633
5634         PR plugins/61176
5635         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
5636         automatically to $headers.
5637
5638 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
5639
5640         PR ipa/65610
5641         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
5642         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
5643         function.
5644         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
5645         Use it.
5646         * ipa-prop.c (param_type_may_change_p): Likewise.
5647         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
5648         (remove_unused_scope_block_p): Add in_ctor_dtor_block
5649         argument.  Before inlining, preserve
5650         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
5651         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
5652         recursive calls.
5653         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
5654
5655 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
5656
5657         PR ipa/65076
5658         * ipa-inline.c (edge_badness): Base denominator on callee's
5659         grwoth squared.
5660
5661 2015-03-27  Martin Jambor  <mjambor@suse.cz>
5662
5663         PR ipa/65478
5664         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
5665         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
5666         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
5667         node_calling_single_call.
5668         * ipa-cp.c (count_callers): New function.
5669         (set_single_call_flag): Likewise.
5670         (initialize_node_lattices): Count callers and set single_flag_call if
5671         necessary.
5672         (incorporate_penalties): New function.
5673         (good_cloning_opportunity_p): Use it, dump new flags.
5674         (propagate_constants_topo): Set node_within_scc flag if appropriate.
5675         * doc/invoke.texi (ipa-cp-recursion-penalty,
5676         ipa-cp-single-call-pentalty): Document.
5677
5678 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
5679
5680         PR ipa/65588
5681         * symtab.c (symtab_node::get_partitioning_class): Register vars
5682         are duplicated.
5683         * varpool.c (symbol_table::output_variables) Do not assemble unefined
5684         decls for non-symbols.
5685
5686 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5687
5688         PR target/65248
5689         * output.h (default_binds_local_p_2): New.
5690         * varasm.c (default_binds_local_p_2): Renamed to ...
5691         (default_binds_local_p_3): This.  Don't return true on protected
5692         data symbol if protected data may be external.
5693         (default_binds_local_p): Use default_binds_local_p_3.
5694         (default_binds_local_p_1): Likewise.
5695         (default_binds_local_p_2): New.
5696         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
5697         default_binds_local_p_2 if TARGET_MACHO is undefined.
5698
5699 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
5700
5701         PR target/65593
5702         * config/i386/i386.c (legitimize_pic_address): If base
5703         is SYMBOL_REF or LABEL_REF using %rip addressing, force
5704         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
5705
5706 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
5707
5708         PR target/65531
5709         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
5710         comdat groups.
5711
5712 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
5713
5714         PR ipa/65600
5715         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
5716         of optimized out indirect call.
5717         (redirect_to_unreachable): Always build symbol table node for
5718         BUILT_IN_UNREACHABLE
5719
5720 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
5721
5722         PR target/65407
5723         * ira-costs.c (record_reg_classes): Process all constraint string
5724         containing 0-9.
5725
5726 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
5727
5728         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
5729         memory_operand.
5730
5731         PR target/65052
5732         * config/c6x/constraints.md (S3): New constraint.
5733         * config/c6x/c6x.md (real_jump): Use it.
5734
5735 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
5736
5737         PR middle-end/65595
5738         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
5739         do redirection if the call is not optimized out.
5740
5741 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
5742
5743         PR target/65495
5744         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
5745         (fchkp-check-incomplete-type): Add LTO.
5746         (fchkp-zero-input-bounds-for-main): Likewise.
5747         (fchkp-first-field-has-own-bounds): Likewise.
5748         (fchkp-narrow-bounds): Likewise.
5749         (fchkp-narrow-to-innermost-array): Likewise.
5750         (fchkp-use-static-bounds): Likewise.
5751         (fchkp-use-static-const-bounds): Likewise.
5752         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
5753
5754 2015-03-27  Marek Polacek  <polacek@redhat.com>
5755
5756         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
5757
5758 2015-03-27  Marek Polacek  <polacek@redhat.com>
5759
5760         PR sanitizer/65583
5761         * ubsan.c (ubsan_create_edge): New function.
5762         (instrument_bool_enum_load): Call it.
5763         (instrument_nonnull_arg): Likewise.
5764         (instrument_nonnull_return): Likewise.
5765         (instrument_object_size): Likewise.
5766
5767 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
5768
5769         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
5770         auto_vec.
5771
5772 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
5773
5774         PR lto/65536
5775         * lto-streamer.h (class lto_location_cache): New.
5776         (struct data_in): Add location_cache.
5777         (lto_input_location): Update prototype.
5778         (stream_input_location_now): New.
5779         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
5780         pointer to location.
5781         (stream_input_location): Update.
5782         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
5783         (warn_odr): Apply location cache before warning.
5784         (lto_input_location): Update prototype.
5785         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
5786         Use stream_input_location_now.
5787         * lto-streamer-in.c (lto_location_cache::current_cache): New static
5788         variable.
5789         (lto_location_cache::cmp_loc): New function.
5790         (lto_location_cache::apply_location_cache): New function.
5791         (lto_location_cache::accept_location_cache): New function.
5792         (lto_location_cache::revert_location_cache): New function.
5793         (lto_location_cache::input_location): New function.
5794         (lto_input_location): Do location caching.
5795         (stream_input_location_now): New function.
5796         (input_eh_region, input_struct_function_base): Use
5797         stream_input_location_now.
5798         (lto_data_in_create): use new.
5799         (lto_data_in_delete): Use delete.
5800         * tree-streamer-in.c (unpack_ts_block_value_fields,
5801         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
5802         lto_input_ts_exp_tree_pointers): Update for cached location api.
5803
5804 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
5805
5806         PR ipa/65076
5807         * passes.def: Add pass_nothrow.
5808         * ipa-pure-const.c: (pass_data_nothrow): New.
5809         (pass_nothrow): New.
5810         (pass_nothrow::execute): New.
5811         (make_pass_nothrow): New.
5812         * tree-pass.h (make_pass_nothrow): Declare.
5813
5814 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
5815
5816         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
5817         edge to change by speculation resolution or redirection.
5818         (edge_set_predicate): Likewise.
5819         (inline_summary_t::duplicate): Likewise.
5820         (remap_edge_summaries): Likewise.
5821
5822 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
5823
5824         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
5825         New macros.
5826         (can_inline_edge_p): Relax option matching for always inline functions.
5827
5828 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
5829
5830         PR target/65561
5831         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
5832         Check operand 4 and operand 0 for equality.
5833         (avx512f_vextract<shuffletype>32x4_1_maskm):
5834         Check operand 6 and operand 0 for equality.
5835         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
5836         for equality.
5837         (vec_extract_hi_<mode>_maskm): Ditto.
5838
5839 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
5840
5841         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
5842         dead calls back to live.
5843         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
5844         cross check to ...
5845         (cgraph_node::verify_node): ... here; verify only callee edges,
5846         not caller.
5847         * cif-code.def (CILK_SPAWN): New code.
5848
5849 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
5850
5851         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
5852         (edge_set_predicate): Use it to mark unreachable edges.
5853         (inline_summary_t::duplicate): Remove unnecesary code.
5854         (remap_edge_summaries): Likewise.
5855         (dump_inline_summary): Report contains_cilk_spawn.
5856         (compute_inline_parameters): Compute contains_cilk_spawn.
5857         (inline_read_section, inline_write_summary): Stream
5858         contains_cilk_spawn.
5859         * ipa-inline.c (can_inline_edge_p): Do not touch
5860         DECL_STRUCT_FUNCTION that may not be available;
5861         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
5862         remove check for callee_fun->can_throw_non_call_exceptions and
5863         replace it by optimization attribute check; check for flag_exceptions.
5864         * ipa-inline-transform.c (inline_call): Maintain
5865         DECL_FUNCTION_PERSONALITY
5866         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
5867
5868 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
5869
5870         PR tree-optimization/65551
5871         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
5872         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
5873
5874 2015-03-26  Richard Biener  <rguenther@suse.de>
5875
5876         PR middle-end/65555
5877         * tree-cfg.c (verify_gimple_call): Do not require a call to
5878         have no LHS if it wasn't recognized as control altering yet.
5879
5880 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
5881
5882         PR tree-optimization/64715
5883         * passes.def: Add another instance of pass_object_sizes before ccp1.
5884         * tree-object-size.c (pass_object_sizes::execute): In
5885         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
5886         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
5887         __bos result and the computed constant.  Remove redundant
5888         checks, obsoleted by gimple_call_builtin_p test.
5889
5890         * var-tracking.c (variable_tracking_main_1): Don't track
5891         variables for targetm.no_register_allocation targets.
5892
5893 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
5894
5895         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
5896         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
5897
5898 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
5899
5900         PR target/65569
5901         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
5902         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
5903         0.0 is correctly setup.
5904         (extenddftf2_internal): Likewise.
5905
5906 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
5907
5908         PR tree-optimization/65177
5909         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
5910         (bb_in_bbs): New.
5911         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
5912         edges not adjacent on the path to the original code.
5913
5914 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
5915
5916         PR bootstrap/65537
5917         * doc/install.texi (Building a native compiler): Document new
5918         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
5919         configuration assumes that the host supports the linker plugin.
5920
5921 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
5922
5923         PR target/65508
5924         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
5925         chain for generated call.
5926
5927 2015-03-25  Richard Biener  <rguenther@suse.de>
5928
5929         * passes.c (pass_manager::execute_early_local_passes): Guard
5930         execution of pass_chkp_instrumentation_passes with
5931         flag_check_pointer_bounds.
5932         (pass_chkp_instrumentation_passes::gate): Likewise.
5933
5934 2015-03-25  Martin Liska  <mliska@suse.cz>
5935
5936         PR tree-optimization/65538
5937         * symbol-summary.h (function_summary::~function_summary):
5938         Relese memory for allocated summaries.
5939         (function_summary::release): New function.
5940
5941 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
5942
5943         PR lto/65515
5944         * lto-streamer-out.c (DFS::worklist): New struct.
5945         (DFS::worklist_vec): New data member.
5946         (DFS::next_dfs_num): Remove.
5947         (DFS::DFS): Rewritten using worklist instead of recursion,
5948         using most of code from DFS::DFS_write_tree.
5949         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
5950         pass it to DFS_write_tree calls.
5951         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
5952         quick initial checks push it into worklist_vec and return.
5953
5954 2015-03-25  Richard Biener  <rguenther@suse.de>
5955
5956         PR middle-end/65519
5957         * genmatch.c (expr::gen_transform): Re-write to avoid
5958         using gimple_build.
5959
5960 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
5961
5962         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
5963
5964 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
5965
5966         * config/arm/arm.opt (print_tune_info): New option.
5967         * config/arm/arm.c (arm_print_tune_info): New function.
5968         (arm_file_start): Call arm_print_tune_info.
5969         * config/arm/arm-protos.h (struct tune_params): Add comment.
5970         * doc/invoke.texi (@item -mprint-tune-info): New item.
5971         (-mtune): mention it in ARM Option Summary.
5972
5973 2015-03-25  DJ Delorie  <dj@redhat.com>
5974
5975         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
5976         correct clause.
5977
5978 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
5979             Martin Liska  <mliska@suse.cz>
5980
5981         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
5982         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
5983         (sem_item::add_type): New function.
5984         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
5985         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
5986         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
5987         (sem_function::equals_wpa): Fix typo.
5988         * ipa-icf.h (sem_item::add_type): New function.
5989         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
5990         order.
5991
5992 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
5993
5994         PR tree-optimization/65533
5995         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
5996         with swapped operands, call vect_free_slp_tree on
5997         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
5998         vector.
5999
6000 2015-03-24  Richard Biener  <rguenther@suse.de>
6001
6002         PR middle-end/65517
6003         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
6004         for fixup if necessary.
6005
6006 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
6007
6008         * doc/extend.texi (Function Attributes): Add @cindex entries
6009         for all attributes and regularize their format.  Delete text
6010         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
6011         information about "eightbit_data", "tiny_data", and "model"
6012         variable attributes to the Variable Attributes section.  Fix
6013         some obvious typos and copy-editing issues.
6014         (Variable Attributes, Type Attributes): Likewise add/fix
6015         @cindex entries for all attributes.
6016
6017 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
6018
6019         PR target/65523
6020         * tree-chkp.c (chkp_build_returned_bound): Ignore
6021         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
6022
6023 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
6024
6025         PR target/65505
6026         * config/sh/predicates.md (simple_mem_operand,
6027         displacement_mem_operand): Add test for reg.
6028         (short_displacement_mem_operand): Test for displacement_mem_operand
6029         before invoking sh_disp_addr_displacement.
6030         * config/sh/constraints.md (Sdd, Sra): Simplify.
6031         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
6032         Remove redundant displacement_mem_operand tests.
6033
6034 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
6035
6036         PR target/65296
6037         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
6038         the same -mmcu=MCU more than once.
6039
6040 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
6041
6042         PR bootstrap/65522
6043         * ipa-devirt.c: Remove duplicate demangle.h include.
6044
6045         PR target/65504
6046         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
6047         on the pseudo.
6048         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
6049         REG_POINTER on *destptr after adjusting it for prologue size.
6050
6051         PR ipa/65521
6052         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
6053         ultimate_alias_target ()->order ints instead of
6054         ultimate_alias_target () pointers.
6055
6056 2015-03-23  Richard Biener  <rguenther@suse.de>
6057
6058         PR tree-optimization/65518
6059         * tree-vect-stmts.c (vectorizable_load): Reject single-element
6060         interleaving cases we generate absymal code for.
6061
6062 2015-03-23  Richard Biener  <rguenther@suse.de>
6063
6064         PR tree-optimization/65494
6065         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
6066         matches here.
6067         (vect_analyze_slp_instance): But do that here, always and once.
6068
6069 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6070
6071         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
6072         adding T or multiplying by T+1 and subracting T.
6073
6074 2015-03-22  Jeff Law  <law@redhat.com>
6075
6076         PR rtl-optimization/64317
6077         * Makefile.in (OBJS): Add gcse-common.c
6078         * gcse.c: Include gcse-common.h
6079         (struct modify_pair_s): Move structure definition to gcse-common.h
6080         (compute_transp): Move function to gcse-common.c.
6081         (canon_list_insert): Similarly.
6082         (record_last_mem_set_info): Break out some code and put it into
6083         gcse-common.c.  Call into the new common code.
6084         (compute_local_properties): Pass additional arguments to compute_transp.
6085         * postreload-gcse.c: Include gcse-common.h and df.h
6086         (modify_mem_list_set, blocks_with_calls): New variables.
6087         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
6088         (get_bb_avail_insn): Pass in the expression index too.
6089         (alloc_mem): Allocate memory for the new bitmaps and lists.
6090         (free_mem): Free memory for the new bitmaps and lists.
6091         (insert_expr_in_table): Record a bitmap index for each entry we
6092         add to the table.
6093         (record_last_mem_set_info): Call into common code in gcse-common.c.
6094         (get_bb_avail_insn): If no available insn was found in the requested
6095         BB.  If BB has a single predecessor, see if the expression is
6096         transparent in BB and available in that single predecessor.
6097         (compute_expr_transp): New wrapper for compute_transp.
6098         (eliminate_partially_redundant_load): Pass expression's bitmap_index
6099         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
6100         (gcse_after_reload_main): If there are elements in the hash table,
6101         then compute transparency for all the elements in the hash table.
6102         * gcse-common.h: New file.
6103         * gcse-common.c: New file.
6104
6105 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
6106
6107         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
6108         as an adjective.
6109         (System Headers): Likewise.
6110         (Ifdef): Likewise.
6111         (Traditional macros): Likewise.
6112         (Invocation): Likewise.
6113         (Option Index): Likewise.
6114         * doc/cppopts.texi (-M): Likewise.
6115         (-finput-charset): Likewise.
6116         (--help): Likewise.
6117         * doc.invoke.texi (AVR Options): Likewise.
6118         (V850 Options): Likewise.
6119
6120 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
6121
6122         PR ipa/65475
6123         * ipa-devirt.c: Include demangle.h
6124         (odr_type_d): Add field rtti_broken.
6125         (odr_subtypes_equivalent_p): Do not require name to match.
6126         (compare_virtual_tables): Fix typo; if type already has ODR violation,
6127         bypass the tests; be ready for function referneces in vtables that are
6128         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
6129         (warn_odr): Give up for nameless types.
6130         (warn_types_mismatch): Report mismatch in mangled names;
6131         report mismatch in anonymous namespaces; look into component types to
6132         give useful error; report when mismatch is dragged in from other ODR
6133         type.
6134         (odr_types_equivalent_p): Match types for being polymorphic; avoid
6135         duplicated diagnostics.
6136         (add_type_duplicate): Reorder checks so more informative ones come
6137         first; fix typo; do not output "the extra base is defined here" when
6138         we did not warn.
6139         (BINFO_N_BASE_BINFOS): Relax sanity check.
6140
6141 2015-03-22  Martin Liska  <mliska@suse.cz>
6142             Jakub Jelinek  <jakub@redhat.com>
6143
6144         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
6145         masks that can potentially include a builtin.
6146         (ix86_add_new_builtins): Introduce fast filter for isa values
6147         that cannot trigger builtin inclusion.
6148
6149 2015-03-22  Martin Liska  <mliska@suse.cz>
6150
6151         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
6152         (sem_item::update_hash_by_local_refs): Likewise.
6153         (sem_variable::get_hash): Empty line is fixed.
6154         (sem_item_optimizer::execute): Include adding of hash references.
6155         (sem_item_optimizer::update_hash_by_addr_refs): New function.
6156         (sem_item_optimizer::build_hash_based_classes): Use local hash.
6157         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
6158         (sem_item::update_hash_by_local_refs): Likewise.
6159
6160 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
6161
6162         PR ipa/65502
6163         * ipa-comdats.c (enqueue_references): Walk through thunks.
6164         (ipa_comdats): Likewise.
6165         (set_comdat_group_1): New function.
6166
6167 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
6168
6169         PR ipa/65475
6170         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
6171         non-polymorphic
6172
6173 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
6174             Gerald Pfeifer  <gerald@pfeifer.com>
6175
6176         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
6177
6178 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
6179             Sandra Loosemore  <sandra@codesourcery.com>
6180
6181         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
6182         function parameter declaration.
6183         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
6184         Update arguments to nios2_adjust_call_address().
6185         (sibcall_internal): Rename from *sibcall.
6186         (sibcall_value_internal): Rename from *sibcall_value.
6187         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
6188         (nios2_large_got_address): Add target temp reg parameter.
6189         (nios2_got_address): Adjust call to nios2_large_got_address, add
6190         force_reg around it.
6191         (nios2_load_pic_address): Add target temp reg parameter, replace call
6192         to nios2_got_address with corresponding code.
6193         (nios2_legitimize_constant_address): Update call to
6194         nios2_load_pic_address.
6195         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
6196         to use temp reg for PIC loading purposes.
6197         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
6198         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
6199         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
6200
6201 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
6202
6203         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
6204         usage of "the @option{...}".
6205         (-Wopenmp-simd): Likewise.
6206         (-fsanitize-recover): Likewise.
6207         (-fsanitize-undefined-trap-on-error): Likewise.
6208         (-flto): Likewise.
6209         (tracer-dynamic-coverage-feedback): Likewise.
6210         (reorder-block-duplicate-feedback): Likewise.
6211         (loop-unroll-jam-size): Likewise.
6212         (-B): Likewise.
6213         (-I-): Likewise.
6214         (-mabs=legacy): Likewise.
6215         (-mupper-regs-df): Likewise.
6216         (-mupper-regs-sf): Likewise.
6217         (-mpointers-to-nested-functions): Likewise.
6218
6219 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
6220
6221         * doc/extend.texi (Cilk Plus Builtins): Add markup.
6222
6223 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
6224
6225         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
6226         additional index entries and cross-references.
6227         (-fchkp-check-incomplete-type): Likewise.
6228         (-fchkp-first-field-has-own-bounds): Likewise.
6229         (-fchkp-narrow-to-innermost-array): Likewise.
6230         (-fchkp-use-fast-string-functions): Likewise.
6231         (-fchkp-use-nochk-string-functions): Likewise.
6232         (-fchkp-use-static-const-bounds): Likewise.
6233         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
6234         (-fchkp-instrument-marked-only): Likewise.
6235         (-fchkp-use-wrappers): Likewise.
6236         (-static-libmpx): Likewise.
6237         (-static-libmpxwrappers): Likewise.
6238         * doc/extend.texi (bnd_legacy): Likewise.
6239         (bnd_instrument): Likewise.
6240         (bnd_variable_size): Likewise.
6241         (Pointer Bounds Checker builtins): Likewise.
6242
6243 2015-03-21  Tom de Vries  <tom@codesourcery.com>
6244
6245         PR tree-optimization/65458
6246         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
6247         * cgraph.h (cgraph_node): Add parallelized_function field.
6248         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
6249         (input_overwrite_node): Read parallelized_function field.
6250         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
6251         parallelized_function on cgraph_node for child_fn.
6252         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
6253         Remove include of gt-tree-parloops.h.
6254         (parallelized_functions): Remove static variable.
6255         (parallelized_function_p): Rewrite using parallelized_function field of
6256         cgraph_node.
6257         (create_loop_fn): Remove adding to parallelized_functions.
6258         * Makefile.in (GTFILES): Remove tree-parloops.c
6259
6260 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
6261
6262         PR rtl-optimization/64366
6263         * lra.c (lra_update_insn_regno_info): Consider regs in
6264         CALL_INSN_FUNCTION_USAGE memory.
6265
6266 2015-03-20  Richard Biener  <rguenther@suse.de>
6267
6268         PR middle-end/64715
6269         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
6270         for type comparison and gcc_checking_assert.
6271         (chrec_fold_plus_poly_poly): Likewise.
6272         (chrec_fold_multiply_poly_poly): Likewise.
6273         (chrec_convert_1): Likewise.
6274         * gimplify.c (gimplify_expr): Remove premature folding of
6275         &X + CST to &MEM[&X, CST].
6276
6277 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
6278
6279         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
6280         already is final.
6281         (ipa_inline): Recompute inline_failed codes.
6282         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
6283         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
6284         CIF_FINAL_ERROR.
6285
6286 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
6287
6288         PR rtl-optimization/60851
6289         * recog.c (constrain_operands): Accept a pseudo register before reload
6290         for LRA enabled targets.
6291
6292 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
6293
6294         PR target/65240
6295         * config/rs6000/predicates.md (easy_fp_constant): Remove special
6296         -ffast-math handling that kept non-0 constants live in the RTL
6297         until reload.  Remove logic testing the number of instructions it
6298         took to create a constant in a GPR that was never used, due to a
6299         test for soft-float earlier.
6300         (memory_fp_constant): Delete, no longer used.
6301
6302         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
6303         alternatives for loading non-0 constants into GPRs for hard
6304         floating point that is no longer needed due to changes in
6305         easy_fp_constant.  Add support for loading 0.0 into GPRs.
6306         (mov<mode>_hardfloat32): Likewise.
6307         (mov<mode>_hardfloat64): Likewise.
6308         (mov<mode>_64bit_dm): Likewise.
6309         (movtd_64bit_nodm): Likewise.
6310         (pre-reload move FP constant define_split): Delete define_split,
6311         since it is no longer used.
6312         (extenddftf2_internal): Remove GHF constraints that are not valid
6313         for extenddftf2.
6314
6315 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
6316
6317         PR rtl-optimization/63491
6318         * lra-constraints.c (check_and_process_move): Use src instead of
6319         sreg.  Remove some dead code.
6320
6321 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
6322
6323         PR ipa/65380
6324         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
6325         (sem_variable::merge): Likewise.
6326
6327 2015-03-19  Martin Liska  <mliska@suse.cz>
6328
6329         PR ipa/65465
6330         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
6331         all fields of cgraph_thunk_info.
6332
6333 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
6334
6335         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
6336         clone instrumented thunks.
6337
6338 2015-03-19  Richard Biener  <rguenther@suse.de>
6339
6340         Revert
6341         2015-03-10  Richard Biener  <rguenther@suse.de>
6342
6343         PR middle-end/63155
6344         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
6345         * tree-ssa-coalesce.c: Include timevar.h.
6346         (attempt_coalesce): Handle graph being NULL.
6347         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
6348         Split out abnormal coalescing to ...
6349         (perform_abnormal_coalescing): ... this function.
6350         (coalesce_ssa_name): Perform abnormal coalescing without computing
6351         live/conflict.
6352         (verify_ssa_coalescing_worker): New function.
6353         (verify_ssa_coalescing): Likewise.
6354
6355 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6356             Jakub Jelinek  <jakub@redhat.com>
6357
6358         PR sanitizer/65400
6359         * tsan.c (instrument_gimple): Clear tail call flag on
6360         calls.
6361
6362 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
6363
6364         PR sanitizer/65400
6365         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
6366         call in the return bb.
6367         (find_split_points): Add RETURN_BB argument, don't call
6368         find_return_bb.
6369         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
6370         if true append TSAN_FUNC_EXIT internal call after the call to
6371         the split off function.
6372         (execute_split_functions): Call find_return_bb here.
6373         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
6374         Adjust find_split_points and split_function calls.
6375
6376 2015-03-18  DJ Delorie  <dj@redhat.com>
6377
6378         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
6379         (iorqi3_virt): Likewise.
6380
6381 2015-03-18  Tom de Vries  <tom@codesourcery.com>
6382
6383         * tree-parloops.c (parallelize_loops): Make static.
6384         * tree-parloops.h (parallelize_loops): Remove extern declaration.
6385
6386 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
6387
6388         PR middle-end/64491
6389         Revert:
6390         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
6391
6392         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
6393         condition would be removed due to undefined behaviour.
6394
6395 2015-03-18  Martin Liska  <mliska@suse.cz>
6396
6397         PR ipa/65432
6398         * cgraph.c (cgraph_node::get_create): Remove unnecessary
6399         xstrdup_for_dump wrapper.
6400         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
6401         sem_item::name.
6402         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
6403         with xstrdup_for_dump.
6404         (sem_variable::equals): Likewise.
6405         (sem_item_optimizer::read_section): Use symtab_node::name instead of
6406         sem_item::name.
6407         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
6408         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
6409         symtab_node::asm_name with xstrdup_for_dump.
6410         (congruence_class::dump): Use symtab_node::name instead of
6411         sem_item::name.
6412         * ipa-icf.h (symtab_node::name): Remove.
6413         (symtab_node::asm_name): Likewise.
6414
6415 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
6416
6417         PR tree-optimization/65450
6418         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
6419         function.
6420         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
6421         it instead of duplicate_ssa_name_ptr_info.
6422
6423         PR target/65222
6424         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
6425
6426 2015-03-18  Richard Biener  <rguenther@suse.de>
6427
6428         * tree-data-ref.h (struct access_matrix): Remove.
6429         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
6430         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
6431         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
6432         (am_vector_index_for_loop): Likewise.
6433         (struct data_reference): Remove access_matrix member.
6434         (DR_ACCESS_MATRIX): Remove.
6435         (lambda_vector_new): Add comment.
6436         (lambda_matrix_new): Use XOBNEWVEC.
6437
6438 2015-03-18  Richard Biener  <rguenther@suse.de>
6439
6440         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
6441         (pass_ch::execute): Cleanup the CFG only if we did sth.
6442         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
6443
6444 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6445
6446         * expmed.c (synth_mult): Use std::swap instead of manually
6447         swapping algorithms.
6448
6449 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
6450
6451         PR target/65078
6452         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
6453
6454 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
6455
6456         PR target/65296
6457         * config/avr/avr.opt (-nodevicelib): New option.
6458         * doc/invoke.texi (AVR Options): Document it.
6459         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
6460         libgcc.a, libc.a, libm.a.
6461         * config/avr/specs.h: Same.
6462         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
6463         which don't (directly) depend on the device.  Print more help.
6464         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
6465         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
6466         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
6467         case of an error.
6468         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
6469         for specs file name.
6470         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
6471         * config/avr/avr-mcus.def: Adjust initializers and comments.
6472
6473 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
6474
6475         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
6476         DECL_ONE_ONLY to check if decl is one only.
6477         * ipa-split.c (consider_split): Limit splitt of one only functions.
6478
6479 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
6480
6481         PR tree-optimization/65427
6482         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
6483         functions.
6484         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
6485
6486 2015-03-16  Marek Polacek  <polacek@redhat.com>
6487
6488         * cgraph.h (add_new_static_var): Remove declaration.
6489         * varpool.c (add_new_static_var): Remove function.
6490
6491 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
6492
6493         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
6494         instead of vec<tree> * with vec_alloc and release for args.
6495         Adjust all users.
6496
6497         PR middle-end/65431
6498         * omp-low.c (delete_omp_context): Only splay_tree_delete
6499         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
6500         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
6501
6502 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
6503
6504         PR sanitizer/64820
6505         * cfgexpand.c (align_base): New function.
6506         (alloc_stack_frame_space): Call it.
6507         (expand_stack_vars): Align prev_frame to be sure
6508         data->asan_vec elements aligned properly.
6509
6510 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
6511
6512         PR middle-end/65409
6513         * expr.c (store_field): Do not do a direct block copy if the source is
6514         a PARALLEL with BLKmode.
6515
6516 2015-03-16  Tom de Vries  <tom@codesourcery.com>
6517
6518         PR middle-end/65414
6519         Revert:
6520         2015-03-12  Tom de Vries  <tom@codesourcery.com>
6521
6522         PR rtl-optimization/64895
6523         * lra-lives.c (check_pseudos_live_through_calls): Use
6524         actual_call_used_reg_set instead of call_used_reg_set, if available.
6525
6526 2015-03-16  Alan Modra  <amodra@gmail.com>
6527
6528         PR target/63150
6529         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
6530         Modify Z->r bswapdi splitter to use dest in place of scratch.
6531         In r->Z and Z->r bswapdi splitter rename word_high, word_low
6532         to word1, word2 and rearrange logic to suit.
6533         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
6534         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
6535         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
6536         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
6537         early clobber.
6538
6539 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
6540
6541         PR tree-optimization/65369
6542         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
6543         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
6544         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
6545
6546         PR tree-optimization/65418
6547         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
6548         are casts in the first PLUS_EXPR operand, ensure tbias and
6549         *totallowp are in the inner type.
6550
6551         PR rtl-optimization/65401
6552         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
6553         argument.  If true, adjust_address_nv of x with big-endian
6554         correction for the mode widening to GET_MODE (y).
6555         (make_field_assignment): Don't do MEM mode widening here.
6556         Use MEM_P instead of GET_CODE == MEM.
6557
6558 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
6559
6560         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
6561         the external decls.
6562
6563 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6564
6565         PR target/64600
6566         * config/arm/arm.c (arm_gen_constant, AND case): Use
6567         ARM_SIGN_EXTEND when constructing AND mask.
6568
6569 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6570
6571         * graph.c (print_graph_cfg): Make function names visible and append
6572         parenthesis to it.  Also make groups of basic blocks belonging to the
6573         same function visible.
6574
6575 2015-03-12  Richard Biener  <rguenther@suse.de>
6576
6577         PR middle-end/44563
6578         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
6579         to avoid quadratic behavior with inline expansion splitting blocks.
6580         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
6581         with the successor if the predecessor will be merged with it.
6582         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
6583         entry block with its successor.
6584
6585 2015-03-13  Richard Biener  <rguenther@suse.de>
6586
6587         PR middle-end/44563
6588         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
6589         (cleanup_tree_cfg_1): Do not call it.
6590         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
6591         (fixup_noreturn_call): Mark the stmt as control altering.
6592         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
6593         here.
6594         (pass_data_fixup_cfg): Produce a dump file.
6595         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
6596         (need_noreturn_fixup): New global.
6597         (pass_dominator::execute): Fixup queued noreturn calls.
6598         (optimize_stmt): Queue calls that became noreturn for fixup.
6599         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
6600         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
6601         (el_to_fixup): New global.
6602         (eliminate_dom_walker::before_dom_childre): Queue calls that
6603         became noreturn for fixup.
6604         (eliminate): Fixup queued noreturn calls.
6605         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
6606         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
6607         (substitute_and_fold_dom_walker::before_dom_children): Queue
6608         alls that became noreturn for fixup.
6609         (substitute_and_fold): Fixup queued noreturn calls.
6610
6611 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
6612
6613         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
6614         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
6615         are building; for methods check ODR type of class they belong to if
6616         they may lead to a polymorphic call.
6617         (sem_function::compare_polymorphic_p): Be bit smarter about testing
6618         when function may lead to a polymorphic call.
6619         (sem_function::compare_type_list): Remove.
6620         (sem_variable::equals): Update use of compatible_types_p.
6621         (sem_variable::parse_tree_refs): Remove.
6622         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
6623         cdtor.
6624         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
6625         matching here.
6626         (func_checker::compatible_polymorphic_types_p): Break out from ...
6627         (unc_checker::compatible_types_p): ... here.
6628         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
6629         Declare.
6630         (unc_checker::compatible_types_p): Update.
6631         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
6632         Remove.
6633
6634 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6635
6636         PR rtl-optimization/65235
6637         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
6638         When first element of vec_concat is const_int, calculate its size
6639         using second element.
6640
6641 2015-03-12  Richard Biener  <rguenther@suse.de>
6642
6643         PR middle-end/65270
6644         * fold-const.c (operand_equal_p): Fix ordering of resetting
6645         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
6646
6647 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6648
6649         * config/s390/s390.c (s390_reorg): Move code to output nops after label
6650         to s390_reorg ().
6651         (s390_asm_output_function_label): Likewise.
6652         * config/s390/s390.c (s390_asm_output_function_label):
6653         Fix function label alignment with -mhtopatch.
6654         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
6655         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
6656         ("nop_2_byte"): New define_insn.
6657         ("nop_4_byte"): Likewise.
6658         ("nop_6_byte"): Likewise.
6659         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
6660         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
6661
6662 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
6663
6664         PR target/65103
6665         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
6666         register.
6667
6668 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
6669
6670         PR target/65044
6671         * toplev.c (process_options): Restrict Pointer Bounds Checker
6672         usage with Address Sanitizer.
6673
6674 2015-03-12  Richard Biener  <rguenther@suse.de>
6675
6676         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
6677         to split on.
6678         * omp-low.c (expand_omp_taskreg): Split block before removing
6679         the stmt.
6680         (expand_omp_target): Likewise.
6681         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
6682         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
6683         stmt to split_block.
6684
6685 2015-03-12  Tom de Vries  <tom@codesourcery.com>
6686
6687         PR rtl-optimization/64895
6688         * lra-lives.c (check_pseudos_live_through_calls): Use
6689         actual_call_used_reg_set instead of call_used_reg_set, if available.
6690
6691 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
6692
6693         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
6694         (cgraph_node::remove): Likewise.
6695         (cgraph_node::get_untransformed_body): Likewise.
6696         * varpool.c (varpool_node::remove): Likewise.
6697         (varpool_node::get_constructor): Add sanity check.
6698
6699 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
6700
6701         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
6702         old GCC versions.
6703         (-fabi-compat-version): Likewise.
6704         (-ffriend-injection): Likewise.
6705         (-Wdeclaration-after-statement): Likewise.
6706         (-fomit-frame-pointer): Likewise.
6707         (-ftree-coalesce-inlined-vars): Likewise.
6708         (-fvisibility=): Likewise.
6709         * doc/extend.texi (Typeof): Likewise.
6710         (Zero Length): Likewise.
6711         (Escaped Newlines): Likewise.
6712         (Compound Literals): Likewise.
6713         (Function Attributes): Likewise.
6714         (Label Attributes): Likewise.
6715         (Type Attributes): Likewise.
6716         (Function Names): Likewise.
6717         (Other Builtins): Likewise.
6718         (Function Specific Option Pragmas): Likewise.
6719         (C++ Interface): Likewise.
6720
6721 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
6722
6723         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
6724
6725 2015-03-11  Marek Polacek  <polacek@redhat.com>
6726
6727         PR tree-optimization/65388
6728         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
6729
6730 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
6731
6732         PR target/65296
6733         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
6734         * configure: Regenerate.
6735         * config.in: Regenerate.
6736         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
6737         [-mn-flash]: Document it.
6738         [__AVR_ARCH__]: Document avrtiny.
6739
6740         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
6741         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
6742         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
6743
6744 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6745
6746         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
6747
6748 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
6749
6750         PR target/65242
6751         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
6752         allow reloads of PLUS in floating point/VSX registers.
6753
6754 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
6755
6756         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
6757         crypto_sha256_fast.
6758         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
6759
6760 2015-03-11  Richard Biener  <rguenther@suse.de>
6761
6762         PR tree-optimization/65310
6763         * tree-sra.c (build_ref_for_offset): Also preserve larger
6764         alignment.
6765
6766 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
6767
6768         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
6769
6770 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
6771
6772         PR target/65368
6773         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
6774         new define_expand.
6775         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
6776
6777 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
6778
6779         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
6780         (sem_function::equals_wpa): ... here.
6781
6782 2015-03-10  Marek Polacek  <polacek@redhat.com>
6783             Jakub Jelinek  <jakub@redhat.com>
6784
6785         PR sanitizer/65367
6786         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
6787         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
6788         separately.
6789
6790 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
6791
6792         PR target/65286
6793         * config/rs6000/t-linux: For powerpc64* target set
6794         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
6795
6796 2015-03-10  Richard Biener  <rguenther@suse.de>
6797
6798         PR middle-end/44563
6799         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
6800         for redirect_all_calls.
6801
6802 2015-03-10  Marek Polacek  <polacek@redhat.com>
6803
6804         * gdbinit.in (pcfun): Define and document.
6805
6806 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
6807
6808         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
6809         of libgomp-plugin.h.
6810         (find_target_compiler): Support a case when the path to gcc is
6811         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
6812         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
6813         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
6814         libgomp-plugin.h.
6815         (main): Use GCC_INSTALL_NAME as target_driver_name.
6816         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
6817         define.
6818         (mkoffload.o): Remove obsolete include path and defines.
6819         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
6820
6821 2015-03-10  Richard Biener  <rguenther@suse.de>
6822
6823         PR middle-end/63155
6824         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
6825         * tree-ssa-coalesce.c: Include timevar.h.
6826         (attempt_coalesce): Handle graph being NULL.
6827         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
6828         Split out abnormal coalescing to ...
6829         (perform_abnormal_coalescing): ... this function.
6830         (coalesce_ssa_name): Perform abnormal coalescing without computing
6831         live/conflict.
6832         (verify_ssa_coalescing_worker): New function.
6833         (verify_ssa_coalescing): Likewise.
6834
6835 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
6836
6837         PR target/65296
6838         * config.gcc (extra_options) [avr]: Remove.
6839         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
6840         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
6841         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
6842
6843         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
6844         (-mmcu=): Add Var and MissingArgError properties.
6845         (-march=): Remove.
6846         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
6847         * config/avr/t-multilib: Regenerate.
6848         * config/avr/specs.h: New file.
6849         * config/avr/driver-avr.c: New file.
6850         * config/avr/genopt.sh: Remove file.
6851         * config/avr/avr-tables.opt: Remove file.
6852         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
6853         * config/avr/avr-c.c: Same.
6854         * avr-arch.h: Same.
6855         (avr_current_device): Remove proto.
6856         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
6857         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
6858         (EXTRA_SPEC_FUNCTIONS): Define.
6859         (avr_devicespecs_file): New specs function proto.
6860         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
6861         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
6862         (avr_current_device): Remove definition and usage.
6863         (avr_set_core_architecture): New static function.
6864         (avr_option_override): Use it.
6865         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
6866         (mcu_name): New static array.
6867         (comparator, avr_archs_str, avr_mcus_str): New static functions.
6868         (avr_inform_devices, avr_inform_core_architectures): New functions.
6869         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
6870         (avrlibc.h) [WITH_AVRLIBC]: Include.
6871         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
6872         (print_mcu): Rewrite from scratch.
6873         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
6874         Forward to avr-specific specs defined in device-specs file.
6875         * config/avr/t-avr (driver-avr.o): New rule.
6876         (avr-devices.o): Depend on avr-arch.h.
6877         (avr-mcus): No more depend on avr-tables.opt.
6878         (avr-tables.opt): Remove rule.
6879         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
6880
6881 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6882
6883         * c-family/c.opt (fchkp-use-wrappers): New.
6884         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
6885         (chkp_wrap_function): New.
6886         (chkp_build_instrumented_fndecl): Support wrapped
6887         functions.
6888         * doc/invoke.texi (-fcheck-pointer-bounds): New.
6889         (-fchkp-check-incomplete-type): New.
6890         (-fchkp-first-field-has-own-bounds): New.
6891         (-fchkp-narrow-bounds): New.
6892         (-fchkp-narrow-to-innermost-array): New.
6893         (-fchkp-optimize): New.
6894         (-fchkp-use-fast-string-functions): New.
6895         (-fchkp-use-nochk-string-functions): New.
6896         (-fchkp-use-static-bounds): New.
6897         (-fchkp-use-static-const-bounds): New.
6898         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
6899         (-fchkp-check-read): New.
6900         (-fchkp-check-write): New.
6901         (-fchkp-store-bounds): New.
6902         (-fchkp-instrument-calls): New.
6903         (-fchkp-instrument-marked-only): New.
6904         (-fchkp-use-wrappers): New.
6905         (-static-libmpx): New.
6906         (-static-libmpxwrappers): New.
6907
6908 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6909
6910         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
6911         (CHKP_SPEC): Add wrappers library.
6912         * c-family/c.opt (static-libmpxwrappers): New.
6913
6914 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
6915
6916         * config/i386/linux-common.h (LIBMPX_LIBS): New.
6917         (LIBMPX_SPEC): New.
6918         (CHKP_SPEC): New.
6919         * gcc.c (CHKP_SPEC): New.
6920         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
6921         * c-family/c.opt (static-libmpx): New.
6922
6923 2015-03-10  Richard Biener  <rguenther@suse.de>
6924
6925         PR middle-end/44563
6926         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
6927         for compare_type.
6928         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
6929         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
6930         (cgraph_add_edge_to_call_site_hash): Likewise.
6931         (cgraph_node::get_edge): Likewise.
6932         (cgraph_edge::set_call_stmt): Likewise.
6933         (cgraph_edge::remove_caller): Likewise.
6934
6935 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
6936
6937         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
6938         (callee_saved_gpr_regs_size): ... this.
6939         (callee_saved_regs_first_regno): Rename to ...
6940         (callee_saved_first_gpr_regno): ... this.
6941         (callee_saved_regs_last_regno) Rename to ...
6942         (callee_saved_last_gpr_regno): ... this.
6943         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
6944         variables.
6945         (nds32_initial_elimination_offset): Likewise.
6946         (nds32_expand_prologue): Likewise.
6947         (nds32_expand_epilogue): Likewise.
6948         (nds32_expand_prologue_v3push): Likewise.
6949         (nds32_expand_epilogue_v3pop): Likewise.
6950         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
6951         Adjust renamed variables.
6952         (nds32_output_stack_pop): Likewise.
6953
6954 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6955
6956         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
6957         code in comment.
6958
6959 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
6960
6961         PR rtl-optimization/65321
6962         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
6963         than shift mode.
6964         * var-tracking.c (use_narrower_mode): Likewise.
6965
6966 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
6967
6968         PR tree-optimization/65355
6969         * varasm.c (notice_global_symbol): Do not produce RTL.
6970         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
6971         anchor.
6972         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
6973         check for section anchors.
6974
6975 2015-03-10  Alan Modra  <amodra@gmail.com>
6976
6977         PR target/65286
6978         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
6979         to be single-arch by default.  Set cpu_is_64bit for powerpc64
6980         given --with-cpu=native.
6981         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
6982         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
6983         and powerpc64le.
6984         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
6985         rs6000_isa_flags rather than TARGET_64BIT.
6986
6987 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
6988             Kaz Kojima  <kkojima@gcc.gnu.org>
6989
6990         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
6991
6992 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
6993
6994         PR lto/65361
6995         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
6996         on a TREE_BINFO, instead use BINFO_TYPE.
6997
6998 2015-03-09  Richard Biener  <rguenther@suse.de>
6999
7000         PR middle-end/65270
7001         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
7002         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
7003         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
7004         of that.  When comparing dereferences compare alignment.
7005         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
7006
7007 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
7008
7009         * ipa-inline-analysis.c (check_callers): Check
7010         node->can_remove_if_no_direct_calls_and_refs_p.
7011         (growth_likely_positive): Reorganize to call
7012         can_remove_if_no_direct_calls_p later.
7013         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
7014         will_be_removed_from_program_if_no_direct_calls_p): Add
7015         will_inline parameter.
7016         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
7017         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
7018         Handle inliner case correctly.
7019
7020 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7021
7022         PR tree-optimization/63743
7023         * cfgexpand.c (reorder_operands): Also reorder if only second operand
7024         had its definition forwarded by TER.
7025
7026 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
7027
7028         PR lto/65316
7029         * ipa-utils.h (types_odr_comparable): Add strict argument.
7030         * ipa-devirt.c: Fix whitespace;
7031         (odr_hasher): Remove.
7032         (odr_name_hasher, odr_vtable_hasher): New hashers.
7033         (can_be_name_hashed_p): New predicate.
7034         (hash_type_name): remove.
7035         (hash_odr_name): New.
7036         (odr_name_hasher::hash): new.
7037         (can_be_vtable_hashed_p): New.
7038         (hash_odr_vtable): New.
7039         (odr_vtable_hasher::hash): New.
7040         (types_same_for_odr): Add strict parameter.
7041         (types_odr_comparable): Likewise.
7042         (odr_name_hasher::equal): New.
7043         (odr_vtable_hasher::equal): New.
7044         (odr_name_hasher::remove): New.
7045         (odr_hash_type): Change to hash_table<odr_name_hasher>.
7046         (odr_vtable_hash_type): New.
7047         (odr_vtable_hash): New.
7048         (odr_subtypes_equivalent_p): Do strict comparsion.
7049         (add_type_duplicate): Merge type names; cleanup; avoid type
7050         duplicates.
7051         (register_odr_type): Initialize vtable hash.
7052         (build_type_inheritance_graph): Likewise
7053         (get_odr_type): Reorg to use two hashes.
7054         (dump_possible_polymorphic_call_targets): Move sanity check after debug
7055         output.
7056         (ipa_devirt): Dump type_inheritance_graph.
7057         (types_same_for_odr): Add strict mode.
7058
7059 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
7060
7061         PR ipa/65334
7062         * cgraph.h (symtab_node): Add definition_alignment,
7063         can_increase_alignment_p and increase_alignment.
7064         * symtab.c (symtab_node::can_increase_alignment_p,
7065         increase_alignment_1, symtab_node::increase_alignment,
7066         symtab_node::definition_alignment): New.
7067         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
7068         can_increase_alignment_p.
7069         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
7070         * tree-vect-stmts.c (ensure_base_align): Likewise.
7071         * varasm.c (function_section_1): Use definition_alignment.
7072         (assemble_start_function): Likewise.
7073         (emit_local): likewise.
7074         (build_constant_desc): Likewsie.
7075         (output_constant_def_contents): Likewise.
7076         (place_block_symbol): Likewise.
7077         (output_object_block): Likewise.
7078
7079 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
7080
7081         PR ipa/65316
7082         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
7083         when outputting debug.
7084
7085 2015-03-07  Marek Polacek  <polacek@redhat.com>
7086             Martin Uecker  <uecker@eecs.berkeley.edu>
7087
7088         PR sanitizer/65280
7089         * doc/invoke.texi: Update description of -fsanitize=bounds.
7090
7091 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
7092
7093         * tree-ssa-phiopt.c (neg_replacement): Remove.
7094         (tree_ssa_phiopt_worker): Remove negate optimization.
7095
7096 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
7097
7098         PR ipa/65302
7099         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
7100
7101 2015-03-06  Richard Biener  <rguenther@suse.de>
7102
7103         PR middle-end/64928
7104         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
7105         and liveout_obstack members.
7106         (calculate_live_on_exit): Remove.
7107         (calculate_live_ranges): Change declaration.
7108         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
7109         (new_tree_live_info): Adjust.
7110         (calculate_live_ranges): Delete livein when not wanted.
7111         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
7112         Deal with partly deleted live info.
7113         (loe_visit_block): Remove temporary bitmap by using
7114         bitmap_ior_and_compl_into.
7115         (live_worklist): Adjust accordingly.
7116         (calculate_live_on_exit): Make static.
7117         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
7118         we do not need livein.
7119
7120 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
7121
7122         * real.c (real_from_string): Fix typo in assertion.
7123
7124 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
7125
7126         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
7127         the patch.
7128
7129 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
7130
7131         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
7132
7133 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
7134
7135         PR target/64342
7136         * lra-assigns.c (find_hard_regno_for): Rename to
7137         find_hard_regno_for_1.  Add a new parameter.
7138         (find_hard_regno_for): New function using find_hard_regno_for_1.
7139
7140 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7141
7142         PR rtl-optimization/65067
7143         * expmed.c (store_bit_field, extract_bit_field): Reworked the
7144         strict volatile bitfield handling.
7145
7146 2015-03-05  Martin Liska  <mliska@suse.cz>
7147
7148         PR ipa/65318
7149         * ipa-icf.c (sem_variable::equals): Compare variables types.
7150
7151 2015-03-05  Richard Henderson  <rth@redhat.com>
7152
7153         PR target/65121
7154         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
7155         correctly check weak symbol binding.
7156
7157 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
7158
7159         PR middle-end/65315
7160         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
7161         needed alignment.
7162
7163 2015-03-05  Martin Liska  <mliska@suse.cz>
7164
7165         * ipa-inline.c (inline_small_functions): Set default value to
7166         prevent warning during bootstrap.
7167         * tree.h: Add pragma guard that ignores false positives during
7168         bootstrap.
7169
7170 2015-03-05  Richard Biener  <rguenther@suse.de>
7171
7172         PR tree-optimization/65310
7173         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7174         Properly preserve alignment of the base of the access.
7175
7176 2015-03-05  Richard Biener  <rguenther@suse.de>
7177
7178         PR ipa/65270
7179         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
7180         Compare dependence info.
7181
7182 2015-03-05  Richard Biener  <rguenther@suse.de>
7183
7184         PR middle-end/65233
7185         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
7186         tree-into-ssa.h.
7187         (walk_ssa_copies): Revert last chage.  Instead do not walk
7188         SSA names registered for SSA update.
7189
7190 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
7191
7192         PR ipa/65270
7193         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
7194         vtable references for their containing type.
7195         (sem_function::equals_wpa): Compare TYPE_RESTRICT
7196         and type attributes.
7197
7198 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
7199
7200         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
7201         before negating it.
7202         * stor-layout.c (finalize_record_size): Revert latest change.
7203
7204 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
7205
7206         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
7207
7208 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
7209
7210         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
7211         for correct comdat handling.
7212         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
7213         Likewise.
7214         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
7215         (used_from_object_file_p_worker): Remove.
7216         (cgraph_node::only_called_directly_or_alised): Add
7217         used_from_object_file_p.
7218         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
7219         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
7220         can_remove_if_no_direct_calls_and_refs_p.
7221
7222 2015-03-04  Nick Clifton  <nickc@redhat.com>
7223
7224         * config/rl78/rl78.h (enum reg_class): Remove real registers from
7225         General register class.
7226         * config/rl78/rl78-real.md: Replace general register constraints
7227         with real+virtual register constraints.
7228
7229 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7230
7231         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
7232         from checking for -mhtm option.
7233
7234 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
7235
7236         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
7237         (struct ipa_sra_check_caller_data): Add has_thunk field.
7238         (ipa_sra_check_caller): Check for thunk.
7239         (ipa_sra_preliminary_function_checks): Give up on function with
7240         thunks.
7241         (ipa_early_sra): Use call_for_symbol_and_aliases.
7242
7243 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
7244
7245         PR target/65249
7246         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
7247         called for __stack_chk_guard symbol.
7248
7249 2015-03-03  DJ Delorie  <dj@redhat.com>
7250
7251         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
7252         inc/dec.
7253         (*addhi3_real): Likewise.
7254         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
7255         pattern to match incrementing memory.
7256         * config/rl78/predicates.md (rl78_1_2_operand): New.
7257         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
7258         it's the same and only mem.
7259         (rl78_alloc_physical_registers_op2): If there's effectively only
7260         one MEM, transcode it into HL.
7261         (rl78_far_p): Reject addresses that aren't legitimate.
7262
7263 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
7264
7265         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
7266         negating it.
7267
7268         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
7269
7270 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
7271
7272         Implement call0 ABI for xtensa
7273         * config/xtensa/constraints.md ("a" constraint): Include stack
7274         pointer in case of call0 ABI.
7275         ("q" constraint): Make empty in case of call0 ABI.
7276         ("D" constraint): Include stack pointer in case of call0 ABI.
7277         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
7278         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
7279         prototypes.
7280         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
7281         variable.
7282         (xtensa_regno_to_class): Make it a local variable in the
7283         function xtensa_regno_to_class.
7284         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
7285         macro, function prototype and implementation.
7286         (reg_nonleaf_alloc_order): Make it a local variable in the
7287         function order_regs_for_local_alloc.
7288         (xtensa_conditional_register_usage): New function.
7289         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
7290         (xtensa_valid_move): Allow direct moves to stack pointer
7291         register in call0 ABI.
7292         (xtensa_setup_frame_addresses): Only spill register windows in
7293         windowed ABI.
7294         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
7295         call0 ABI respectively.
7296         (xtensa_function_arg_1): Only mark a7 register for copying in
7297         windowed ABI.
7298         (xtensa_call_save_reg): New function.
7299         (compute_frame_size): Add space for callee saved register
7300         storage to the frame size in call0 ABI.
7301         (xtensa_expand_prologue): Generate code to set up stack frame
7302         and save callee-saved registers in call0 ABI.
7303         (xtensa_expand_epilogue): New function.
7304         (xtensa_set_return_address): New function.
7305         (xtensa_return_addr): Calculate return address in call0 ABI.
7306         (xtensa_builtin_saveregs): Only mark a7 register for copying and
7307         emit copying code in windowed ABI.
7308         (order_regs_for_local_alloc): Add preferred register allocation
7309         order for non-leaf function in call0 ABI.
7310         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
7311         (xtensa_asm_trampoline_template): Add trampoline generation for
7312         call0 ABI.
7313         (xtensa_trampoline_init): Add trampoline initialization for
7314         call0 ABI.
7315         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
7316         functions.
7317         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
7318         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
7319         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
7320         ABI call-used registers.
7321         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
7322         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
7323         call0 ABI.
7324         (REG_CLASS_CONTENTS): Include all registers into the preferred
7325         reload registers set, adjust the set in the
7326         xtensa_conditional_register_usage.
7327         (xtensa_regno_to_class): Drop variable declaration.
7328         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
7329         function.
7330         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
7331         respectively.
7332         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
7333         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
7334         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
7335         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
7336         location in call0 ABI.
7337         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
7338         stack adjustment size when handling exception.
7339         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
7340         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
7341         definitions.
7342         ("return" pattern): Generate ret.n/ret in call0 ABI.
7343         ("epilogue" pattern): Expand epilogue.
7344         ("nonlocal_goto" pattern): Use default in call0 ABI.
7345         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
7346         emit eh_set_a0_* depending on ABI.
7347         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
7348         ("eh_set_a0_call0", "blockage"): New patterns.
7349
7350 2015-03-03  Martin Liska  <mliska@suse.cz>
7351
7352         PR ipa/65287
7353         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
7354
7355 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
7356
7357         PR 65138/target
7358         * config/rs6000/rs6000-tables.opt: Regenerate table.
7359
7360 2015-03-03  Renlin Li  <renlin.li@arm.com>
7361
7362         * doc/md.texi (@item ^): Change ? into ^.
7363
7364 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
7365
7366         * doc/tm.texi: Regenerated.
7367
7368 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
7369
7370         * builtins.c (expand_builtin_return_addr): Add
7371         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
7372         surrounding #ifdef.
7373         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
7374         definition to 1.
7375         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
7376         Likewise.
7377         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
7378         undefined.
7379         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
7380         paragraph.
7381
7382 2015-03-03  Martin Jambor  <mjambor@suse.cz>
7383             Eric Botcazou  <ebotcazou@adacore.com>
7384
7385         * tree-sra.c (ipa_sra_check_caller_data): New type.
7386         (has_caller_p): Removed.
7387         (ipa_sra_check_caller): New function.
7388         (ipa_sra_preliminary_function_checks): Use it.
7389
7390 2015-03-03  Martin Liska  <mliska@suse.cz>
7391
7392         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
7393         instead of if branch.
7394
7395 2015-03-03  Martin Liska  <mliska@suse.cz>
7396
7397         PR ipa/65282
7398         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
7399
7400 2015-03-23  Jeff Law  <law@redhat.com>
7401
7402         PR tree-optimization/65241
7403         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
7404         hash table if INSERT is true.
7405
7406 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
7407
7408         PR target/65296
7409         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
7410
7411 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
7412
7413         PR target/64331
7414         * config/avr/avr.c (context.h, tree-pass.h): Include them.
7415         (avr_pass_data_recompute_notes): New static variable.
7416         (avr_pass_recompute_notes): New class.
7417         (avr_register_passes): New static function.
7418         (avr_option_override): Call it.
7419
7420 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
7421
7422         Fix various problems with specs file generation.
7423
7424         PR target/65296
7425         * config.gcc (extra_gcc_objs) [avr]: Remove.
7426         * config/avr/driver-avr.c: Remove file.
7427         * config/avr/t-avr (driver-avr.o): Remove rule.
7428         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
7429         INCLUDES to build.  Depend on TM_H.
7430         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
7431         build warnings.  Fix non-matching types and non-existing %-codes.
7432         (tm.h): Include.
7433         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
7434         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
7435         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
7436         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
7437         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
7438         (LIBGCC_SPEC): Remove definitions.
7439
7440 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
7441
7442         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
7443         to create a register in testing mode.
7444
7445 2015-03-03  Martin Liska  <mliska@suse.cz>
7446             Jan Hubicka  <hubicka@ucw.cz>
7447
7448         PR ipa/65263
7449         * cgraph.c (cgraph_node::has_thunk_p): New function.
7450         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
7451         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
7452         (sem_function::merge): Assert is changed.
7453
7454 2015-03-03  Martin Liska  <mliska@suse.cz>
7455             Martin Jambor  <mjambor@suse.cz>
7456
7457         PR ipa/65087
7458         * ipa-icf.c (sem_item_optimizer::execute): Change function
7459         return value to boolean.
7460         (sem_item_optimizer::merge_classes): Likewise.
7461         (ipa_icf_driver): Return TODO_remove_functions in case there's
7462         a merge operation processed.
7463         * ipa-icf.h: Change function return value to boolean.
7464
7465 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7466
7467         PR 65138/target
7468         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
7469         processor type for 64-bit little endian PowerPC.
7470
7471         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
7472         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
7473         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
7474         printing built-in mask so it does not pass NULL pointers.
7475
7476         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
7477         -mcpu=powerpc64le.
7478
7479 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
7480
7481         PR target/58158
7482         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
7483         !ISA_HAS_FP_CONDMOVE.
7484
7485 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
7486
7487         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
7488         reload_completed.
7489
7490 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
7491
7492         * doc/invoke.texi (Options for Code Generation Conventions):
7493         Fix URL of DSO paper.
7494
7495 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
7496
7497         PR ipa/65130
7498         * ipa-inline.c (check_callers): Looks for recursion.
7499         (inline_to_all_callers): Give up on uninlinable or recursive edges.
7500         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
7501         summary of inline clones.
7502         (do_estimate_growth_1): Fix recursion check.
7503
7504 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
7505
7506         PR ipa/64988
7507         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
7508         comdat groups.
7509
7510 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
7511             Aldy Hernandez  <aldyh@redhat.com>
7512
7513         PR lto/65276
7514         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
7515         when checking TYPE_BINFO.
7516
7517 2015-03-02  Richard Biener  <rguenther@suse.de>
7518
7519         PR ipa/65270
7520         * ipa-icf-gimple.c: Include builtins.h.
7521         (func_checker::compare_memory_operand): Compare base alignment.
7522
7523 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
7524
7525         PR target/65184
7526         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
7527         are never passed by reference.
7528
7529 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
7530
7531         PR target/65183
7532         * tree-chkp.c (chkp_check_lower): Don't check against
7533         zero bounds for already instrumented functions.
7534         (chkp_check_upper): Likewise.
7535         (chkp_fini): Clean pass local data to avoid wrong reusage.
7536
7537 2015-02-28  Martin Liska  <mliska@suse.cz>
7538             Jan Hubicka  <hubicka@ucw.cz>
7539
7540         * ipa-icf.c (sem_variable::equals): Improve debug output;
7541         get variable constructor.
7542         (sem_variable::parse): Do not filter out too early; give up on
7543         volatile and register vars.
7544         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
7545         variables.
7546         * ipa-icf.h (sem_variable::init): Do not set ctor.
7547         (sem_variable::ctor): Remove.
7548
7549 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
7550
7551         PR middle-end/65233
7552         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
7553
7554 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
7555
7556         * ipa-icf.c: Include stor-layout.h
7557         (sem_function::compare_cgraph_references): Rename to ...
7558         (sem_item::compare_cgraph_references): ... this one.
7559         (sem_variable::equals_wpa): New function
7560         (sem_variable::equals): Do not check stuff already verified by
7561         equals_wpa.
7562         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
7563         * ipa-icf.h (sem_item): Add compare_cgraph_references.
7564         (sem_function): Remove compare_cgraph_references.
7565         (sem_variable): Turns equals_wpa into non-inline.
7566
7567 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
7568
7569         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
7570         (sem_item::add_expr): New function.
7571         (sem_function::hash_stmt): Handle operands of most statements.
7572         (sem_variable::get_hash): Hash the actual constructor.
7573         * ipa-icf.h (sem_item): Add add_expr.
7574         (sem_function): Update prototype of hash_stmt
7575
7576 2015-02-28  Martin Liska  <mliska@suse.cz>
7577             Jan Hubicka  <hubicka@ucw.cz>
7578
7579         PR ipa/65245
7580         * ipa-icf-gimple.c (func_checker::compare_function_decl):
7581         Remove.
7582         (func_checker::compare_variable_decl): Skip symtab vars.
7583         (func_checker::compare_cst_or_decl): Update.
7584         * ipa-icf.c (sem_function::parse): Do not consider aliases.
7585         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
7586         use correct symtab predicates.
7587         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
7588         (sem_variable::parse):  Update comment.
7589         (sem_item_optimizer::build_graph): Consider ultimate aliases
7590         for references.
7591
7592 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
7593
7594         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
7595         of OBJ_TYPE_REF.
7596
7597 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
7598
7599         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
7600         (sem_variable::merge) Likewise.
7601
7602 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
7603
7604         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
7605         target; also match flag_ipa_devirt.
7606
7607 2015-03-01  Martin Liska  <mliska@suse.cz>
7608             Jan Hubicka  <hubicka@ucw.cz>
7609
7610         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
7611         Validate variable alignment.
7612         * ipa-icf.c (sem_function::equals_private): Be more precise
7613         about non-common function attributes.
7614         (sem_variable::equals): Likewise.
7615
7616 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
7617
7618         PR ipa/65237
7619         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
7620         across COMDAT group boundary.
7621
7622 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
7623
7624         PR ipa/65232
7625         * ipa-icf.c (clear_decl_rtl): New function.
7626         (sem_function::merge): Clear RTL before forming alias.
7627         (sem_variable::merge): Clear RTL before forming alias.
7628
7629 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
7630
7631         PR ipa/65236
7632         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
7633
7634 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
7635
7636         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
7637         to neon_to_gp<q>.
7638
7639 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
7640
7641         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
7642         a typo in the description.
7643
7644 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
7645
7646         PR target/64317
7647         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
7648         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
7649         * lra-constraints.c: Include "params.h".
7650         (EBB_PROBABILITY_CUTOFF): Use
7651         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
7652         (lra_inheritance): Use '<' instead of '<=' for
7653         EBB_PROBABILITY_CUTOFF.
7654         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
7655         Document change.
7656
7657 2015-02-27  Martin Liska  <mliska@suse.cz>
7658
7659         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
7660         vector length condition.
7661
7662 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
7663
7664         * doc/extend.texi (x86 transactional memory intrinsics):
7665         Reorganize discussion of _xbegin.  Clarify that the return
7666         value is a bit mask.  Expand example and move to end of section.
7667
7668 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
7669             Aldy Hernandez  <aldyh@redhat.com>
7670
7671         PR rtl-optimization/65220
7672         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
7673
7674 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
7675
7676         PR target/65032
7677         * lra-remat.c (update_scratch_ops): New.
7678         (do_remat): Call it.
7679         * lra.c (lra_register_new_scratch_op): New. Take code from ...
7680         (remove_scratches): ... here.
7681         * lra-int.h (lra_register_new_scratch_op): New prototype.
7682
7683 2015-02-27  Marek Polacek  <polacek@redhat.com>
7684
7685         PR c/65040
7686         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
7687         -Wformat-signedness anymore.
7688
7689 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7690
7691         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
7692         function.
7693         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
7694
7695 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7696
7697         * config/s390/s390.c (enum s390_builtin):
7698         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
7699         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
7700         (s390_init_builtins): Generate new builtin functions.
7701         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
7702         (s390_sfpc, s390_efpc): New pattern definitions.
7703
7704 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7705
7706         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
7707         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
7708         (s390_builtin_decls): New array.
7709         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
7710         (s390_builtin_decl): New function.
7711         (TARGET_BUILTIN_DECL): Define macro.
7712
7713 2015-02-27  Richard Biener  <rguenther@suse.de>
7714
7715         PR middle-end/63175
7716         * builtins.c (get_object_alignment_2): Make sure to re-apply
7717         the ANDed mask after recursing to its operand gets us a new
7718         misalignment bit position.
7719
7720 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
7721             Martin Liska  <mliska@suse.cz>
7722
7723         PR bootstrap/65150
7724         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
7725         Use address_matters_p.
7726         (redirect_all_callers, set_addressable): New functions.
7727         (sem_function::merge): Reorganize and fix merging issues.
7728         (sem_variable::merge): Likewise.
7729         (sem_variable::compare_sections): Remove.
7730         * common.opt (fmerge-all-constants, fmerge-constants): Remove
7731         Optimization flag.
7732         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
7733         redirect them.
7734         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
7735         decl is used.
7736         (address_matters_1): New function.
7737         (symtab_node::address_matters_p): New function.
7738         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
7739         check for merged flag.
7740         * cgraph.h (address_matters_p): Declare.
7741         (symtab_node::address_taken_from_non_vtable_p): Remove.
7742         (symtab_node::address_can_be_compared_p): New method.
7743         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
7744         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
7745         Remove.
7746         (comdat_can_be_unshared_p_1) Use address_matters_p.
7747         (update_vtable_references): Fix formating.
7748         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
7749         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
7750         * cgraphclones.c: Preserve merged and icf_merged flags.
7751
7752 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
7753
7754         * doc/extend.texi (Function Attributes): Fix spelling and typos.
7755         (Label Attributes): Likewise.
7756         (Cilk Plus Builtins): Likewise.
7757         (ARC SIMD Built-in Functions): Likewise.
7758         (ARM C Language Extensions (ACLE)): Likewise.
7759         (PowerPC Built-in Functions): Likewise.
7760         (PowerPC Hardware Transactional Memory Built-in Functions):
7761         Likewise.
7762
7763 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
7764
7765         PR tree-optimization/65216
7766         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
7767         new stmt and new SSA_NAME for lhs whenever the arguments have
7768         changed and weren't just swapped.  Fix comment typo.
7769
7770         PR tree-optimization/65215
7771         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
7772         for PDP endian targets.
7773         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
7774         Fix up formatting issues.
7775         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
7776         size is smaller than the original, adjust MEM_REF offset by the
7777         difference of sizes.  Use is_gimple_mem_ref_addr instead of
7778         is_gimple_min_invariant test to avoid adding address temporaries.
7779
7780 2015-02-26  Martin Liska  <mliska@suse.cz>
7781             Jan Hubicka  <hubicka@ucw.cz>
7782
7783         PR ipa/64693
7784         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
7785         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
7786         (sem_item_optimizer::process_cong_reduction): Include division by
7787         sensitive references.
7788         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
7789         * ipa-ref.c (ipa_ref::address_matters_p): New function.
7790         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
7791
7792 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
7793
7794         PR target/65192
7795         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
7796         Remove.
7797         * config/avr/avr.c: Same.
7798         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
7799         Refuse any constant address not in 0..0xbf.
7800         * config/avr/avr.md (*mov<mode>, *movsf): Remove
7801         tiny_valid_direct_memory_access_range from insn conditions.
7802         (mov<mode>): Don't special-case expansion of avrtiny addresses.
7803
7804 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
7805
7806         PR target/61142
7807         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
7808         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
7809         * config/sh/predicates.md (const_logical_operand): New predicate.
7810         * config/sh/sh.md: Add new peephole2 patterns.
7811
7812 2015-02-26  Marek Polacek  <polacek@redhat.com>
7813
7814         PR ipa/65008
7815         * ipa-inline.c (early_inliner): Recompute inline parameters.
7816
7817 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7818
7819         PR target/65171
7820         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
7821         instructions with TImode operands are included in the analysis.
7822
7823 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
7824
7825         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
7826         of an EDGE_FSM_THREAD.
7827
7828 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
7829
7830         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
7831
7832 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
7833
7834         PR debug/46102
7835         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
7836
7837 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
7838
7839         PR tree-optimization/65048
7840         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
7841         (thread_through_all_blocks): Call valid_jump_thread_path.
7842         Remove invalid FSM jump-thread paths.
7843
7844 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
7845
7846         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
7847         (ipa_write_optimization_summaries): Likewise.
7848         * tree-streamer.h: Include data-streamer.h.
7849         (streamer_mode_table): Declare extern variable.
7850         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
7851         * lto-streamer-out.c (lto_output_init_mode_table,
7852         lto_write_mode_table): New functions.
7853         (produce_asm_for_decls): Call lto_write_mode_table when streaming
7854         offloading LTO.
7855         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
7856         (lto_create_simple_input_block): Add mode_table argument to the
7857         lto_input_block constructors.
7858         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
7859         Likewise.
7860         * data-streamer-in.c (string_for_index): Likewise.
7861         * ipa-inline-analysis.c (inline_read_section): Likewise.
7862         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
7863         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
7864         * lto-streamer-in.c (lto_read_body_or_constructor,
7865         lto_input_toplevel_asms): Likewise.
7866         (lto_input_mode_table): New function.
7867         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
7868         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
7869         Use bp_pack_machine_mode.
7870         * real.h (struct real_format): Add name field.
7871         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
7872         (class lto_input_block): Add mode_table member.
7873         (lto_input_block::lto_input_block): Add mode_table_ argument,
7874         initialize mode_table.
7875         (struct lto_file_decl_data): Add mode_table field.
7876         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
7877         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
7878         unpack_ts_decl_common_value_fields,
7879         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
7880         * tree-streamer.c (streamer_mode_table): New variable.
7881         * real.c (ieee_single_format, mips_single_format,
7882         motorola_single_format, spu_single_format, ieee_double_format,
7883         mips_double_format, motorola_double_format,
7884         ieee_extended_motorola_format, ieee_extended_intel_96_format,
7885         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
7886         ibm_extended_format, mips_extended_format, ieee_quad_format,
7887         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
7888         decimal_single_format, decimal_double_format, decimal_quad_format,
7889         ieee_half_format, arm_half_format, real_internal_format): Add name
7890         field.
7891         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
7892
7893 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
7894
7895         PR target/65161
7896         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
7897         reordering for selective scheduling.
7898
7899 2015-02-26  Terry Guo  <terry.guo@arm.com>
7900
7901         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
7902         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
7903         (arm_arch_no_volatile_ce): Declare new global variable.
7904         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
7905         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
7906         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
7907         (TARGET_NO_VOLATILE_CE): New macro.
7908         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
7909         volatile memory access in IT block
7910
7911 2015-02-25  Kai Tietz  <ktietz@redhat.com>
7912
7913         PR tree-optimization/61917
7914         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
7915         that reduc_def_stmt is null.
7916
7917 2015-02-25  Martin Liska  <mliska@suse.cz>
7918
7919         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
7920         hard register variables.
7921
7922 2015-02-25  Kai Tietz  <ktietz@redhat.com>
7923
7924         PR target/64212
7925         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
7926         (symtab::noninterposable_alias): Likewise.
7927
7928 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
7929
7930         PR target/65167
7931         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
7932         bounds registers.
7933         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
7934
7935 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
7936
7937         PR target/64997
7938         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
7939         as split condition; force split via '#' in output pattern.
7940
7941 2015-02-25  Richard Biener  <rguenther@suse.de>
7942             Kai Tietz  <ktietz@redhat.com>
7943
7944         PR tree-optimization/61917
7945         * tree-vect-loop.c (vectorizable_reduction): Allow
7946         vect_internal_def without reduction to exit graceful.
7947
7948 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
7949
7950         PR target/65196
7951         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
7952         only with NONDEBUG_INSN_P.
7953
7954 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
7955
7956         Use variadic macros with avr-log.c.
7957
7958         * config/avr/avr-protos.h (avr_vdump): New prototype.
7959         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
7960         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
7961         * config/avr/avr-log.c: Adjust comments.
7962         (avr_vdump): New function.
7963         (avr_vadump): Pass caller as 2nd argument instead of format string.
7964         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
7965         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
7966
7967 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
7968
7969         PR lto/64374
7970         * target.def (target_option_stream_in): New target hook.
7971         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
7972         targetm.target_option.post_stream_in if non-NULL.
7973         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
7974         * doc/tm.texi: Updated.
7975         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
7976         function.
7977         (TARGET_OPTION_POST_STREAM_IN): Redefine.
7978
7979 2015-02-24  Jeff Law  <law@redhat.com>
7980
7981         PR target/65117
7982         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
7983         of operand 0 and operand 2.
7984         (zero_cost_loop_end, loop_end): Similarly.
7985
7986 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
7987
7988         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
7989         CXX_MEM_STAT_INFO.
7990
7991 2015-02-24  DJ Delorie  <dj@redhat.com>
7992
7993         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
7994         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
7995         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
7996         instead of hardcoding SImode.
7997
7998 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
7999
8000         * omp-low.c (create_omp_child_function): Tag entrypoint
8001         functions with a special attribute.
8002
8003 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
8004
8005         PR target/65058
8006         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
8007
8008 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
8009
8010         PR rtl-optimization/65123
8011         * lra-remat.c (operand_to_remat): Check hard regs in insn
8012         definition too.
8013
8014 2015-02-24  Nick Clifton  <nickc@redhat.com>
8015
8016         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
8017         to the assembler.
8018
8019 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
8020
8021         PR libgomp/64625
8022         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
8023         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
8024         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
8025         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
8026         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
8027         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
8028         (BUILT_IN_GOACC_PARALLEL): Specify as
8029         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
8030         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
8031         * builtin-types.def
8032         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
8033         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
8034         Remove function types.
8035         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
8036         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
8037         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
8038         New function types.
8039
8040 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
8041
8042         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
8043
8044 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
8045
8046         PR tree-optimization/65170
8047         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
8048         if val[1] < 0, clear also val[2] and return 3.
8049
8050 2015-02-24  Alan Modra  <amodra@gmail.com>
8051
8052         PR target/65172
8053         * config/rs6000/rs6000.c (get_memref_parts): Only return true
8054         when *base is a reg.  Handle nested plus addresses.  Simplify
8055         pre_modify test.
8056
8057 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
8058
8059         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
8060         use natural alignment when optimizing for size.
8061
8062 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
8063
8064         PR target/65153
8065         * config/sh/sh.md (movsicc_true+3): Remove peephole.
8066         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
8067         * config/sh/sh.c (replace_n_hard_rtx): Remove.
8068
8069 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
8070
8071         PR fortran/63427
8072         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
8073         too big for a wide_int.  Implement missing wrapping operation.
8074
8075 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
8076
8077         PR target/65163
8078         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
8079         instead of const_int 4294901760.
8080
8081 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
8082
8083         * config/avr/t-avr: Fix typo in comment.
8084
8085 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
8086
8087         * doc/rtl.texi (fma): Clarify documentation.
8088
8089 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
8090
8091         PR debug/58123
8092         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
8093         over input_location.
8094
8095 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
8096
8097         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
8098         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
8099         restrict alignments to absolute_biggest_alignment.
8100         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
8101         Define.
8102         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
8103         * doc/tm.texi: Regenerate.
8104         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
8105
8106 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
8107
8108         PR target/64172
8109         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
8110
8111 2015-02-20  Richard Biener  <rguenther@suse.de>
8112
8113         PR tree-optimization/65136
8114         * tree-ssa-propagate.c: Include cfgloop.h.
8115         (replace_phi_args_in): Avoid replacing loop latch edge PHI
8116         arguments with constants.
8117
8118 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
8119             Martin Liska  <mliska@suse.cz>
8120
8121         PR target/63892
8122         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
8123         don't try to create_thunk if stdarg_p.  If
8124         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
8125         redirect_callers if possible.
8126         (sem_item_optimizer::execute): Call unregister_hooks here...
8127         (ipa_icf_driver): ... instead of here.
8128
8129 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8130
8131         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
8132         Mark operand 0 as earlyclobber in 2nd alternative.
8133         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
8134         Write negated shift amount into QI lowpart operand 0 and use it
8135         in the shift step.
8136         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
8137
8138 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
8139
8140         * cgraph.h (clone_function_name_1): Declare.
8141         * cgraphclones.c (clone_function_name_1): New function.
8142         (clone_function_name): Use it.
8143         * lto-partition.c: Include "stringpool.h".
8144         (must_not_rename, maybe_rewrite_identifier)
8145         (validize_symbol_for_target): New static functions.
8146         (privatize_symbol_name): Use must_not_rename.
8147         (promote_symbol): Call validize_symbol_for_target.
8148         (lto_promote_cross_file_statics): Likewise.
8149         (lto_promote_statics_nonwpa): Likewise.
8150
8151 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
8152
8153         PR target/64452
8154         * config/avr/avr.md (pushhi_insn): New insn.
8155         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
8156
8157 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
8158             Jakub Jelinek  <jakub@redhat.com>
8159
8160         * tree-streamer.c (preload_common_nodes): Don't preload
8161         TI_VA_LIST* for offloading.
8162         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
8163         in_lto_p.
8164
8165 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
8166
8167         * config/pa/pa.c (pa_emit_move_sequence): Always force
8168         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
8169         note on insn.
8170
8171         * config/pa/pa.c (pa_reloc_rw_mask): New function.
8172         (TARGET_ASM_RELOC_RW_MASK): Define.
8173         (pa_cannot_force_const_mem): Revert previous change.
8174
8175 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
8176             Jan Hubicka  <hubicka@ucw.cz>
8177
8178         PR ipa/65028
8179         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
8180         across jump functions.
8181
8182 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
8183
8184         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
8185
8186 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
8187
8188         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
8189
8190 2015-02-19  Richard Henderson  <rth@redhat.com>
8191
8192         PR middle-end/65074
8193         * varasm.c (default_binds_local_p_2): Don't test node->definition;
8194         test DECL_EXTERNAL independent of symtab_node.
8195
8196 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
8197
8198         PR lto/65012
8199         * varpool.c (varpool_node::get_constructor): Return early
8200         if this->lto_file_data is NULL.
8201
8202 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
8203
8204         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
8205         (rank_for_schedule_debug): Update.
8206         (ready_sort): Make static.  Move sorting logic to ...
8207         (ready_sort_debug, ready_sort_real): New static functions.
8208         (schedule_block): Sort both debug insns and real insns in preparation
8209         for ready list trimming.  Improve debug output.
8210         * sched-int.h (ready_sort): Remove global declaration.
8211
8212 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
8213
8214         * ipa-icf.c (sem_function::equals_private): Adjust.
8215         (sem_function::bb_dict_test): Take a vec<int> * instead of
8216         auto_vec<int>.
8217         * ipa-icf.h (bb_dict_test): Likewise.
8218
8219 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
8220
8221         PR gcov-profile/64634
8222         * tree-eh.c (frob_into_branch_around): Fix up typos
8223         in function comment.
8224         (lower_catch): Put eh_seq resulting from EH lowering of
8225         the cleanup sequence after the cleanup rather than before it.
8226
8227 2015-02-18  Tom de Vries  <tom@codesourcery.com>
8228
8229         * common.opt (fstdarg-opt): New option.
8230         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
8231         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
8232         (@item -fstdarg-opt): New item.
8233
8234 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
8235
8236         PR target/65064
8237         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
8238         for common symbols.
8239
8240 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
8241
8242         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
8243         insn-modes.h.
8244         (ALL_HOST_OBJS): Add mkoffload.o.
8245         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
8246
8247 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
8248
8249         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
8250         (compare_virtual_tables): Be smarter about skipping typeinfos;
8251         do sane output on virtual table table mismatch.
8252         (warn_odr): Be ready for forward declarations of enums;
8253         output sane info on base mismatch and virtual table mismatch.
8254         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
8255         when only one type is polymorphic.
8256         (get_odr_type): Fix hashtable corruption.
8257         (dump_odr_type): Dump mangled names.
8258
8259 2015-02-18  Richard Biener  <rguenther@suse.de>
8260
8261         PR tree-optimization/65063
8262         * tree-predcom.c (determine_unroll_factor): Return 1 if we
8263         have replaced looparound PHIs.
8264
8265 2015-02-18  Martin Liska  <mliska@suse.cz>
8266
8267         * lto-streamer.c (lto_streamer_init): Encapsulate
8268         streamer_check_handled_ts_structures with checking macro.
8269
8270 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
8271
8272         PR ipa/65087
8273         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
8274         section if !implicit_section.
8275         (cgraph_node::create_version_clone_with_body): Likewise.
8276         * trans-mem.c (ipa_tm_create_version): Likewise.
8277
8278 2015-02-18  Richard Biener  <rguenther@suse.de>
8279
8280         PR tree-optimization/62217
8281         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
8282         into BIVs.
8283
8284 2015-02-18  Marek Polacek  <polacek@redhat.com>
8285
8286         PR sanitizer/65081
8287         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
8288         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
8289         is in range [-16K, -1].  Don't issue run-time error if
8290         (ptr > ptr + offset).
8291
8292 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
8293
8294         * doc/install.texi (nvptx-*-none): New section.
8295         * doc/invoke.texi (Nvidia PTX Options): Likewise.
8296         * config/nvptx/nvptx.opt: Update.
8297
8298         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
8299         (access_check): New functions, copied from
8300         config/i386/intelmic-mkoffload.c.
8301         (main): For non-installed testing, look in all COMPILER_PATHs for
8302         GCC_INSTALL_NAME.
8303
8304         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
8305
8306 2015-02-18  Andrew Pinski  <apinski@cavium.com>
8307             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8308
8309         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
8310         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
8311
8312 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
8313
8314         * ipa-visibility.c (function_and_variable_visibility): Only
8315         check locality if node is not already local.
8316         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
8317         call_for_symbol_and_aliases instead of
8318         call_for_symbol_thunks_and_aliases.
8319         (ipa_inline): Likewise.
8320         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
8321         first walk aliases.
8322         * ipa.c (symbol_table::remove_unreachable_nodes): Use
8323         call_for_symbol_and_aliases.
8324         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
8325         (ipa_propagate_frequency_1): Use it; use opt_for_fn
8326         (ipa_propagate_frequency): Update.
8327         (ipa_profile): Add opt_for_fn gueards.
8328
8329 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
8330
8331         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
8332         * doc/invoke.texi (SH options): Document it.
8333         * config/sh/sh.c (sh_insn_length_adjustment): Check
8334         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
8335
8336 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
8337
8338         * common.opt (fipa-cp-alignment): New.
8339         * ipa-cp.c (ipcp_store_alignment_results): Check
8340         flag_ipa_cp_alignment.
8341         * opts.c (default_options_table): Enable -fipa-cp-alignment for
8342         -O2.
8343         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
8344         * doc/invoke.texi: Document -fipa-cp-alignment.
8345
8346 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
8347
8348         PR target/64793
8349         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
8350         to nil.  Adjust comments.
8351
8352 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
8353
8354         * ipa-visibility.c (function_and_variable_visibility): Only
8355         check locality if node is not already local.
8356         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
8357         call_for_symbol_and_aliases instead of
8358         call_for_symbol_thunks_and_aliases.
8359         (ipa_inline): Likewise.
8360         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
8361         first walk aliases.
8362         * ipa.c (symbol_table::remove_unreachable_nodes): Use
8363         call_for_symbol_and_aliases.
8364         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
8365         (ipa_propagate_frequency_1): Use it; use opt_for_fn
8366         (ipa_propagate_frequency): Update.
8367         (ipa_profile): Add opt_for_fn guards.
8368
8369 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
8370
8371         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
8372         skipping of "strange" tokens.
8373
8374 2015-02-17  Jeff Law  <law@redhat.com>
8375
8376         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
8377         obsolete comment.
8378
8379 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
8380
8381         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
8382         as forcing a HARD_DEP between instructions, thereby
8383         disallowing rewriting to break dependencies.
8384
8385 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
8386
8387         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
8388         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
8389         variables in boundary that have no inlitalizer encoded and are
8390         not aliases.
8391         * varasm.c (default_binds_local_p_2): External definitions do not
8392         count as definitions here.
8393
8394 2015-02-16  Jeff Law  <law@redhat.com>
8395
8396         PR tree-optimization/64823
8397         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
8398         statements.
8399         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
8400         threading through blocks with PHIs, but no statements.
8401         (thread_through_normal_block): Distinguish between blocks where
8402         we did not process all the statements and blocks with no statements.
8403
8404 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
8405             James Greenhalgh  <james.greenhalgh@arm.com>
8406
8407         PR ipa/64963
8408         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
8409         section if not linkonce.  Fix up formatting.
8410         (cgraph_node::create_version_clone_with_body): Copy section.
8411         * trans-mem.c (ipa_tm_create_version): Likewise.
8412
8413 2015-02-16  Richard Biener  <rguenther@suse.de>
8414
8415         PR tree-optimization/65077
8416         * tree-ssa-structalias.c (get_constraint_for_1): Handle
8417         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
8418         (find_func_aliases): Allow float values to carry pointers again.
8419
8420 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
8421
8422         * doc/install.texi (Specific): Reorder targets list to put
8423         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
8424         from the top menu.
8425
8426 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
8427             David Edelsohn  <dje.gcc@gmail.com>
8428
8429         PR target/65058
8430         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
8431         mapping class to external variable or function reference.
8432         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
8433         mapping class.
8434
8435 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
8436
8437         PR target/53348
8438         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
8439         ASM_WEAKEN_DECL if defined.
8440
8441 2015-02-16  Richard Biener  <rguenther@suse.de>
8442
8443         PR lto/65015
8444         * varasm.c (default_file_start): For LTO produced units
8445         emit <artificial> as file directive.
8446
8447 2015-02-16  Richard Biener  <rguenther@suse.de>
8448
8449         PR tree-optimization/63593
8450         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
8451         stmts and releasing SSA names until...
8452         (execute_pred_commoning): ... after processing all chains.
8453
8454 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
8455
8456         PR ipa/65059
8457         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
8458         external functions.
8459
8460 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
8461
8462         * doc/bugreport.texi: Adjust section titles throughout the file
8463         to use "Title Case".
8464         * doc/extend.texi: Likewise.
8465         * doc/gcov.texi: Likewise.
8466         * doc/implement-c.texi: Likewise.
8467         * doc/implement-cxx.texi: Likewise.
8468         * doc/invoke.texi: Likewise.
8469         * doc/objc.texi: Likewise.
8470         * doc/standards.texi: Likewise.
8471         * doc/trouble.texi: Likewise.
8472
8473 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
8474
8475         * cgraph.h (symtab_node::has_aliases_p): Simplify.
8476         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
8477         * tree.c (lookup_binfo_at_offset): Make static.
8478         (get_binfo_at_offset): Do not shadow offset; add explanatory
8479         comment.
8480
8481 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
8482
8483         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
8484         for all floading point loads and stores except those using a register
8485         index address.
8486         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
8487         to a register.
8488
8489 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
8490
8491         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
8492         (do_estimate_growth_1): Record if any uninlinable edge was seen.
8493         (estimate_growth): Handle uninlinable edges correctly.
8494         (check_callers): New.
8495         (growth_likely_positive): Handle aliases correctly.
8496
8497 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
8498
8499         * ipa-chkp.c: Use iterate_direct_aliases.
8500         * symtab.c (resolution_used_from_other_file_p): Move inline.
8501         (symtab_node::create_reference): Fix formating.
8502         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
8503         (symtab_node::iterate_reference): Move inline.
8504         (symtab_node::iterate_referring): Move inline.
8505         (symtab_node::iterate_direct_aliases): Move inline.
8506         (symtab_node::used_from_object_file_p_worker): Inline into ...
8507         (symtab_node::used_from_object_file_p): ... this one; move inline.
8508         (symtab_node::call_for_symbol_and_aliases): Move inline;
8509         use iterate_direct_aliases.
8510         (symtab_node::call_for_symbol_and_aliases_1): New method.
8511         (cgraph_node::call_for_symbol_and_aliases): Move inline;
8512         use iterate_direct_aliases.
8513         (cgraph_node::call_for_symbol_and_aliases_1): New method.
8514         (varpool_node::call_for_node_and_aliases): Rename to ...
8515         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
8516         use iterate_direct_aliases.
8517         (varpool_node::call_for_symbol_and_aliases_1): New method.
8518         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
8519         (ipa_discover_readonly_nonaddressable_var): Update.
8520         * ipa-devirt.c: Fix formating.
8521         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
8522         Move inline.
8523         (cgraph_node::call_for_symbol_and_aliases): Move inline.
8524         (cgraph_node::call_for_symbol_and_aliases_1): New function..
8525         * cgraph.h (used_from_object_file_p_worker): Remove.
8526         (resolution_used_from_other_file_p): Move inline.
8527         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
8528         (symtab_node::iterate_reference): Move inline.
8529         (symtab_node::iterate_referring): Move inline.
8530         (symtab_node::iterate_direct_aliases): Move inline.
8531         (symtab_node::used_from_object_file_p_worker): Inline into ...
8532         (symtab_node::used_from_object_file_p): Move inline.
8533         * tree-emutls.c (ipa_lower_emutls): Update.
8534         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
8535         (varpool_node::call_for_node_and_aliases): Remove.
8536
8537 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
8538
8539         PR tree-optimization/62209
8540         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
8541         op == range->exp, insert seq and gimplified code after labels
8542         instead of after the phi.
8543
8544 2015-02-13  Jeff Law  <law@redhat.com>
8545
8546         PR bootstrap/65060
8547         Revert my change for tree-optimization/64823.
8548
8549 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
8550
8551         PR tree-optimization/65053
8552         * tree-ssa-phiopt.c (value_replacement): When moving assign before
8553         cond, either reset VR on lhs or set it to phi result VR.
8554
8555 2015-02-13  Jeff Law  <law@redhat.com>
8556
8557         PR tree-optimization/64823
8558         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
8559         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
8560         threading through blocks with PHIs, but no statements.
8561         (thread_through_normal_block): Distinguish between blocks where
8562         we did not process all the statements and blocks with no statements.
8563
8564         PR rtl-optimization/47477
8565         * match.pd (convert (plus/minus (convert @0) (convert @1): New
8566         simplifier to narrow arithmetic.
8567
8568 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
8569
8570         PR ipa/65028
8571         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
8572         polymorphic call info when type is not known to be preserved.
8573
8574 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
8575
8576         PR ipa/65028
8577         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
8578         (inline_call): Use it.
8579
8580 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
8581
8582         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
8583         GOMP_DEVICE_NVIDIA_PTX.
8584
8585 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
8586
8587         PR ipa/65034
8588         * stmt.c (emit_case_nodes): Use void_type_node instead of
8589         NULL_TREE as LABEL_DECL type.
8590
8591 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
8592
8593         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
8594         constraints.
8595         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
8596         symbolic references to data to be forced to constant memory on the
8597         SOM target.
8598
8599 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
8600
8601         PR tree-optimization/65002
8602         * tree-cfg.c (pass_data_fixup_cfg): Don't update
8603         SSA on start.
8604         * tree-sra.c (some_callers_have_no_vuse_p): New.
8605         (ipa_early_sra): Reject functions whose callers
8606         assume function is read only.
8607
8608 2015-02-13  Richard Biener  <rguenther@suse.de>
8609
8610         PR lto/65015
8611         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
8612         for LTO produced CUs.
8613
8614 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
8615
8616         PR tree-optimization/64705
8617         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
8618         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
8619         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
8620         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
8621         expand_simple_operations.
8622
8623 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
8624             Richard Henderson  <rth@redhat.com>
8625
8626         PR rtl/32219
8627         * cgraphunit.c (cgraph_node::finalize_function): Set definition
8628         before notice_global_symbol.
8629         (varpool_node::finalize_decl): Likewise.
8630         * varasm.c (default_binds_local_p_2): Rename from
8631         default_binds_local_p_1, add weak_dominate argument.  Use direct
8632         returns instead of assigning to local variable.  Unify varpool and
8633         cgraph paths via symtab_node.  Reject undef weak variables before
8634         testing visibility.  Reorder tests for simplicity.
8635         (default_binds_local_p): Use default_binds_local_p_2.
8636         (default_binds_local_p_1): Likewise.
8637         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
8638         via symtab_node.
8639         (default_elf_asm_output_external): Emit visibility when specified.
8640
8641 2015-02-13  Alan Modra  <amodra@gmail.com>
8642
8643         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
8644         code setting up r11 for out-of-line fp restore.
8645
8646 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
8647
8648         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
8649         (muser-mode): Likewise.
8650
8651 2015-02-13  Alan Modra  <amodra@gmail.com>
8652
8653         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
8654         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
8655
8656 2015-02-12  David Howells  <dhowells@redhat.com>
8657
8658         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
8659         warning.
8660         * tree-ssa-uninit.c (dump_predicates): Likewise.
8661         * opts.c (print_filtered_help): Likewise.
8662
8663 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
8664
8665         * dwarf2out.c (output_die): Use "%s", name instead of name to
8666         avoid -Wformat-security warning.
8667
8668         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
8669         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
8670         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
8671         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
8672
8673 2015-02-12  Jason Merrill  <jason@redhat.com>
8674
8675         * common.opt (-flifetime-dse): New.
8676
8677 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
8678
8679         PR sanitizer/65019
8680         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
8681
8682         PR tree-optimization/65014
8683         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
8684         use original second operand of arg0 or arg1 instead of
8685         that adjusted by STRIP_NOPS.
8686
8687 2015-02-11  Jeff Law  <law@redhat.com>
8688
8689         PR target/63347
8690         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
8691         that needs to be queued, just queue it for a single cycle.
8692
8693 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
8694
8695         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
8696         bodies of thunks; comment on why.
8697         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
8698         symbols are extern.
8699
8700 2015-02-11  Richard Henderson  <rth@redhat.com>
8701
8702         PR sanitize/65000
8703         * tree-eh.c (mark_reachable_handlers): Mark source and destination
8704         regions of __builtin_eh_copy_values.
8705
8706 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
8707
8708         PR middle-end/65003
8709         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
8710         ultimate alias is MEM with SYMBOL_REF satisfying
8711         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
8712         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
8713
8714 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
8715
8716         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
8717         "diagnostic-core.h".
8718         (main): Initialize progname, and call diagnostic_initialize.
8719
8720         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
8721         instead of __OPENMP_TARGET__.
8722
8723         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
8724         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
8725         hard-coding PTX_ID.
8726
8727 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
8728
8729         * doc/sourcebuild.texi (pie_enabled): Document.
8730
8731 2015-02-11  Martin Liska  <mliska@suse.cz>
8732
8733         PR ipa/64813
8734         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
8735         a return value for call to a function that is noreturn.
8736
8737 2015-02-11  Richard Biener  <rguenther@suse.de>
8738
8739         PR lto/65015
8740         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
8741         and -fresolution.
8742
8743 2015-02-11  Andrew Pinski  <apinski@cavium.com>
8744
8745         PR target/64893
8746         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
8747         Change the first argument type to size_type_node and add another
8748         size_type_node.
8749         (aarch64_simd_expand_builtin): Handle the new argument to
8750         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
8751         print an out when the first two arguments are not
8752         nonzero integer constants.
8753         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
8754         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
8755
8756 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
8757
8758         PR target/61925
8759         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
8760         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
8761         (ix86_set_current_function): Rewritten.
8762         (ix86_add_new_builtins): Temporarily clear current_target_pragma
8763         when creating builtin fndecls.
8764
8765 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
8766
8767         PR ipa/65005
8768         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
8769         function.
8770         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
8771         have no comdat group.
8772         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
8773         (lto_output_varpool_node): Always output alias info.
8774         (output_refs): Output refs of boundary aliases, too.
8775         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
8776         (output_symtab): Output call eges in thunks in boundary.
8777         (get_alias_symbol): Remove.
8778         (input_node, input_varpool_node): Do not special case weakrefs.
8779         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
8780         alias and thunks targets in the boundary; do not take removed symbols
8781         from their comdat groups.
8782         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
8783         (cgraph_node::global_info): Remove.
8784         (cgraph_node::rtl_info): Look through aliases and thunks.
8785         * cgrpah.h (global_info): Remove.
8786         (non_local_p): Remove.
8787
8788 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
8789             Sandra Loosemore  <sandra@codesourcery.com>
8790
8791         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
8792         to inline asm.  List dialects in proper order.
8793
8794 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
8795             Sandra Loosemore  <sandra@codesourcery.com>
8796
8797         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
8798
8799 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
8800
8801         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
8802         modified) reference to Solaris.
8803
8804 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
8805
8806         * doc/extend.texi (Extended Asm): Fix typos.
8807
8808 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
8809
8810         PR sanitizer/65004
8811         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
8812
8813 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
8814
8815         PR target/64661
8816         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
8817         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
8818         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
8819         * config/sh/constraints.md (Ara, Add): New constraints.
8820         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
8821         predicates.
8822         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
8823         atomic_mem_operand_0.  Don't use force_reg on the memory address.
8824         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
8825         Sra constraint.  Convert to insn_and_split.  Add workaround for
8826         PR 64974.
8827         (atomic_compare_and_swap<mode>_hard): Copy to
8828         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
8829         Use atomic_mem_operand_0 predicate.
8830         (atomic_compare_and_swap<mode>_soft_gusa,
8831         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
8832         AraAdd constraints.
8833         (atomic_compare_and_swap<mode>_soft_tcb,
8834         atomic_compare_and_swap<mode>_soft_imask,
8835         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
8836         atomic_mem_operand_0 predicate and SraSdd constraints.
8837         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
8838         constraint.
8839         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
8840         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
8841         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
8842         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
8843         force_reg on the memory address.
8844         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
8845         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
8846         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
8847         atomic_mem_operand_1 predicate and Sra constraint.
8848         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
8849         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
8850         Use atomic_mem_operand_1 predicate.
8851         (atomic_<fetchop_name><mode>_hard): Copy to
8852         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
8853         Use atomic_mem_operand_1 predicate.
8854         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
8855         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
8856         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
8857         insn_and_split.  Use atomic_mem_operand_1 predicate.
8858         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
8859         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
8860         Use atomic_mem_operand_1 predicate.
8861         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
8862         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
8863         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
8864         in generated insn with original mem operand before emitting the insn.
8865         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
8866         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
8867         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
8868         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
8869         Use atomic_mem_operand_1 predicate and AraAdd constraints.
8870         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
8871         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
8872         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
8873         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
8874         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
8875         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
8876         atomic_not_fetch<mode>_soft_tcb,
8877         atomic_<fetchop_name>_fetch<mode>_soft_imask,
8878         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
8879         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
8880         Use atomic_mem_operand_1 predicate and SraSdd constraints.
8881
8882 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
8883
8884         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
8885         and 3 earlyclobber operands.
8886
8887 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
8888
8889         * common.opt (fstack-reuse): Mark as optimization.
8890
8891 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
8892
8893         PR ipa/64982
8894         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
8895
8896 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
8897
8898         PR tree-optimization/64326
8899         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
8900
8901 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
8902
8903         PR gcov-profile/61889
8904         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
8905
8906 2015-02-10  Richard Biener  <rguenther@suse.de>
8907
8908         PR tree-optimization/64995
8909         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
8910         value we use is final.
8911         (visit_reference_op_store): Always valueize op.
8912         (visit_use): Properly valueize vuses.
8913
8914 2015-02-10  Richard Biener  <rguenther@suse.de>
8915
8916         PR tree-optimization/64909
8917         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
8918         pass a scalar-stmt count estimate to the cost model.
8919         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
8920
8921 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
8922
8923         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
8924         enabled by default together with var-tracking.
8925
8926 2015-02-10  Nick Clifton  <nickc@redhat.com>
8927
8928         * config/rl78/rl78.c: Remove DIV attribute code accidentally
8929         included in previous rl78 commit.
8930
8931 2015-02-10  Richard Biener  <rguenther@suse.de>
8932
8933         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
8934         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
8935         return the bitpack.
8936
8937 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
8938
8939         PR gcov-profile/61889
8940         * config.in: regenerate.
8941         * configure.in: Likewise.
8942         * configure.ac: Check for ftw.h.
8943         * gcov-tool.c: Check for ftw.h before using nftw.
8944
8945 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
8946
8947         PR lto/64076
8948         * ipa-visibility.c (update_visibility_by_resolution_info): Only
8949         assert when not in lto mode.
8950
8951 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
8952
8953         * ira-color.c (setup_left_conflict_sizes_p): Simplify
8954         initialization/assignment of conflict_size.
8955
8956 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
8957
8958         PR ipa/64978
8959         * ipa-cp.c (gather_caller_stats): Skip thunks.
8960         (propagate_constants_topo): Skip aliases.
8961
8962 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
8963
8964         PR target/64761
8965         * config/sh/sh.c (sh_option_override): Don't change
8966         -freorder-blocks-and-partition to -freorder-blocks even when
8967         unwinding is enabled.
8968         (sh_can_follow_jump): Return false if the followee jump is
8969         a crossing jump when -freorder-blocks-and-partition is specified.
8970         * config/sh/sh.md (*jump_compact_crossing): New insn.
8971
8972 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
8973             Kaz Kojima  <kkojima@gcc.gnu.org>
8974
8975         PR target/64761
8976         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
8977         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
8978         (sh_can_redirect_branch): Rename to ...
8979         (sh_can_follow_jump): ... this.  Constify argument types.
8980         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
8981         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
8982         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
8983         * doc/tm.texi: Regenerate.
8984
8985 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
8986
8987         PR sanitizer/64981
8988         * builtins.c (expand_builtin): Call targetm.expand_builtin
8989         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
8990
8991 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
8992
8993         PR ipa/61548
8994         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
8995
8996 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
8997
8998         PR ipa/63566
8999         * ipa-icf.c (set_local): New function.
9000         (sem_function::merge): Use it.
9001
9002 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
9003
9004         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
9005         (add_type_duplicate): Fix comparison of BINFOs.
9006
9007 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
9008
9009         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
9010         on getting VOID pointer.
9011
9012 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
9013
9014         PR target/64979
9015         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
9016         va_list escapes.
9017
9018 2015-02-09  Richard Biener  <rguenther@suse.de>
9019
9020         * genmatch.c (replace_id): Copy expr_type.
9021
9022 2015-02-09  Richard Biener  <rguenther@suse.de>
9023
9024         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
9025         (streamer_write_tree_bitfields): Declare.
9026         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
9027         properly unpack padding.
9028         (unpack_value_fields): Inline ...
9029         (streamer_read_tree_bitfields): ... here.
9030         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
9031         and properly add padding bits.
9032         (streamer_pack_tree_bitfields): Fold into ...
9033         (streamer_write_tree_bitfields): ... this new function,
9034         exposing the bitpack object.
9035         * lto-streamer-out.c (lto_write_tree_1): Call
9036         streamer_write_tree_bitfields.
9037
9038 2015-02-09  Richard Biener  <rguenther@suse.de>
9039
9040         PR tree-optimization/54000
9041         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
9042         (struct ivopts_data): Add loop_loc member.
9043         (tree_ssa_iv_optimize_loop): Dump loop location.
9044         (create_new_ivs): Likewise, also dump number of IVs generated.
9045
9046 2015-02-09  Martin Liska  <mliska@suse.cz>
9047
9048         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
9049         just if not yet registered.
9050         (ipa_icf_generate_summary): Register callgraph hooks.
9051
9052 2015-02-08  Andrew Pinski  <apinski@cavium.com>
9053
9054         * config/aarch64/aarch64.c (gty_dummy): Delete.
9055
9056 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
9057
9058         PR ipa/63566
9059         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
9060         (cgraph_node::local_p): Remove thunk related FIXME.
9061
9062 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
9063
9064         PR ipa/63566
9065         * i386.c (ix86_function_regparm): Look through aliases to see if callee
9066         is local and optimized.
9067         (ix86_function_sseregparm): Likewise; also use target's SSE math
9068         settings; error out instead of silently generating wrong code
9069         on mismatches.
9070         (init_cumulative_args): Look through aliases.
9071
9072 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
9073
9074         PR ipa/63566
9075         * ipa-split.c (execute_split_functions): Split if function has aliases.
9076
9077 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
9078
9079         PR ipa/63566
9080         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
9081         aliases before trying to expand it.
9082         (cgraph_node::expand_thunk): Fix formating.
9083
9084 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
9085
9086         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
9087         (Using Assembly Language with C): Expand introduction.
9088         (Basic Asm): Copy-edit.  Add more information about uses of
9089         basic asm.
9090         (Extended Asm): Copy-edit.  Document new escape syntax and
9091         %l[label] syntax.
9092         (Global Reg Vars): Copy-edit.
9093         (Local Reg Vars): Likewise.
9094
9095 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
9096
9097         PR debug/2714
9098         PR bootstrap/64256
9099         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
9100         (DBX_CONTIN_CHAR): Define.
9101
9102 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
9103             Brian Rzycki  <b.rzycki@samsung.com>
9104
9105         PR tree-optimization/64878
9106         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
9107         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
9108         Stop recursion at loop phi nodes after having visited a loop phi node.
9109
9110 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
9111
9112         * toplev.c (process_options): Change flag_ipa_ra before creating
9113         optimization_{default,current}_node.
9114
9115         PR ipa/64896
9116         * cgraphunit.c (cgraph_node::expand_thunk): If
9117         restype is not is_gimple_reg_type nor the thunk_fndecl
9118         returns aggregate_value_p, set restmp to a temporary variable
9119         instead of resdecl.
9120
9121 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
9122
9123         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
9124
9125 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
9126
9127         PR target/64205
9128         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
9129         add a general secondary reload handler for SDmode, unless we have
9130         both read/write support for SDmode.
9131
9132 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
9133
9134         PR middle-end/64937
9135         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
9136         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
9137         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
9138         1 before, push it to abstract_vec.
9139         (dwarf2out_abstract_function): Adjust caller.  Don't call
9140         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
9141         DECL_ABSTRACT_P flags for all abstract_vec elts.
9142
9143 2015-02-06  Renlin Li  <renlin.li@arm.com>
9144
9145         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
9146         complex gimple.
9147         * tree-ssa.c (execute_update_addresses_taken): Likewise.
9148
9149 2015-02-06  Jeff Law  <law@redhat.com>
9150
9151         PR target/64889
9152         * config/h8300/h8300.c (push): New argument "in_prologue".
9153         Pass "in_prologue" along to "F".
9154         (h8300_push_pop): Corresponding changes.
9155         (h8300_expand_prologue): Likewise.
9156         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
9157
9158 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
9159
9160         PR rtl-optimization/64957
9161         PR debug/64817
9162         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
9163         IOR rather than for AND.
9164
9165 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
9166
9167         PR target/62631
9168         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
9169         of shift-add and (add + shift) operations.  Rename local variable.
9170
9171 2015-02-05  Jeff Law  <law@redhat.com>
9172
9173         PR target/17306
9174         * config/h8300/constraints.md (U): Correctly dectect
9175         "eightbit_data" memory addresses.
9176         * config/h8300/h8300.c (eightbit_constant_address_p): Also
9177         handle (const (plus (symbol_ref (x)))) where x is declared
9178         as an 8-bit data memory address.
9179         * config/h8300/h8300.md (call, call_value): Correctly detect
9180         "funcvec" functions.
9181
9182         PR target/43264
9183         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
9184         24 to 28 bits for the H8/300.
9185
9186 2015-02-06  Alan Modra  <amodra@gmail.com>
9187
9188         PR target/64876
9189         * config/rs6000/rs6000.c (chain_already_loaded): New function.
9190         (rs6000_call_aix): Use it.
9191
9192 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
9193
9194         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
9195         check.
9196
9197 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
9198
9199         * config/h8300/constraints.md ("U" constraint): Use strict
9200         variant of REG_OK_FOR_BASE_P after reload has started.
9201
9202 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
9203
9204         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
9205         define to zero if !TARGET_NEON.
9206         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
9207
9208 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
9209             Trevor Saunders  <tsaunders@mozilla.com>
9210
9211         PR ipa/61548
9212         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
9213
9214 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
9215
9216         PR ipa/61548
9217         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
9218         when removing varpool nodes.
9219
9220 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
9221
9222         PR ipa/61548
9223         * varpool.c (varpool_node::remove): Fix order of variables.
9224
9225 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
9226
9227         PR ipa/64686
9228         * ipa-inline.c (inline_small_functions): Fix ordering issue between
9229         speculation resolution and key updates.
9230
9231 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
9232
9233         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
9234         about not letting any speculative edges unupdated.
9235
9236 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
9237
9238         PR gcov/64123
9239         * gcov-io.c (gcov_var): Export.
9240
9241 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
9242
9243         PR middle-end/64922
9244         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
9245         edges that become speculative.
9246
9247 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
9248
9249         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
9250         or DW_LANG_Fortran08.
9251         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
9252         DW_LANG_Fortran08.
9253         (gen_compile_unit_die): Handle "GNU Fortran2003" and
9254         "GNU Fortran2008" language strings.
9255         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
9256         * langhooks.h (lang_GNU_Fortran): New prototype.
9257         * langhooks.c (lang_GNU_Fortran): New function.
9258         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
9259         lang_GNU_Fortran.
9260
9261 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
9262
9263         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
9264         (RTX_OK_FOR_OLO10_P): Likewise.
9265
9266 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
9267
9268         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
9269
9270 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
9271
9272         PR middle-end/64922
9273         * gimple.c: Include gimple-ssa.h.
9274         (maybe_remove_unused_call_args): New function.
9275         * gimple.h (maybe_remove_unused_call_args): Declare.
9276         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
9277         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
9278         * gimple-fold.c (gimple_fold_call): Likewise.
9279
9280 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
9281
9282         PR rtl-optimization/64905
9283         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
9284         pointer alignment if it isn't needed.
9285
9286 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
9287
9288         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
9289         cortex-a72.cortex-a53.
9290         * config/aarch64/aarch64-tune.md: Regenerate.
9291         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
9292
9293 2015-02-04  Nick Clifton  <nickc@redhat.com>
9294
9295         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
9296         inside a MEM.
9297
9298 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
9299
9300         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
9301         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
9302         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
9303         of DEF_BUILTIN.
9304         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
9305         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
9306         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
9307         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
9308         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
9309         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
9310         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
9311         * tree-core.h (enum built_in_function): In between
9312         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
9313         for builtins that use DEF_BUILTIN_CHKP macro.
9314
9315 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
9316
9317         PR debug/64817
9318         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
9319         operands for tcc_comparison exprs.  Fix typos.
9320
9321         PR debug/64817
9322         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
9323         of two XORs that have an intervening AND or IOR.
9324
9325         PR debug/64817
9326         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
9327         simplification of XOR of AND to not allocate new rtx before
9328         committing to a simplification.
9329
9330 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9331
9332         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
9333         manual swaps in all peepholes.
9334
9335 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9336
9337         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
9338         of manual swapping implementation.
9339         (aarch64_expand_vec_perm_const_1): Likewise.
9340
9341 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
9342
9343         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
9344         (generic_addrcost_table): Remove NAMED_PARAM.
9345         (cortexa57_addrcost_table): Likewise.
9346         (xgene1_addrcost_table): Likewise.
9347         (generic_regmove_table): Likewise.
9348         (cortexa53_regmove_table): Likewise.
9349         (xgene1_regmove_table): Likewise.
9350         (generic_vector_table): Likewise.
9351         (cortexa57_vector_table): Likewise.
9352         (xgene1_vector_table): Likewise.
9353         (generic_tunings): Likewise.
9354         (cortexa53_tunings): Likewise.
9355         (cortexa57_tunings): Likewise.
9356         (xgene1_tunings): Likewise.
9357
9358 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
9359
9360         * config/arm/arm-cores.def: Add cortex-a72 and
9361         cortex-a72.cortex-a53.
9362         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
9363         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
9364         * config/arm/arm-tune.md: Regenerate.
9365         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
9366         "cortex-a72.cortex-a53".
9367         * doc/invoke.texi (ARM Options/-mtune): Likewise.
9368
9369 2015-02-04  Nick Clifton  <nickc@redhat.com>
9370
9371         PR target/64408
9372         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
9373         of accepted codes.
9374         (nonimmediate_di_operand): Likewise.
9375
9376         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
9377         prefixes of known F5 using MSP430 MCUs.
9378
9379 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9380
9381         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
9382         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
9383         instead of __builtin_sqrt.
9384
9385 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
9386
9387         * varasm.c (do_assemble_alias): Follow transparent alias
9388         chain for target.
9389         (default_assemble_visibility): Follow transparent alias
9390         chain for decl name.
9391
9392 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9393
9394         PR middle-end/62103
9395         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
9396         to compute size of referenced value in the constant case.
9397
9398 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
9399
9400         PR rtl-optimization/64756
9401         * cse.c (invalidate_dest): New function.
9402         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
9403         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
9404         invalidate and do not record it.
9405
9406 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
9407
9408         PR target/64660
9409         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
9410         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
9411         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
9412         atomic_nand<mode>_soft_tcb): New insns.
9413         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
9414         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
9415         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
9416         Split into atomic_not_fetchsi_hard if operands[0] is unused.
9417         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
9418         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
9419         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
9420         atomic_not<mode>_hard if operands[0] is unused.
9421         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
9422         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
9423         if operands[0] is unused.
9424         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
9425         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
9426         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
9427         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
9428         unused.
9429         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
9430         into atomic_not<mode>_soft_tcb if operands[0] is unused.
9431         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
9432         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
9433         if operands[0] is unused.
9434         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
9435         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
9436         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
9437         atomic_nand_fetchsi_hard if operands[0] is unused.
9438         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
9439         atomic_nand<mode>_hard if operands[0] is unused.
9440         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
9441         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
9442         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
9443         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
9444         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
9445         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
9446         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
9447         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
9448         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
9449         atomic_not<mode>_hard if operands[0] is unused.
9450         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
9451         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
9452         unused.
9453         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
9454         into atomic_not<mode>_soft_tcb if operands[0] is unused.
9455         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
9456         atomic_nand<mode>_hard if operands[0] is unused.
9457         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
9458         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
9459
9460 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
9461
9462         PR jit/64810
9463         * Makefile.in (GCC_OBJS): Add gcc-main.o.
9464         * gcc-main.c: New file, containing "main" taken from gcc.c.
9465         * gcc.c (do_self_spec): Free decoded_options.
9466         (class driver): Move declaration to gcc.h.
9467         (main): Move declaration and implementation to new file
9468         gcc-main.c.
9469         (driver_get_configure_time_options): New function.
9470         * gcc.h (class driver): Move this declaration here, from
9471         gcc.c.
9472         (driver_get_configure_time_options): New declaration.
9473
9474 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
9475
9476         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
9477         cross-module inlining.
9478         * cgraph.h (cgraph_node): Add flag merged.
9479         * ipa-icf.c (sem_function::merge): Maintain it.
9480
9481 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
9482
9483         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
9484         instead of OBJECT_P.
9485
9486 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
9487
9488         PR target/62631
9489         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
9490         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
9491         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
9492         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
9493
9494 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
9495
9496         PR other/63504
9497         * combine.c (reg_n_sets_max): New variable.
9498         (can_change_dest_mode, reg_nonzero_bits_for_combine,
9499         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
9500         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
9501         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
9502         (rest_of_handle_combine): Initialize reg_n_sets_max.
9503
9504 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
9505
9506         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
9507         if some always_inline was inlined, apply changes before inlining
9508         heuristically.
9509
9510 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
9511
9512         PR jit/64810
9513         * config/arm/arm.c (arm_option_override): Set
9514         arm_selected_arch/cpu/tune to NULL on entry.
9515
9516 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
9517             Andrew Pinski  <pinskia@gcc.gnu.org>
9518             Jakub Jelinek  <jakub@gcc.gnu.org>
9519
9520         PR target/64231
9521         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
9522         integer typing for small model. Use IN_RANGE.
9523
9524 2015-02-02  Richard Biener  <rguenther@suse.de>
9525
9526         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
9527         * tree-vrp.c (vrp_valueize_1): Likewise.
9528
9529 2015-02-02  Alan Modra  <amodra@gmail.com>
9530
9531         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
9532         than mem for toc_restore.
9533         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
9534         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
9535         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
9536
9537 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
9538
9539         PR target/64047
9540         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
9541         explicit default options.
9542
9543 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
9544
9545         PR ipa/64872
9546         * ipa-utils.c (ipa_merge_profiles): Add release argument.
9547         * ipa-icf.c (sem_function::merge): Do not release body when merging.
9548         * ipa-utils.h (ipa_merge_profiles): Update prototype.
9549
9550 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
9551
9552         PR debug/64817
9553         * cfgexpand.c (deep_ter_debug_map): New variable.
9554         (avoid_deep_ter_for_debug): New function.
9555         (expand_debug_expr): If TERed SSA_NAME is in
9556         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
9557         instead of trying to expand SSA_NAME's def stmt.
9558         (expand_debug_locations): When expanding debug bind
9559         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
9560         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
9561         value.
9562         (pass_expand::execute): Call avoid_deep_ter_for_debug on
9563         all debug bind stmts.  Delete deep_ter_debug_map after
9564         expand_debug_location if non-NULL and clear it.
9565
9566 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
9567
9568         PR target/64851
9569         * config/sh/sync.md (atomic_fetch_notsi_hard,
9570         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
9571         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
9572         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
9573         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
9574         atomic_not_fetch<mode>_soft_imask): New insns.
9575
9576 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
9577
9578         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
9579         (rank_for_schedule_debug): Split from ...
9580         (rank_for_schedule): ... this.
9581         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
9582         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
9583
9584 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
9585
9586         * doc/md.texi (Machine Constraints): Alphabetize table by target.
9587         * doc/extend.texi (x86 Variable Attributes): Move section to
9588         correct alphabetization after renaming.
9589         (x86 Type Attributes): Likewise.
9590         (Target Builtins): Re-alphabetize menu.
9591         (x86 Built-in Functions): Move section to correct alphabetization
9592         after renaming.
9593         (x86 transactional memory intrinsics): Likewise.
9594         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
9595         and x86 Windows Options in table and menu.
9596         (x86 Options): Move section to correct alphabetization after
9597         renaming.
9598         (x86 Windows Options): Likewise.
9599
9600 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
9601
9602         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
9603         preferred names of the architecture and its 32- and 64-bit
9604         variants.
9605         * doc/invoke.texi: Likewise.
9606         * doc/md.texi: Likewise.
9607
9608 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
9609
9610         PR target/64882
9611         * config/i386/predicates.md (address_no_seg_operand): Reject
9612         non-CONST_INT_P operands in invalid mode.
9613
9614 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
9615
9616         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
9617         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
9618         * config/i386/predicates.md (address_no_seg_operand): Call
9619         address_operand with VOIDmode.
9620         (vsib_address_operand): Ditto.
9621         (address_mpx_no_base_operand): Ditto.
9622         (address_mpx_no_index_operand): Ditto.
9623
9624 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
9625
9626         PR target/64688
9627         * lra-constraints.c (original_subreg_reg_mode): New.
9628         (simplify_operand_subreg): Try to simplify subreg of const.  Use
9629         original_subreg_reg_mode for it.
9630         (swap_operands): Update original_subreg_reg_mode.
9631         (curr_insn_transform): Set up original_subreg_reg_mode.
9632
9633 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
9634
9635         PR target/64617
9636         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
9637         function.
9638         (process_alt_operands): Use it.
9639         (curr_insn_transform): Check the optional reload pseudo class is
9640         ok for the mode.
9641
9642 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
9643
9644         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
9645         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
9646         prototype.
9647         * toplev.h (init_asm_output): Update comment on use of
9648         UNKNOWN_LOCATION with fatal_error.
9649         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
9650         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
9651         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
9652         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
9653         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
9654         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
9655         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
9656         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
9657         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
9658         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
9659         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
9660         fatal_error changed to pass input_location as first argument.
9661
9662 2015-01-30  Martin Liska  <mliska@suse.cz>
9663
9664         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
9665         in #pragma GCC diagnostic guards.
9666
9667 2015-01-30  Richard Biener  <rguenther@suse.de>
9668
9669         PR tree-optimization/64829
9670         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
9671         not add a widening conversion pattern but hand off extra
9672         widenings to callers.
9673         (vect_recog_widen_mult_pattern): Handle extra widening produced
9674         by vect_handle_widen_op_by_const.
9675         (vect_recog_widen_shift_pattern): Likewise.
9676         (vect_pattern_recog_1): Remove excess vertical space in dumping.
9677         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
9678         (vect_init_vector_1): Likewise.
9679         (vect_get_vec_def_for_operand): Likewise.
9680         (vect_finish_stmt_generation): Likewise.
9681         (vectorizable_load): Likewise.
9682         (vect_analyze_stmt): Likewise.
9683         (vect_is_simple_use): Likewise.
9684
9685 2015-01-29  Jeff Law  <law@redhat.com>
9686
9687         * combine.c (try_combine): Fix typo in comment.
9688
9689 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
9690
9691         PR target/64580
9692         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
9693         (rs6000_stack_info): Add assert.
9694         (rs6000_output_savres_externs): New function, split off from...
9695         (rs6000_output_function_prologue): ... here.  Do not call it for
9696         thunks.
9697
9698 2015-01-29  Jeff Law  <law@redhat.com>
9699
9700         PR target/15184
9701         * combine.c (try_combine): If I0 is a memory load and I3 a store
9702         to a related address, increase the "goodness" of doing a 4-insn
9703         combination with I0-I3.
9704         (make_field_assignment): Handle SUBREGs in the ior+and case.
9705
9706 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
9707
9708         PR tree-optimization/64746
9709         * tree-if-conv.c (mask_exists): New function.
9710         (predicate_mem_writes): Save created mask with given size for further
9711         use.
9712         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
9713         (ifcvt_repair_bool_pattern): Collect all statements that are root
9714         of bool pattern and use iterative algorithm to remove multiple uses
9715         of predicates, display number of required iterations.
9716
9717 2015-01-29  Richard Biener  <rguenther@suse.de>
9718
9719         PR tree-optimization/64853
9720         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
9721         stmt will get simulated again.
9722         * tree-ssa-ccp.c (valueize_op_1): Likewise.
9723
9724 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9725
9726         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
9727         return_in_pc.  Remove redundant assignments.
9728         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
9729         (arm_expand_epilogue): Don't compare boolean with true in if condition.
9730
9731 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
9732
9733         * config/i386/i386.c (ix86_mode_after): Make static.
9734
9735 2015-01-29  Richard Biener  <rguenther@suse.de>
9736
9737         PR tree-optimization/64844
9738         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
9739         dump cost model analysis.
9740         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9741         Do not register adjusted load/store costs here.
9742
9743 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
9744             Uros Bizjak  <ubizjak@gmail.com>
9745
9746         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
9747         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
9748         using x86_use_pseudo_pic_reg.
9749         * config/i386/i386.c (ix86_conditional_register_usage): Remove
9750         support for fixed PIC register.
9751         (ix86_use_pseudo_pic_reg): Not static any more.
9752
9753 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
9754
9755         PR middle-end/64805
9756         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
9757         to avoid error in cgraph node verification.
9758
9759 2015-01-29  Marek Polacek  <polacek@redhat.com>
9760
9761         * doc/standards.texi: Reflect that the default for C is gnu11.
9762
9763 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
9764
9765         PR target/64761
9766         * reorg.c (switch_text_sections_between_p): New function.
9767         (relax_delay_slots): Call it when testing if the jump insn
9768         is removable.  Use targetm.can_follow_jump when testing if
9769         the conditional branch can follow an unconditional jump.
9770
9771 2015-01-27  Caroline Tice  <cmtice@google.com>
9772
9773         Committing VTV Cywin/Ming patch for Patrick Wollgast
9774         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
9775         if -fvtable-verify=preinit/std is used.
9776         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
9777         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
9778         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
9779         if -fvtable-verify=preinit/std is used.
9780         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
9781         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
9782         if -fvtable-verify=preinit/std is used.
9783         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
9784         * config/i386/mingw32.h (LIB_SPEC): Likewise.
9785         * varasm.c (assemble_variable): Add code to properly set the comdat
9786         section and name for the .vtable_map_vars section in case the
9787         target is PE or COFF.
9788
9789 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
9790
9791         PR ipa/64801
9792         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
9793         make sane BB profile.
9794         (cgraph_node::expand_thunk): Make sane BB profile.
9795         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
9796         * cgraph.h (init_lowered_empty_function): Update prototype.
9797         * config/i386/i386.c (make_resolver_func): Update call.
9798         * predict.c (gate): Disable branch prediction pass if
9799         profile is already there.
9800
9801 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
9802
9803         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
9804         * opth-gen.awk: Likewise.
9805         * common.opt: Mark flag_fp_contract_mode as Optimization.
9806
9807 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9808
9809         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
9810         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
9811
9812 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
9813
9814         PR target/64659
9815         * config/sh/predicates.md (atomic_arith_operand,
9816         atomic_logical_operand): Remove.
9817         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
9818         (atomic_arith_operand_0): New predicate.
9819         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
9820         Use atomic_arith_operand_0 for input values.
9821         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
9822         atomic_compare_and_swap<mode>_soft_gusa,
9823         atomic_compare_and_swap<mode>_soft_tcb,
9824         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
9825         arith_reg_operand instead of register_operand.
9826         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
9827         atomic_arith_operand_0 for newval input.
9828         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
9829         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
9830         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
9831         arith_reg_operand instead of register_operand.
9832         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
9833         fetchop_predicate_1, fetchop_constraint_1_llcs,
9834         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
9835         fetchop_constraint_1_imask): New code iterator attributes.
9836         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
9837         register_operand.  Use fetchop_predicate_1.
9838         (atomic_fetch_<fetchop_name>si_hard,
9839         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
9840         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
9841         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
9842         and arith_reg_operand instead of register_operand.  Use
9843         fetchop_predicate_1, fetchop_constraint_1_gusa.
9844         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
9845         and arith_reg_operand instead of register_operand.  Use
9846         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
9847         to allow R0 usage.
9848         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
9849         and arith_reg_operand instead of register_operand.  Use
9850         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
9851         to allow R0 usage.
9852         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
9853         register_operand.  Use atomic_logical_operand_1.
9854         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
9855         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
9856         arith_reg_operand instead of register_operand.
9857         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
9858         Use arith_reg_dest and arith_reg_operand instead of register_operand.
9859         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
9860         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
9861         register_operand.  Use fetchop_predicate_1.
9862         (atomic_<fetchop_name>_fetchsi_hard,
9863         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
9864         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
9865         fetchop_constraint_1_llcs.
9866         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
9867         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
9868         fetchop_constraint_1_gusa.
9869         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
9870         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
9871         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
9872         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
9873         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
9874         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
9875         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
9876         register_operand.  Use atomic_logical_operand_1.
9877         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
9878         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
9879         arith_reg_operand instead of register_operand.
9880         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
9881         arith_reg_operand instead of register_operand.  Use logical_operand
9882         and K08.  Adjust asm sequence to allow R0 usage.
9883         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
9884         arith_reg_operand instead of register_operand.  Use logical_operand
9885         and K08.
9886
9887 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
9888
9889         PR other/63504
9890         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
9891         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
9892         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
9893         only get_full_len HOST_WIDE_INTs from get_val () array rather than
9894         all bits in *val_wide.
9895
9896 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
9897
9898         * varpool.c (tls_model_names): Fix names.
9899         (varpool_node::dump): Dump tls- prefix for tls models.
9900
9901 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
9902             Bernd Schmidt  <bernds@codesourcery.com>
9903             Nathan Sidwell  <nathan@codesourcery.com>
9904
9905         * config/nvptx/mkoffload.c: New file.
9906         * config/nvptx/t-nvptx: Add build rules for it.
9907         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
9908         (extra_programs): Add mkoffload.
9909         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
9910         function.
9911         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
9912
9913 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
9914
9915         PR middle-end/64809
9916         * cfgexpand.c (reorder_operands): Skip debug gimples.
9917
9918 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
9919
9920         PR tree-optimization/64277
9921         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
9922         range info when possible to refine estimation.
9923
9924 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9925
9926         PR tree-optimization/64718
9927         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
9928         be a 16bit unsigned integer when n->range is 16.
9929         (bswap_replace): Convert src to that type if necessary for all bswap
9930         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
9931         set in pass_optimize_bswap::execute ().
9932
9933 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
9934
9935         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
9936         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
9937         integer and floating point variants.
9938         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
9939
9940 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
9941
9942         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
9943         for all vector modes.
9944
9945 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
9946
9947         PR bootstrap/64612
9948         * doc/sourcebuild.texi (comdat_group): Document.
9949
9950 2015-01-28  Terry Guo  <terry.guo@arm.com>
9951
9952         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
9953
9954 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
9955
9956         * toplev.c (print_version): Add param "show_global_state", and
9957         only print GGC and plugin information if it is true.
9958         (init_asm_output): Pass in "true" for the new param when calling
9959         print_version.
9960         (process_options): Likewise.
9961         (toplev::main): Likewise.
9962         * toplev.h (print_version): Add new param to decl.
9963
9964 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
9965
9966         PR ipa/60871
9967         PR ipa/64139
9968         * tree.c (lookup_binfo_at_offset): New function.
9969         (get_binfo_at_offset): Use it.
9970
9971 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
9972
9973         PR ipa/64282
9974         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
9975         on vtable being vtable.
9976
9977 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9978
9979         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
9980         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
9981         -mhotpatch= option.
9982         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
9983         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
9984         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
9985         Renamed.
9986         (s390_hotpatch_trampoline_halfwords_max): Renamed.
9987         (s390_hotpatch_hw_max): New name.
9988         (s390_hotpatch_trampoline_halfwords): Renamed.
9989         (s390_hotpatch_hw_before_label): New name.
9990         (get_hotpatch_attribute): Removed.
9991         (s390_hotpatch_hw_after_label): New name.
9992         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
9993         attribute.
9994         (s390_attribute_table): Ditto.
9995         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
9996         (s390_function_num_hotpatch_hw): New name.
9997         Remove special handling of inline functions and hotpatching.
9998         Return number of nops before and after the function label.
9999         (s390_can_inline_p): Removed.
10000         (s390_asm_output_function_label): Emit a configurable number of nops
10001         after the function label.
10002         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
10003         (TARGET_CAN_INLINE_P) Removed.
10004         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
10005
10006 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10007             Jiong Wang  <jiong.wang@arm.com>
10008
10009         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
10010         of scratch reg.
10011         (cb<optab><mode>1): Likewise.
10012         * config/aarch64/iterators.md (bcond): New define_code_attr.
10013
10014 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10015
10016         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
10017         memory accesses.
10018
10019 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10020
10021         * config/s390/s390.c (s390_register_move_cost): Increase costs for
10022         FPR->GPR moves.
10023
10024 2015-01-27  Richard Biener  <rguenther@suse.de>
10025
10026         * tree-vrp.c (update_value_range): Intersect the range with
10027         old recorded SSA name range information.
10028
10029 2015-01-27  Nick Clifton  <nickc@redhat.com>
10030
10031         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
10032         BC, DE and HL registers directly, not via AX.
10033         When decrementing the stack pointer by a large amount, transfer SP
10034         into AX and perform the subtraction there.
10035         (rl78_expand_epilogue): Perform the inverse of the above
10036         enhancements.
10037
10038 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10039
10040         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
10041
10042 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
10043             Yury Gribov  <y.gribov@samsung.com>
10044
10045         PR ubsan/64741
10046         * ubsan.c (ubsan_source_location): Refactor code.
10047         (ubsan_type_descriptor): Update type size. Refactor code.
10048
10049 2015-01-27  Richard Biener  <rguenther@suse.de>
10050
10051         PR tree-optimization/56273
10052         PR tree-optimization/59124
10053         PR tree-optimization/64277
10054         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
10055         from the first VRP pass.
10056
10057 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
10058
10059         PR ipa/64776
10060         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
10061         handle the first argument in the same loop as all the other arguments.
10062
10063         PR rtl-optimization/61058
10064         * jump.c (cleanup_barriers): Update basic block boundaries
10065         if BLOCK_FOR_INSN is non-NULL on PREV.
10066
10067 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
10068
10069         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
10070         bounds narrowing, already instrumented calls and calls to
10071         not instrumentable functions.
10072
10073 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
10074
10075         PR tree-optimization/64807
10076         * wide-int.cc (wi::divmod_internal): Clear
10077         b_dividend[dividend_blocks_needed].
10078
10079 2015-01-26  DJ Delorie  <dj@redhat.com>
10080
10081         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
10082         volatile memory references.
10083
10084 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
10085
10086         PR target/49263
10087         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
10088         remove_insn.
10089         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
10090         shifts if it already fits into K08.
10091
10092 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
10093
10094         PR ipa/64730
10095         * ipa-inline.c (inline_small_functions): Print "unknown" even
10096         if edge->call_stmt is non-NULL, but has builtins or unknown
10097         location.
10098
10099         PR middle-end/64421
10100         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
10101         with asterisk, skip the first character.
10102
10103 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
10104
10105         PR target/64806
10106         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
10107         order change.
10108
10109 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
10110
10111         PR target/64795
10112         * config/i386/i386.md (*movdi_internal): Also check operand 0
10113         to determine TYPE_LEA operand.
10114         (*movsi_internal): Ditto.
10115
10116 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
10117
10118         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
10119         OPTION_MASK_QUAD_MEMORY_ATOMIC.
10120
10121 2015-01-26  Renlin Li  <renlin.li@arm.com>
10122
10123         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
10124         the comment.
10125         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
10126         for higher part.
10127
10128 2015-01-26  Richard Biener  <rguenther@suse.de>
10129
10130         PR middle-end/64764
10131         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
10132         combining two BIT_AND_EXPR predicates.
10133
10134 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
10135
10136         PR bootstrap/64754
10137         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
10138
10139 2015-01-26  Terry Guo  <terry.guo@arm.com>
10140
10141         * config/arm/arm.c (arm_file_start): Update the assignment of
10142         Tag_ABI_HardFP_use.
10143
10144 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
10145
10146         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
10147         pipeline model.
10148         config/arm/arm.md: Include the new Cortex-A57 model.
10149         (generic_sched): Don't use generic_sched when tuning for
10150         Cortex-A57.
10151
10152 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
10153             Uros Bizjak  <ubizjak@gmail.com>
10154
10155         * config/i386/i386.c (get_builtin_code_for_version): Add
10156         support for BMI and BMI2 multiversion functions.
10157
10158 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10159
10160         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
10161         (extract_bit_field): Likewise.
10162         (extract_low_bits): Likewise.
10163         (expand_mult): Likewise.
10164         (expand_mult_highpart_adjust): Likewise.
10165
10166 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
10167
10168         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
10169         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
10170         * config/i386/i386.c (processor_model): Add
10171         M_INTEL_COREI7_BROADWELL.
10172         (arch_names_table): Add "broadwell".
10173
10174 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
10175
10176         PR target/49263
10177         PR target/53987
10178         PR target/64345
10179         PR target/59533
10180         PR target/52933
10181         PR target/54236
10182         PR target/51244
10183         * config/sh/sh-protos.h
10184         (sh_extending_set_of_reg::can_use_as_unextended_reg,
10185         sh_extending_set_of_reg::use_as_unextended_reg,
10186         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
10187         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
10188         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
10189         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
10190         (sh_treg_insns): New class.
10191         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
10192         (scope_counter): New class.
10193         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
10194         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
10195         sh_extending_set_of_reg::can_use_as_unextended_reg,
10196         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
10197         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
10198         sh_split_treg_set_expr): New functions.
10199         (addsubcosts): Handle treg_set_expr.
10200         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
10201         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
10202         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
10203         (sh_insn_operands_modified_between_p): Make non-static.
10204         * config/sh/predicates.md (zero_extend_movu_operand): Allow
10205         simple_mem_operand in addition to displacement_mem_operand.
10206         (zero_extend_operand): Don't allow zero_extend_movu_operand.
10207         (treg_set_expr, treg_set_expr_not_const01,
10208         arith_reg_or_treg_set_expr): New predicates.
10209         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
10210         arith_or_int_operand instead of logical_operand.  Convert to
10211         insn_and_split.  Try to optimize constant operand in splitter.
10212         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
10213         (*tstqi_t_zero): Delete.
10214         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
10215         (tstsi_t_and_not): Delete.
10216         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
10217         Convert to insn_and_split.
10218         (unnamed split, tstsi_t_zero_extract_xor,
10219         tstsi_t_zero_extract_subreg_xor_little,
10220         tstsi_t_zero_extract_subreg_xor_big): Delete.
10221         (*tstsi_t_shift_mask): New insn_and_split.
10222         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
10223         to recombine with surrounding insns when splitting.
10224         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
10225         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
10226         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
10227         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
10228         (*cbranch_div0s: Delete.
10229         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
10230         Try to recombine with surrounding insns when splitting.  Add operand
10231         order variants.
10232         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
10233         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
10234         *addc_r_r_msb, *addc_2r_msb): Delete.
10235         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
10236         order variant.
10237         (*addc_negreg_t): New insn_and_split.
10238         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
10239         Try to recombine with surrounding insns when splitting.
10240         Add operand order variants.
10241         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
10242         insn_and_split patterns.
10243         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
10244         surrounding insns when splitting.
10245         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
10246         (*rotcl): Likewise.  Add zero_extract variant.
10247         (*ashrsi2_31): New insn_and_split.
10248         (*negc): Convert to insn_and_split.  Use treg_set_expr.
10249         (*zero_extend<mode>si2_disp_mem): Update comment.
10250         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
10251         condition.
10252         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
10253         with surrounding insns when splitting.
10254         (any_treg_expr_to_reg): New insn_and_split.
10255         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
10256         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
10257         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
10258         *zero_extract_2): New single bit zero extract patterns.
10259         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
10260         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
10261         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
10262         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
10263         set destination.
10264         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
10265         register_operand for set source.
10266
10267 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
10268
10269         * i386.opt (prefetch_sse): New targetsave.
10270         * i386.c (ix86_function_specific_save): Save prefetch_sse.
10271         (ix86_function_specific_restore): Restore prefetch_sse and initialize
10272         ix86_cost/ix86_tune_cost.
10273
10274 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
10275
10276         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
10277         Support the JIT by using 0 as the language type.
10278
10279 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
10280
10281         PR target/64317
10282         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
10283         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
10284         (mark_regno_live, process_bb_lives): Pass new parameter value to
10285         make_hard_regno_born.
10286
10287 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
10288
10289         PR rtl-optimization/63637
10290         PR rtl-optimization/60663
10291         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
10292         if elt->cost is MAX_COST for ASM_OPERANDS.
10293         (find_sets_in_insn): Fix up comment typo.
10294         (cse_insn): Don't set src_volatile for all non-volatile
10295         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
10296         or with "memory" clobber.  Set elt->cost to MAX_COST
10297         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
10298         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
10299
10300 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
10301
10302         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
10303         alternative 1.
10304
10305 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
10306
10307         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
10308         libgcc/config/i386/elf-lib.h.
10309
10310 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
10311
10312         PR driver/64737
10313         * gcc.c (print_configuration): Don't print a blank line at the end
10314         here...
10315         (run_attempt): ... but here unstead.
10316
10317         PR middle-end/64734
10318         * omp-low.c (scan_sharing_clauses): Don't ignore
10319         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
10320         on target data/update constructs.
10321
10322 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10323
10324         PR target/50928
10325         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
10326         (DEBUG_RELOAD): Removed define.
10327         (m32c_limit_reload_class): Enable traces with if DEBUG0.
10328         (m32c_function_arg): Added a type cast.
10329         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
10330         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
10331         * config/m32c/bitops.md (andqi3_16): Likewise.
10332         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
10333         (push_a01_l): Likewise.
10334
10335 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
10336
10337         PR jit/64721
10338         * main.c (main): Construct toplev instances with init_signals=true.
10339         * toplev.c (general_init): Add param "init_signals", and use it to
10340         conditionalize the calls to signal and host_hooks.extra_signals.
10341         (toplev::toplev): Add param "init_signals".
10342         (toplev::main): When invoking general_init, pass m_init_signals
10343         to control whether signal-handlers are installed.
10344         * toplev.h (toplev::toplev): Add param "init_signals".
10345         (toplev::m_init_signals): New field.
10346
10347 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
10348
10349         PR jit/64722
10350         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
10351         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
10352         latter may be affected by the former (e.g. on i686).
10353
10354 2015-01-23  Martin Liska  <mliska@suse.cz>
10355
10356         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
10357         false positive during profiledbootstrap.
10358
10359 2015-01-23  Tom de Vries  <tom@codesourcery.com>
10360
10361         PR libgomp/64672
10362         * lto-opts.c (lto_write_options): Output non-explicit conservative
10363         -fno-openacc.
10364         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
10365         (append_compiler_options): Pass -fopenacc through.
10366
10367 2015-01-23  Tom de Vries  <tom@codesourcery.com>
10368
10369         PR libgomp/64707
10370         * lto-opts.c (lto_write_options): Output non-explicit conservative
10371         -fno-openmp.
10372         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
10373         (append_compiler_options): Pass -fopenmp through.
10374
10375 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
10376
10377         PR debug/64511
10378         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
10379         GTY markup.
10380
10381         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
10382         * diagnostic.def (DK_ICE_NOBT): New kind.
10383         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
10384         like DK_ICE, but never print backtrace.
10385         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
10386         (internal_error_no_backtrace): New function.
10387         * gcc.c (execute): Use internal_error_no_backtrace instead of
10388         internal_error.
10389
10390 2015-01-22  Jeff Law  <law@redhat.com>
10391
10392         PR target/52076
10393         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
10394         improve code density for small immediate to memory case.
10395         (insv): Better handle bitfield assignments when the field is
10396         being set to all ones.
10397         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
10398         operand predicate.
10399
10400 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10401             Jakub Jelinek  <jakub@redhat.com>
10402
10403         PR middle-end/64729
10404         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
10405         for !TARGET_LIBC_PROVIDES_SSP version and
10406         -fstack-protector-{all,strong,explicit} otherwise.
10407         * config/freebsd.h (LINK_SSP_SPEC): Handle
10408         -fstack-protector-{strong,explicit}.
10409
10410 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
10411             H.J. Lu  <hongjiu.lu@intel.com>
10412
10413         PR ipa/64694
10414         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
10415         heap.
10416
10417 2015-01-22  Wei Mi  <wmi@google.com>
10418
10419         PR rtl-optimization/64557
10420         * dse.c (record_store): Call get_addr for mem_addr.
10421         (check_mem_read_rtx): Likewise.
10422
10423 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10424
10425         * fold-const.c (const_binop): Add early return for non-tcc_binary.
10426
10427 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
10428
10429         * toplev.c (init_local_tick): Process the failure when read
10430         fails for random_seed.
10431
10432         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
10433         'pretty_name' to avoid memory overflow.
10434
10435 2015-01-22  Richard Biener  <rguenther@suse.de>
10436
10437         PR middle-end/64728
10438         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
10439         abnormal coalescing on undefined SSA names.
10440
10441 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
10442
10443         PR target/64688
10444         PR target/64477
10445         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
10446         for alternative 3.
10447         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
10448
10449 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
10450
10451         PR middle-end/63325
10452         * fold-const.c (fold_checksum_tree): Don't include value of
10453         expr->decl_with_vis.symtab_node in the checksum.
10454
10455 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10456
10457         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
10458
10459 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
10460
10461         PR driver/64690
10462         * gcc.c (insert_comments): New function.
10463         (try_generate_repro): Call it.
10464         (append_text): Removed.
10465
10466 2015-01-22  Richard Biener  <rguenther@suse.de>
10467
10468         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
10469         with IL incompatible options.  Properly honor user optimize
10470         attributes.
10471
10472 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
10473
10474         PR rtl-optimization/64682
10475         * combine.c (distribute_notes): When moving a death note for
10476         a register that is set in the new I2, make sure to put it
10477         before that new I2.
10478
10479 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
10480
10481         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
10482         not TARGET_DEFAULT.
10483
10484 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
10485
10486         PR debug/64511
10487         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
10488         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
10489         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
10490
10491         PR sanitizer/64706
10492         * doc/invoke.texi (-fsanitize=vptr): Document.
10493
10494         PR rtl-optimization/62078
10495         * dse.c: Include cfgcleanup.h.
10496         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
10497         anything call purge_all_dead_edges and cleanup_cfg at the end
10498         of the pass.
10499
10500 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
10501
10502         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
10503         edges.
10504
10505 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10506
10507         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
10508         decl attribute.
10509
10510 2015-01-21  David Sherwood  <david.sherwood@arm.com>
10511             Tejas Belagod <Tejas.Belagod@arm.com>
10512
10513         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
10514         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
10515         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
10516         Removed.
10517
10518 2015-01-21  David Sherwood  <david.sherwood@arm.com>
10519             Tejas Belagod <Tejas.Belagod@arm.com>
10520
10521         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
10522         (aarch64_reverse_mask): New decls.
10523         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
10524         (insn_count): New mode_attr.
10525         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
10526         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
10527         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
10528         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
10529         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
10530         (aarch64_simd_st4): New patterns.
10531         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
10532         (aarch64_reverse_mask): New functions.
10533
10534 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
10535
10536         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
10537         Declare.
10538         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
10539         addressing modes for BE.
10540         (aarch64_print_operand): Add 'R' specifier.
10541         (aarch64_simd_disambiguate_copy): Delete.
10542         (aarch64_simd_emit_reg_reg_move): New function.
10543         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
10544         in define_splits for structural moves.
10545         (mov<mode>): Use less restrictive predicates.
10546         (*aarch64_mov<mode>): Simplify and only allow for LE.
10547         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
10548
10549 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
10550
10551         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
10552
10553 2015-01-21  Richard Henderson  <rth@redhat.com>
10554
10555         PR target/64669
10556         * ccmp.c (used_in_cond_stmt_p): Remove.
10557         (expand_ccmp_expr): Don't use it.
10558
10559 2015-01-21  Nick Clifton  <nickc@redhat.com>
10560
10561         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
10562         PARALLELs.
10563
10564 2015-01-21  Richard Biener  <rguenther@suse.de>
10565
10566         PR middle-end/64313
10567         * tree-core.h (builtin_info, builtin_info_type): Turn from
10568         an object with two arrays into an array of an object with
10569         decl and two flags, implicit_p and declared_p.
10570         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
10571         set_builtin_decl, set_builtin_decl_implicit_p,
10572         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
10573         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
10574         * builtins.c (builtin_info): Adjust.
10575         * gimplify.c (gimplify_addr_expr): References to builtins
10576         that have been declared by the user makes them eligible for
10577         use by the compiler.  Call set_builtin_decl_implicit_p on them.
10578
10579 2015-01-20  Jeff Law  <law@redhat.com>
10580
10581         PR target/59946
10582         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
10583         allow pc-relative addresses in operand predicates or constraints.
10584
10585 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
10586
10587         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
10588         neon on aarch32 processors for stringops.
10589
10590 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
10591
10592         PR ipa/63576
10593         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
10594
10595 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
10596
10597         PR lto/45375
10598         * ipa-inline.c: Include lto-streamer.h
10599         (report_inline_failed_reason): Output source file differences and
10600         flags on optimization/target node mismatch.
10601         (can_inline_edge_p): Consider caller to be the outer inline function;
10602         be less restrictive about matching opimize and optimize_size attributes.
10603         (inline_account_function_p): Break out from ...
10604         (inline_small_functions): ... here.
10605         * ipa-inline-transform.c (clone_inlined_nodes): Use
10606         inline_account_function_p.
10607         (inline_call): Use optimize attribution; use inline_account_function_p.
10608         (inline_transform): Use opt_for_fn.
10609         * ipa-inline.h (inline_account_function_p): Declare.
10610
10611 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
10612
10613         PR debug/64663
10614         * dwarf2out.c (decl_piece_node): Don't put bitsize into
10615         mode if bitsize <= 0.
10616         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
10617         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
10618         sizes and positions.
10619
10620 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
10621
10622         * config/nios2/nios2.c (nios2_asm_file_end): Implement
10623         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
10624         needed.
10625         (TARGET_ASM_FILE_END): Define.
10626
10627 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
10628
10629         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
10630         (struct tune_params): Use the enum.
10631         * arm.c (arm_*_tune): Update.
10632         (arm_option_override): Update.
10633
10634 2015-01-20  Richard Biener  <rguenther@suse.de>
10635
10636         PR ipa/64684
10637         * ipa-reference.c (add_static_var): Inline ...
10638         (analyze_function): ... here after splitting out from ...
10639         (is_proper_for_analysis): ... this.
10640
10641 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
10642
10643         PR target/64149
10644         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
10645         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
10646         replace the conditional with it's true branch.
10647         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
10648         (arm_lra_p): Remove.
10649
10650 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
10651
10652         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
10653
10654 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10655
10656         * config/tilegx/mul-tables.c: Move symtab.h include after
10657         coretypes.h include.
10658         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
10659         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
10660         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
10661         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
10662         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
10663
10664 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
10665
10666         PR bootstrap/64676
10667         Revert:
10668         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
10669
10670         PR rtl-optimization/64081
10671         * loop-iv.c (def_pred_latch_p): New function.
10672         (latch_dominating_def): Allow specific cases with non-single
10673         definitions.
10674         (iv_get_reaching_def): Likewise.
10675         (check_complex_exit_p): New function.
10676         (check_simple_exit): Use check_complex_exit_p to allow certain cases
10677         with exits not executing on any iteration.
10678
10679 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
10680
10681         PR lto/45375
10682         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
10683         to set branch cost.
10684
10685 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
10686
10687         PR lto/45375
10688         * i386.c (gate): Check flag_expensive_optimizations and
10689         optimize_size.
10690         (ix86_option_override_internal): Drop optimize_size condition
10691         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
10692         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
10693         MASK_PREFER_AVX128.
10694         (ix86_avx256_split_vector_move_misalign,
10695         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
10696         * sse.md (all uses of TARGET_PREFER_AVX128): Add
10697         optimize_insn_for_speed_p check.
10698
10699 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
10700
10701         * config/mips/mips.h (FP_ASM_SPEC): New define.
10702         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
10703         instead.
10704
10705 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
10706
10707         PR target/53988
10708         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
10709         nullptr for insn when reaching the first insn.
10710         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
10711         (sh_insn_operands_modified_between_p): Add nullptr check.
10712         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
10713         sign extending mem load if the insn contains any UNSPEC or
10714         UNSPEC_VOLATILE.
10715
10716 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
10717
10718         * params.def (inline-unit-growth): Drop to 15%.
10719         * invoke.texi (inline-unit-growth): Document change.
10720
10721 2015-01-19  Martin Liska  <mliska@suse.cz>
10722
10723         PR ipa/64668
10724         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
10725         function for second argument of OBJ_TYPE_REF.
10726
10727 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
10728
10729         PR ipa/64218
10730         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
10731         whether function is an alias.
10732
10733 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
10734
10735         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
10736         cases.
10737
10738 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
10739
10740         PR rtl-optimization/64671
10741         * lra-remat.c (operand_to_remat): Don't consider jump and call
10742         insns.
10743
10744 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
10745
10746         PR target/59828
10747         * config/rs6000/default64.h: Include rs6000-cpus.def.
10748         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
10749         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
10750         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
10751         and POWER8.
10752         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
10753         POWER8.
10754         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
10755         pseudo-op to specify assembler dialect.
10756
10757 2015-01-19  Martin Liska  <mliska@suse.cz>
10758
10759         PR ipa/64664
10760         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
10761         Handle safe potentially removed nodes during filtering.
10762
10763 2015-01-19  Martin Liska  <mliska@suse.cz>
10764
10765         * doc/extend.texi (no_icf): Add new attribute description.
10766         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
10767         where the pass attempts to merge a function with no_icf attribute.
10768
10769 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10770
10771         PR target/64532
10772         * doc/md.texi (ARM Options): Document register constraints.
10773
10774 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
10775             Andrew Pinski  <apinski@cavium.com>
10776
10777         PR target/64304
10778         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
10779         (ashl<mode>3): Don't expand if operands[2] is not constant.
10780
10781 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10782
10783         PR target/64448
10784         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
10785         Match xor-and-xor RTL pattern.
10786
10787 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
10788
10789         PR rtl-optimization/64081
10790         * loop-iv.c (def_pred_latch_p): New function.
10791         (latch_dominating_def): Allow specific cases with non-single
10792         definitions.
10793         (iv_get_reaching_def): Likewise.
10794         (check_complex_exit_p): New function.
10795         (check_simple_exit): Use check_complex_exit_p to allow certain cases
10796         with exits not executing on any iteration.
10797
10798 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
10799
10800         * common.opt (fgraphite): Fix a typo.
10801
10802 2015-01-19  Felix Yang  <felix.yang@huawei.com>
10803
10804         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
10805         pattern.
10806         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
10807         uminp, smax_nanp, smin_nanp): New builtins.
10808         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
10809         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
10810         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
10811         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
10812         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
10813         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
10814         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
10815         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
10816         vpminnms_f32): Rewrite using builtin functions.
10817
10818 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
10819
10820         PR libgomp/64625
10821         * omp-low.c (offload_symbol_decl): Remove variable.
10822         (get_offload_symbol_decl): Remove function.
10823         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
10824         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
10825         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
10826         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
10827         BUILT_IN_GOACC_UPDATE don't pass it at all.
10828
10829 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
10830
10831         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
10832         callers.
10833
10834 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
10835
10836         * ipa-chkp.c (chkp_produce_thunks): Add early param
10837         to split thunks production into two passes.  Keep
10838         'always_inline' function bodies after the first pass.
10839         (pass_data_ipa_chkp_early_produce_thunks): New.
10840         (pass_ipa_chkp_early_produce_thunks): New.
10841         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
10842         chkp_produce_thunks signature.
10843         (make_pass_ipa_chkp_early_produce_thunks): New.
10844         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
10845         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
10846         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
10847
10848 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
10849
10850         * cgraph.c (cgraph_node::dump): Dump profile flags.
10851
10852 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
10853
10854         PR target/64652
10855         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
10856         reg appear first in the parallel.
10857
10858 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
10859
10860         * ipa-reference.c (set_reference_optimization_summary,
10861         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
10862         disabled.
10863         (ignore_module_statics): New static var.
10864         (propagate_bits): If ipa-reference is disabled, do not look into local
10865         properties.
10866         (analyze_function): Disable analysis when ipa_reference is disabled.
10867         (generate_summary): Do not dump when reference is disabled;
10868         collect vars accessed from functions with ipa-reference disabled.
10869         (get_read_write_all_from_node): When ipa-reference is disabled, use the
10870         node flags.
10871         (gate): Enable for LTO.
10872         (ignore_edge_p): New function.
10873         (propagate): Skip functions w/o ipa-reference analysis.
10874         * optc-save-gen.awk: Handle optimize_debug correctly.
10875         * opth-gen.awk: Likewise.
10876         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
10877         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
10878         fira-share-save-slots, fira-share-spill-slots,
10879         fmodulo-sched-allow-regmoves, fpartial-inlining,
10880         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
10881         ftracer, ftree-parallelize-loops, fassociative-math,
10882         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
10883         Optimization
10884         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
10885         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
10886         Optimization.
10887         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
10888         Fix for IPA.
10889
10890 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
10891
10892         PR ipa/64378
10893         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
10894         flag correctly.
10895         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
10896
10897 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
10898
10899         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
10900         Remove duplicate option listings.
10901
10902 2015-01-18  Felix Yang  <felix.yang@huawei.com>
10903
10904         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
10905         (autofdo_source_profile::get_callsite_total_count,
10906         function_instance::get_function_instance_by_decl,
10907         string_table::get_index, string_table::get_index_by_decl,
10908         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
10909         Fix comment typos. Reformatting and minor code rearrangement.
10910
10911 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
10912
10913         * config/rs6000/rs6000.md (probe_stack): Delete.
10914         (probe_stack_address): New.
10915
10916 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
10917
10918         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
10919         to test for 32-bit ABIs, not !TARGET_POWERPC64.
10920
10921 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
10922
10923         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
10924         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
10925         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
10926         snafu.
10927         (rs6000_libcall_value): Use the new function.
10928
10929 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
10930
10931         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
10932
10933 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10934
10935         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
10936         implement a more precise life analysis for it during backward scan.
10937
10938 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
10939
10940         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
10941
10942 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
10943
10944         PR rtl-optimization/52773
10945         * calls.c (emit_library_call_value): When pushing arguments use
10946         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
10947         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
10948         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
10949
10950 2015-01-17  Jeff Law  <law@redhat.com>
10951
10952         PR rtl-optimization/32790
10953         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
10954         not ZERO_EXTEND in SET_DESTs.
10955
10956 2015-01-17  Alan Modra  <amodra@gmail.com>
10957
10958         * cprop.c (do_local_cprop): Revert last change.
10959
10960 2015-01-16  DJ Delorie  <dj@redhat.com>
10961             Nick Clifton  <nickc@redhat.com>
10962
10963         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
10964         (addhi3_real): Likewise.  Fix [HL+0] syntax.
10965         (subqi3_real): Likewise.
10966         (subhi3_real): Likewise.
10967         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
10968         (cbranchhi4_real): Likewise.
10969         (cbranchhi4_real_inverted): Likewise.
10970         (cbranchsi4_real_lt): Likewise.
10971         (cbranchsi4_real_ge): Likewise.
10972         (cbranchsi4_real_ge): Likewise.
10973         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
10974         (sub<mode>3_virt): Likewise.
10975         (cbranchqi4_virt): Likewise.
10976         (cbranchhi4_virt): Likewise.
10977         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
10978         always use '[reg+imm]' even when imm is zero.
10979         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
10980         (rl78_general_operand): New.
10981         (rl78_nonimmediate_operand): New.
10982         (rl78_nonfar_operand): Use them.
10983         (rl78_nonfar_nonimm_operand): Likewise.
10984         (rl78_stack_based_mem): Fix.
10985         * config/rl78/constraints.md (Ibqi): New.
10986         (IBqi): New.
10987         (Wsa): New.
10988         (Wsf): New.
10989         (Cs1): Fix.
10990         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
10991         (iorqi3): Likewise.
10992         (xorqi3): Likewise.
10993         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
10994
10995         * config/rl78/constrains (Qs8): New constraint.
10996         * config/rl78/rl78.c (rl78_flags_already_set): New function.
10997         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
10998         * config/rl78/rl78-real.md (update_Z): New attribute.
10999         Update patterns to set it.
11000         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
11001         shorter compare and branch sequence can be used.
11002         (cbranchhi4_real): Likewise.
11003         (cbranchhi4_real_inverted): Likewise.
11004
11005         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
11006         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
11007         address space.
11008         * config/rl78/rl78.c (rl78_get_name_encoding): New.
11009         (rl78_option_override): Allow -mes0 only if C.
11010         (characterize_address): Support subregs of symbol_refs.
11011         (rl78_addr_space_address_mode): Move.  Add __near.
11012         (rl78_far_p): Likewise.
11013         (rl78_addr_space_pointer_mode): Likewise.
11014         (rl78_as_legitimate_address): Likewise.
11015         (rl78_addr_space_subset_p): Likewise.
11016         (rl78_addr_space_convert): Likewise.
11017         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
11018         symbols with -mes0.
11019         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
11020         addressing.
11021         (rl78_alloc_physical_registers_op1): Change logic to prefer
11022         symbol[BC] addressing.
11023         (frodata_section): New.
11024         (rl78_asm_init_sections): Initialize it.
11025         (rl78_select_section): Put __far readonly symbols in .frodata.
11026         (rl78_make_type_far): New.
11027         (rl78_insert_attributes): Force all readonly symbols to be
11028         __far when -mes0.
11029         (rl78_asm_out_integer): New.
11030         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
11031         * config/rl78/rl78.opt (-mes0): New.
11032
11033         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
11034         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
11035         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
11036         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
11037         (rl78_saddr_p): New.
11038         (rl78_output_aligned_common): New.
11039         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
11040         (rl78_handle_saddr_attribute): New.
11041         (rl78_handle_naked_attribute): New.
11042         (rl78_attribute_table): Add saddr.
11043         (rl78_print_operand_1): Don't print '!' on saddr operands.
11044         (rl78_print_operand_1): Strip encodings.
11045         (rl78_sfr_p): New.
11046         (rl78_strip_name_encoding): New.
11047         (rl78_attrlist_to_encoding): New.
11048         (rl78_encode_section_info): New.
11049         (rl78_asm_init_sections): New.
11050         (rl78_select_section): New.
11051         (rl78_output_labelref): New.
11052         (rl78_output_aligned_common): New.
11053         (rl78_asm_out_integer): New.
11054         (rl78_asm_ctor_dtor): New.
11055         (rl78_asm_constructor): New.
11056         (rl78_asm_destructor): New.
11057
11058         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
11059         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
11060         (transcode_memory_rtx): Update.
11061         (rl78_expand_epilogue): Use A_REG instead of 0.
11062
11063 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
11064
11065         * config/arm/arm-protos.h (struct tune_params): New field
11066         sched_autopref_queue_depth.
11067         * config/arm/arm.c (sched-int.h): Include header.
11068         (arm_first_cycle_multipass_dfa_lookahead_guard,)
11069         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
11070         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
11071         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
11072         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
11073         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
11074         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
11075         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
11076         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
11077         * config/arm/t-arm (arm.o): Update.
11078         * haifa-sched.c (update_insn_after_change): Update.
11079         (rank_for_schedule): Use auto-prefetcher model, if requested.
11080         (autopref_multipass_init): New static function.
11081         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
11082         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
11083         variable for debug dumps.
11084         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
11085         (autopref_multipass_dfa_lookahead_guard): New global function that
11086         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
11087         (init_h_i_d): Update.
11088         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
11089         * sched-int.h (enum autopref_multipass_data_status): New const enum.
11090         (autopref_multipass_data_): Structure for auto-prefetcher data.
11091         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
11092         (struct _haifa_insn_data:autopref_multipass_data): New field.
11093         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
11094         (autopref_multipass_dfa_lookahead_guard): Declare.
11095
11096 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
11097
11098         * rtlanal.c (get_base_term): Handle SCRATCH.
11099
11100 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
11101
11102         * config/aarch64/aarch64.c
11103         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
11104         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
11105         * config/arm/arm.c
11106         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
11107         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
11108
11109 2015-01-17  Alan Modra  <amodra@gmail.com>
11110
11111         * cprop.c (do_local_cprop): Disallow replacement of fixed
11112         hard registers.
11113
11114 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11115
11116         PR target/62066
11117         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
11118         early return 0.
11119
11120 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11121
11122         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
11123         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
11124
11125 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11126
11127         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
11128         * config/arm/thumb1.md: ... Here.
11129
11130 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
11131
11132         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
11133         TImode for TARGET_32BIT.
11134
11135 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
11136
11137         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
11138         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
11139         as ...
11140         (rs6000_abi_word_mode): New function.
11141
11142 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
11143
11144         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
11145         instead of UNITS_PER_WORD to describe the size of stack slots.
11146
11147 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
11148
11149         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
11150         as rs6000_promote_function_mode.  Move comment to there.
11151         (rs6000_promote_function_mode): New function.
11152
11153 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
11154
11155         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
11156         -mpowerpc64 is active.
11157
11158 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
11159
11160         PR middle-end/64353
11161         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
11162         virtuals on start.
11163
11164 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
11165
11166         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
11167         introduced in revision 219724.
11168
11169 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11170             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11171
11172         PR target/64263
11173         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
11174         destination is not a GP reg.
11175         (*movdi_aarch64): Likewise.
11176
11177 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
11178
11179         PR target/64623
11180         * config/rs6000/default64.h: Revert ISA change.
11181
11182 2015-01-16  Richard Biener  <rguenther@suse.de>
11183
11184         PR middle-end/64614
11185         * tree-ssa-uninit.c: Include tree-cfg.h.
11186         (MAX_SWITCH_CASES): New define.
11187         (convert_control_dep_chain_into_preds): Handle switch statements.
11188         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
11189         (normalize_one_pred_1): Do not split bit-manipulations.
11190         Record (x & CST).
11191
11192 2015-01-16  Richard Biener  <rguenther@suse.de>
11193
11194         PR tree-optimization/64568
11195         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
11196         complex load rewriting for TARGET_MEM_REFs.
11197
11198 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
11199
11200         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
11201
11202 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
11203
11204         PR target/64149
11205         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
11206         variable.
11207         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
11208         (aarch64_lra_p): Remove.
11209
11210 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
11211
11212         PR target/64363
11213         * ipa-chkp.h (chkp_instrumentable_p): New.
11214         * ipa-chkp.c: Include tree-inline.h.
11215         (chkp_instrumentable_p): New.
11216         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
11217         Fix processing of not instrumentable functions.
11218         (chkp_versioning): Use chkp_instrumentable_p. Warn about
11219         not instrumentable functions.
11220         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
11221         chkp_instrumentable_p.
11222         * tree-inline.h (copy_forbidden): New.
11223         * tree-inline.c (copy_forbidden): Not static anymore.
11224
11225 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11226
11227         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
11228         ptr1, ptr2 unused.
11229
11230 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
11231
11232         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
11233         type OP_OUT to OP_INOUT.
11234
11235 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
11236
11237         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
11238         (high x) y) to y if x and y have the same base.
11239
11240 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
11241
11242         * config/arm/cortex-a57.md: New.
11243         * config/aarch64/aarch64.md: Include it.
11244         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
11245         * config/aarch64/aarch64-tune.md: Regenerate.
11246
11247 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
11248
11249         PR target/64015
11250         * ccmp.c (expand_ccmp_next): New function.
11251         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
11252         and compare insn sequence.
11253         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
11254         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
11255         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
11256         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
11257         (*ccmp_ior): Changed to ccmp_ior<mode>.
11258         (cmp<mode>): New pattern.
11259         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
11260         parameters.
11261         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
11262
11263 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
11264
11265         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
11266         _mm256_bsrli_epi128): New.
11267         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
11268
11269 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
11270
11271         * expmed.c (store_bit_field_using_insv): Improve warning message.
11272         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
11273
11274 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
11275
11276         PR rtl-optimization/64011
11277         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
11278         there is partial overflow.
11279
11280 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
11281
11282         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
11283         prototype.
11284         (nds32_expand_epilogue_v3pop): Likewise.
11285         * config/nds32/nds32.md (sibcall): Define this for sibling call
11286         optimization.
11287         (sibcall_register): Likewise.
11288         (sibcall_immediate): Likewise.
11289         (sibcall_value): Likewise.
11290         (sibcall_value_register): Likewise.
11291         (sibcall_value_immediate): Likewise.
11292         (sibcall_epilogue): Likewise.
11293         (epilogue): Pass false to indicate this is not a sibcall epilogue.
11294         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
11295         (nds32_expand_epilogue_v3pop): Likewise.
11296
11297 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
11298
11299         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
11300         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
11301         (return_internal): New.
11302         (return): Define this named pattern.
11303         (simple_return): Define this named pattern.
11304         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
11305         pattern instead of unspec_volatile_func_return.
11306         (nds32_expand_epilogue_v3pop): Likewise.
11307         (nds32_can_use_return_insn): New function.
11308
11309 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
11310
11311         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
11312         * config/nds32/nds32.md (pop25return): New.
11313         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
11314         pop25return pattern.
11315
11316 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
11317
11318         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
11319         -mforbid-fp-as-gp, and -mex9 options.
11320
11321 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
11322
11323         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
11324         remove -mgp-direct option.
11325
11326 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
11327
11328         * doc/invoke.texi (--param early-inlining-insns): Update default value.
11329         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
11330
11331 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
11332
11333         * ipa-inline.c (inline_small_functions): Work around hints
11334         cache issue.
11335
11336 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
11337
11338         PR target/59710
11339         * doc/invoke.texi (Option Summary): Document new Nios II
11340         -mgpopt= syntax.
11341         (Nios II Options): Likewise.
11342         * config/nios2/nios2.opt: Add -mgpopt= option support.
11343         Modify existing -mgpopt and -mno-gpopt options to be aliases.
11344         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
11345         * config/nios2/nios2.c (nios2_option_override): Adjust
11346         -mgpopt defaulting.
11347         (nios2_in_small_data_p): Return true for explicit small data
11348         sections even with -G0.
11349         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
11350         option choices.
11351
11352 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
11353
11354         PR ipa/64612
11355         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
11356         of comdat locals.
11357         (inline_call): Fix removal of aliases.
11358
11359 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
11360
11361         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
11362         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
11363         * opts.c (common_handle_option): Add -fsanitize=vptr.
11364         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
11365         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
11366         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
11367         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
11368         (ubsan_expand_vptr_ifn): New prototype.
11369         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
11370         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
11371         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
11372         expand_LOOP_VECTORIZED): Make argument nameless, remove
11373         ATTRIBUTE_UNUSED.
11374         (expand_UBSAN_VPTR): New function.
11375         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
11376         in fn spec.
11377         (UBSAN_VPTR): New internal function.
11378         * sanopt.c (tree_map_traits): Renamed to ...
11379         (sanopt_tree_map_traits): ... this.
11380         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
11381         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
11382         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
11383         (maybe_optimize_ubsan_vptr_ifn): New function.
11384         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
11385         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
11386         -fsanitize=vptr.
11387         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
11388         internal calls like pure functions for aliasing, even when they
11389         have other side-effects that prevent making them ECF_PURE.
11390         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
11391         (ubsan_expand_vptr_ifn): New function.
11392
11393 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
11394
11395         PR rtl-optimization/64110
11396         * stmt.c (parse_output_constraint): Process '^' and '$'.
11397         (parse_input_constraint): Ditto.
11398         * lra-constraints.c (process_alt_operands): Process the new
11399         constraints.
11400         * ira-costs.c (record_reg_classes): Process the new constraint
11401         '^'.
11402         * genoutput.c (indep_constraints): Add '^' and '$'.
11403         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
11404         * doc/md.texi: Add description of the new constraints.
11405
11406 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
11407             Bernd Schmidt  <bernds@codesourcery.com>
11408             Cesar Philippidis  <cesar@codesourcery.com>
11409             James Norris  <jnorris@codesourcery.com>
11410             Tom de Vries  <tom@codesourcery.com>
11411             Ilmir Usmanov  <i.usmanov@samsung.com>
11412             Dmitry Bocharnikov  <dmitry.b@samsung.com>
11413             Evgeny Gavrin  <e.gavrin@samsung.com>
11414             Jakub Jelinek  <jakub@redhat.com>
11415
11416         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
11417         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
11418         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
11419         New function types.
11420         * builtins.c: Include "gomp-constants.h".
11421         (expand_builtin_acc_on_device): New function.
11422         (expand_builtin, is_inexpensive_builtin): Handle
11423         BUILT_IN_ACC_ON_DEVICE.
11424         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
11425         New macros.
11426         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
11427         flag_openmp.
11428         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
11429         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
11430         i386/intelmic-offload.h.
11431         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
11432         to libgomp and its dependencies.
11433         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
11434         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
11435         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
11436         * config/ia64/hpux.h (LIB_SPEC): Likewise.
11437         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
11438         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
11439         * doc/generic.texi: Update for OpenACC changes.
11440         * doc/gimple.texi: Likewise.
11441         * doc/invoke.texi: Likewise.
11442         * doc/sourcebuild.texi: Likewise.
11443         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
11444         GF_OMP_FOR_KIND_OACC_LOOP.
11445         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
11446         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
11447         GF_OMP_TARGET_KIND_OACC_UPDATE,
11448         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
11449         Dump more data.
11450         * gimple.c: Update comments for OpenACC changes.
11451         * gimple.def: Likewise.
11452         * gimple.h: Likewise.
11453         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
11454         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
11455         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
11456         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
11457         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
11458         appropriate place.
11459         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
11460         * gimplify.c: Include "gomp-constants.h".
11461         Update comments for OpenACC changes.
11462         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
11463         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
11464         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
11465         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
11466         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
11467         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
11468         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
11469         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
11470         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
11471         OMP_CLAUSE_SEQ.
11472         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
11473         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
11474         OMP_CLAUSE_SET_MAP_KIND.
11475         (gimplify_oacc_cache): New function.
11476         (gimplify_omp_for): Handle OACC_LOOP.
11477         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
11478         OACC_DATA.
11479         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
11480         OACC_EXIT_DATA, OACC_UPDATE.
11481         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
11482         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
11483         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
11484         (gimplify_body): Consider flag_openacc next to flag_openmp.
11485         * lto-streamer-out.c: Include "gomp-constants.h".
11486         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
11487         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
11488         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
11489         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
11490         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
11491         (BUILT_IN_ACC_ON_DEVICE): New builtins.
11492         * omp-low.c: Include "gomp-constants.h".
11493         Update comments for OpenACC changes.
11494         (struct omp_context): Add reduction_map, gwv_below, gwv_this
11495         members.
11496         (extract_omp_for_data, use_pointer_for_field, install_var_field)
11497         (new_omp_context, delete_omp_context, scan_sharing_clauses)
11498         (create_omp_child_function, scan_omp_for, scan_omp_target)
11499         (check_omp_nesting_restrictions, lower_reduction_clauses)
11500         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
11501         Update for OpenACC changes.
11502         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
11503         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
11504         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
11505         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
11506         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
11507         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
11508         OMP_CLAUSE_MAP_*.
11509         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
11510         Handle GF_OMP_FOR_KIND_OACC_LOOP.
11511         (expand_omp_target, lower_omp_target): Handle
11512         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
11513         GF_OMP_TARGET_KIND_OACC_UPDATE,
11514         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
11515         GF_OMP_TARGET_KIND_OACC_DATA.
11516         (pass_expand_omp::execute, execute_lower_omp)
11517         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
11518         flag_openmp.
11519         (offload_symbol_decl): New variable.
11520         (oacc_get_reduction_array_id, oacc_max_threads)
11521         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
11522         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
11523         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
11524         (oacc_gimple_assign, oacc_initialize_reduction_data)
11525         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
11526         functions.
11527         (is_targetreg_ctx): Remove function.
11528         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
11529         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
11530         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
11531         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
11532         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
11533         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
11534         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
11535         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
11536         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
11537         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
11538         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
11539         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
11540         * tree-core.h: Update comments for OpenACC changes.
11541         (enum omp_clause_map_kind): Remove.
11542         (struct tree_omp_clause): Change type of map_kind member from enum
11543         omp_clause_map_kind to unsigned char.
11544         * tree-inline.c: Update comments for OpenACC changes.
11545         * tree-nested.c: Likewise.  Include "gomp-constants.h".
11546         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
11547         (convert_tramp_reference_stmt, convert_gimple_call): Update for
11548         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
11549         OMP_CLAUSE_SET_MAP_KIND.
11550         * tree-pretty-print.c: Include "gomp-constants.h".
11551         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
11552         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
11553         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
11554         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
11555         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
11556         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
11557         instead of OMP_CLAUSE_MAP_*.
11558         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
11559         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
11560         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
11561         * tree-streamer-in.c: Include "gomp-constants.h".
11562         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
11563         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
11564         * tree-streamer-out.c: Include "gomp-constants.h".
11565         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
11566         OMP_CLAUSE_MAP_*.
11567         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
11568         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
11569         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
11570         * tree.c (omp_clause_num_ops): Update accordingly.
11571         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
11572         Likewise.
11573         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
11574         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
11575         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
11576         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
11577         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
11578         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
11579         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
11580         (OMP_CLAUSE_SET_MAP_KIND): New macro.
11581         * varpool.c (varpool_node::get_create): Consider flag_openacc next
11582         to flag_openmp.
11583         * config/i386/intelmic-offload.h: New file.
11584         * config/nvptx/offload.h: Likewise.
11585
11586 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
11587
11588         * explow.h: Remove duplicate contents.
11589         * dojump.h: Likewise.
11590
11591 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
11592
11593         * arm.c (arm_xgene_tune): Add default initializer for instruction
11594         fusion.
11595
11596 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
11597
11598         PR ipa/64068
11599         PR ipa/64559
11600         * ipa.c (symbol_table::remove_unreachable_nodes):
11601         Do not put abstract origins into boundary.
11602
11603 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
11604
11605         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
11606         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
11607
11608 2015-01-15  Steve Ellcey  <sellcey@mips.com>
11609
11610         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
11611         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
11612         builtins.def, and chkp-builtins.def.
11613
11614 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
11615
11616         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
11617         ISA 2.7 (POWER8).
11618
11619 2015-01-15  Richard Biener  <rguenther@suse.de>
11620
11621         PR tree-optimization/61743
11622         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
11623         information on PHIs for some simple cases.
11624
11625 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
11626
11627         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
11628         Include xgene1.md.
11629         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
11630         * config/arm/arm-cores.def (xgene1): New entry.
11631         * config/arm/arm-tables.opt: Regenerate.
11632         * config/arm/arm-tune.md: Regenerate.
11633         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
11634
11635 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
11636
11637         * tree-if-conv.c: Include hash-map.h.
11638         (aggressive_if_conv): New variable.
11639         (fold_build_cond_expr): Add simplification of non-zero condition.
11640         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
11641         destination block is not always executed.
11642         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
11643         than two predecessors if AGGRESSIVE_IF_CONV is true.
11644         (if_convertible_stmt_p): Fix commentary.
11645         (all_preds_critical_p): New function.
11646         (has_pred_critical_p): New function.
11647         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
11648         BB can have more than two predecessors and all incoming edges can be
11649         critical.
11650         (predicate_bbs): Skip predication for loop exit block, use build2_loc
11651         to compute predicate for true edge.
11652         (find_phi_replacement_condition): Delete this function.
11653         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
11654         Allow interchange PHI arguments if EXTENDED is false.
11655         Change check that block containing reduction statement candidate
11656         is predecessor of phi-block since phi may have more than two arguments.
11657         (phi_args_hash_traits): New helper structure.
11658         (struct phi_args_hash_traits): New type.
11659         (phi_args_hash_traits::hash): New function.
11660         (phi_args_hash_traits::equal_keys): New function.
11661         (gen_phi_arg_condition): New function.
11662         (predicate_scalar_phi): Add handling of phi nodes with more than two
11663         arguments, delete COND and TRUE_BB arguments, insert body of
11664         find_phi_replacement_condition to predicate ordinary phi nodes.
11665         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
11666         delete call of find_phi_replacement_condition and invoke
11667         predicate_scalar_phi with two arguments.
11668         (insert_gimplified_predicates): Add assert that non-predicated block
11669         don't have statements to insert.
11670         (ifcvt_split_critical_edges): New function.
11671         (ifcvt_split_def_stmt): Likewise.
11672         (ifcvt_walk_pattern_tree): Likewise.
11673         (stmt_is_root_of_bool_pattern): Likewise.
11674         (ifcvt_repair_bool_pattern): Likewise.
11675         (ifcvt_local_dce): Likewise.
11676         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
11677         is copy of inner or outer loop force_vectorize field, invoke
11678         ifcvt_split_critical_edges, ifcvt_local_dce and
11679         ifcvt_repair_bool_pattern for aggressive if-conversion.
11680
11681 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
11682
11683         * config/aarch64/aarch64.md: Include xgene1.md.
11684         * config/aarch64/xgene1.md: New file.
11685
11686 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
11687
11688         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
11689         xgene1 (APM XGene-1) core definition.
11690         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
11691         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
11692         * doc/invoke.texi: Document -mcpu=xgene1.
11693
11694 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
11695
11696         * dojump.h: New header file.
11697         * explow.h: Likewise.
11698         * expr.h: Remove includes.
11699         Move expmed.c prototypes to expmed.h.
11700         Move dojump.c prototypes to dojump.h.
11701         Move alias.c prototypes to alias.h.
11702         Move explow.c prototypes to explow.h.
11703         Move calls.c prototypes to calls.h.
11704         Move emit-rtl.c prototypes to emit-rtl.h.
11705         Move varasm.c prototypes to varasm.h.
11706         Move stmt.c prototypes to stmt.h.
11707         (saved_pending_stack_adjust): Move to dojump.h.
11708         (adjust_address): Move to explow.h.
11709         (adjust_address_nv): Move to emit-rtl.h.
11710         (adjust_bitfield_address): Likewise.
11711         (adjust_bitfield_address_size): Likewise.
11712         (adjust_bitfield_address_nv): Likewise.
11713         (adjust_automodify_address_nv): Likewise.
11714         * explow.c (expr_size): Move to expr.c.
11715         (int_expr_size): Likewise.
11716         (tree_expr_size): Likewise.
11717         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11718         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
11719         * genemit.c (main): Generate includes statistics.h, real.h,
11720         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
11721         stmt.h.
11722         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
11723         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
11724         explow.h, emit-rtl.h, stmt.h.
11725         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
11726         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
11727         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
11728         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
11729         emit-rtl.h, varasm.h, stmt.h.
11730         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
11731         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
11732         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
11733         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
11734         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
11735         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
11736         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
11737         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
11738         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
11739         tm.h tree.h varasm.h vec.h wide-int.h.
11740         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
11741         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
11742         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
11743         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
11744         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
11745         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
11746         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
11747         * loop-iv.c: Likewise.
11748         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
11749         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
11750         statistics.h stmt.h tree.h varasm.h wide-int.h.
11751         * lra-constraints.c: Likewise.
11752         * lra-eliminations.c: Likewise.
11753         * lra-lives.c: Likewise.
11754         * lra-remat.c: Likewise.
11755         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
11756         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
11757         statistics.h stmt.h tree.h varasm.h wide-int.h.
11758         * hw-doloop.c: Likewise.
11759         * ira-color.c: Likewise.
11760         * ira-emit.c: Likewise.
11761         * loop-doloop.c: Likewise.
11762         * loop-invariant.c: Likewise.
11763         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
11764         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
11765         statistics.h stmt.h tree.h varasm.h wide-int.h.
11766         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
11767         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
11768         statistics.h stmt.h tree.h varasm.h wide-int.h.
11769         * combine-stack-adj.c: Likewise.
11770         * cse.c: Likewise.
11771         * ddg.c: Likewise.
11772         * ifcvt.c: Likewise.
11773         * ira-costs.c: Likewise.
11774         * jump.c: Likewise.
11775         * lra-coalesce.c: Likewise.
11776         * lra-spills.c: Likewise.
11777         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
11778         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
11779         stmt.h varasm.h wide-int.h.
11780         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
11781         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
11782         varasm.h.
11783         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
11784         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
11785         statistics.h stmt.h varasm.h wide-int.h.
11786         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
11787         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
11788         varasm.h wide-int.h.
11789         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
11790         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
11791         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
11792         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
11793         statistics.h stmt.h.
11794         * config/tilepro/tilepro.c: Likewise.
11795         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
11796         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
11797         * config/pdp11/pdp11.c: Likewise.
11798         * config/xtensa/xtensa.c: Likewise.
11799         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
11800         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
11801         varasm.h.
11802         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11803         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
11804         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
11805         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11806         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
11807         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
11808         * rtl-chkp.c: Likewise.
11809         * tree-chkp-opt.c: Likewise.
11810         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
11811         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
11812         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
11813         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11814         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
11815         statistics.h stmt.h.
11816         * tree-vect-data-refs.c: Likewise.
11817         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
11818         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
11819         rtl.h statistics.h stmt.h varasm.h.
11820         * internal-fn.c: Likewise.
11821         * ipa-icf-gimple.c: Likewise.
11822         * lto-section-out.c: Likewise.
11823         * tree-data-ref.c: Likewise.
11824         * tree-nested.c: Likewise.
11825         * tree-outof-ssa.c: Likewise.
11826         * tree-predcom.c: Likewise.
11827         * tree-pretty-print.c: Likewise.
11828         * tree-scalar-evolution.c: Likewise.
11829         * tree-ssa-strlen.c: Likewise.
11830         * tree-vect-loop.c: Likewise.
11831         * tree-vect-patterns.c: Likewise.
11832         * tree-vect-slp.c: Likewise.
11833         * tree-vect-stmts.c: Likewise.
11834         * tsan.c: Likewise.
11835         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11836         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
11837         stmt.h.
11838         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
11839         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
11840         statistics.h stmt.h varasm.h.
11841         * loop-unroll.c: Likewise.
11842         * ubsan.c: Likewise.
11843         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
11844         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
11845         stmt.h varasm.h.
11846         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11847         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
11848         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
11849         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
11850         statistics.h stmt.h.
11851         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
11852         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
11853         statistics.h stmt.h varasm.h.
11854         * gimple-match-head.c: Likewise.
11855         * lto-cgraph.c: Likewise.
11856         * lto-section-in.c: Likewise.
11857         * lto-streamer-in.c: Likewise.
11858         * lto-streamer-out.c: Likewise.
11859         * tree-affine.c: Likewise.
11860         * tree-cfg.c: Likewise.
11861         * tree-cfgcleanup.c: Likewise.
11862         * tree-if-conv.c: Likewise.
11863         * tree-into-ssa.c: Likewise.
11864         * tree-ssa-alias.c: Likewise.
11865         * tree-ssa-copyrename.c: Likewise.
11866         * tree-ssa-dse.c: Likewise.
11867         * tree-ssa-forwprop.c: Likewise.
11868         * tree-ssa-live.c: Likewise.
11869         * tree-ssa-math-opts.c: Likewise.
11870         * tree-ssa-pre.c: Likewise.
11871         * tree-ssa-sccvn.c: Likewise.
11872         * tree-tailcall.c: Likewise.
11873         * tree-vect-generic.c: Likewise.
11874         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11875         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
11876         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11877         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
11878         * varasm.c: Likewise.
11879         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11880         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
11881         varasm.h.
11882         * init-regs.c: Likewise.
11883         * ira.c: Likewise.
11884         * omp-low.c: Likewise.
11885         * stack-ptr-mod.c: Likewise.
11886         * tree-ssa-reassoc.c: Likewise.
11887         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11888         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
11889         varasm.h.
11890         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11891         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
11892         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11893         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
11894         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11895         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
11896         * tree-ssa-phiopt.c: Likewise.
11897         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11898         fixed-value.h hashtab.h real.h statistics.h stmt.h.
11899         * config/fr30/fr30.c: Likewise.
11900         * config/frv/frv.c: Likewise.
11901         * expr.c: Likewise.
11902         * final.c: Likewise.
11903         * optabs.c: Likewise.
11904         * passes.c: Likewise.
11905         * simplify-rtx.c: Likewise.
11906         * stmt.c: Likewise.
11907         * toplev.c: Likewise.
11908         * var-tracking.c: Likewise.
11909         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11910         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
11911         * lower-subreg.c: Likewise.
11912         * postreload-gcse.c: Likewise.
11913         * ree.c: Likewise.
11914         * reginfo.c: Likewise.
11915         * store-motion.c: Likewise.
11916         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11917         fixed-value.h hashtab.h real.h stmt.h varasm.h.
11918         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11919         fixed-value.h hashtab.h statistics.h stmt.h.
11920         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11921         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
11922         * except.c: Likewise.
11923         * explow.c: Likewise.
11924         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11925         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
11926         varasm.h.
11927         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11928         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
11929         * tree-ssa-structalias.c: Likewise.
11930         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11931         fixed-value.h insn-config.h real.h statistics.h.
11932         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11933         fixed-value.h insn-config.h real.h statistics.h stmt.h.
11934         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11935         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
11936         * cfgbuild.c: Likewise.
11937         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11938         fixed-value.h real.h rtl.h statistics.h stmt.h.
11939         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11940         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
11941         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11942         fixed-value.h real.h statistics.h stmt.h.
11943         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
11944         fixed-value.h real.h statistics.h stmt.h varasm.h.
11945         * cprop.c: Likewise.
11946         * modulo-sched.c: Likewise.
11947         * postreload.c: Likewise.
11948         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
11949         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
11950         statistics.h stmt.h varasm.h.
11951         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
11952         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
11953         rtl.h statistics.h stmt.h varasm.h.
11954         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
11955         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
11956         varasm.h.
11957         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
11958         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
11959         varasm.h.
11960         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
11961         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
11962         varasm.h.
11963         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
11964         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
11965         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
11966         function.h real.h statistics.h stmt.h varasm.h.
11967         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
11968         insn-config.h real.h statistics.h stmt.h.
11969         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
11970         statistics.h stmt.h.
11971         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
11972         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
11973         statistics.h stmt.h varasm.h.
11974         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
11975         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
11976         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
11977         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
11978         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
11979         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
11980         statistics.h stmt.h varasm.h.
11981         * ipa-polymorphic-call.c: Likewise.
11982         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
11983         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
11984         statistics.h stmt.h.
11985         * config/c6x/c6x.c: Likewise.
11986         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
11987         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
11988         statistics.h stmt.h varasm.h.
11989         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
11990         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
11991         stmt.h varasm.h.
11992         * ipa-split.c: Likewise.
11993         * tree-eh.c: Likewise.
11994         * tree-ssa-dce.c: Likewise.
11995         * tree-ssa-loop-niter.c: Likewise.
11996         * tree-vrp.c: Likewise.
11997         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
11998         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
11999         stmt.h.
12000         * config/nds32/nds32-fp-as-gp.c: Likewise.
12001         * config/nds32/nds32-intrinsic.c: Likewise.
12002         * config/nds32/nds32-isr.c: Likewise.
12003         * config/nds32/nds32-md-auxiliary.c: Likewise.
12004         * config/nds32/nds32-memory-manipulation.c: Likewise.
12005         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
12006         * config/nds32/nds32-predicates.c: Likewise.
12007         * config/nds32/nds32.c: Likewise.
12008         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
12009         fixed-value.h hashtab.h real.h statistics.h.
12010         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
12011         fixed-value.h hashtab.h real.h statistics.h stmt.h.
12012         * config/arm/arm.c: Likewise.
12013         * config/avr/avr.c: Likewise.
12014         * config/bfin/bfin.c: Likewise.
12015         * config/h8300/h8300.c: Likewise.
12016         * config/i386/i386.c: Likewise.
12017         * config/ia64/ia64.c: Likewise.
12018         * config/iq2000/iq2000.c: Likewise.
12019         * config/m32c/m32c.c: Likewise.
12020         * config/m32r/m32r.c: Likewise.
12021         * config/m68k/m68k.c: Likewise.
12022         * config/mcore/mcore.c: Likewise.
12023         * config/mep/mep.c: Likewise.
12024         * config/mips/mips.c: Likewise.
12025         * config/mn10300/mn10300.c: Likewise.
12026         * config/moxie/moxie.c: Likewise.
12027         * config/pa/pa.c: Likewise.
12028         * config/rl78/rl78.c: Likewise.
12029         * config/rx/rx.c: Likewise.
12030         * config/s390/s390.c: Likewise.
12031         * config/sh/sh.c: Likewise.
12032         * config/sparc/sparc.c: Likewise.
12033         * config/spu/spu.c: Likewise.
12034         * config/stormy16/stormy16.c: Likewise.
12035         * config/v850/v850.c: Likewise.
12036         * config/vax/vax.c: Likewise.
12037         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
12038         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
12039         * config/msp430/msp430.c: Likewise.
12040         * predict.c: Likewise.
12041         * value-prof.c: Likewise.
12042         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
12043         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
12044         * config/microblaze/microblaze.c: Likewise.
12045         * config/nios2/nios2.c: Likewise.
12046         * config/rs6000/rs6000.c: Likewise.
12047         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
12048         insn-config.h real.h rtl.h statistics.h stmt.h.
12049         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
12050         insn-config.h real.h statistics.h stmt.h.
12051         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
12052         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
12053         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
12054         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
12055         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
12056         fixed-value.h real.h statistics.h stmt.h.
12057         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
12058         fixed-value.h statistics.h stmt.h.
12059         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
12060         stmt.h.
12061
12062 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
12063
12064         * gengtype.c (create_user_defined_type): Workaround
12065         -Wmaybe-uninitialized false positives.
12066         * cse.c (fold_rtx): Likewise.
12067         * loop-invariant.c (gain_for_invariant): Likewise.
12068
12069 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
12070
12071         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
12072         set the memory attributes in all cases but clear MEM_EXPR if need be.
12073
12074 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
12075
12076         PR tree-optimization/64434
12077         * cfgexpand.c (reorder_operands): New function.
12078         (expand_gimple_basic_block): Insert call of reorder_operands if
12079         optimized is true.
12080
12081 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
12082
12083         * config/mips/micromips.md (*swp): Remove explicit parallel.
12084         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
12085         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
12086         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
12087         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
12088         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
12089         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
12090         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
12091         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
12092         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
12093         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
12094         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
12095         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
12096         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
12097         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
12098         (mips_wrdsp): Likewise.
12099         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
12100         parallel.
12101         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
12102         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
12103         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
12104         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
12105         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
12106         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
12107         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
12108         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
12109         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
12110
12111 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
12112
12113         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
12114         (mips_print_operand): Support 'y' to print exact log2 in decimal
12115         of a const_int.
12116         * config/mips/mips.h (ISA_HAS_LSA): New define.
12117         (ISA_HAS_DLSA): Likewise.
12118         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
12119         * config/mips/predicates.md (const_immlsa_operand): New predicate.
12120
12121 2015-01-15  Martin Liska  <mliska@suse.cz>
12122
12123         PR target/64377
12124         * optc-save-gen.awk: Add support for array types.
12125
12126 2015-01-15  Richard Biener  <rguenther@suse.de>
12127
12128         PR middle-end/64365
12129         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
12130         for MEM_REF access functions with the same base can never partially
12131         overlap.
12132
12133 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
12134
12135         * common.opt: New option -fstack-protector-explicit.
12136         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
12137         (stack_protect_decl_phase): Handle stack_protect attribute for
12138         explicit stack protection requests.
12139         (expand_used_vars): Similarly.
12140         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
12141         * doc/extend.texi: Add documentation for "stack_protect" attribute.
12142         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
12143
12144 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
12145
12146         PR target/53988
12147         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
12148         reg-reg copies.
12149         (sh_extending_set_of_reg): New struct.
12150         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
12151         sh_remove_reg_dead_or_unused_notes): New Declarations.
12152         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
12153         sh_find_extending_set_of_reg, sh_split_tst_subregs,
12154         sh_extending_set_of_reg::use_as_extended_reg): New functions.
12155         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
12156         convert to insn_and_split and use new function sh_split_tst_subregs.
12157
12158 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
12159
12160         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
12161         option.
12162         (Optimization Options): Move -fuse-ld documentation to...
12163         (Link Options): ...here.
12164
12165 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
12166
12167         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
12168         offsets.
12169         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
12170         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
12171         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
12172         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
12173         instead of ZR for the memory operand of LL/SC.
12174         (compare_and_swap_12, sync_add<mode>): Likewise.
12175         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
12176         (sync_new_<optab>_12, sync_nand_12): Likewise.
12177         (sync_old_nand_12, sync_new_nand_12): Likewise.
12178         (sync_sub<mode>, sync_old_add<mode>): Likewise.
12179         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
12180         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
12181         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
12182         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
12183         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
12184         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
12185         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
12186         * doc/md.texi (ZC): Update description.
12187
12188 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
12189
12190         * builtins.c (expand_builtin_atomic_exchange): Remove error when
12191         memory model is CONSUME.
12192         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
12193         expand_builtin_atomic_store): Change invalid memory model errors to
12194         warnings.
12195         (expand_builtin_atomic_clear): Change invalid model errors to warnings
12196         and issue warning for CONSUME.
12197
12198 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
12199
12200         * lto-cgraph: Update function comments for
12201         lto_symtab_encoder_encode_*.
12202
12203 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
12204
12205         * Makefile.in (site.exp): Do not set ENABLE_LTO.
12206
12207 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
12208
12209         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
12210         * lto-cgraph.c (select_what_to_stream): Remove argument, use
12211         lto_stream_offload_p instead.
12212         * lto-streamer.h (select_what_to_stream): Remove argument.
12213         * passes.c (ipa_write_summaries): Likewise.
12214         * tree-pass.h (ipa_write_summaries): Likewise.
12215
12216 2015-01-14  Richard Biener  <rguenther@suse.de>
12217
12218         PR tree-optimization/59354
12219         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
12220         groups larger than the slp group size as having gaps.
12221
12222 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
12223
12224         PR middle-end/59448
12225         * builtins.c (get_memmodel): Promote consume to acquire always.
12226
12227 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
12228
12229         PR target/64386
12230         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
12231         V32HImode.
12232
12233 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
12234
12235         PR target/64393
12236         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
12237         Enable AVX512BW.
12238         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
12239         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
12240         AVX512VBMI, as it implies AVX512BW.
12241
12242 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
12243
12244         PR target/64387
12245         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
12246         (vec_unpacks_hi_v16sf): Ditto.
12247
12248 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12249
12250         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
12251         is not available.
12252
12253 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12254
12255         * doc/invoke.texi (mapcs): Mention deprecation.
12256         (mapcs-frame): Likewise.
12257
12258 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12259
12260         PR target/64453
12261         * config/arm/arm.c (callee_saved_reg_p): Define.
12262         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
12263         register is callee saved instead of !call_used_regs[reg].
12264         (thumb1_compute_save_reg_mask): Likewise.
12265
12266 2015-01-14  Hale Wang  <hale.wang@arm.com>
12267
12268         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
12269         Cortex-M7.
12270
12271 2015-01-14  Richard Biener  <rguenther@suse.de>
12272
12273         PR lto/64415
12274         * tree-inline.c (insert_debug_decl_map): Check destination
12275         function MAY_HAVE_DEBUG_STMTS.
12276         (insert_init_debug_bind): Likewise.
12277         (insert_init_stmt): Remove redundant check.
12278         (remap_gimple_stmt): Drop debug stmts if the destination
12279         function has var-tracking assignments disabled.
12280
12281 2015-01-14  Martin Liska  <mliska@suse.cz>
12282
12283         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
12284         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
12285
12286 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12287
12288         PR target/64460
12289         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
12290         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
12291
12292 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
12293
12294         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
12295         level from an ARCH; do not inject the default.
12296         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
12297         MIPS_ISA_LEVEL_SPEC.
12298         (MIPS_ISA_NAN2008_SPEC): Update comment.
12299         (BASE_DRIVER_SELF_SPECS): Likewise.
12300         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
12301         MIPS_DEFAULT_ISA_LEVEL_SPEC.
12302         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
12303         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
12304         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
12305
12306 2015-01-14  Richard Biener  <rguenther@suse.de>
12307
12308         PR tree-optimization/64493
12309         PR tree-optimization/64495
12310         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
12311         assign the proper vectorized PHI to the inner loop exit PHIs.
12312
12313 2015-01-14  Joey Ye  <joey.ye@arm.com>
12314
12315         * config/arm/arm.c (arm_compute_save_reg_mask):
12316         Do not save lr in case of tail call.
12317         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
12318
12319 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
12320
12321         * tree-vrp.c (check_array_ref): Emit more warnings
12322         for warn_array_bounds >= 2.
12323         * common.opt: New option -Warray-bounds=.
12324         * doc/invoke.texi: Document -Warray-bounds=.
12325
12326 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
12327
12328         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
12329         (mforbid-fp-as-gp): Remove.
12330         (mex9): Remove.
12331         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
12332         (nds32_symbol_load_store_p): Remove.
12333         (nds32_fp_as_gp_check_available): Clean up implementation.
12334         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
12335         cases.
12336         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
12337         fp-as-gp and ex9 cases.
12338
12339 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
12340
12341         * tree-profile.c (init_ic_make_global_vars): Drop workaround
12342         for bintuils bug 14342.
12343         (init_ic_make_global_vars): Likewise.
12344         (gimple_init_edge_profiler): Likewise.
12345         (gimple_gen_ic_func_profiler): Likewise.
12346
12347 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
12348
12349         * ipa-inline.c (inline_small_functions): Swap the operands in
12350         enum.
12351
12352 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
12353
12354         PR ipa/64481
12355         * ipa-inline-analysis.c (node_growth_cache): Remove.
12356         (initialize_growth_caches): Do not initialize it.
12357         (free_growth_caches): Do not free it.
12358         (do_estimate_growth): Rename to ...
12359         (estimate_growth): ... this one; drop growth cache code.
12360         (growth_likely_positive): Always go the heuristics way.
12361         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
12362         (reset_edge_caches): Do not reset node growth.
12363         (heap_edge_removal_hook): Do not maintain cache.
12364         (inline_small_functions): Likewise; strenghten sanity check.
12365         (ipa_inline): Do not maintain caches.
12366         * ipa-inline.h (node_growth_cache): Remove.
12367         (do_estimate_growth): Remove to ...
12368         (estimate_growth): this one; remove inline version.
12369         (reset_node_growth_cache): Remove.
12370
12371 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
12372
12373         PR ipa/64565
12374         * ipa-inline.c (inline_small_functions): Update callee keys after
12375         resolving speculation
12376         (inline_small_functions): Always check monotonicity of the queue.
12377
12378 2015-01-13  Marek Polacek  <polacek@redhat.com>
12379
12380         PR middle-end/64391
12381         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
12382
12383 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
12384
12385         PR rtl-optimization/64286
12386         * ree.c (combine_reaching_defs): Move part of comment earlier,
12387         remove !SCALAR_INT_MODE_P check.
12388         (add_removable_extension): Don't add vector mode
12389         extensions if all uses of the source register aren't the same
12390         vector extensions.
12391
12392 2015-01-13  Renlin Li  <renlin.li@arm.com>
12393
12394         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
12395         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
12396
12397 2015-01-13  Martin Liska  <mliska@suse.cz>
12398
12399         * ipa-icf.c (sem_function::equals_private): Call new functions
12400         cl_target_option_print_diff and cl_optimization_print_diff.
12401         * optc-save-gen.awk (cl_target_option_print_diff): New function.
12402         (cl_optimization_print_diff): Likewise.
12403         * opth-gen.awk: Likewise.
12404
12405 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
12406
12407         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
12408         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
12409         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
12410         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
12411         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
12412         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
12413
12414 2015-01-13  Andrew Pinski  <apinski@cavium.com>
12415
12416         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
12417         instead of src mode.
12418
12419 2015-01-13  Richard Biener  <rguenther@suse.de>
12420
12421         PR lto/64373
12422         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
12423         DECL_CONTEXT.
12424
12425 2015-01-13  Andrew Pinski  <apinski@cavium.com>
12426
12427         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
12428         volatile mems.
12429         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
12430
12431 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
12432
12433         PR middle-end/63974
12434         * cfgexpand.c (expand_computed_goto): Don't call
12435         convert_memory_address here.
12436
12437 2015-01-13  Richard Biener  <rguenther@suse.de>
12438
12439         PR tree-optimization/64406
12440         * tree-loop-distibution.c (pass_loop_distribution::execute):
12441         Reset the SCEV hashtable if we distributed anything.
12442
12443 2015-01-13  Richard Biener  <rguenther@suse.de>
12444
12445         PR tree-optimization/64404
12446         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
12447         SLP types for CSEd loads.
12448
12449 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12450
12451         PR tree-optimization/64436
12452         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
12453         merge of two symbolic numbers for a bitwise OR to ...
12454         (perform_symbolic_merge): This. Also fix computation of the range and
12455         end of the symbolic number corresponding to the result of a bitwise OR.
12456
12457 2015-01-13  Richard Biener  <rguenther@suse.de>
12458
12459         PR tree-optimization/64568
12460         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
12461         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
12462
12463 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
12464
12465         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
12466         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
12467
12468 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
12469
12470         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
12471         target-specific symbol_ref flag.
12472         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
12473         resides in rodata section.
12474         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
12475         (nds32_encode_section_info): New function.
12476
12477 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
12478
12479         * config/nds32/nds32.md (call): Use pseudo instruction bal which
12480         clobbers TA_REGNUM if large code model is specified.
12481         (call_register): Likewise.
12482         (call_immediate): Likewise.
12483         (call_value): Likewise.
12484         (call_value_register): Likewise.
12485         (call_value_immediate): Likewise.
12486
12487 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
12488
12489         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
12490         (TARGET_CMODEL_MEDIUM): New macro.
12491         (TARGET_CMODEL_LARGE): New macro.
12492         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
12493         code model setting in assembly code.
12494
12495 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
12496
12497         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
12498         Remove MASK_GP_DIRECT flag.
12499         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
12500         one of the multilib default options.
12501         * config/nds32/nds32.opt (mgp-direct): Remove.
12502         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
12503         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
12504
12505 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
12506
12507         * config/nds32/nds32.opt (mcmodel): Add new option.
12508         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
12509         to describe code model.
12510
12511 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
12512
12513         PR target/64479
12514         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
12515
12516 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
12517
12518         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
12519         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
12520         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
12521         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
12522         __builtin_sh_set_fpscr.
12523
12524 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
12525
12526         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
12527         after a funtion name just to indicate it is a function.
12528         ([-fsanitize-undefined-trap-on-error]): Likewise.
12529         ([-fdbg-cnt=]): Likewise.
12530         ([-mmemcpy]): Likewise.
12531         ([-mflush-func]): Likewise.
12532         ([-msynci]): Likewise.
12533
12534 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
12535
12536         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
12537         example.
12538
12539 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
12540
12541         PR tree-optimization/64563
12542         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
12543         instead of != VR_VARYING.
12544
12545         PR target/64513
12546         * config/i386/i386.c (ix86_expand_prologue): Add
12547         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
12548
12549         PR tree-optimization/64454
12550         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
12551         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
12552         for signed or [0, op1 - 1] for unsigned modulo.
12553         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
12554         even if op1 does not satisfy integer_pow2p.
12555
12556         PR other/64370
12557         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
12558
12559 2015-01-12  Jeff Law  <law@redhat.com>
12560
12561         PR target/64461
12562         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
12563         (trunchiqi2, truncsihi2): Similarly.
12564
12565         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
12566         rather than calling F.
12567
12568 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12569
12570         * tsan.c (instrument_expr): Use force_gimple_operand.
12571         Use may_be_nonaddressable_p instead of is_gimple_addressable.
12572
12573 2015-01-12  Richard Biener  <rguenther@suse.de>
12574
12575         PR tree-optimization/64530
12576         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
12577         back dr1.
12578
12579 2015-01-12  Richard Biener  <rguenther@suse.de>
12580
12581         PR middle-end/64357
12582         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
12583         latches properly.
12584
12585 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12586
12587         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
12588         Cortex-A17 tuning parameters.
12589         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
12590
12591 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12592
12593         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
12594         * config/arm/arm.c (arm_macro_fusion_p): New function.
12595         (arm_macro_fusion_pair_p): Likewise.
12596         (TARGET_SCHED_MACRO_FUSION_P): Define.
12597         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
12598         (ARM_FUSE_NOTHING): Likewise.
12599         (ARM_FUSE_MOVW_MOVT): Likewise.
12600         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
12601         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
12602         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
12603         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
12604         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
12605         arm_cortex_a5_tune): Specify fuseable_ops value.
12606
12607 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
12608
12609         PR bootstrap/64561
12610         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
12611         test for PIE with copy reloc.
12612         * configure: Regenerated.
12613
12614 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12615
12616         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
12617         in gen_rtx_REG.
12618         (arm_tls_descseq_addr): Likewise.
12619         (arm_gen_movmemqi): Likewise.
12620         (arm_expand_epilogue_apcs_frame): Likewise.
12621         (arm_expand_epilogue): Likewise.
12622         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
12623         in gen_rtx_REG.
12624
12625 2015-01-12  Martin Liska  <mliska@suse.cz>
12626
12627         PR ipa/64550
12628         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
12629         volatility for correct operands.
12630
12631 2015-01-12  Martin Liska  <mliska@suse.cz>
12632
12633         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
12634         that a function is not leaf.
12635         (sem_function::compare_polymorphic_p): Likewise.
12636
12637 2015-01-12  Martin Liska  <mliska@suse.cz>
12638
12639         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
12640         that a function is not leaf.
12641         (sem_function::compare_polymorphic_p): Likewise.
12642
12643 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12644
12645         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
12646         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
12647         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
12648         fold-const.h, tree-check.h.
12649
12650 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
12651
12652         PR ipa/63967
12653         PR ipa/64425
12654         * ipa-inline.c (compute_uninlined_call_time,
12655         compute_inlined_call_time): Use counts for extra precision when
12656         needed possible.
12657         (big_speedup_p): Fix formating.
12658         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
12659         (relative_time_benefit): Remove.
12660         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
12661         merge guessed and read profile paths.
12662         (inline_small_functions): Count only !optimize_size functions into
12663         initial size; be more lax about sanity check when profile is used;
12664         be sure to update inlined function profile when profile is read.
12665
12666 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
12667
12668         PR ipa/63470
12669         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
12670         cost when edge becomes direct.
12671         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
12672         is resolved or when introducing new speculation.
12673
12674 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
12675
12676         PR ipa/64551
12677         PR ipa/64552
12678         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
12679         '||' to fix typo issue.
12680
12681         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
12682         accept and return NULL.
12683
12684 2015-01-12  Martin Liska  <mliska@suse.cz>
12685
12686         * cgraph.c (cgraph_edge::remove_callee): Move function to header
12687         file for being inlined.
12688         (cgraph_set_edge_callee): Delete.
12689         (cgraph_edge::redirect_callee): Move function to header file
12690         for being inlined.
12691         (cgraph_edge::make_direct): Use new function.
12692         (cgraph_edge::dump_edge_flags): New function created from
12693         static dump_edge_flags function.
12694         (cgraph_node::dump): Use new function.
12695         (cgraph_edge::verify_count_and_frequency): New function created
12696         from verify_edge_count_and_frequency.
12697         (cgraph_edge::verify_corresponds_to_fndecl): New function created
12698         from verify_edge_corresponds_to_fndecl.
12699         (verify_edge_corresponds_to_fndecl): Delete.
12700         (cgraph_node::verify_node): Use new function.
12701         * cgraph.h (cgraph_edge::set_callee): New function.
12702         (cgraph_edge::dump_edge_flags): Likewise.
12703         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
12704
12705 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
12706
12707         * ipa-utils.c (estimate_function_body_sizes): Do not
12708         free node params when called late with early=true.
12709
12710 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
12711
12712         * doc/md.texi (Instruction Patterns): Rewrite text for
12713         clarity.
12714         (Example): Likewise.
12715
12716 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
12717
12718         * doc/invoke.texi (Option Summary): Break long lines.
12719         [(-fdiagnostics-color)]: Put long literal in @smallexample
12720         instead of inline.
12721         [(-fsanitize-recover)]: Likewise.
12722         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
12723         [(-ffast-math)]: Likewise.
12724         [(--param max-inline-insns-recursive)]: Likewise.
12725         [(--param max-inline-recursive-depth)]: Likewise.
12726         [(-mno-text-section-literals)]: Likewise.
12727
12728 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
12729
12730         * doc/install.texi: Update for libgomp being renamed from "GNU
12731         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
12732         Runtime Library".
12733         * doc/sourcebuild.texi: Likewise.
12734
12735 2015-01-10  Anthony Green  <green@moxielogic.com>
12736
12737         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
12738         mul.x availability for moxiebox configuration.
12739
12740 2015-01-09  Anthony Green  <green@moxielogic.com>
12741
12742         * config/moxie/moxie.md: Tabify assembly output.
12743
12744 2015-01-09  Anthony Green  <green@moxielogic.com>
12745
12746         * config/moxie/moxie.md (CC_REG): Correct register definition.
12747
12748 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
12749
12750         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
12751         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
12752         of log files.
12753
12754 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
12755
12756         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
12757
12758 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
12759             Jakub Jelinek  <jakub@redhat.com>
12760
12761         PR middle-end/64412
12762         * lto-streamer.h (lto_stream_offload_p): New declaration.
12763         * lto-streamer.c (lto_stream_offload_p): New variable.
12764         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
12765         at the same time as section_name_prefix.
12766         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
12767         if lto_stream_offload_p.
12768         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
12769         stream TREE_TARGET_OPTION if lto_stream_offload_p.
12770         (write_ts_function_decl_tree_pointers): Don't
12771         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
12772         * tree-streamer-in.c (unpack_value_fields): Don't stream
12773         TREE_TARGET_OPTION in if ACCEL_COMPILER.
12774         (lto_input_ts_function_decl_tree_pointers): Don't stream
12775         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
12776         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
12777         instead of section_name_prefix string comparisons.
12778
12779 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
12780
12781         PR rtl-optimization/64536
12782         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
12783         tablejumps.
12784
12785 2015-01-09  Michael Collison  <michael.collison@linaro.org>
12786
12787         PR tree-optimization/64322
12788         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
12789         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
12790
12791 2015-01-09  Tom de Vries  <tom@codesourcery.com>
12792
12793         PR rtl-optimization/64539
12794         * regcprop.c (kill_clobbered_values): Factor out of ...
12795         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
12796         instead of note_stores with kill_clobbered_value.
12797
12798 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
12799
12800          * ginclude/unwind-arm-common.h: Revert previous commit.
12801
12802 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
12803
12804         * config.gcc (arm*-*-freebsd*): New configuration.
12805         * config/arm/freebsd.h: New file.
12806         * config.host: Add extra components for arm*-*-freebsd*.
12807         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
12808         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
12809
12810 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12811
12812         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
12813         for -mcpu=e6500.
12814         * config/rs6000/t-rtems: Add e6500 multilibs.
12815
12816 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12817
12818         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
12819         MPC8540.
12820
12821 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12822
12823         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
12824         MULTILIB_EXCEPTIONS.
12825
12826 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12827
12828         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
12829         MULTILIB_EXCEPTIONS.
12830
12831 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12832
12833         * config/arm/t-rtems-eabi: Rename to...
12834         * config/arm/t-rtems: ...this.
12835         * config/arm/rtems-eabi.h: Rename to...
12836         * config/arm/rtems.h: ...this.
12837         * config.gcc (arm*-*-rtems*): Reflect changes above.
12838
12839 2015-01-09  Richard Biener  <rguenther@suse.de>
12840
12841         PR tree-optimization/64410
12842         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
12843         on the LHS.
12844         (execute_update_addresses_taken): Deal with that.
12845         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
12846         loads/stores for complex variables.
12847
12848 2015-01-09  Martin Liska  <mliska@suse.cz>
12849
12850         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
12851         name comparison.
12852         (func_checker::compare_memory_operand): New function.
12853         (func_checker::compare_operand): Split case to newly
12854         added functions.
12855         (func_checker::compare_cst_or_decl): New function.
12856         (func_checker::compare_gimple_call): Identify
12857         memory operands.
12858         (func_checker::compare_gimple_assign): Likewise.
12859         * ipa-icf-gimple.h: New function.
12860
12861 2015-01-09  Martin Liska  <mliska@suse.cz>
12862
12863         PR ipa/64503
12864         * sreal.c (sreal::dump): Change unsigned format to signed for
12865         m_exp value.
12866         (sreal::to_double): Replace exp2 with scalbln.
12867
12868 2015-01-09  Martin Liska  <mliska@suse.cz>
12869
12870         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
12871         * ipa-icf.c (sem_function::equals_private): Add support for target and
12872         (sem_item_optimizer::merge_classes): Remove redundant function
12873         optimization flags comparison.
12874         * tree.h (target_opts_for_fn): New function.
12875
12876 2015-01-09  Tom de Vries  <tom@codesourcery.com>
12877
12878         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
12879
12880 2015-01-09  Kito Cheng  <kito@0xlab.org>
12881
12882         PR rtl-optimization/64348
12883         * lra-constraints.c (split_reg): Fix caller-save store/restore
12884         instruction generation.
12885
12886 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
12887
12888         PR gcov-profile/61790
12889         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
12890         long long.  Fallback to int64_t if host doesn't have long long and
12891         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
12892
12893 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
12894
12895         PR tree-optimization/63989
12896         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
12897         from 1000 to 10000.
12898         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
12899         (get_stridx): If we don't have a record for certain SSA_NAME,
12900         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
12901         constant offset, call get_stridx_plus_constant.
12902         (get_stridx_plus_constant): New function.
12903         (zero_length_string): Don't use get_stridx here.
12904
12905         PR target/55023
12906         PR middle-end/64388
12907         * dse.c (struct insn_info): Mention frame_read set also
12908         before reload for tail calls on some targets.
12909         (scan_insn): Revert 2014-12-22 change.  Set frame_read
12910         also before reload for tail calls if
12911         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
12912         instead of add_non_frame_wild_read for non-const/memset
12913         tail calls after reload.
12914
12915 2015-01-08  Jason Merrill  <jason@redhat.com>
12916
12917         * ubsan.c (do_ubsan_in_current_function): New.
12918         (pass_ubsan::gate): Use it.
12919         * ubsan.h: Declare it.
12920         * convert.c (convert_to_integer): Use it.
12921
12922 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
12923
12924         PR target/64338
12925         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
12926         compare_code when it is unconditionally overwritten afterwards.
12927         Use ix86_reverse_condition instead of reverse_condition.  Don't
12928         change code if *reverse_condition* returned UNKNOWN and don't
12929         swap ct/cf and negate diff in that case.
12930
12931 2015-01-08  Mike Stump  <mikestump@comcast.net>
12932
12933         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
12934         (pass_tsan_O0::gate): Likewise.
12935         * extend.texi (Function Attributes): Add no_sanitize_thread
12936         documentation.
12937
12938 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
12939
12940         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
12941         for registering builtins.
12942         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
12943         add -fopenmp to the argv_obstack used when invoking
12944         compile_for_target.
12945
12946         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
12947         add "-m32" or "-m64" to argv_obstack.
12948         (generate_host_descr_file): Likewise, when invoking host_compiler.
12949         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
12950         ld.
12951
12952 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
12953
12954         * config/sh/sh-mem.cc: Use constant as second operand when emitting
12955         tstsi_t insns.
12956
12957 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
12958
12959         PR target/55212
12960         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
12961         constant load if constant operand fits into I08.
12962
12963 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
12964
12965         PR sanitizer/64336
12966         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
12967         and TREE_THIS_VOLATILE for MEM_REFs.
12968         (build5_stat): Fix up initialization of TREE_READONLY and
12969         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
12970
12971 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
12972
12973         PR target/64533
12974         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
12975         of r for the second alternative of the destination operand.
12976
12977 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
12978
12979         PR target/36557
12980         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
12981
12982 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
12983
12984         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
12985         keywords.
12986         ([-fivar-visibility], [-fvisibility]): Likewise.
12987
12988 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
12989
12990         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
12991         the file where @code, @command, etc is more appropriate.
12992
12993 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
12994
12995         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
12996         of -mrecip= documentation.
12997
12998 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
12999
13000         PR target/64505
13001         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
13002         correct reload handler if -m32 -mpowerpc64 is used.
13003
13004 2015-01-06  Tom de Vries  <tom@codesourcery.com>
13005
13006         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
13007
13008 2015-01-08  Christian Bruel  <christian.bruel@st.com>
13009
13010         PR target/64507
13011         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
13012
13013 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13014
13015         PR tree-optimization/63259
13016         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
13017         if optab exists for 16bit byteswap.
13018
13019 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
13020
13021         * opts.c (common_handle_option): Add support for
13022         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
13023         * doc/invoke.texi: Document -fno-sanitize=all,
13024         -f{,no-}sanitize-recover=all.  Document that
13025         -fsanitize=float-cast-overflow is not enabled
13026         by -fsanitize=undefined.  Fix up documentation
13027         of -f{,no-}sanitize-recover.
13028
13029 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
13030
13031         * config.gcc: Add Visium support.
13032         * configure.ac: Likewise.
13033         * configure: Regenerate.
13034         * doc/extend.texi (interrupt attribute): Add Visium.
13035         * doc/invoke.texi: Document Visium options.
13036         * doc/install.texi: Document Visium target.
13037         * doc/md.texi: Document Visium constraints.
13038         * common/config/visium: New directory.
13039         * config/visium: Likewise.
13040
13041 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
13042
13043         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
13044         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
13045
13046 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
13047
13048         * combine.c (combine_validate_cost): Do not count the cost of a
13049         split I2 twice.  Do not display it twice in the dump, either.
13050
13051 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
13052
13053         Revert parts of r219199.
13054         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
13055         <inttypes.h>.
13056         ([-Wtraditional]): Restore markup on <limits.h>.
13057
13058 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
13059
13060         PR c++/31397
13061         * doc/invoke.texi: Document -Wsuggest-override.
13062
13063 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
13064
13065         PR rtl-optimization/64287
13066         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
13067         (process_options): Disable flag_ipa_ra if profiling.
13068
13069 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
13070
13071         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
13072
13073 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
13074
13075         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
13076         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
13077         put under #if TARGET_LOOPS guard.
13078
13079 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
13080
13081         * config/i386/i386.c (output_387_binary_op): Use std::swap.
13082
13083 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
13084
13085         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
13086         * rtl.h (refers_to_regno_p): Add overload.
13087         * cse.c: Use it.
13088         * bt-load.c: Likewise.
13089         * combine.c: Likewise.
13090         * df-scan.c: Likewise.
13091         * sched-deps.c: Likewise.
13092         * config/s390/s390.c: Likewise.
13093         * config/m32r/m32r.c: Likewise.
13094         * config/rs6000/spe.md: Likewise.
13095         * config/rs6000/rs6000.c: Likewise.
13096         * config/pa/pa.c: Likewise.
13097         * config/stormy16/stormy16.c: Likewise.
13098         * config/cris/cris.c: Likewise.
13099         * config/arc/arc.md: Likewise.
13100         * config/arc/arc.c: Likewise.
13101         * config/sh/sh.md: Likewise.
13102         * config/sh/sh.c: Likewise.
13103         * config/frv/frv.c: Likewise.
13104
13105 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
13106
13107         PR sanitizer/64265
13108         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
13109         call as cleanup of the whole body.
13110         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
13111         * tsan.c (replace_func_exit): New function.
13112         (instrument_func_exit): Moved earlier.
13113         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
13114         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
13115         been found.
13116         (tsan_pass): Don't call instrument_func_exit.
13117         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
13118         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
13119         inlining.
13120
13121         PR sanitizer/64344
13122         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
13123         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
13124         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
13125         if the result is integer_zerop, return NULL_TREE.
13126         * convert.c (convert_to_integer): Pass expr as ARG.
13127
13128         PR tree-optimization/64465
13129         * tree-inline.c (redirect_all_calls): During inlining
13130         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
13131         changed the stmt to a non-throwing call.
13132
13133 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
13134
13135         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
13136         etc markup throughout the file.
13137
13138 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13139
13140         Enable experimental TSAN support for Ada.
13141         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
13142
13143 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
13144
13145         PR tree-optimization/64494
13146         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
13147         clear SSA_NAME_ANTI_RANGE_P flag.
13148
13149 2015-01-05  Marek Polacek  <polacek@redhat.com>
13150
13151         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
13152
13153 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
13154
13155         Update copyright years.
13156
13157         * gcc.c (process_command): Update copyright notice dates.
13158         * gcov-dump.c: Ditto.
13159         * gcov.c: Ditto.
13160         * doc/cpp.texi: Bump @copying's copyright year.
13161         * doc/cppinternals.texi: Ditto.
13162         * doc/gcc.texi: Ditto.
13163         * doc/gccint.texi: Ditto.
13164         * doc/gcov.texi: Ditto.
13165         * doc/install.texi: Ditto.
13166         * doc/invoke.texi: Ditto.
13167
13168         * auto-profile.c, auto-profile.h: Fix up Copyright line.
13169
13170 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
13171
13172         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
13173         verb tense, etc.
13174         ([-fvtable-verify], [-fvtv-debug]): Likewise.
13175         ([-Wabi]): Likewise.
13176         ([-fmessage-length]): Likewise.
13177         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
13178         ([-Wno-discarded-qualifiers]): Likewise.
13179         ([-Wnodiscarded-array-qualifiers]): Likewise.
13180         ([-Wno-virtual-move-assign]): Likewise.
13181         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
13182         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
13183         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
13184         ([-fsanitize-undefined-trap-on-error]): Likewise.
13185         ([-floop-interchange]): Likewise.
13186         ([-ftree-coalesce-inlined-vars]): Likewise.
13187         ([-fvect-cost-model]): Likewise.
13188         ([-flto]): Likewise.
13189         ([--param]): Likewise.
13190         (Spec Files): Likewise.
13191         ([-mstrict-align]): Likewise.
13192         ([-mfix-cortex-a53-835769]): Likewise.
13193         ([-march], [-mtune]): Likewise.
13194         ([-mpic-register]): Likewise.
13195         ([-munaligned-access]): Likewise.
13196         ([-msp8]): Likewise.
13197         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
13198         (AVR Built-in Macros): Likewise.
13199         ([-mpreferred-stack-boundary]): Likewise.
13200         ([-mtune-crtl]): Likewise.
13201         ([-mashf]): Likewise.
13202         ([-mmcu=]): Likewise.
13203         ([-minrt]): Likewise.
13204         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
13205         ([-mupper-regs]): Likewise.
13206         ([-matomic-model]): Likewise.
13207         ([-mdiv]): Likewise.
13208         ([-mzdcbranch]): Likewise.
13209         ([-mdisable-callt]): Likewise.
13210         ([-msoft-float]): Likewise.
13211         ([-m8byte-align]): Likewise.
13212         ([-fstack-reuse]): Likewise.
13213
13214 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
13215
13216         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
13217         Fix markup, light copy-editing.
13218         ([-fauto-profile]): Rewrite to fix formatting and content
13219         problems.
13220
13221 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
13222
13223         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
13224         Copy-edit description.
13225         ([-fisolate-erroneous-paths-attribute]): Likewise.
13226         * common.opt (fisolate-erroneous-paths-dereference):
13227         Copy-edit description.
13228         (fisolate-erroneous-paths-attribute): Likewise.
13229
13230 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
13231
13232         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
13233         tidy grammar.
13234
13235 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
13236
13237         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
13238         ([-fvtv-debug]): Likewise.
13239         ([-Wc++-compat]): Likewise.
13240         ([-Wc++11-compat]): Likewise.
13241         ([-Wc++14-compat]): Likewise.
13242         ([-Wno-sized-deallocation]): Likewise.
13243         ([-femit-class-debug-always]): Likewise.
13244         ([-femit-struct-debug-detailed]): Likewise.
13245         ([-fno-keep-inline-dllexport]): Likewise.
13246         ([-fira-algorithm]): Likewise.
13247         ([-fira-region]): Likewise.
13248         ([-flra-remat]): Likewise.
13249         ([-fipa-ra]): Likewise.
13250         ([-fhoist-adjacent-loads]): Likewise.
13251         ([-fisolate-erroneous-paths-dereference]): Likewise.
13252         ([-fisolate-erroneous-paths-attribute]): Likewise.
13253         ([-ftree-switch-conversion]): Likewise.
13254         ([-ftree-tail-merge]): Likewise.
13255         ([-ftree-loop-if-convert]): Likewise.
13256         ([-ftree-loop-if-convert-stores]): Likewise.
13257         ([-ftree-loop-distribution]): Likewise.
13258         ([-ftree-loop-distribute-patterns]): Likewise.
13259         ([-flto-compression-level]): Likewise.
13260         ([-flto-report]): Likewise.
13261         ([-flto-report-wpa]): Likewise.
13262         ([-fuse-linker-plugin]): Likewise.
13263         ([-mfix-cortex-a53-835769]): Likewise.
13264         ([-mno-fix-cortex-a53-835769]): Likewise.
13265         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
13266         explicit listing; add a note to the discussion indicating they
13267         exist.  Reorder table to group similar options.  Add missing
13268         @opindex entries.  Add @need commands throughout the table to
13269         allow it to be split across multiple pages.
13270         ([-m8bit-idiv]): Fix @opindex.
13271         ([-mavx256-split-unaligned-load]): Likewise.
13272         ([-mavx256-split-unaligned-store]): Likewise.
13273         ([-mstack-protector-guard]): Likewise.
13274         ([-mcpu=]): Likewise.
13275         ([-mcpu]): Likewise.
13276         ([-mpointer-size=]): Likewise.
13277
13278 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
13279
13280         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
13281         instead of `m' constraint.  Likewise for unnamed movb comparison
13282         patterns using reg_before_reload_operand predicate.
13283         * config/pa/predicates.md (reg_before_reload_operand): Tighten
13284         predicate to reject register index and LO_SUM DLT memory forms
13285         after reload.
13286
13287 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
13288
13289         * doc/invoke.texi (Option Summary): Fix spelling of
13290         -fdevirtualize-at-ltrans.
13291         ([-fdevirtualize]): Fix markup.
13292         ([-fdevirtualize-speculatively]): Fix typo.
13293         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
13294         implementor-speaky.
13295         * common.opt (fdevirtualize-at-ltrans): Likewise.
13296         * ipa-devirt.c: Fix typos in comments throughout the file.
13297         (ipa_devirt): Fix typos in format strings for dump output.
13298
13299 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
13300
13301         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
13302         discussion of defaults, light copy-editing.
13303
13304 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13305
13306         * tsan.c (instrument_expr): corrected previous checkin.
13307
13308 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13309
13310         Instrument bit field and unaligned accesses for TSAN.
13311         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
13312         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
13313         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
13314         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
13315         unaligned memory regions.
13316
13317 2015-01-01  Anthony Green  <green@moxielogic.com>
13318
13319         * config/moxie/predicates.md (moxie_general_movsrc_operand):
13320         Restrict move source register offsets to 16 bits.
13321 \f
13322 Copyright (C) 2015 Free Software Foundation, Inc.
13323
13324 Copying and distribution of this file, with or without modification,
13325 are permitted in any medium without royalty provided the copyright
13326 notice and this notice are preserved.