Fix fallout from: [ARM] PR target/70830: Avoid POP-{reglist}^ when returning from...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2
3         PR target/70830
4         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
5
6 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
7
8         * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
9
10 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
11
12         * config/rl78/rl78.c (rl78_expand_prologue): Convert local
13         from int to unsigned.
14
15 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
16
17         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
18         alternatives, eliminating preferred register class.  Add support
19         for the MTVSRDD instruction in ISA 3.0.
20         (vsx_splat_v4si_internal): Use splat_input_operand instead of
21         reg_or_indexed_operand.
22         (vsx_splat_v4sf_internal): Likewise.
23
24 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
25
26         PR target/71186
27         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
28         for loading up all 0's or all 1's.
29
30 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31
32         * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
33
34 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
35
36         * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
37         extension.
38         * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
39         * gcc.c (set_source_date_epoch_envvar): New function, sets
40         the SOURCE_DATE_EPOCH environment variable to the current time.
41
42 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
43
44         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
45         the factor for live Phi nodes.
46
47 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
48
49         * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
50         * tree-parloops.c (parallelize_loops): likewise.
51         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
52         tree_unswitch_outer_loop): likewise.
53
54 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
55
56         PR middle-end/71371
57         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
58         around creation of the temporary.
59
60 2016-06-01  Richard Biener  <rguenther@suse.de>
61
62         PR tree-optimization/71366
63         * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
64         (unloop_loops): Move removing edges here ...
65         (try_unroll_loop_completely): ... from here.
66         (try_peel_loop): ... and here.
67         (tree_unroll_loops_completely_1): Track parent loops via
68         bitmap of header BBs.
69         (tree_unroll_loops_completely): Adjust for that.
70
71 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
72
73         * config/rs6000/altivec.h (vec_slv): New macro.
74         (vec_srv): New macro.
75         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
76         (UNSPEC_VSRV): New value.
77         (vslv): New insn.
78         (vsrv): New insn.
79         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
80         (vsrv): New builtin definition.
81         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
82         define argument types for new builtin.
83         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
84         new builtin.
85         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
86         functions. 
87
88 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
89             Jocelyn Mayer  <l_indien@magic.fr>
90
91         PR target/67310
92         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
93         detect processor family for signature_CENTAUR_ebx.
94         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
95         signature_CENTAUR_ebx.
96         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
97         <default>: Pass x86-64 for has_longmode.
98
99 2016-06-01  Nathan Sidwell  <nathan@acm.org>
100
101         * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
102         undefined weak.
103
104 2016-06-01  Richard Biener  <rguenther@suse.de>
105
106         PR tree-optimization/71261
107         * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
108         of stmts successfully put in the bool pattern.  Remove
109         single-use restriction.
110         (adjust_bool_pattern_cast): Add cast at the use site via the
111         pattern def sequence.
112         (adjust_bool_pattern): Remove recursion, maintain a hash-map
113         of patterned defs.  Use the pattern def seqence instead of
114         multiple independent patterns.
115         (sort_after_uid): New qsort compare function.
116         (adjust_bool_stmts): New function to process stmts in the bool
117         pattern in IL order.
118         (vect_recog_bool_pattern): Adjust.
119         * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
120         (ifcvt_walk_pattern_tree): Likewise.
121         (stmt_is_root_of_bool_pattern): Likewise.
122         (ifcvt_repair_bool_pattern): Likewise.
123         (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
124
125 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
126
127         * loop-unroll.c (decide_unroll_constant_iterations,
128         decide_unroll_runtime_iterations, decide_unroll_stupid): Use
129         likely upper bounds.
130         * loop-iv.c (find_simple_exit): Dump likely upper bounds.
131
132 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
133
134         * tree-core.h (enum omp_clause_code): Remove
135         OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
136
137 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
138
139         * config/arm/sync.md (arm_store_exclusive<mode>):
140         Use 'H' output modifier on operands[2] rather than creating a new
141         entry in out-of-bounds memory of the operands array.
142         (arm_store_release_exclusivedi): Likewise.
143
144 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
145
146         * config/arm/arm.c (arm_fusion_enabled_p): New function.
147         * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
148         * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
149         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
150
151 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
152
153         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
154         into account live statements for mask producers.
155
156 2016-06-01  Richard Biener  <rguenther@suse.de>
157
158         PR tree-optimization/71311
159         * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
160         restrict to non-INTEGER_CST @0.
161
162 2016-06-01  Richard Biener  <rguenther@suse.de>
163
164         * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
165         (relational patterns): Use :c to avoid pattern duplications.
166
167 2016-06-01  Richard Biener  <rguenther@suse.de>
168
169         * genmatch.c (comparison_code_p): New predicate.
170         (swap_tree_comparison): New function.
171         (commutate): Add for_vec parameter to append new for entries.
172         Support commutating relational operators by swapping it alongside
173         operands.
174         (lower_commutative): Adjust.
175         (dt_simplify::gen): Do not pass artificial operators to gen
176         functions.
177         (decision_tree::gen): Do not add artificial operators as parameters.
178         (parser::parse_expr): Verify operator commutativity when :c is
179         applied.  Allow :C to override this.
180         * match.pd: Adjust patterns to use :C instead of :c where required.
181
182 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
183
184         PR tree-optimization/71077
185         * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
186         the combining step, use boolean_false_node and boolean_true_node
187         as the designated false/true return values.
188
189 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
190
191         * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
192         * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
193         (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
194         PRED_LOOP_EXIT.
195
196 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
197
198         * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
199         of flags impliying the register renaming.
200         * toplev.c (process_options): Do not imply flag_rename_registers with
201         loop peeling.
202
203 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
204
205         * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
206         default implementation.
207
208 2016-05-31  Nathan Sidwell  <nathan@acm.org>
209
210         * dwarf2out.c (cur_line_info_table): Add GTY marker.
211
212 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
213
214         * config/sh/constraints.md (b): Remove constraint.
215         * config/sh/predicates.md (arith_reg_operand): Remove
216         TARGET_REGISTER_P.
217         * config/sh/sh-modes.def (PDI): Remove.
218         * config/sh/sh.c (sh_target_reg_class,
219         sh_optimize_target_register_callee_saved): Remove functions.
220         (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
221         (sh_expand_epilogue): Update comment.
222         (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
223         sh_secondary_reload): Remove TARGET_REGS related code.
224         * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
225         TARGET_REGISTER_P): Remove macros.
226         (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
227         * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
228         TR1_REG, TR2_REG): Remove constants.
229         * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
230
231 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
232
233         * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
234         define_expand patterns.
235         (adddi3_compact): Rename to adddi3.
236         (subdi3_compact): Rename to subdi3.
237         (*negdi2): Rename to negdi2.
238         (*abs<mode>2): Rename to abs<mode>2.
239
240 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
241
242         * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
243         (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
244         (atomic_sub_fetchsi): ... this new pattern.
245         (mvtc): Add CC_REG clobber.
246
247 2016-05-31  Marek Polacek  <polacek@redhat.com>
248
249         * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
250
251 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
252
253         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
254         aarch64_fusion_enabled_p to check for fusion capabilities.
255
256 2016-05-31  Richard Biener  <rguenther@suse.de>
257
258         PR tree-optimization/71352
259         * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
260         minus one and a negate.
261
262 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
263
264         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
265         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
266         Delete prototype.
267         * config/aarch64/iterators.md (insn_count): Add descriptive comment.
268         * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
269         Remove use of aarch64_simd_attr_length_move, set length attribute
270         directly.
271         (*aarch64_be_movoi): Likewise.
272         (*aarch64_be_movci): Likewise.
273         (*aarch64_be_movxi): Likewise.
274
275 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
276
277         * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
278         It no longer does that.
279         * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
280
281 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
282
283         * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
284         attribute __unused__.
285
286 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
287
288         * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
289         * config/arm/arm.c (arm_arch_thumb1): Define.
290         (arm_option_override): Initialize arm_arch_thumb1.
291         * config/arm/arm.h (arm_arch_thumb1): Declare.
292         (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
293         support Thumb-1 ISA.
294
295 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
296
297         PR target/71346
298         * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
299         `Yv' for scalar operand.
300
301 2016-05-31  Tom de Vries  <tom@codesourcery.com>
302
303         PR tree-optimization/69068
304         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
305         phis with more than two args.
306
307 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
308
309         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
310         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
311         target.
312
313 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
314
315         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
316         tune_64.
317         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
318         support on SPARC.
319         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
320         cpu_32, cpu_64, tune_32 and tune_64.
321         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
322
323 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
324
325         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
326
327 2016-05-30  Andi Kleen  <ak@linux.intel.com>
328
329         * auto-profile.c (read_profile): Replace asserts with errors
330         when file does not exist.
331         * gcov-io.c (gcov_read_words): Dito.
332
333 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
334
335         * tree-cfg.c (print_loop): Print likely upper bounds.
336
337 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
338
339         * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
340         * opts.c (default_options): Enable peel loops at -O3.
341         * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
342         (try_peel_loop): Do not re-peel already peeled loops;
343         use likely upper bounds; fix profile updating.
344         (pass_complete_unroll::execute): Initialize peeled_loops.
345
346 2016-05-30  Martin Liska  <mliska@suse.cz>
347
348         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
349         computed costs by frequency of BB they belong to.
350         (get_scaled_computation_cost_at): New function.
351
352 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
353             Marc Glisse  <marc.glisse@inria.fr>
354
355         PR tree-optimization/71289
356         * match.pd (-1 / B < A, A > -1 / B): New transformations.
357
358 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
359
360         * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
361
362 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
363
364         * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
365         for peeled copies; avoid underflow when updating estimates; correctly
366         scale loop profile.
367
368 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
369
370         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
371         r236875. Corrected oe3 to oe2 as obvious.
372
373 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
374
375         PR middle-end/71269
376         PR middle-end/71252
377         * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
378         that inserted stmt will not dominate stmts that defines its operand.
379         (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
380         (rewrite_expr_tree_parallel): Likewise.
381
382 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
383
384         PR middle-end/71252
385         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
386         all fields including stmt_to_insert are swapped.
387
388 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
389
390         * predict.h (force_edge_cold): Declare.
391         * predict.c (force_edge_cold): New function.
392         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
393         updating.
394         (canonicalize_loop_induction_variables): Fix formating.
395
396 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
397
398         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
399         (visium_expand_copysign): Use gen_int_mode directly.
400         (visium_compute_frame_size): Minor tweaks.
401
402 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
403
404         * tree-vect-loop.c (vect_analyze_loop_2): Use
405         likely_max_stmt_executions_int.
406
407 2016-05-30  Tom de Vries  <tom@codesourcery.com>
408
409         PR tree-optimization/69067
410         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
411
412 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
413
414         PR target/71245
415         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
416         New peepholes to remove unneeded fild/fistp pairs.
417         (define_peephole2 atomic_loaddi_fpu): Ditto.
418
419 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
420
421         * predict.c (maybe_hot_frequency_p): Avoid division.
422
423 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
424
425         * doc/install.texi: Use https for shop.fsf.org.
426
427 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
428
429         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
430         likely_max_stmt_executions_int.
431
432 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
433
434         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
435         likely_max_stmt_executions_int.
436
437 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
438
439         * profile.c (compute_branch_probabilities): Do not report hitrates
440         here.
441         (branch_prob): Report hitrates here.
442         * predict.c (gimple_predict_edge): Do not assert profile status;
443         fix formatting issues.
444
445 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
446
447         * predict.c (edge_predicted_by_p): New function.
448         (predict_paths_for_bb): Do not put multiple predictions of the same type
449         on one edge.
450
451 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
452
453         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
454         commit.
455
456 2016-05-28  Alan Modra  <amodra@gmail.com>
457
458         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
459
460 2016-05-28  Alan Modra  <amodra@gmail.com>
461
462         PR rtl-optimization/71275
463         * ira.c (ira): Free dominance info.
464
465 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
466
467         * doc/sourcebuild.texi: New address for upstream Go repository.
468
469 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
470
471         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
472         (TARGET_ARM_V7M): Likewise.
473
474 2016-05-26  Jeff Law  <law@redhat.com>
475
476         * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
477         (thread_across_edge): Remove calls to find_jump_threads_backwards.
478         * passes.def: Add jump threading passes before DOM/VRP.
479         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
480         argument to a basic block from an edge.  Remove tests which are
481         handled elsewhere.
482         (pass_data_thread_jumps, class pass_thread_jumps): New.
483         (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
484         (make_pass_thread_jumps): Likewise.
485         * tree-pass.h (make_pass_thread_jumps): Declare.
486
487 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
488
489         * config/visium/visium-protos.h (split_double_move): Rename into...
490         (visium_split_double_move): ...this.
491         (visium_split_double_add): Declare.
492         * config/visium/visium.c (split_double_move): Rename into...
493         (visium_split_double_move): ...this.
494         (visium_split_double_add): New function.
495         (visium_expand_copysign): Renumber operands for consistency.
496         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
497         (DFmode move splitter): Likewise.
498         (*addi3_insn): Split by means of visium_split_double_add.
499         (*adddi3_insn_flags): Delete.
500         (*plus_plus_sltu<subst_arith>): New insn.
501         (*subdi3_insn): Split by means of visium_split_double_add.
502         (subdi3_insn_flags): Delete.
503         (*minus_minus_sltu<subst_arith>): New insn.
504         (*negdi2_insn): Split by means of visium_split_double_add.
505         (*negdi2_insn_flags): Delete.
506
507 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
508
509         * configure.ac: Treat a --with-headers option without argument
510         the same as the default (i.e. consult sys-include directory).
511         * configure: Regenerate.
512
513 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
514
515         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
516         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
517         prototype.
518         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
519         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
520
521 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
522
523         PR target/63596
524         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
525         tree-stdarg analysis results.
526         (aarch64_setup_incoming_varargs): Likewise.
527
528 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
529
530         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
531         va_list_gpr_counter_field and va_list_fpr_counter_field.
532
533 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
534
535         PR67609
536         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
537         * config/aarch64/aarch64.c
538         (aarch64_cannot_change_mode_class): Remove function.
539         * config/aarch64/aarch64-protos.h
540         (aarch64_cannot_change_mode_class): Remove.
541
542 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
543
544         * cfgloop.c (record_niter_bound): Record likely upper bounds.
545         (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
546         get_likely_max_loop_iterations_int): New.
547         * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
548         any_likely_upper_bound.
549         (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
550         Declare.
551         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
552         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
553         upper bound.
554         (unroll_loop_constant_iterations): Likewise.
555         (unroll_loop_runtime_iterations): Likewise.
556         * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
557         * lto-streamer-out.c (output_cfg): Likewise.
558         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
559         bounds.
560         (canonicalize_loop_induction_variables): Dump likely upper bounds.
561         * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
562         (likely_max_loop_iterations): New.
563         (likely_max_loop_iterations_int): New.
564         (likely_max_stmt_executions): New.
565         * tree-ssa-loop-niter.h (likely_max_loop_iterations,
566         likely_max_loop_iterations_int, likely_max_stmt_executions_int,
567         likely_max_stmt_executions): Declare.
568
569 2016-05-27  Marek Polacek  <polacek@redhat.com>
570
571         PR middle-end/71308
572         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
573
574 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
575
576         * config/s390/s390.md (2x risbg splitters): Use
577         reg_overlap_mentioned_p instead of rtx_equal_p.
578
579 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
580
581         * combine.c (make_compound_operation): Take known zero bits into
582         account when checking for possible zero_extend.
583
584 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
585
586         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
587         Use const_int_operand for operand 2 predicate.  Simplify expand code
588         as a result.
589
590 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
591
592         PR middle-end/71279
593         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
594         into comparison.
595
596 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
597
598         * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
599         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
600         that returns CC_SESWPmode and CC_ZESWPmode.
601         (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
602         and CC_SESWPmode.
603         (aarch64_rtx_costs): Likewise.
604
605 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
606
607         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
608         for ISA 3.0 min/max support.
609         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
610         conditional move support.
611         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
612         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
613         available.
614         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
615         conditional moves where the comparison type is different from move
616         type.
617         (fp_minmax): New code iterator for smin/smax.
618         (minmax): New code attributes for min/max.
619         (SMINMAX): Likewise.
620         (smax<mode>3): Combine min, max insns into one insn using the
621         fp_minmax code iterator.  Add support for ISA 3.0 min/max
622         instructions that don't need -ffast-math.
623         (s<minmax><mode>3): Likewise.
624         (smax<mode>3_vsx): Likewise.
625         (smin<mode>3): Likewise.
626         (s<minmax><mode>3_vsx): Likewise.
627         (smin<mode>3_vsx): Likewise.
628         (pre-VSX min/max splitters): Likewise.
629         (s<minmax><mode>3_fpr): Likewise.
630         (movsfcc): Rewrite floating point conditional moves to combine
631         SFmode/DFmode into a single insn.
632         (mov<mode>cc): Likewise.
633         (movdfcc): Likewise.
634         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
635         SFDF2 iterators to handle all combinations.
636         (fseldfsf4): Likewise.
637         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
638         (fseldfdf4): Likewise.
639         (fselsfdf4): Likewise.
640         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
641         comparison instructions that set a 0/-1 mask, and use it for
642         floating point conditional move via XXSEL.
643         (fpmask<mode>): Likewise.
644         (xxsel<mode>): Likewise.
645         * config/rs6000/predicates.md (min_max_operator): Delete, no
646         longer used.
647         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
648         instructions that generate a 0/-1 mask for use with XXSEL.
649         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
650         say whether floating point min/max is available, either through
651         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
652         (TARGET_MINMAX_DF): Likewise.
653
654 2016-05-27  Alan Modra  <amodra@gmail.com>
655
656         PR rtl-optimization/71275
657         * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
658         for update_equiv_regs and combine_and_move_insns.
659
660 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
661
662         * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
663         if_then_else or cond RTXes to calculate attribute value.
664         * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
665         <attr "length_immediate>: Ditto.
666         (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
667         * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
668         (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
669         <attr "type">: Ditto.
670         <attr "prefix_data16">: Ditto.
671         <attr "prefix_extra">: Ditto.
672         <attr "length_immediate">: Ditto.
673         <attr "prefix">: Ditto.
674         (vec_set<mode>_0) <attr "isa">: Ditto.
675         <attr "prefix_extra">: Ditto.
676         <attr "length_immediate">: Ditto.
677         <attr "prefix">: Ditto.
678         (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
679         (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
680         (sse2_storelpd) <attr "prefix_data16">: Ditto.
681         (sse2_loadhpd) <attr "prefix_data16">: Ditto.
682         (sse2_loadlpd) <attr "prefix_data16">: Ditto.
683         <attr "length_immediate">: Ditto.
684         <attr "prefix">: Ditto.
685         (sse2_movsd) <attr "length_immediate">: Ditto.
686         <attr "prefix">: Ditto.
687         (vec_concatv2df)  <attr "isa">: Ditto.
688         <attr "prefix">: Ditto.
689         (*vec_extractv4si) <attr "prefix_extra">: Ditto.
690         (*vec_extractv2di_1) <attr "isa">: Ditto.
691         <attr "type">: Ditto.
692         <attr "length_immediate">: Ditto.
693         <attr "prefix_rex">: Ditto.
694         <attr "prefix_extra">: Ditto.
695         (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
696         <attr "prefix_extra">: Ditto.
697         <attr "length_immediate">: Ditto.
698         (vec_concatv2di) <attr "isa">: Ditto.
699         <attr "prefix_extra">: Ditto.
700         <attr "length_immediate">: Ditto.
701         <attr "prefix">: Ditto.
702
703 2016-05-26  Martin Liska  <mliska@suse.cz>
704
705         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
706         function.
707         (operator+): Likewise.
708         (operator-): Likewise.
709         (comp_cost::operator+=): Likewise.
710         (comp_cost::operator-=): Likewise.
711         (comp_cost::operator/=): Likewise.
712         (comp_cost::operator*=): Likewise.
713         (operator<): Likewise.
714         (operator==): Likewise.
715         (operator<=): Likewise.
716         (new_cost): Remove.
717         (infinite_cost_p): Likewise.
718         (add_costs): Likewise.
719         (sub_costs): Likewise.
720         (compare_costs): Likewise.
721         (set_group_iv_cost): Use the newly introduced functions.
722         (get_address_cost): Likewise.
723         (get_shiftadd_cost): Likewise.
724         (force_expr_to_var_cost): Likewise.
725         (split_address_cost): Likewise.
726         (ptr_difference_cost): Likewise.
727         (difference_cost): Likewise.
728         (get_computation_cost_at): Likewise.
729         (determine_group_iv_cost_generic): Likewise.
730         (determine_group_iv_cost_address): Likewise.
731         (determine_group_iv_cost_cond): Likewise.
732         (autoinc_possible_for_pair): Likewise.
733         (determine_group_iv_costs): Likewise.
734         (cheaper_cost_pair): Likewise.
735         (iv_ca_recount_cost): Likewise.
736         (iv_ca_set_no_cp): Likewise.
737         (iv_ca_set_cp): Likewise.
738         (iv_ca_cost): Likewise.
739         (iv_ca_new): Likewise.
740         (iv_ca_dump): Likewise.
741         (iv_ca_narrow): Likewise.
742         (iv_ca_prune): Likewise.
743         (iv_ca_replace): Likewise.
744         (try_add_cand_for): Likewise.
745         (try_improve_iv_set): Likewise.
746         (find_optimal_iv_set): Likewise.
747
748 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
749
750         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
751         that internal functions will clobber all caller-saved registers.
752
753 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
754
755         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
756         Return a better case_values_threshold when optimizing.
757
758 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
759
760         * config/aarch64/aarch64-simd.md (aarch64_combinez):
761         Add ? to integer variant.
762         (aarch64_combinez_be): Likewise.
763
764 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
765
766         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
767         instead of x constraint.
768         (vcvtps2ph256<mask_name>): Likewise.
769
770         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
771         alternative.  Formatting fix.
772
773         * config/i386/sse.md
774         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
775         to ...
776         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
777         (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
778         maybe_evex prefix instead of vex.
779         (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
780         EXT_REX_SSE_REG_P (op0) case in the splitter.
781
782 2016-05-25  Jeff Law  <law@redhat.com>
783
784         PR tree-optimization/71272
785         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
786         Update comments.  Add test for empty path.
787
788 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
789
790         * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
791         * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
792         special case builtin.
793         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
794         code for ALTIVEC_BUILTIN_VEC_CMPNE.
795         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
796         for __builtin_vec_cmpne.
797
798 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
799
800         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
801         redundant test and bail out if the type of the new operand is not
802         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
803
804 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
805
806         * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
807         (x_ix86_target_flags_explicit): Remove.
808         * config/i386/i386.c (ix86_function_specific_save): Do not copy
809         x_ix86_target_flags_explicit.
810         (ix86_function_specific_restore): Ditto.
811
812 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
813             H.J. Lu  <hongjiu.lu@intel.com>
814
815         PR target/70738
816         * common/config/i386/i386-common.c
817         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
818         (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
819         MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
820         * config/i386/i386.opt (ix86_target_flags): Add new Variable.
821         (-mgeneral-regs-only): Add new option.
822         * config/i386/i386.c (ix86_option_override_internal): Don't enable
823         x87 instructions if only general registers are allowed.
824         (ix86_target_string): Add ix86_flags argument. Handle additional
825         flags options through ix86_flags argument.  Update all callers.
826         * doc/invoke.texi: Document -mgeneral-regs-only.
827
828 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
829
830         PR rtl-optimization/66940
831         * ifcvt.c (noce_get_alt_condition): Check that incrementing or
832         decrementing desired_val will not overflow before performing these
833         operations.
834
835 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
836
837         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
838         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
839         * config/i386/i386.c (enum ix86_builtins): Add
840         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
841         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
842         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
843         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
844         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
845         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
846         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
847         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
848         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
849         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
850         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
851         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
852         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
853         __builtin_ia32_cvtps2dq512_mask.
854         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
855         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
856         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
857         * config/i386/sse.md
858         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
859         Rename to ...
860         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
861         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
862         to ...
863         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
864         (avx512f_vec_pack_sfix_v8df): New define_expand.
865         (avx512f_roundpd512): Rename to ...
866         (avx512f_round<castmode>512): ... this.  Change iterator.
867         (avx512f_roundps512_sfix): New define_expand.
868         (round<mode>2_sfix): Change iterator.
869
870 2016-05-25  Nick Clifton  <nickc@redhat.com>
871
872         * config/msp430/msp430.c (msp430_attr): Produce an error if a
873         static interrupt handler is detected.
874         * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
875         default linker script.
876         * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
877         the low part of a symbolic pointer.
878
879 2016-05-25  Richard Biener  <rguenther@suse.de>
880
881         PR tree-optimization/71261
882         * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
883         interesting stmt instead of immediate uses when looking
884         for the use operand to replace.
885
886 2016-05-25  Martin Liska  <mliska@suse.cz>
887
888         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
889
890 2016-05-25  Richard Biener  <rguenther@suse.de>
891
892         PR tree-optimization/71264
893         * tree-vect-stmts.c (vect_init_vector): Properly deal with
894         vector type val.
895
896 2016-05-25  Martin Liska  <mliska@suse.cz>
897
898         PR tree-optimization/71239
899         * tree.c (array_at_struct_end_p): Do not call operand_equal_p
900         if DECL_SIZE is NULL.
901
902 2016-05-25  Richard Biener  <rguenther@suse.de>
903
904         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
905         * tree-if-conv.c (pass_data_if_conversion): Use it.
906
907 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
908
909         * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
910         * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
911         * varpool.c (varpool_node::get_availability): Likewise.
912
913 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
914
915         * config/rs6000/altivec.md (VNEG iterator): New iterator for
916         VNEGW/VNEGD instructions.
917         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
918         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
919         support for ISA 3.0 VNEGW/VNEGD instructions.
920
921 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
922
923         * gimplify.c (omp_notice_variable): Use zero-length arrays for data
924         pointers inside OACC_DATA regions.
925         (gimplify_scan_omp_clauses): Prune firstprivate clause associated
926         with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
927         (gimplify_adjust_omp_clauses): Fix typo in comment.
928
929 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
930
931         * config/rs6000/altivec.md (VParity): New mode iterator for vector
932         parity built-in functions.
933         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
934         zeros.
935         (p9v_parity<mode>2): Likewise.
936         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
937         parity.
938         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
939         (parity<mode>2): ISA 3.0 expander for vector parity.
940         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
941         power9 built-ins.
942         (BU_P9_64BIT_MISC_0): Likewise.
943         (BU_P9_MISC_0): Likewise.
944         (BU_P9V_AV_1): Likewise.
945         (BU_P9V_AV_2): Likewise.
946         (BU_P9V_AV_3): Likewise.
947         (BU_P9V_AV_P): Likewise.
948         (BU_P9V_VSX_1): Likewise.
949         (BU_P9V_OVERLOAD_1): Likewise.
950         (BU_P9V_OVERLOAD_2): Likewise.
951         (BU_P9V_OVERLOAD_3): Likewise.
952         (VCTZB): Add vector count trailing zeros support.
953         (VCTZH): Likewise.
954         (VCTZW): Likewise.
955         (VCTZD): Likewise.
956         (VPRTYBD): Add vector parity support.
957         (VPRTYBQ): Likewise.
958         (VPRTYBW): Likewise.
959         (VCTZ): Add overloaded vector count trailing zeros support.
960         (VPRTYB): Add overloaded vector parity support.
961         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
962         overloaded vector count trailing zeros and parity instructions.
963         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
964         vector parity support.
965         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
966         trailing zeros support.
967         (vec_cntlz): Likewise.
968         (vec_vctzb): Likewise.
969         (vec_vctzd): Likewise.
970         (vec_vctzh): Likewise.
971         (vec_vctzw): Likewise.
972         (vec_vprtyb): Add ISA 3.0 vector parity support.
973         (vec_vprtybd): Likewise.
974         (vec_vprtybw): Likewise.
975         (vec_vprtybq): Likewise.
976         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
977         the ISA 3.0 vector count trailing zeros and vector parity built-in
978         functions.
979
980 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
981
982         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
983         when there is stmt_to_insert.
984
985 2016-05-24  Martin Sebor  <msebor@redhat.com>
986
987         PR c++/71147
988         * tree.h (complete_or_array_type_p): New inline function.
989
990 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
991
992         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
993         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
994         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
995
996         * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
997         Limit 1st alternative to noavx isa, split 2nd alternative into one
998         noavx and one avx alternative, use *x and Bm in the former and
999         x and m in the latter.
1000
1001         * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
1002         of sse4 for the first alternative, drop %v from the template
1003         and d operand modifier.  Split second alternative into one sse4_noavx
1004         and one avx alternative, use *x instead of *v in the former and v
1005         instead of *v in the latter.
1006         (*sse4_1_extractps): Use noavx isa instead of * for the first
1007         alternative, drop %v from the template.  Split second alternative into
1008         one noavx and one avx alternative, use *x instead of *v in the
1009         former and v instead of *v in the latter.
1010         (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
1011         with noavx and the last one with avx.
1012         (sse4_1_phminposuw): Guard first alternative with noavx isa,
1013         split the second one into one noavx and one avx alternative,
1014         use *x and Bm in the former and x and m in the latter one.
1015         (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
1016         alternatives.
1017
1018         * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
1019         first two alternatives to noavx, use *x instead of *v in the second
1020         one, add avx alternative without *.
1021         (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
1022         sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
1023         sse4_1_<code>v2siv2di2<mask_name>): Likewise.
1024
1025 2016-05-24  Jeff Law  <law@redhat.com>
1026
1027         * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
1028         New function, extracted from...
1029         (fsm_find_control_statement_thread_paths): Here.  Use the new function.
1030         Allow simple copies and constant initializations in the SSA chain.
1031
1032 2016-05-24  Marek Polacek  <polacek@redhat.com>
1033
1034         PR c/71249
1035         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
1036         scope.
1037
1038 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
1039
1040         PR c++/71257
1041         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
1042         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
1043         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
1044         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
1045         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
1046
1047 2016-05-24  Richard Biener  <rguenther@suse.de>
1048
1049         PR tree-optimization/71240
1050         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
1051         has integral type.
1052
1053 2016-05-24  Richard Biener  <rguenther@suse.de>
1054
1055         PR tree-optimization/71230
1056         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
1057
1058 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
1059
1060         * tree-vectorizer.h (vectorizable_comparison): Delete.
1061         * tree-vect-loop.c (vectorizable_reduction): Remove redundant
1062         PURE_SLP_STMT check.
1063         * tree-vect-stmts.c (vectorizable_call): Likewise.
1064         (vectorizable_simd_clone_call): Likewise.
1065         (vectorizable_conversion): Likewise.
1066         (vectorizable_assignment): Likewise.
1067         (vectorizable_shift): Likewise.
1068         (vectorizable_operation): Likewise.
1069         (vectorizable_load): Likewise.
1070         (vectorizable_condition): Likewise.
1071         (vectorizable_store): Likewise.  Assert that we don't have
1072         hybrid SLP.
1073         (vectorizable_comparison): Make static.  Remove redundant
1074         PURE_SLP_STMT check.
1075         (vect_transform_stmt): Assert that we always have an slp_node
1076         if PURE_SLP_STMT.
1077
1078 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1079
1080         * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
1081         operands[2] against 1 with comparison against CONST1_RTX.
1082         (<shift>di3_neon): Likewise.
1083         * config/arm/predicates.md (const0_operand): Replace with comparison
1084         against CONST0_RTX.
1085
1086 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1087
1088         * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
1089         operands[2] against 1 with comparison against CONST1_RTX.
1090         (ashrdi3): Likewise.
1091         (lshrdi3): Likewise.
1092         (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
1093         UINTVAL.
1094         (ashrsi3): Likewise.
1095         (lshrsi3): Likewise.
1096         (rotrsi3): Likewise.
1097         (define_split above *compareqi_eq0): Likewise.
1098         (define_split above "prologue"): Likewise.
1099         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
1100         * config/arm/predicates.md (shift_operator): Likewise.
1101         (shift_nomul_operator): Likewise.
1102         (sat_shift_operator): Likewise.
1103         (thumb1_cmp_operand): Likewise.
1104         (const_neon_scalar_shift_amount_operand): Replace manual range
1105         check with IN_RANGE.
1106         * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
1107         Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
1108
1109 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1110
1111         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
1112         with HOST_WIDE_INT_1.
1113         (insv): Likewise.
1114         * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
1115         1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
1116         (arm_canonicalize_comparison): Likewise.
1117         (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
1118         HOST_WIDE_INT_1.
1119         (thumb1_size_rtx_costs): Likewise.
1120         (vfp_const_double_index): Replace cast of 1 to unsigned
1121         HOST_WIDE_INT with HOST_WIDE_INT_1U.
1122         (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
1123         HOST_WIDE_INT_1.
1124         (arm_asan_shadow_offset): Replace cast of 1 to unsigned
1125         HOST_WIDE_INT with HOST_WIDE_INT_1U.
1126         * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
1127         HOST_WIDE_INT with HOST_WIDE_INT_1.
1128
1129 2016-05-24  Marek Polacek  <polacek@redhat.com>
1130
1131         * tree-cfg.h (should_remove_lhs_p): New predicate.
1132         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
1133         * gimplify.c (gimplify_modify_expr): Likewise.
1134         * tree-cfg.c (verify_gimple_call): Likewise.
1135         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
1136         * gimple-fold.c: Include "tree-cfg.h".
1137         (gimple_fold_call): Use should_remove_lhs_p.
1138
1139 2016-05-24  Richard Biener  <rguenther@suse.de>
1140
1141         PR tree-optimization/71253
1142         * cfganal.h (control_dependences): Make robust against edge
1143         and BB removal.
1144         (control_dependences::control_dependences): Remove edge_list argument.
1145         (control_dependences::get_edge): Remove.
1146         (control_dependences::get_edge_src): Add.
1147         (control_dependences::get_edge_dest): Likewise.
1148         (control_dependences::m_el): Make a vector of edge src/dest index.
1149         * cfganal.c (control_dependences::find_control_dependence): Adjust.
1150         (control_dependences::control_dependences): Likewise.
1151         (control_dependences::~control_dependence): Likewise.
1152         (control_dependences::get_edge): Remove.
1153         (control_dependences::get_edge_src): Add.
1154         (control_dependences::get_edge_dest): Likewise.
1155         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
1156         get_edge_src.
1157         (perform_tree_ssa_dce): Adjust.
1158         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
1159         get_edge_src.
1160         (pass_loop_distribution::execute): Adjust.  Do loop destroying
1161         conditional on changed.
1162
1163 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1164
1165         PR target/69857
1166         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
1167         return.  Reindent transformation comment and mention the ARM state
1168         behavior.
1169
1170 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
1171
1172         PR middle-end/71252
1173         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
1174         after build_and_add_sum creates new use stmt.
1175
1176 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
1177
1178         * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
1179         load_lanes/grouped_load classification comes first.  Don't check
1180         whether the vectorization factor is a multiple of the group size
1181         for load_lanes.
1182
1183 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
1184
1185         * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
1186         GROUP_GAP for single-element interleaving.
1187         * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
1188         variable.
1189
1190 2016-05-24  Richard Biener  <rguenther@suse.de>
1191
1192         PR middle-end/70434
1193         PR c/69504
1194         * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
1195         bases which are accessed with non-invariant indices.
1196         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
1197         constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
1198
1199 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
1200
1201         PR middle-end/71170
1202         * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
1203         (add_to_ops_vec): Add stmt_to_insert.
1204         (add_repeat_to_ops_vec): Init stmt_to_insert.
1205         (insert_stmt_before_use): New.
1206         (transform_add_to_multiply): Remove mult_stmt insertion and add it
1207         to ops vector.
1208         (get_ops): Init stmt_to_insert.
1209         (maybe_optimize_range_tests): Likewise.
1210         (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
1211         (rewrite_expr_tree_parallel): Likewise.
1212         (reassociate_bb): Likewise.
1213
1214 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1215
1216         PR target/71201
1217         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
1218         ISA 3.0 xxperm fusion alternative.
1219         (altivec_vperm_v8hiv16qi): Likewise.
1220         (altivec_vperm_<mode>_uns_internal): Likewise.
1221         (vperm_v8hiv4si): Likewise.
1222         (vperm_v16qiv8hi): Likewise.
1223
1224 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1225             Kelvin Nilsen  <kelvin@gcc.gnu.org>
1226
1227         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
1228         vpermr/xxpermr on ISA 3.0.
1229         (altivec_expand_vec_perm_le): Likewise.
1230         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
1231         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
1232         ISA 3.0.
1233
1234 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
1235
1236         * config/i386/i386.h (IS_STACK_MODE): Enable for
1237         TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
1238         SSE_FLOAT_MODE_P macros.
1239         * config/i386/i386.c (ix86_preferred_reload_class): Use
1240         IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
1241         Cleanup regclass processing for CONST_DOUBLE_P.
1242         (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
1243         (ix86_rtx_costs): Remove redundant TARGET_80387 check
1244         with IS_STACK_MODE macro.
1245         * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
1246         with TARGET_SSE2.
1247         (*movdf_internal): Use IS_STACK_MODE macro.
1248         (*movsf_internal): Ditto.
1249
1250 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
1251
1252         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
1253         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
1254
1255 2016-05-23  Jeff Law  <law@redhat.com>
1256
1257         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
1258         extracted from ...
1259         (fsm_find_control_statement_thread_paths): Call it.
1260
1261 2016-05-23  Martin Jambor  <mjambor@suse.cz>
1262
1263         PR ipa/71234
1264         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
1265         from_global_constant if t is not NULL.
1266
1267 2016-05-23  Marek Polacek  <polacek@redhat.com>
1268
1269         PR c/49859
1270         * common.opt (Wswitch-unreachable): New option.
1271         * doc/invoke.texi: Document -Wswitch-unreachable.
1272         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
1273         warning.
1274
1275 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
1276
1277         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
1278         TMR_INDEX is non-NULL.
1279
1280 2016-05-23  Richard Biener  <rguenther@suse.de>
1281
1282         PR tree-optimization/71230
1283         * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
1284         (try_special_add_to_ops): ... here.  Always test for single-use.
1285
1286 2016-05-23  Martin Jambor  <mjambor@suse.cz>
1287
1288         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
1289         default block if a PHI node in the original one would be resized.
1290
1291 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
1292
1293         PR tree-optimization/58135
1294         * tree-vect-slp.c: When group size is not multiple
1295         of vector size, allow splitting of store group at
1296         vector boundary.
1297
1298 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
1299
1300         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
1301
1302 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
1303
1304         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
1305         vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
1306         condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
1307         of 64x2.
1308
1309         * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
1310         vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
1311         v constraint instead of x and vinserti32x4 insn.
1312
1313         * config/i386/sse.md (i128vldq): New mode iterator.
1314         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
1315         avx512dq and avx512vl alternatives.
1316
1317         * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
1318         constraint, use maybe_evex prefix instead of vex.
1319         (vec_dupv4sf): Use v constraint instead of x for output
1320         operand except for noavx alternative, use Yv constraint
1321         instead of x for input.  Use maybe_evex prefix instead of vex.
1322         (*vec_dupv4si): Likewise.
1323         (*vec_dupv2di): Likewise.
1324
1325 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
1326
1327         PR middle-end/40921
1328         * tree-ssa-reassoc.c (try_special_add_to_ops): New.
1329         (linearize_expr_tree): Call try_special_add_to_ops.
1330         (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
1331
1332 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1333
1334         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
1335         to computed stack_usage.
1336
1337 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
1338
1339         PR target/71103
1340         * config/avr/avr.md (define_expand "mov<mode>"): If the source
1341         operand is subreg (symbol_ref) then move the symbol ref to register.
1342
1343 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
1344
1345         * tree.c (array_at_struct_end_p): Look through MEM_REF.
1346
1347 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
1348
1349         PR middle-end/71179
1350         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
1351         VECTOR type.
1352
1353 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
1354
1355         * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
1356         ranges by calling get_single_symbol and tidy up.  Look more closely
1357         into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
1358
1359 2016-05-20  Jeff Law  <law@redhat.com>
1360
1361         * bitmap.c (bitmap_find_bit): Remove useless test.
1362
1363 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1364
1365         * function.c (thread_prologue_and_epilogue_insns): Commit the
1366         insertion of the epilogue.
1367
1368 2016-05-20  Martin Jambor  <mjambor@suse.cz>
1369
1370         PR tree-optimization/70884
1371         * tree-sra.c (initialize_constant_pool_replacements): Do not check
1372         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
1373         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
1374         of constant pool data as a reason for scalarization.
1375
1376 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
1377
1378         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
1379         for naked functions.
1380         (thumb1_expand_prologue): Likewise.
1381
1382 2016-05-20  Nathan Sidwell  <nathan@acm.org>
1383
1384         * config/nvptx/nptx.c (nvptx_option_override): Only set
1385         flag_toplevel_reorder, if not explicitly specified.  Set
1386         flag_no_common, unless explicitly specified.
1387
1388 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
1389
1390         * calls.c (can_implement_as_sibling_call_p): Mark param
1391         reg_parm_stack_space with ATTRIBUTE_UNUSED.
1392
1393 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
1394
1395         * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
1396         Use IS_STACK_MODE when calculating cost of standard 80387 constants.
1397         Fallthru to CONST_VECTOR case to calculate cost of standard SSE
1398         constants.
1399         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
1400         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
1401         and CASE_CONST_ANY.
1402
1403 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
1404
1405         * config/nvptx/nvptx.md (sincossf3): New pattern.
1406
1407 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
1408
1409         * calls.c (maybe_complain_about_tail_call): New function.
1410         (initialize_argument_information): Call
1411         maybe_complain_about_tail_call when clearing *may_tailcall.
1412         (can_implement_as_sibling_call_p): Call
1413         maybe_complain_about_tail_call when returning false.
1414         (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
1415         ensure try_tail_call is set.  Call maybe_complain_about_tail_call
1416         if tail-call optimization fails.
1417         * cfgexpand.c (expand_call_stmt): Initialize
1418         CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
1419         * gimple-pretty-print.c (dump_gimple_call): Dump
1420         gimple_call_must_tail_p.
1421         * gimple.c (gimple_build_call_from_tree): Call
1422         gimple_call_set_must_tail with the value of
1423         CALL_EXPR_MUST_TAIL_CALL.
1424         * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
1425         (gimple_call_set_must_tail): New function.
1426         (gimple_call_must_tail_p): New function.
1427         * print-tree.c (print_node): Update printing of TREE_STATIC
1428         to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
1429         * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
1430         trailing comment listing applicable flags.
1431         * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
1432
1433 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
1434
1435         * calls.c (expand_call): Move "Rest of purposes for tail call
1436         optimizations to fail" to...
1437         (can_implement_as_sibling_call_p): ...this new function, and
1438         split into multiple "if" statements.
1439
1440 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
1441
1442         * cfgloop.h (expected_loop_iterations_unbounded,
1443         expected_loop_iterations): Unconstify.
1444         * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
1445         profile with known upper bound; return 3 when profile is absent.
1446         (expected_loop_iterations): Update.
1447
1448 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
1449
1450         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
1451         and get_max_loop_iterations_int.
1452
1453 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
1454
1455         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
1456         realistic upper bounds here.
1457
1458 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
1459
1460         PR c++/71210
1461         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
1462         calls if the LHS is variable length or has addressable type.
1463         If targets[0]->decl is a noreturn call with void return type and
1464         zero arguments, adjust fntype and remove lhs in that case.
1465
1466 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
1467
1468         PR tree-optimization/71079
1469         PR tree-optimization/71206
1470         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
1471
1472 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1473
1474         * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
1475         (get_vec_alignment_for_array_decl): Likewise.
1476         (get_vec_alignment_for_record_decl): Likewise.
1477         (increase_alignment::execute): Move code to find alignment to
1478         get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
1479         (type_align_map): New hash_map.
1480
1481 2016-05-20  Richard Guenther  <rguenther@suse.de>
1482
1483         PR tree-optimization/29756
1484         * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
1485         * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
1486         * fold-const.c (operand_equal_p): Likewise.
1487         (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
1488         * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
1489         * tree-inline.c (estimate_operator_cost): Likewise.
1490         * tree-pretty-print.c (dump_generic_node): Likewise.
1491         * tree-ssa-operands.c (get_expr_operands): Likewise.
1492         * cfgexpand.c (expand_debug_expr): Likewise.
1493         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
1494         * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
1495         * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
1496         * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
1497         vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
1498         (execute_update_addresses_taken): Do it.
1499
1500 2016-05-20  Richard Biener  <rguenther@suse.de>
1501
1502         PR tree-optimization/71185
1503         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
1504         register operations.
1505
1506 2016-05-20  Richard Biener  <rguenther@suse.de>
1507
1508         * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
1509         gimple_seq_add_seq_without_update.
1510         (release_bb_predicate): Assert we have no operands to free.
1511         (if_convertible_loop_p_1): Calculate post dominators later.
1512         Do not free BB predicates here.
1513         (combine_blocks): Do not recompute BB predicates.
1514         (version_loop_for_if_conversion): Save BB predicates around
1515         loop versioning.
1516
1517 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
1518
1519         * function.c (make_epilogue_seq): Remove epilogue_end parameter.
1520         (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
1521         code.  Ignore sibcalls on EDGE_IGNORE edges.
1522         * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
1523         on edges for sibcalls that run without prologue.  The rest of the
1524         function is combined from...
1525         (fix_fake_fallthrough_edge): ... this, and ...
1526         (try_shrink_wrapping): ... a part of this.  Remove the bb_with
1527         function argument, make it a local variable.
1528
1529 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
1530
1531         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
1532         --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
1533         for 32-bit mode and SEH for 64-bit.
1534         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
1535         TARGET_64BIT_DEFAULT.
1536
1537 2016-05-19  Ryan Burn  <contact@rnburn.com>
1538
1539         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
1540         * gengtype.c (open_base_files): Add cilk.h to ifiles.
1541
1542 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
1543
1544         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
1545         force pending loads from memory.
1546
1547 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1548
1549         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
1550         (UNSPEC_DARN_32): New unspec constant.
1551         (UNSPEC_DARN_RAW): New unspec constant.
1552         (darn_32): New instruction.
1553         (darn_raw): New instruction.
1554         (darn): New instruction.
1555         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
1556         support and documentation for this macro.
1557         (BU_P9_MISC_1): New macro definition.
1558         (BU_P9_64BIT_MISC_0): New macro definition.
1559         (BU_P9_MISC_0): New macro definition.
1560         (darn_32): New builtin definition.
1561         (darn_raw): New builtin definition.
1562         (darn): New builtin definition.
1563         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
1564         RS6000_BUILTIN_0 directives to surround each occurrence of
1565         #include "rs6000-builtin.def".
1566         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
1567         RS6000_BTM_64BIT flags to the returned mask, depending on
1568         configuration.
1569         (def_builtin): Correct an error in the assignments made to the
1570         debugging variable attr_string.
1571         (rs6000_expand_builtin): Add support for no-operand built-in
1572         functions.
1573         (builtin_function_type): Remove fatal_error assertion that is no
1574         longer valid.
1575         (rs6000_common_init_builtins): Add support for no-operand built-in
1576         functions.
1577         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
1578         definition.
1579         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
1580         definition.
1581         (RS6000_BTM_64BIT): New macro definition.
1582         * doc/extend.texi: Document __builtin_darn (void),
1583         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
1584         functions.
1585
1586 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
1587
1588         * tree-vect-loop.c (vect_analyze_loop_2): Use also
1589         max_loop_iterations_int.
1590
1591 2016-05-19  Marek Polacek  <polacek@redhat.com>
1592
1593         PR tree-optimization/71031
1594         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
1595         condition and adjust the code a bit.
1596
1597 2016-05-19  Martin Liska  <mliska@suse.cz>
1598
1599         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
1600         auto_vec instead of vec.
1601
1602 2016-05-19  Martin Liska  <mliska@suse.cz>
1603
1604         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
1605
1606 2016-05-19  Martin Liska  <mliska@suse.cz>
1607
1608         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
1609
1610 2016-05-19  Martin Liska  <mliska@suse.cz>
1611
1612         * ipa-pure-const.c (set_function_state): Remove an existing
1613         funct_state.
1614         (remove_node_data): Do not free it as it's released
1615         in set_function_state.
1616
1617 2016-05-19  Martin Liska  <mliska@suse.cz>
1618
1619         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
1620         bitmap.
1621
1622 2016-05-19  Martin Liska  <mliska@suse.cz>
1623
1624         * omp-simd-clone.c (simd_clone_adjust): Release vector.
1625
1626 2016-05-19  Martin Liska  <mliska@suse.cz>
1627
1628         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
1629         an auto_vec instead of re-creating it.
1630
1631 2016-05-19  Martin Liska  <mliska@suse.cz>
1632
1633         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
1634         auto_vec instead of vec.
1635
1636 2016-05-19  Martin Liska  <mliska@suse.cz>
1637
1638         * lto-section-in.c (lto_get_section_data): Call
1639         lto_check_version with additional argument.
1640         * lto-streamer.c (lto_check_version): Add new argument.
1641         * lto-streamer.h (lto_check_version): Likewise.
1642
1643 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1644
1645         * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
1646         Don't add cost of inner memory when handling sign-extended loads.
1647
1648 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
1649
1650         PR rtl-optimization/71148
1651         * cse.c (cse_main): Free dominance info.
1652         (rest_of_handle_cse): Don't free dominance info.
1653         (rest_of_handle_cse2): Likewise.
1654         (rest_of_handle_cse_after_global_opts): Likewise.
1655
1656 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1657
1658         PR target/71056
1659         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
1660         NULL_TREE early if NEON is not available.  Remove now redundant check
1661         in ARM_CHECK_BUILTIN_MODE.
1662
1663 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
1664
1665         PR sanitizer/64354
1666         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
1667         builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
1668         * doc/cpp.texi: Document new macros.
1669
1670 2016-05-19 Bin Cheng  <bin.cheng@arm.com>
1671
1672         PR tree-optimization/69848
1673         * tree-vect-loop.c (vectorizable_reduction): Don't factor
1674         comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
1675
1676 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
1677
1678         * function.c (thread_prologue_and_epilogue_insn): Move the
1679         "goto epilogue_done" one block later.
1680
1681 2016-05-19  Richard Biener  <rguenther@suse.de>
1682
1683         PR tree-optimization/70729
1684         * passes.def: Move LIM pass before PRE.  Remove no longer
1685         required copyprop and move first DCE out of the loop pipeline.
1686
1687 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
1688
1689         PR driver/69265
1690         * Makefile.in (GCC_OBJS): Move spellcheck.o to...
1691         (OBJS-libcommon-target): ...here.
1692         * opts-common.c: Include spellcheck.h.
1693         (cmdline_handle_error): Build a vec of valid options and use it
1694         to suggest provide hints for misspelled arguments.
1695
1696 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
1697
1698         PR c++/71100
1699         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
1700         lhs if it has TREE_ADDRESSABLE type.
1701
1702 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
1703
1704         PR target/71145
1705         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
1706         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
1707
1708 2016-05-18  Martin Jambor  <mjambor@suse.cz>
1709
1710         PR ipa/69708
1711         * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
1712         input for NOP_EXPR pass-through functions.
1713         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
1714         aggregate global constant VAR_DECLs in constant jump functions.
1715
1716 2016-05-18  Martin Jambor  <mjambor@suse.cz>
1717
1718         PR ipa/69708
1719         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
1720         from TREE_READONLY parameters.
1721
1722 2016-05-18  Martin Jambor  <mjambor@suse.cz>
1723
1724         PR ipa/69708
1725         * cgraph.h (cgraph_indirect_call_info): New field
1726         guaranteed_unmodified.
1727         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
1728         to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
1729         appropriate.
1730         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
1731         pass the parameter value to ipa_find_agg_cst_for_param.
1732         * ipa-prop.c (ipa_load_from_parm_agg): New parameter
1733         guaranteed_unmodified, store AA results there instead of bailing out
1734         if present.
1735         (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
1736         (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
1737         (find_constructor_constant_at_offset): New function.
1738         (ipa_find_agg_cst_from_init): Likewise.
1739         (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
1740         static initializers of contants, report back through a new paameter
1741         from_global_constant if that was the case.
1742         (try_make_edge_direct_simple_call): Also pass parameter value to
1743         ipa_find_agg_cst_for_param, check guaranteed_unmodified when
1744         appropriate.
1745         (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
1746         (ipa_read_indirect_edge_info): Likewise.
1747         * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
1748         (ipa_load_from_parm_agg): Likewise.
1749
1750 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
1751
1752         PR rtl-optimization/71150
1753         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
1754         check.
1755
1756 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
1757
1758         PR target/70915
1759         * config/rs6000/constraints.md (wE constraint): New constraint
1760         for a vector constant that can be loaded with XXSPLTIB.
1761         (wM constraint): New constraint for a vector constant of a 1's.
1762         (wS constraint): New constraint for a vector constant that can be
1763         loaded with XXSPLTIB and a vector sign extend instruction.
1764         * config/rs6000/predicates.md (xxspltib_constant_split): New
1765         predicates for wE/wS constraints.
1766         (xxspltib_constant_nosplit): Likewise.
1767         (easy_vector_constant): Add support for constants that can be
1768         loaded via XXSPLTIB.
1769         (all_ones_constant): New predicate for vector constant with all
1770         1's set.
1771         (splat_input_operand): Add support for ISA 3.0 word splat operations.
1772         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
1773         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
1774         instruction and possibly with a sign extension.
1775         (output_vec_const_move): Add support for XXSPLTIB. If we are
1776         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
1777         instead of XXLXOR/XXLORC.
1778         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
1779         operations.
1780         (rs6000_legitimize_reload_address): Likewise.
1781         (rs6000_output_move_128bit): Use output_vec_const_move to emit
1782         constants.
1783         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
1784         combine VSX_M and VSX_M2 into one iterator.
1785         (VSX_M2): Likewise.
1786         (VSINT_84): New iterators for loading constants with XXSPLTIB.
1787         (VSINT_842): Likewise.
1788         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
1789         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
1790         XXSPLTIB instruction.
1791         (xxspltib_<mode>_nosplit): Likewise.
1792         (xxspltib_<mode>_split): New insn to load up constants with
1793         XXSPLTIB and a sign extend instruction.
1794         (vsx_mov<mode>): Replace single move that handled all vector types
1795         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
1796         moves (when -mvsx-timode is in effect) into the main vector
1797         moves.  Eliminate separate moves for <VSr> <VSa>, where the
1798         preferred register class (<VSr>) is listed first, and the
1799         secondary register class (<VSa>) is listed second with a '?' to
1800         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
1801         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
1802         that if the register was involved in a slow operation, the
1803         clear/set operation does not wait for the slow operation to
1804         finish.  Adjust the length attributes for 32-bit mode.  Use
1805         rs6000_output_move_128bit and drop the use of the string
1806         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
1807         spacing so that the alternatives and attributes don't generate
1808         long lines, and put things in columns, so that it is easier to
1809         match up the operands and attributes with the insn alternatives.
1810         (vsx_mov<mode>_64bit): Likewise.
1811         (vsx_mov<mode>_32bit): Likewise.
1812         (vsx_movti_64bit): Fold movti into normal vector moves.
1813         (vsx_movti_32bit): Likewise.
1814         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
1815         splat instructions.
1816         (vsx_splat_v4si_internal): Likewise.
1817         (vsx_splat_v4sf_internal): Likewise.
1818         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
1819         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
1820         extend vector elements.
1821         (vsx_sign_extend_hi_<mode>): Likewise.
1822         (vsx_sign_extend_si_v2di): Likewise.
1823         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
1824         declaration.
1825         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
1826         constraints.  Add trailing period to wL documentation.
1827
1828 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
1829
1830         PR middle-end/71020
1831         * tree-dfa.h (replace_abnormal_ssa_names): Declare.
1832         * tree-dfa.c (replace_abnormal_ssa_names): New function.
1833         * tree-call-cdce.c: Include tree-dfa.h.
1834         (can_guard_call_p): New function, extracted from...
1835         (can_use_internal_fn): ...here.
1836         (shrink_wrap_one_built_in_call_with_conds): Remove failure path
1837         and return void.
1838         (shrink_wrap_one_built_in_call): Likewise.
1839         (use_internal_fn): Likewise.
1840         (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
1841         and return void.  Call replace_abnormal_ssa_names.
1842         (pass_call_cdce::execute): Check can_guard_call_p during the
1843         initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
1844         will always change something.
1845
1846 2016-05-18  Martin Jambor  <mjambor@suse.cz>
1847
1848         PR ipa/70646
1849         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
1850         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
1851
1852 2016-05-18  Martin Jambor  <mjambor@suse.cz>
1853
1854         PR ipa/70646
1855         * ipa-inline.h (condition): New field size.
1856         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
1857         for comaprison and store it into the new condition.
1858         (evaluate_conditions_for_known_args): Use condition size to check
1859         access sizes for all but CHANGED conditions.
1860         (unmodified_parm_1): New parameter size_p, store access size into it.
1861         (unmodified_parm): Likewise.
1862         (unmodified_parm_or_parm_agg_item): Likewise.
1863         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
1864         (set_cond_stmt_execution_predicate): Extract access sizes and store
1865         them to conditions.
1866         (set_switch_stmt_execution_predicate): Likewise.
1867         (will_be_nonconstant_expr_predicate): Likewise.
1868         (will_be_nonconstant_predicate): Likewise.
1869         (inline_read_section): Stream condition size.
1870         (inline_write_summary): Likewise.
1871
1872 2016-05-18  Richard Biener  <rguenther@suse.de>
1873
1874         * tree-ssa-loop-im.c (determine_max_movement): Properly add
1875         condition cost to PHI cost instead of total_cost.
1876
1877 2016-05-18  Martin Liska  <mliska@suse.cz>
1878
1879         PR fortran/70856
1880         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
1881         merged variables.
1882
1883 2016-05-18  Richard Biener  <rguenther@suse.de>
1884
1885         * lto-streamer.h (LTO_major_version): Bump to 6.
1886
1887 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
1888
1889         * function.c (make_split_prologue_seq, make_prologue_seq,
1890         make_epilogue_seq): New functions, factored out from...
1891         (thread_prologue_and_epilogue_insns): Here.
1892
1893 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
1894
1895         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
1896         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
1897         of before.  Add a comment.
1898
1899 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
1900
1901         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
1902         expression pointer, not pointer to the pointer.
1903
1904 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
1905
1906         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
1907         (avx2_pbroadcast<mode>): Add another alternative with v instead
1908         of x constraints in it, using <pbroadcast_evex_isa> isa.
1909         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
1910
1911         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
1912         constraint x instead of v in second alternative, add avx512bw
1913         alternative.
1914
1915         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
1916         constraint x instead of v in second alternative, add avx512bw
1917         alternative.
1918
1919         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
1920         constraint x instead of v in second alternative, add avx512bw
1921         alternative.
1922
1923         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
1924         avx512bw alternative.
1925
1926 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
1927
1928         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
1929         array to 128 chars.
1930         (define_insn "*andnottf3"): Ditto.
1931         (define_insn "*<code><mode>3"/any_logic): Ditto.
1932         (define_insn "*<code>tf3"/any_logic): Ditto.
1933         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
1934         operand to block AVX-512VL insn variant emit when it is not enabled.
1935
1936 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
1937
1938         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
1939         constraint fot SF mode.
1940
1941 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
1942             Kirill Yukhin  <kirill.yukhin@intel.com>
1943
1944         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
1945         modifiers.
1946         (define_insn "rsqrt14<mode>"): Ditto.
1947         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
1948         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
1949         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
1950         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
1951         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
1952         Ditto.
1953         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
1954         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
1955         * config/i386/i386.c (ix86_print_operand): Expand check for size
1956         override codes for Intel syntax.
1957
1958 2016-05-18  Richard Biener  <rguenther@suse.de>
1959
1960         PR tree-optimization/71168
1961         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
1962         initialization earlier.
1963
1964 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
1965
1966         * config/aarch64/aarch64-simd.md
1967         (aarch64_reduc_plus_internal<mode>): Rename to...
1968         (reduc_plus_scal): ...This, and remove previous implementation.
1969
1970 2016-05-18  Richard Biener  <rguenther@suse.de>
1971
1972         * passes.def: Put late dse and cd_dce in canonical order.
1973
1974 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
1975
1976         * ipa-inline-transform.c (preserve_function_body_p): Look for
1977         first non-thunk clone.
1978         (save_function_body): Save into first non-thunk.
1979         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
1980         up call stmt id.
1981         (lto_output_node): Inline thunks don't need body in every
1982         partition.
1983         * lto-streamer-in.c: Do not fixup thunk clones.
1984         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
1985         thunks.
1986         * tree-inline.c (copy_bb): Be prepared for target node to be new after
1987         folding suceeds.
1988
1989 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
1990
1991         PR middle-end/63586
1992         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
1993         (reassociate_bb): Call transform_add_to_multiply.
1994
1995 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
1996
1997         * config/aarch64/aarch64.c (all_extensions): Removed unused
1998         static variable.
1999
2000 2016-05-17  Nathan Sidwell  <nathan@acm.org>
2001
2002         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
2003         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
2004
2005 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
2006
2007         PR tree-optimization/54579
2008         PR middle-end/55299
2009         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
2010
2011 2016-05-17  Marek Polacek  <polacek@redhat.com>
2012
2013         PR ipa/71146
2014         * tree-inline.c (expand_call_inline): Call
2015         maybe_remove_unused_call_args.
2016
2017 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
2018
2019         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
2020         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
2021         * doc/md.texi (fmin@var{m}3): Likewise.
2022
2023 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
2024
2025         * match.pd (X & C): New transformation.
2026
2027 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
2028
2029         * match.pd (~X & Y): New transformation.
2030
2031 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
2032
2033         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
2034         information for new SSA_NAME.
2035         (simplify_conversion_using_ranges): Get range through get_range_info
2036         instead of get_value_range.
2037
2038 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
2039
2040         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
2041         Remove inline assembly.
2042         (vmvn_s16): Likewise.
2043         (vmvn_s32): Likewise.
2044         (vmvn_u8): Likewise.
2045         (vmvn_u16): Likewise.
2046         (vmvn_u32): Likewise.
2047         (vmvnq_s8): Likewise.
2048         (vmvnq_s16): Likewise.
2049         (vmvnq_s32): Likewise.
2050         (vmvnq_u8): Likewise.
2051         (vmvnq_u16): Likewise.
2052         (vmvnq_u32): Likewise.
2053         (vmvn_p8): Likewise.
2054         (vmvnq_p16): Likewise.
2055
2056 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
2057
2058         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
2059         Use builtin.
2060         (vmul_n_s16): Likewise.
2061         (vmul_n_s32): Likewise.
2062         (vmul_n_u16): Likewise.
2063         (vmul_n_u32): Likewise.
2064         (vmulq_n_f32): Likewise.
2065         (vmulq_n_f64): Likewise.
2066         (vmulq_n_s16): Likewise.
2067         (vmulq_n_s32): Likewise.
2068         (vmulq_n_u16): Likewise.
2069         (vmulq_n_u32): Likewise.
2070
2071 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
2072
2073         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
2074         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
2075
2076 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
2077
2078         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
2079         to *aarch64_fma4_elt_from_dup<mode>.
2080         (*aarch64_fnma4_elt_to_128df): Rename to
2081         *aarch64_fnma4_elt_from_dup<mode>.
2082         * config/aarch64/arm_neon.h (vfma_n_f64): New.
2083         (vfms_n_f32): Likewise.
2084         (vfms_n_f64): Likewise.
2085         (vfmsq_n_f32): Likewise.
2086         (vfmsq_n_f64): Likewise.
2087
2088 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
2089
2090         * wide-int.h: Change fixed_wide_int_storage from class to struct.
2091
2092 2016-05-17  Richard Biener  <rguenther@suse.de>
2093
2094         PR tree-optimization/71132
2095         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
2096         Only add control dependences for blocks in the loop.
2097         (build_rdg): Adjust.
2098         (generate_code_for_partition): Return whether loop should
2099         be destroyed and delay that.
2100         (distribute_loop): Likewise.
2101         (pass_loop_distribution::execute): Record loops to be destroyed
2102         and perform delayed destroying of loops.
2103
2104 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2105
2106         PR target/70809
2107         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
2108
2109 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
2110
2111         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
2112
2113 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
2114
2115         PR target/71114
2116         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
2117         insertion point for instructions generated by validize_mem.
2118
2119 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
2120
2121         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
2122         in brackets.
2123
2124 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
2125
2126         * config/aarch64/aarch64.c
2127         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
2128         rather than a macro.
2129
2130 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
2131
2132         * doc/invoke.texi (AArch64 Options): Various updates.
2133
2134 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
2135
2136         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
2137         into instrumentation thunks.
2138         * cif-code.def (CIF_CHKP): New.
2139
2140 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
2141
2142         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
2143
2144 2016-05-16  Martin Jambor  <mjambor@suse.cz>
2145
2146         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
2147         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
2148
2149 2016-05-16  Marek Polacek  <polacek@redhat.com>
2150
2151         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
2152         commentary.
2153
2154 2016-05-16  Martin Jambor  <mjambor@suse.cz>
2155
2156         PR hsa/70857
2157         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
2158         the outlined kernel function.
2159
2160 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
2161
2162         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
2163         (ISA_HAS_DLSA): Ditto.
2164
2165 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
2166
2167         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
2168
2169 2016-05-16  Nathan Sidwell  <nathan@acm.org>
2170
2171         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
2172         (nvptx_name_replacement): Restore.  Add comment.
2173         (write_fn_proto, write_fn_proto_from_insn,
2174         nvptx_output_call_insn): Restore
2175         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
2176
2177 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
2178
2179         * config/aarch64/aarch64.md
2180         (add<mode>3_compareC_cconly_imm): Remove use of %w.
2181         (add<mode>3_compareC_imm): Likewise.
2182         (<optab>si3_uxtw): Split into register and immediate variants.
2183         (andsi3_compare0_uxtw): Likewise.
2184         (and<mode>3_compare0): Likewise.
2185         (and<mode>3nr_compare0): Likewise.
2186         (stack_protect_test_<mode>): Don't use %x for memory operands.
2187
2188 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
2189
2190         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
2191
2192 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
2193
2194         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
2195         Split integer shifts into shift_reg and bfm.
2196         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
2197         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
2198         (ror<mode>3_insn): Likewise.
2199         (<optab>si3_insn_uxtw): Likewise.
2200         (<optab><mode>3_insn): Change to rotate_imm.
2201         (extr<mode>5_insn_alt): Likewise.
2202         (extrsi5_insn_uxtw): Likewise.
2203         (extrsi5_insn_uxtw_alt): Likewise.
2204
2205 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
2206
2207         * doc/tm.texi: Regenerate.
2208         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
2209         (TARGET_INVALID_RETURN_TYPE): Remove.
2210         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
2211         TARGET_INVALID_RETURN_TYPE.
2212         * target.def (invalid_parameter_type): Remove.
2213         (invalid_return_type): Remove.
2214
2215 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
2216
2217         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
2218         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
2219         calls from thunk.
2220         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
2221         gimple body.
2222         (preserve_function_body_p): No need to preserve function body
2223         * cif-codes.def (CIF_THUNK): Remove.
2224         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
2225
2226 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
2227
2228         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
2229
2230 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
2231
2232         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
2233         for thunks.
2234
2235 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
2236
2237         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
2238         (inline_small_functions): Do not look for function symbol when
2239         resetting caches.
2240
2241 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
2242
2243         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
2244         of inline thunks
2245
2246 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
2247             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2248             Jiong Wang  <jiong.wang@arm.com>
2249
2250         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
2251         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
2252         Define __ARM_FP16_ARGS when appropriate.
2253         * config/arm/arm.c (arm_invalid_parameter_type): Remove
2254         declaration.
2255         (arm_invalid_return_type): Likewise.
2256         (TARGET_INVALID_PARAMETER_TYPE): Remove.
2257         (TARGET_INVALID_RETURN_TYPE): Remove.
2258         (aapcs_vfp_sub_candidate): Allow HFmode.
2259         (aapcs_vfp_allocate): Add comment.  Support HFmode.
2260         (aapcs_vfp_allocate_return_reg): Likewise.
2261         (struct aapcs_cp_arg_layout): Slightly reword comments for
2262         is_return_candidate and allocate_return_reg.
2263         (output_mov_vfp): Update assert.
2264         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
2265         condition.
2266         (arm_invalid_parameter_type): Remove.
2267         (amr_invalid_return_type): Remove.
2268         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
2269         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
2270         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
2271
2272 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
2273
2274         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
2275         * config/aarch64/arch64-protos.h
2276         (aarch64_legitimize_reload_address): Remove.
2277         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
2278         Remove.
2279
2280 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
2281
2282         * configure.ac: Add ACX_NONCANONICAL_HOST.
2283         * configure: Regenerate.
2284         * Makefile.in: Set host_noncanonical.
2285
2286 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
2287
2288         PR target/71097
2289         * config/i386/i386.md (*movtf_internal): Before register allocation,
2290         do not allow FP constants for CM_MEDIUM memory model, allow only
2291         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
2292         (*movxf_internal): Ditto.
2293         (*movdf_internal): Ditto.
2294         (*movsf_internal): Ditto.
2295
2296 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
2297
2298         PR rtl-optimization/67483
2299         * combine.c (make_compound_operation): Don't call extract_left_shift
2300         with negative shift amounts.
2301
2302 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
2303
2304         PR bootstrap/71071
2305         * fold-const.c (fold_checksum_tree): Allow modification
2306         of TYPE_ALIAS_SET during folding.
2307
2308         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
2309         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
2310         (ix86_split_to_parts): Likewise.  Fix up formatting.
2311
2312 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
2313
2314         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
2315         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
2316         printf format.
2317
2318 2016-05-13  Nathan Sidwell  <nathan@acm.org>
2319
2320         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
2321         (nvptx_name_replacement): Delete.
2322         (write_fn_proto, write_fn_proto_from_insn,
2323         nvptx_output_call_insn): Remove nvptx_name_replacement call.
2324         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
2325         * langhooks.c (add_builtin_funcction_common): Call
2326         targetm.mangle_decl_assembler_name.
2327
2328         * config/nvptx/nvptx.c (write_fn_proto): Handle
2329         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
2330
2331 2016-05-13  Martin Liska  <mliska@suse.cz>
2332
2333         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
2334         and PRIu64 in printf format.
2335
2336 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2337
2338         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
2339         comment.
2340
2341 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2342
2343         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
2344         Change --param max-completely-peeled-times to
2345         --param max-completely-peel-times in dump file printing.
2346
2347 2016-05-13  Richard Biener  <rguenther@suse.de>
2348
2349         PR tree-optimization/42587
2350         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
2351         (find_bswap_or_nop_1): Likewise.
2352         (bswap_replace): Likewise.
2353
2354 2016-05-13  Martin Liska  <mliska@suse.cz>
2355
2356         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
2357         Initialize a variable with default value.
2358
2359 2016-05-13  Martin Liska  <mliska@suse.cz>
2360
2361         * doc/invoke.texi: Enhance explanation of error recovery
2362         of sanitizers.
2363
2364 2016-05-13  Martin Liska  <mliska@suse.cz>
2365
2366         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
2367         (struct cost_pair): Change inv_expr_id (int) to inv_expr
2368         (iv_inv_expr_ent *).
2369         (struct iv_inv_expr_ent): Comment struct fields.
2370         (sort_iv_inv_expr_ent): New function.
2371         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
2372         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
2373         a hash_map between iv_inv_expr_ent and number of usages.
2374         (niter_for_exit): Fix coding style.
2375         (tree_ssa_iv_optimize_init): Use renamed variable.
2376         (determine_base_object): Fix coding style.
2377         (alloc_iv): Likewise.
2378         (find_interesting_uses_outside): Likewise.
2379         (add_candidate_1): Likewise.
2380         (add_standard_iv_candidates): Likewise.
2381         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
2382         (prepare_decl_rtl): Fix coding style.
2383         (get_address_cost): Likewise.
2384         (get_shiftadd_cost): Likewise.
2385         (force_expr_to_var_cost): Likewise.
2386         (compare_aff_trees): Likewise.
2387         (get_expr_id): Restructure the function.
2388         (get_loop_invariant_expr_id): Renamed to
2389         get_loop_invariant_expr.
2390         (get_computation_cost_at): Replace usage of inv_expr_id with
2391         inv_expr.
2392         (get_computation_cost): Likewise.
2393         (determine_group_iv_cost_generic): Likewise.
2394         (determine_group_iv_cost_address): Likewise.
2395         (iv_period): Fix coding style.
2396         (iv_elimination_compare_lt): Likewise.
2397         (may_eliminate_iv): Likewise.
2398         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
2399         inv_expr.
2400         (determine_group_iv_costs): Dump invariant expressions.
2401         (iv_ca_recount_cost): Use the newly added hash_map.
2402         (iv_ca_set_remove_invariants): Fix coding style.
2403         (iv_ca_set_add_invariants): Fix coding style.
2404         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
2405         invariants.
2406         (iv_ca_set_cp): Likewise.
2407         (iv_ca_new): Initialize the newly added hash_map and remove
2408         initialization of fields.
2409         (iv_ca_free): Delete the hash_map.
2410         (iv_ca_dump): Dump invariant expressions.
2411         (iv_ca_extend): Fix coding style.
2412         (try_add_cand_for): Likewise.
2413         (create_new_ivs): Dump information about # of avg iterations and
2414         # of used invariant expressions.
2415         (rewrite_use_compare): Fix coding style.
2416         (free_loop_data): Set default value for max_inv_expr_id.
2417
2418 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
2419
2420         * cse.c (rest_of_handle_cse): Use cleanup_cfg
2421         returned value cse_cfg_altered computation.
2422         (rest_of_handle_cse2): Likewise.
2423         (rest_of_handle_cse_after_global_opts): Likewise.
2424
2425 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2426
2427         PR target/53440
2428         * config/arm/arm.c (arm32_output_mi_thunk): New.
2429         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
2430         to split Thumb1 vs TARGET_32BIT functionality.
2431         (arm_thumb1_mi_thunk): New.
2432
2433 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2434
2435         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
2436         to true.
2437
2438 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2439
2440         PR target/71080
2441         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
2442
2443 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
2444
2445         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
2446         (expand_builtin_trap): Emit a regular call.
2447         (set_builtin_user_assembler_name): Remove obsolete cases.
2448         * dse.c (scan_insn): Adjust.
2449         * except.c: Include calls.h.
2450         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
2451         emit a regular call to setjmp.
2452         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
2453         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
2454         (emit_block_move_via_libcall): Delete.
2455         (block_move_fn): Delete.
2456         (init_block_move_fn): Likewise.
2457         (emit_block_move_libcall_fn): Likewise.
2458         (emit_block_op_via_libcall): New function.
2459         (set_storage_via_libcall): Tidy up and use memset builtin.
2460         (block_clear_fn): Delete.
2461         (init_block_clear_fn): Likewise.
2462         (clear_storage_libcall_fn): Likewise.
2463         (expand_assignment): Call emit_block_move_via_libcall.
2464         Do not include gt-expr.h.
2465         * expr.h (emit_block_op_via_libcall): Declare.
2466         (emit_block_copy_via_libcall): New inline function.
2467         (emit_block_move_via_libcall): Likewise.
2468         (emit_block_comp_via_libcall): Likewise.
2469         (block_clear_fn): Delete.
2470         (init_block_move_fn): Likewise.
2471         (init_block_clear_fn): Likewise.
2472         (emit_block_move_via_libcall): Likewise.
2473         (set_storage_via_libcall): Add default parameter value.
2474         * libfuncs.h (enum libfunc_index): Remove obsolete values.
2475         (abort_libfunc): Delete.
2476         (memcpy_libfunc): Likewise.
2477         (memmove_libfunc): Likewise.
2478         (memcmp_libfunc): Likewise.
2479         (memset_libfunc): Likewise.
2480         (setbits_libfunc): Likewise.
2481         (setjmp_libfunc): Likewise.
2482         (longjmp_libfunc): Likewise.
2483         (profile_function_entry_libfunc): Likewise.
2484         (profile_function_exit_libfunc): Likewise.
2485         (gcov_flush_libfunc): Likewise.
2486         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
2487         and DECL_VISIBILITY on the declaration.
2488         (init_optabs): Do not initialize obsolete libfuncs.
2489         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
2490         * tree-core.h (ECF_RET1): Define.
2491         (ECF_TM_PURE): Adjust.
2492         (ECF_TM_BUILTIN): Likewise.
2493         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
2494         (build_common_builtin_nodes): Initialize abort builtin.
2495         Add ECF_RET1 on memcpy, memmove and memset builtins.
2496         Pass final flags for alloca and alloca_with_align builtins.
2497         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
2498         obsolete builtins.
2499         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
2500         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
2501         set_storage_via_libcall and call emit_block_copy_via_libcall.
2502
2503 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
2504
2505         * config/i386/i386.md (*call_got_x32): Change operand 0 to
2506         DImode before it is passed to ix86_output_call_operand.
2507         (*call_value_got_x32): Ditto for operand 1.
2508
2509 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
2510
2511         PR rtl-optimization/70904
2512         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
2513         reload for wide mode.
2514
2515 2016-05-12  Marek Polacek  <polacek@redhat.com>
2516
2517         PR c/70756
2518         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
2519         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
2520         * langhooks.h (incomplete_type_error): Likewise.
2521         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
2522         parameter, pass it down to incomplete_type_error.
2523         * tree.h (size_in_bytes): New inline overload.
2524         (size_in_bytes_loc): Renamed from size_in_bytes.
2525
2526 2016-05-12  Richard Biener  <rguenther@suse.de>
2527
2528         PR tree-optimization/71059
2529         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
2530         nary before looking up or entering the expression into the VN
2531         hashes.
2532         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
2533         Make sure to re-use NARYs without result as inserted by
2534         phi-translation.
2535
2536 2016-05-12  Richard Biener  <rguenther@suse.de>
2537
2538         PR tree-optimization/71062
2539         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
2540         field.
2541         * tree-ssa-structalias.c (set_uids_in_ptset): Set
2542         vars_contains_restrict if the var is a restrict tag.
2543         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
2544         do not disambiguate pointers against it.
2545         (dump_points_to_solution): Re-structure and adjust for new
2546         vars_contains_restrict flag.
2547         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
2548
2549 2016-05-12  Martin Liska  <mliska@suse.cz>
2550
2551         * doc/invoke.texi: Explain connection between
2552         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
2553
2554 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
2555
2556         PR tree-optimization/71006
2557         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
2558         consider COND_EXPR as a mask producer.
2559
2560 2016-05-12  Marek Polacek  <polacek@redhat.com>
2561
2562         PR driver/71063
2563         * opts.c (common_handle_option): Detect missing argument for --help^.
2564
2565 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2566
2567         PR target/70830
2568         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
2569         when popping the PC and within an interrupt handler routine.
2570         Add missing tab to output of "ldmfd".
2571         (output_return_instruction): Output LDMFD with SP update rather
2572         than POP when returning from interrupt handler.
2573
2574 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
2575
2576         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
2577         TARGET_64BIT && TARGET_AVX512DQ.
2578         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
2579         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
2580         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
2581         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
2582         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
2583         (*vec_extractv4si_zext): Add avx512dq alternative.
2584         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
2585         use v instead of x constraint in other alternatives where possible.
2586
2587         * config/i386/sse.md (sse2_loadld): Use v instead of x
2588         constraint in alternatives 0,1,4.
2589
2590         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
2591         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
2592         v constraints instead of x and <pinsr_evex_isa> isa attribute.
2593
2594         PR target/71019
2595         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
2596         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
2597         is not emitted unless TARGET_AVX512BW.
2598         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
2599         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
2600         for the result operand.
2601
2602         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
2603         constraint instead of x in avx alternatives.  Use maybe_evex instead
2604         of vex prefix.
2605
2606         * config/i386/constraints.md (Yv): New constraint.
2607         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
2608         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
2609         * config/i386/i386.md (avx512fvecmode): New mode attr.
2610         (*pushtf): Use v constraint instead of x.
2611         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
2612         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
2613         (*absneg<mode>2): Use Yv constraint instead of x constraint.
2614         (*absnegtf2_sse): Likewise.
2615         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
2616         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
2617         avx512f alternatives.
2618         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
2619
2620 2016-05-12  Richard Biener  <rguenther@suse.de>
2621
2622         PR tree-optimization/71060
2623         * tree-data-ref.c (initialize_data_dependence_relation): Do not
2624         require exact match of DR_BASE_OBJECT but only matching address and
2625         type.
2626
2627 2016-05-12  Richard Biener  <rguenther@suse.de>
2628
2629         PR tree-optimization/70986
2630         * cfganal.c: Include cfgloop.h.
2631         (dfs_find_deadend): Prefer to take edges exiting loops.
2632
2633 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2634
2635         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
2636         compile and run time.
2637
2638 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
2639
2640         PR c/43651
2641         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
2642
2643 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
2644
2645         * config/i386/i386.c (legitimize_pic_address): Use
2646         copy_to_suggested_reg instead of gen_movsi.
2647
2648 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
2649
2650         * config/rs6000/predicates.md (quad_memory_operand): Move most of
2651         the code into quad_address_p and call it to share code with
2652         vsx_quad_dform_memory_operand.
2653         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
2654         d-form support.
2655         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
2656         bit instead of being a separate word.  Split -mpower9-dform into
2657         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
2658         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
2659         for the register class supporting 128-bit quad word memory offsets.
2660         (mode_supports_vsx_dform_quad): Helper function to return if the
2661         register class uses quad word memory offsets.
2662         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
2663         (rs6000_debug_reg_global): Always print if we are using LRA or not.
2664         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
2665         instructions are enabled, set up the appropriate addr_masks for
2666         128-bit types.
2667         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
2668         -mpower9-dform-scalar, instead of -mpower9-dform.
2669         (rs6000_option_override_internal): Split -mpower9-dform into two
2670         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
2671         -mpower9-dform switch sets or clears both.  If we are not using
2672         the LRA register allocator, do not enable -mpower9-dform-vector by
2673         default.  If we are using LRA, enable -mpower9-dform-vector and
2674         -mvsx-timode if it is appropriate.  Issue a warning if either
2675         -mpower9-dform-vector or -mvsx-timode are explicitly used without
2676         enabling LRA.
2677         (quad_address_offset_p): New helper function to return if the
2678         offset is legal for quad word memory instructions.
2679         (quad_address_p): New function to determin if GPR or vector
2680         register quad word memory addresses are legal.
2681         (mem_operand_gpr): Validate quad word address offsets.
2682         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
2683         d-form (register + offset) instructions.
2684         (offsettable_ok_by_alignment): Likewise.
2685         (rs6000_legitimate_offset_address_p): Likewise.
2686         (legitimate_lo_sum_address_p): Likewise.
2687         (rs6000_legitimize_address): Likewise.
2688         (rs6000_legitimize_reload_address): Add more debug statements for
2689         -mdebug=addr.
2690         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
2691         d-form instructions.
2692         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
2693         d-form instructions.  Distinguish different cases in debug
2694         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
2695         d-form instructions.
2696         (rs6000_preferred_reload_class): Likewise.
2697         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
2698         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
2699         of the ISA 2.06 indexed memory instructions.
2700         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
2701         use them to save/restore the saved vector registers instead of
2702         using Altivec instructions.
2703         (rs6000_emit_epilogue): Likewise.
2704         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
2705         (rs6000_opt_masks): Split -mpower9-dform into
2706         -mpower9-dform-scalar and -mpower9-dform-vector.
2707         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
2708         was not selected.
2709         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
2710         ISA 3.0 vector indexed memory instructions, and fold the code into
2711         the normal mov<mode> patterns.
2712         (p9_vecstore_<mode>): Likewise.
2713         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
2714         instructions.
2715         (vsx_movti_64bit): Likewise.
2716         (vsx_movti_32bit): Likewise.
2717         * config/rs6000/constraints.md (wO constraint): New constraint for
2718         ISA 3.0 vector d-form support.
2719         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
2720         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
2721         include -mpower9-dform-vector until we switch over to LRA.
2722         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
2723         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
2724         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
2725         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
2726         for -mpower9-dform and -mlra.
2727         * doc/md.texi (wO constraint): Document wO constraint.
2728
2729 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
2730
2731         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
2732         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
2733         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
2734         Move handling of non-insn arguments inline into the sole user:
2735         (output_trans_func): ...here.
2736         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
2737         in emitted function prototype.
2738         (output_internal_insn_latency_func): Ditto.  Simplify.
2739         (output_internal_maximal_insn_latency_func): Ditto.  Delete
2740         always-unused argument.
2741         (output_insn_latency_func): Ditto.
2742         (output_maximal_insn_latency_func): Ditto.
2743
2744 2016-05-11  Richard Biener  <rguenther@suse.de>
2745
2746         PR tree-optimization/71055
2747         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
2748         sth with precision not equal to access size verify we don't chop
2749         off bits.
2750
2751 2016-05-11  Richard Biener  <rguenther@suse.de>
2752
2753         PR debug/71057
2754         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
2755         (dwarf2out_finish): Move retry_incomplete_types call ...
2756         (dwarf2out_early_finish): ... here.
2757
2758 2016-05-11  Richard Biener  <rguenther@suse.de>
2759
2760         PR middle-end/71002
2761         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
2762         if the langhook insists on it.
2763         * fold-const.c (make_bit_field_ref): Add arg for the original
2764         reference and preserve its alias-set.
2765         (decode_field_reference): Take exp by reference and adjust it
2766         to the original memory reference.
2767         (optimize_bit_field_compare): Adjust callers.
2768         (fold_truth_andor_1): Likewise.
2769         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
2770
2771 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
2772
2773         PR middle-end/70807
2774         * cfgrtl.h (delete_insn_and_edges): Now return bool.
2775         * cfgrtl.c (delete_insn_and_edges): Likewise.
2776         * config/i386/i386.c (convert_scalars_to_vector): Remove
2777         redundant code.
2778         * cse.c (cse_insn): Compute cse_cfg_altered.
2779         (delete_trivially_dead_insns): Likewise.
2780         (cse_cc_succs): Likewise.
2781         (rest_of_handle_cse): Free dominance info if required.
2782         (rest_of_handle_cse2): Likewise.
2783         (rest_of_handle_cse_after_global_opts): Likewise.
2784
2785 2016-05-11  Alan Modra  <amodra@gmail.com>
2786
2787         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
2788         abi_v4_pass_in_fpr): New functions.
2789         (rs6000_function_arg_boundary): Exclude complex IBM long double
2790         from 64-bit alignment when ABI_V4.
2791         (rs6000_function_arg, rs6000_function_arg_advance_1,
2792         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
2793
2794 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
2795
2796         PR rtl-optimization/71028
2797         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
2798         jump with just a return in the fallthrough block if the branch
2799         block contains just a return as well.
2800
2801 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
2802
2803         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
2804         * match.pd ((X & Y) ^ Y): ... this.
2805         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
2806         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
2807
2808 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
2809
2810         * read-md.c (require_char_ws): New function.
2811         (read_string): Simplify using require_char_ws.
2812         (handle_constants): Likewise.
2813         (handle_enum): Likewise.
2814         (handle_file): Likewise.
2815         * read-md.h (require_char_ws): New declaration.
2816         * read-rtl.c (read_conditions): Simplify using require_char_ws.
2817         (read_mapping): Likewise.
2818         (read_rtx_code): Likewise.
2819         (read_nested_rtx): Likewise.
2820
2821 2016-05-10  James Norris  <jnorris@codesourcery.com>
2822
2823         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
2824         if offloading is enabled and -fopenacc or -fopenmp is specified.
2825         (CRTOFFLOADEND): Likewise.
2826         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
2827         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
2828
2829 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
2830
2831         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
2832         gotoff_operand code paths.  Use copy_to_suggested_regs and
2833         expand_simple_binop where appropriate.  Cleanup.
2834
2835 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
2836
2837         PR target/70799
2838         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
2839         integer constants.
2840         (dimode_scalar_chain::vector_const_cost): New.
2841         (dimode_scalar_chain::compute_convert_gain): Handle constants.
2842         (dimode_scalar_chain::convert_op): Likewise.
2843         (dimode_scalar_chain::convert_insn): Likewise.
2844
2845 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
2846
2847         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
2848         unary operation, not a binary one.
2849
2850 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
2851
2852         PR middle-end/70877
2853         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
2854         calls with type casted fndecl.
2855
2856 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
2857
2858         PR tree-optimization/70786
2859         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
2860         * calls.c (initialize_argument_information): Bind bounds
2861         with corresponding args passed by reference.
2862
2863 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
2864
2865         PR target/70927
2866         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
2867         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
2868         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
2869         accordingly.
2870
2871 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2872
2873         PR target/70963
2874         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
2875         code for a zero scale factor.
2876         (vsx_xvcvdpuxds_scale): Likewise.
2877
2878 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
2879
2880         * diagnostic-show-locus.c (layout::layout): Call show_ruler
2881         if show_ruler_p was set on the context.
2882         (layout::show_ruler): New method.
2883         * diagnostic.h (struct diagnostic_context): Add field
2884         "show_ruler_p".
2885
2886 2016-05-10  Richard Biener  <rguenther@suse.de>
2887
2888         PR tree-optimization/71039
2889         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
2890         (chk_uses): New function.
2891         (propagate_with_phi): Verify we can safely replicate the lhs of an
2892         aggregate assignment on all incoming edges.
2893
2894 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
2895
2896         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
2897         Forward declare.
2898         (rx_atomic_sequence): New class.
2899         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
2900         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
2901         non-inline.
2902         (rx_atomic_sequence::rx_atomic_sequence,
2903         rx_atomic_sequence::~rx_atomic_sequence): New functions.
2904         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
2905         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
2906         CTRLREG_INTB): New constants.
2907         (FETCHOP): New code iterator.
2908         (fethcop_name, fetchop_name2): New iterator code attributes.
2909         (QIHI): New mode iterator.
2910         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
2911         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
2912         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
2913
2914 2016-05-10  Martin Liska  <mliska@suse.cz>
2915
2916         * tree-inline.c (remap_dependence_clique): Do not remap
2917         debugging statements.
2918
2919 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2920
2921         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
2922         ("*fixuns_truncdfdi2_z13")
2923         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
2924         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
2925         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
2926
2927 2016-05-10  Richard Biener  <rguenther@suse.de>
2928
2929         PR tree-optimization/70497
2930         PR tree-optimization/28367
2931         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
2932         split out from ...
2933         (visit_reference_op_load): ... here.
2934         (vn_reference_lookup_3): Use it to handle subreg-like accesses
2935         with simplified BIT_FIELD_REFs.
2936         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
2937         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
2938         correctly.
2939
2940 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
2941
2942         * dwarf2out.c (add_abstract_origin_attribute): Adjust
2943         documentation comment.  For BLOCK nodes, add a
2944         DW_AT_abstract_origin attribute that points to the DIE generated
2945         for the origin BLOCK.
2946         (gen_lexical_block_die): Call add_abstract_origin_attribute for
2947         blocks from inlined functions.
2948
2949 2016-05-10  Alan Modra  <amodra@gmail.com>
2950
2951         PR target/70947
2952         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
2953         regrename modifying insns saving lr before __morestack call.
2954         * config/rs6000/rs6000.md (split_stack_return): Similarly for
2955         insns restoring lr after __morestack call.
2956
2957 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
2958
2959         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
2960         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
2961         expanders.
2962         * config/i386/sse.md (vec_interleave_high<mode>,
2963         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
2964         <avx512>_vpermt2var<mode>3_maskz): Likewise.
2965
2966 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
2967
2968         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
2969         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
2970         parallel reassociation for power8 and forward.
2971
2972 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
2973
2974         * config/i386/i386.md (absneg splitters with general regs): Use
2975         general_reg_operand predicate.
2976         (btsq peephole2): Use x86_64_immediate_operand to check if new
2977         value is suitable for immediate operand.  Generate emitted insn
2978         using RTL expressions.
2979         (btcq peephole2): Ditto.
2980         (btrq peephole2): Ditto.  Generate correct immediate operand
2981         for AND masking.
2982
2983 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
2984
2985         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
2986         bitpos.
2987
2988 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
2989
2990         * tree-affine.c (wide_int_constant_multiple_p): Add missing
2991         pointer dereference.
2992
2993 2016-05-09  Richard Biener  <rguenther@suse.de>
2994
2995         PR tree-optimization/70985
2996         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
2997         op0 isn't a gimple register.
2998
2999 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
3000
3001         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
3002         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
3003         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
3004         (i6400_fpu_mult): New cpu units.
3005         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
3006         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
3007         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
3008         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
3009         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
3010         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
3011         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
3012         (i6400_msa_long_float4, i6400_msa_long_float5)
3013         (i6400_msa_long_float8, i6400_msa_fdiv_df)
3014         (i6400_msa_fdiv_sf): New reservations.
3015         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
3016         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
3017         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
3018         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
3019         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
3020         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
3021         (msa_short_cmp, msa_short_float2, msa_short_logic3)
3022         (msa_short_store4, msa_long_load, msa_short_store)
3023         (msa_long_logic, msa_long_float2, msa_long_float4)
3024         (msa_long_float5, msa_long_float8, msa_long_mult)
3025         (msa_long_fdiv, msa_long_div): New reservations.
3026
3027 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
3028             Sameera Deshpande  <sameera.deshpande@imgtec.com>
3029             Matthew Fortune  <matthew.fortune@imgtec.com>
3030             Graham Stott  <graham.stott@imgtec.com>
3031             Chao-ying Fu  <chao-ying.fu@imgtec.com>
3032
3033         * config.gcc: Add MSA header file for mips*-*-* target.
3034         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
3035         (Ubv8i, Urv8):  New constraints.
3036         * config/mips/mips-ftypes.def: Add function types for MSA
3037         builtins.
3038         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
3039         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
3040         * config/mips/mips-msa.md: New file.
3041         * config/mips/mips-protos.h
3042         (mips_split_128bit_const_insns): New prototype.
3043         (mips_msa_idiv_insns): Likewise.
3044         (mips_split_128bit_move): Likewise.
3045         (mips_split_128bit_move_p): Likewise.
3046         (mips_split_msa_copy_d): Likewise.
3047         (mips_split_msa_insert_d): Likewise.
3048         (mips_split_msa_fill_d): Likewise.
3049         (mips_expand_msa_branch): Likewise.
3050         (mips_const_vector_same_val_p): Likewise.
3051         (mips_const_vector_same_bytes_p): Likewise.
3052         (mips_const_vector_same_int_p): Likewise.
3053         (mips_const_vector_shuffle_set_p): Likewise.
3054         (mips_const_vector_bitimm_set_p): Likewise.
3055         (mips_const_vector_bitimm_clr_p): Likewise.
3056         (mips_msa_vec_parallel_const_half): Likewise.
3057         (mips_msa_output_division): Likewise.
3058         (mips_ldst_scaled_shift): Likewise.
3059         (mips_expand_vec_cond_expr): Likewise.
3060         * config/mips/mips.c (enum mips_builtin_type): Add
3061         MIPS_BUILTIN_MSA_TEST_BRANCH.
3062         (mips_gen_const_int_vector_shuffle): New prototype.
3063         (mips_const_vector_bitimm_set_p): New function.
3064         (mips_const_vector_bitimm_clr_p): Likewise.
3065         (mips_const_vector_same_val_p): Likewise.
3066         (mips_const_vector_same_bytes_p): Likewise.
3067         (mips_const_vector_same_int_p): Likewise.
3068         (mips_const_vector_shuffle_set_p): Likewise.
3069         (mips_symbol_insns): Forbid loading symbols via immediate for
3070         MSA.
3071         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
3072         stores.
3073         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
3074         MSA.
3075         (mips_lx_address_p): Add support load indexed address for MSA.
3076         (mips_address_insns): Add calculation of instructions needed for
3077         stores and loads for MSA.
3078         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
3079         CONST_VECTOR for MSA and let it fall through.
3080         (mips_ldst_scaled_shift): New function.
3081         (mips_subword_at_byte): Likewise.
3082         (mips_msa_idiv_insns): Likewise.
3083         (mips_legitimize_move): Validate MSA moves.
3084         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
3085         calculation of costs for MSA division.
3086         (mips_split_move_p): Check if MSA moves need splitting.
3087         (mips_split_move): Split MSA moves if necessary.
3088         (mips_split_128bit_move_p): New function.
3089         (mips_split_128bit_move): Likewise.
3090         (mips_split_msa_copy_d): Likewise.
3091         (mips_split_msa_insert_d): Likewise.
3092         (mips_split_msa_fill_d): Likewise.
3093         (mips_output_move): Handle MSA moves.
3094         (mips_expand_msa_branch): New function.
3095         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
3096         Reinstate 'y' modifier.
3097         (mips_file_start): Add MSA .gnu_attribute.
3098         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
3099         FPRs.
3100         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
3101         (mips_class_max_nregs): Add register size for MSA supported mode.
3102         (mips_cannot_change_mode_class): Allow conversion between MSA
3103         vector modes and TImode.
3104         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
3105         instruction.
3106         (mips_secondary_reload_class): Force MSA loads/stores via memory.
3107         (mips_preferred_simd_mode): Add preffered modes for MSA.
3108         (mips_vector_mode_supported_p): Add MSA supported modes.
3109         (mips_autovectorize_vector_sizes): New function.
3110         (mips_msa_output_division): Likewise.
3111         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
3112         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
3113         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
3114         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
3115         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
3116         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
3117         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
3118         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
3119         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
3120         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
3121         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
3122         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
3123         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
3124         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
3125         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
3126         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
3127         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
3128         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
3129         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
3130         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
3131         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
3132         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
3133         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
3134         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
3135         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
3136         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
3137         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
3138         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
3139         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
3140         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
3141         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
3142         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
3143         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
3144         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
3145         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
3146         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
3147         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
3148         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
3149         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
3150         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
3151         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
3152         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
3153         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
3154         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
3155         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
3156         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
3157         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
3158         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
3159         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
3160         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
3161         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
3162         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
3163         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
3164         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
3165         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
3166         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
3167         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
3168         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
3169         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
3170         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
3171         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
3172         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
3173         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
3174         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
3175         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
3176         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
3177         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
3178         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
3179         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
3180         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
3181         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
3182         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
3183         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
3184         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
3185         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
3186         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
3187         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
3188         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
3189         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
3190         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
3191         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
3192         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
3193         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
3194         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
3195         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
3196         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
3197         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
3198         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
3199         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
3200         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
3201         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
3202         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
3203         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
3204         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
3205         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
3206         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
3207         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
3208         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
3209         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
3210         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
3211         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
3212         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
3213         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
3214         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
3215         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
3216         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
3217         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
3218         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
3219         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
3220         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
3221         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
3222         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
3223         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
3224         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
3225         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
3226         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
3227         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
3228         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
3229         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
3230         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
3231         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
3232         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
3233         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
3234         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
3235         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
3236         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
3237         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
3238         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
3239         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
3240         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
3241         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
3242         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
3243         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
3244         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
3245         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
3246         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
3247         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
3248         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
3249         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
3250         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
3251         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
3252         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
3253         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
3254         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
3255         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
3256         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
3257         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
3258         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
3259         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
3260         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
3261         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
3262         move_v builtins.
3263         (mips_get_builtin_decl_index): New array.
3264         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
3265         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
3266         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
3267         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
3268         (mips_init_builtins): Initialize mips_get_builtin_decl_index
3269         array.
3270         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
3271         hook.
3272         (mips_expand_builtin_insn): Prepare operands for
3273         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
3274         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
3275         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
3276         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
3277         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
3278         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
3279         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
3280         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
3281         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
3282         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
3283         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
3284         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
3285         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
3286         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
3287         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
3288         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
3289         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
3290         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
3291         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
3292         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
3293         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
3294         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
3295         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
3296         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
3297         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
3298         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
3299         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
3300         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
3301         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
3302         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
3303         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
3304         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
3305         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
3306         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
3307         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
3308         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
3309         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
3310         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
3311         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
3312         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
3313         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
3314         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
3315         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
3316         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
3317         These are set implicitly and an error is reported if overridden.
3318         (mips_expand_builtin_msa_test_branch): New function.
3319         (mips_expand_msa_shuffle): Likewise.
3320         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
3321         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
3322         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
3323         (mips_expand_vec_unpack): Add support for MSA.
3324         (mips_expand_vector_init): Likewise.
3325         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
3326         instead of const0_rtx.
3327         (mips_msa_vec_parallel_const_half): New function.
3328         (mips_gen_const_int_vector): Likewise.
3329         (mips_gen_const_int_vector_shuffle): Likewise.
3330         (mips_expand_msa_cmp): Likewise.
3331         (mips_expand_vec_cond_expr): Likewise.
3332         * config/mips/mips.h
3333         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
3334         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
3335         specified.
3336         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
3337         (ISA_HAS_MSA): New macro.
3338         (UNITS_PER_MSA_REG): Likewise.
3339         (BITS_PER_MSA_REG): Likewise.
3340         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
3341         (MSA_REG_FIRST): New macro.
3342         (MSA_REG_LAST): Likewise.
3343         (MSA_REG_NUM): Likewise.
3344         (MSA_REG_P): Likewise.
3345         (MSA_REG_RTX_P): Likewise.
3346         (MSA_SUPPORTED_MODE_P): Likewise.
3347         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
3348         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
3349         * config/mips/mips.md: Include mips-msa.md.
3350         (alu_type): Add simd_add.
3351         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
3352         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
3353         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
3354         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
3355         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
3356         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
3357         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
3358         simd_move, simd_load, simd_store.  Choose "multi" for moves
3359         for "qword_mode".
3360         (qword_mode): New attribute.
3361         (insn_count): Add instruction count for quad moves.
3362         Increase the count for MIPS SIMD division.
3363         (UNITMODE): Add UNITMODEs for vector types.
3364         (addsub): New code iterator.
3365         * config/mips/mips.opt (mmsa): New option.
3366         * config/mips/msa.h: New file.
3367         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
3368         specified.
3369         * config/mips/mti-linux.h: Likewise.
3370         * config/mips/predicates.md
3371         (const_msa_branch_operand): New constraint.
3372         (const_uimm3_operand): Likewise.
3373         (const_uimm4_operand): Likewise.
3374         (const_uimm5_operand): Likewise.
3375         (const_uimm8_operand): Likewise.
3376         (const_imm5_operand): Likewise.
3377         (aq10b_operand): Likewise.
3378         (aq10h_operand): Likewise.
3379         (aq10w_operand): Likewise.
3380         (aq10d_operand): Likewise.
3381         (const_m1_operand): Likewise.
3382         (reg_or_m1_operand): Likewise.
3383         (const_exp_2_operand): Likewise.
3384         (const_exp_4_operand): Likewise.
3385         (const_exp_8_operand): Likewise.
3386         (const_exp_16_operand): Likewise.
3387         (const_vector_same_val_operand): Likewise.
3388         (const_vector_same_simm5_operand): Likewise.
3389         (const_vector_same_uimm5_operand): Likewise.
3390         (const_vector_same_uimm6_operand): Likewise.
3391         (const_vector_same_uimm8_operand): Likewise.
3392         (par_const_vector_shf_set_operand): Likewise.
3393         (reg_or_vector_same_val_operand): Likewise.
3394         (reg_or_vector_same_simm5_operand): Likewise.
3395         (reg_or_vector_same_uimm6_operand): Likewise.
3396         * doc/extend.texi (MIPS SIMD Architecture Functions): New
3397         section.
3398         * doc/invoke.texi (-mmsa): Document new option.
3399
3400 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3401
3402         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
3403         * configure: Regenerate.
3404         * config.in: Regenerate.
3405         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
3406         on -fvtable-verify.
3407         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
3408         (ENDFILE_VTV_SPEC): Define.
3409
3410 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
3411
3412         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
3413         registers in all interrupt handlers if necessary.
3414         (rl78_option_override): Add warning.
3415         (MUST_SAVE_MDUC_REGISTERS): New macro.
3416         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
3417         * config/rl78/rl78.c (check_mduc_usage): New function.
3418         (mduc_regs): New structure to hold MDUC register data.
3419         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
3420         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
3421         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
3422         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
3423         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
3424         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
3425
3426 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
3427
3428         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
3429         (tree-ssa-loop-niter.h): Ditto.
3430         (idx_within_array_bound, ref_within_array_bound): New functions.
3431         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
3432         Factor out check on writable base object to ...
3433         (base_object_writable): ... here.
3434
3435 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3436
3437         * config/arm/arm.md (probe_stack): Add modes to set source
3438         and destination.
3439
3440 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
3441
3442         * regrename.c (base_reg_class_for_rename): New static function.
3443         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
3444
3445 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
3446
3447         * cgraph.c (thunk_adjust): Export.
3448         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
3449         * cgraphunit.c (thunk_adjust): Export.
3450         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
3451         thunks.
3452         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
3453         inlinable.
3454         * tree-inline.c (expand_call_inline): Expand thunks inline.
3455
3456 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
3457
3458         PR target/70998
3459         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
3460         (*sse2_vd_cvtss2sd): Ditto.
3461         * config/i386/i386.md
3462         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
3463         Generate *sse2_vd_cvtsd2ss pattern.
3464         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
3465         Generate *sse2_vd_cvtss2sd pattern.
3466
3467 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
3468
3469         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
3470         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
3471         users.
3472
3473 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
3474
3475         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
3476         * config/sh/sh.c: Define and declare variables on first use throughout
3477         the file.
3478         (current_function_interrupt): Change to bool type.
3479         (frame_insn): Rename to emit_frame_insn and update users.
3480         (push_regs): Use bool for 'interrupt_handler' argument.
3481         (save_schedule_s): Remove.
3482         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
3483         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
3484         targetm.asm_out.unaligned_op.di.
3485         (gen_far_branch): Remove redundant forward declaration.
3486         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
3487         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
3488         (sh_set_return_address, sh_function_ok_for_sibcall,
3489         scavenge_reg): Update comments.
3490         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
3491         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
3492         (sh_attr_renesas_p): Remove unnecessary parentheses.
3493         (branch_dest): Simplify.
3494         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
3495         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
3496         (CUMULATIVE_ARGS): Change macro to typedef.
3497         (current_function_interrupt): Change to bool type.
3498         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
3499         Surround with __cplusplus ifdef.
3500         (sh_compare_op0, sh_compare_op1): Remove.
3501         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
3502
3503 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
3504
3505         * config/arm/arm.md: (arch): Add neon.
3506         (arch_enabled): Return yes for arch neon when TARGET_NEON.
3507         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
3508         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
3509         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
3510         attributes for alt renumbering.  Mark alt 3 as non-predicable.
3511         (thumb2_movdf_vfp): Likewise.
3512
3513 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
3514
3515         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
3516         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
3517         (*andqi_1): Add preferred_for_speed attribute to disparage
3518         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
3519         (*<code>qi_1): Ditto.
3520         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
3521         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
3522         (*ashlqi3_1): Ditto.
3523         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
3524         Add preferred_for_size attribute to disparage alternative 0 and
3525         preferred_for_speed attribute to disparage alternative 1 for
3526         TARGET_PARTIAL_REG_STALL targets.
3527
3528 2016-05-07  Tom de Vries  <tom@codesourcery.com>
3529
3530         PR tree-optimization/70956
3531         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
3532         def.
3533
3534 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
3535
3536         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
3537         * config/sh/sh.c (sh_cbranch_distance): Implement it.
3538         * config/sh/sh.md (branch_zero): Remove define_attr.
3539         (define_delay): Disable delay slot if branch distance is one insn.
3540
3541 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
3542
3543         * config/i386/i386.md (LEAMODE): New mode attribute.
3544         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
3545         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
3546         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
3547         operand 2 predicate.
3548         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
3549         (*lea<mode>_general_3): Ditto.
3550         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
3551
3552 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
3553
3554         * genmddump.c (main): Convert argv from char ** to const char **.
3555
3556 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
3557
3558         * coretypes.h (OVERRIDE): New macro.
3559         (FINAL): New macro.
3560
3561 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
3562
3563         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
3564         allow coalescing if the types are compatible.
3565
3566 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
3567
3568         * pass_manager.h (pass_manager::register_pass_name): New method.
3569         (pass_manager::get_pass_by_name): New method.
3570         (pass_manager::create_pass_tab): New method.
3571         (pass_manager::m_name_to_pass_map): New field.
3572         * passes.c (name_to_pass_map): Delete global in favor of field
3573         "m_name_to_pass_map" of pass_manager.
3574         (register_pass_name): Rename from a function to...
3575         (pass_manager::register_pass_name): ...this method, updating
3576         for renaming of global "name_to_pass_map" to field
3577         "m_name_to_pass_map".
3578         (create_pass_tab): Rename from a function to...
3579         (pass_manager::create_pass_tab): ...this method, updating
3580         for renaming of global "name_to_pass_map" to field.
3581         (get_pass_by_name): Rename from a function to...
3582         (pass_manager::get_pass_by_name): ...this method.
3583         (enable_disable_pass): Convert use of get_pass_by_name to
3584         a method call, locating the pass_manager singleton.
3585
3586 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
3587
3588         * genattr-common.c (main): Convert argv from char ** to const char **.
3589         * genattr.c (main): Likewise.
3590         * genattrtab.c (main): Likewise.
3591         * genautomata.c (initiate_automaton_gen): Likewise.
3592         (main): Likewise.
3593         * gencodes.c (main): Likewise.
3594         * genconditions.c (main): Likewise.
3595         * genconfig.c (main): Likewise.
3596         * genconstants.c (main): Likewise.
3597         * genemit.c (main): Likewise.
3598         * genenums.c (main): Likewise.
3599         * genextract.c (main): Likewise.
3600         * genflags.c (main): Likewise.
3601         * genmddeps.c (main): Likewise.
3602         * genopinit.c (main): Likewise.
3603         * genoutput.c (main): Likewise.
3604         * genpeep.c (main): Likewise.
3605         * genpreds.c (main): Likewise.
3606         * genrecog.c (main): Likewise.
3607         * gensupport.c (init_rtx_reader_args_cb): Likewise.
3608         (init_rtx_reader_args): Likewise.
3609         * gensupport.h (init_rtx_reader_args_cb): Likewise.
3610         (init_rtx_reader_args): Likewise.
3611         * gentarget-def.c (main): Likewise.
3612         * read-md.c (read_md_files): Likewise.
3613         * read-md.h (read_md_files): Likewise.
3614
3615 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
3616
3617         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
3618         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
3619         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
3620         Remove unused predicate.
3621         (register_and_not_fp_reg_operand): Ditto.
3622
3623 2016-05-06  Martin Liska  <mliska@suse.cz>
3624
3625         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
3626         instead of vec as the vector is local to the function.
3627
3628 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
3629
3630         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
3631         avx512bw alternative.
3632
3633         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
3634         before the ashr<mode>3 pattern.
3635
3636         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
3637         v instead of x in vex or maybe_vex alternatives, use
3638         maybe_evex instead of vex in prefix.
3639
3640         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
3641         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
3642         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
3643         in vex or maybe_vex alternatives, use maybe_evex instead of vex
3644         in prefix.
3645
3646         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
3647         v instead of x in vex or maybe_vex alternatives, use
3648         maybe_evex instead of vex in prefix.
3649
3650         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
3651         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
3652         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
3653         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
3654         alternatives, use maybe_evex instead of vex in prefix.
3655
3656         * config/i386/sse.md (vec_interleave_lowv4sf,
3657         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
3658         v instead of x in vex or maybe_vex alternatives, use
3659         maybe_evex instead of vex in prefix.
3660
3661         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
3662         v instead of x in vex or maybe_vex alternatives, use
3663         maybe_evex instead of vex in prefix.
3664
3665         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
3666         v constraint instead of x.
3667
3668 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
3669
3670         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
3671         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
3672         equality first.
3673
3674 2016-05-06  Richard Biener  <rguenther@suse.de>
3675
3676         PR tree-optimization/70948
3677         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3678         Properly clobber all fields of va_list for __builtin_va_start.
3679
3680 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
3681
3682         PR debug/70935
3683         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
3684         loop latch destination.
3685
3686 2016-05-06  Martin Liska  <mliska@suse.cz>
3687
3688         * tree-ssa-uninit.c: Apply manual changes
3689         to the GNU coding style.
3690         (prune_uninit_phi_opnds): Rename from
3691         prune_uninit_phi_opnds_in_unrealizable_paths.
3692
3693 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
3694
3695         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
3696         mspace): Remove deprecated options.
3697         * doc/invoke.texi (SH options): Remove -mspace.
3698
3699 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
3700
3701         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
3702
3703 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
3704
3705         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
3706         corresponding combine split pattern.
3707
3708 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
3709
3710         PR target/58219
3711         * config/sh/predicates.md (long_displacement_mem_operand): New.
3712         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
3713         Add movi20, movi20s alternatives.  Adjust length attribute for
3714         alternatives.
3715         (movsi_ie): Allow for any FPU.  Adjust length attribute for
3716         alternatives.
3717         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
3718         attribute for alternatives.
3719         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
3720         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
3721         length attribute for alternatives.
3722
3723 2016-05-06  Richard Biener  <rguenther@suse.de>
3724
3725         PR tree-optimization/70960
3726         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
3727
3728 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
3729
3730         PR target/52933
3731         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
3732         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
3733
3734 2016-05-06  Marek Polacek  <polacek@redhat.com>
3735
3736         PR sanitizer/70875
3737         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
3738
3739 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
3740
3741         PR target/54089
3742         * config/sh/sh.md (*rotcr): Add another variant.
3743
3744 2016-05-06  Richard Biener  <rguenther@suse.de>
3745
3746         PR middle-end/70931
3747         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
3748
3749 2016-05-06  Richard Biener  <rguenther@suse.de>
3750
3751         PR middle-end/70941
3752         * fold-const.c (split_tree): Always convert to the original type
3753         before negating.
3754
3755 2016-05-06  Richard Biener  <rguenther@suse.de>
3756
3757         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
3758         (fwprop_addr): Likewise.
3759
3760 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
3761
3762         PR target/70873
3763         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
3764         New prototype.
3765         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
3766         * config/i386/i386.md (push mem splitter): Use find_constant_src in
3767         the splitter condition.
3768         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
3769         the splitter condition.
3770         (FP float_extend load splitter): Ditto.
3771
3772 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
3773
3774         * config/i386/i386.md (peehole2 patterns): Change true_regnum
3775         to REGNO in all peephole2 patterns.
3776         (post-reload splitters): Change true_regnum to REGNO in
3777         post-reload splitters.
3778         (zero_extend splitters): Use general_reg_operand and
3779         nonimmediate_gr_operand predicates.
3780
3781 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
3782
3783         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
3784         v constraint instead of x.
3785
3786 2016-05-05  Alan Modra  <amodra@gmail.com>
3787
3788         PR target/68662
3789         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
3790         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
3791         TARGET_NO_FP_IN_TOC for -mrelocatable.
3792         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
3793         TARGET_RELOCATABLE test.
3794         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
3795         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3796         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
3797         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
3798         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3799         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
3800         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
3801         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3802         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
3803         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
3804         Likewise.
3805         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
3806         (rs6000_stack_info): Likewise.
3807         (rs6000_elf_asm_out_constructor): Likewise.
3808         (rs6000_elf_asm_out_destructor): Likewise.
3809         (rs6000_elf_declare_function_name): Likewise.
3810         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
3811         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
3812         Don't define.
3813
3814 2016-05-05  Alan Modra  <amodra@gmail.com>
3815
3816         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
3817
3818 2016-05-05  Alan Modra  <amodra@gmail.com>
3819
3820         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
3821         out-of-line gpr restore for one or two regs if that would add
3822         a save of lr.
3823
3824 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
3825
3826         PR target/70873
3827         * config/i386/i386.md
3828         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
3829         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
3830         as operand 0 predicate.
3831         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
3832         Ditto.
3833         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
3834         Ditto.  Emit the pattern using RTX.
3835
3836         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
3837         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
3838         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
3839         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
3840         Ditto.
3841         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
3842         sse_reg_operand as operand 0 predicate.
3843
3844         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
3845         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
3846         instead of gen_rtx_REG.
3847         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
3848         Ditto.
3849
3850 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
3851
3852         * function.c (emit_use_return_register_into_block): Delete.
3853         (gen_return_pattern): Delete.
3854         (emit_return_into_block): Delete.
3855         (active_insn_between): Delete.
3856         (convert_jumps_to_returns): Delete.
3857         (emit_return_for_exit): Delete.
3858         (thread_prologue_and_epilogue_insns): Delete all code dealing with
3859         simple_return for shrink-wrapped blocks.
3860         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
3861         end of blocks that need one.
3862         (get_unconverted_simple_return): Delete.
3863         (convert_to_simple_return): Delete.
3864         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
3865         (convert_to_simple_return): Ditto.
3866
3867 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
3868
3869         * cfgcleanup.c (bb_is_just_return): New function.
3870         (try_optimize_cfg): Simplify jumps to return, branches to return,
3871         and branches around return.
3872
3873 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
3874
3875         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
3876         branch to a return.
3877
3878 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
3879
3880         PR c++/70906
3881         PR c++/70933
3882         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
3883         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
3884         assert flags & OEP_HASH_CHECK, instead of asserting it
3885         never happens.  Handle TARGET_EXPR.
3886         * fold-const.c (operand_equal_p): For hash verification,
3887         or in OEP_HASH_CHECK into flags.
3888
3889 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3890
3891         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
3892         comment.
3893         (compute_samebase_partition_bases): Fix typo.
3894
3895 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
3896
3897         * config/i386/sse.md (vec_interleave_highv8sf,
3898         vec_interleave_lowv8sf, vec_interleave_highv4df,
3899         vec_interleave_lowv4df): Remove constraints from expanders.
3900
3901         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
3902
3903 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
3904
3905         * tree-inline.c (expand_call_inline): Fix path dealing with
3906         making lhs of call statement undefined.
3907
3908 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
3909
3910         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
3911         Check availability on NODE, too.
3912         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
3913         (cgraph_node::call_for_symbol_and_aliases): Likewise.
3914         (varpool_node::call_for_symbol_and_aliase): Likewise.
3915         * ipa-pure-const.c (add_new_function): Analyze all bodies.
3916         (propagate_pure_const): Propagate across interposable functions, too.
3917         (skip_function_for_local_pure_const): Do not skip interposable bodies
3918         with aliases.
3919         (pass_local_pure_const::execute): Update.
3920
3921 2016-05-04  Marek Polacek  <polacek@redhat.com>
3922
3923         * doc/invoke.texi: Document -Wdangling-else.
3924
3925 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3926
3927         * config.gcc: Error out when conflicting multilib is detected.  Do not
3928         loop over multilibs since no combination is legal.
3929
3930 2016-05-04  Alan Modra  <amodra@gmail.com>
3931
3932         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
3933         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
3934         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
3935         Align .toc.
3936
3937 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
3938
3939         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
3940         Clean up p5600 comments.
3941
3942 2016-05-04  Richard Biener  <rguenther@suse.de>
3943
3944         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
3945         constructor simplifications.
3946         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
3947
3948 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
3949
3950         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
3951         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
3952         result.set_rtx is null instead of aborting.
3953         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
3954         Always enable.
3955         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
3956         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
3957         *mov<mode>_store_postinc): New patterns.
3958
3959 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
3960
3961         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
3962         as commutative.  Check both conversions are NOP.
3963         ((A & B) OP (C & B)): Remove.
3964
3965 2016-05-04  Alan Modra  <amodra@gmail.com>
3966
3967         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
3968
3969 2016-05-04  Alan Modra  <amodra@gmail.com>
3970
3971         PR target/70866
3972         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
3973         when cr2,3,4 are all fixed regs.
3974
3975 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
3976
3977         PR rtl-optimization/57193
3978         * opts.c (default_options_table): Revert OPT_frename_registers change.
3979         * doc/invoke.texi (-frename-registers, -O2): Likewise.
3980
3981 2016-05-03  Martin Sebor  <msebor@redhat.com>
3982
3983         PR c++/66561
3984         * builtins.c (fold_builtin_FILE): New function.
3985         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
3986         (fold_builtin_0): Call them.
3987         * gimplify.c (gimplify_call_expr): Remove the handling of
3988         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
3989
3990         PR c++/66561
3991         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
3992         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
3993         constants.
3994
3995         PR c++/66639
3996         * doc/extend.texi (Function Names as Strings): Update __func__,
3997         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
3998         constants.
3999
4000 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
4001             Richard Biener  <rguenther@suse.de>
4002
4003         PR tree-optimization/70916
4004         * tree-if-conv.c: Include cfganal.h.
4005         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
4006         and remove_fake_exit_edges around the optimization pass.
4007
4008 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
4009
4010         * cgraph.c (symbol_table::create_edge): Set inline_failed.
4011         (cgraph_edge::make_direct): Likewise.
4012         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
4013         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
4014         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
4015         (CIF_THUNK): New code.
4016         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
4017         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
4018         (compute_inline_parameters): Set inline_failed for thunks.
4019         (inline_analyze_function): Cleanup.
4020         * ipa-inline.c (can_inline_edge_p): Do not deal with
4021         call_stmt_cannot_inline_p.
4022         (can_early_inline_edge_p): Likewise.
4023         (early_inliner): Initialize inline_failed.
4024         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
4025
4026 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
4027
4028         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
4029         from nonimm_ssenomem_operand.
4030         (nonimm_ssenomem_operand): New predicate.
4031         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
4032         as operand 0 predicate.
4033         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
4034         Disable unsupported alternatives using "enabled" attribute.
4035         Use register_ssemem_operand as operand 0 predicate.
4036         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
4037
4038 2016-05-03  Marek Polacek  <polacek@redhat.com>
4039
4040         PR c/70859
4041         * input.c (expansion_point_location): New function.
4042         * input.h (expansion_point_location): Declare.
4043
4044 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
4045
4046         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
4047         occurence with frame_offset_ ones.
4048
4049 2016-05-03  Alan Modra  <amodra@gmail.com>
4050
4051         PR rtl-optimization/70890
4052         * ira.c (combine_and_move_insns): When moving def_insn, remove
4053         equivs on use_insn.
4054
4055 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4056
4057         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
4058         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
4059         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
4060         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
4061
4062 2016-05-03  Alan Modra  <amodra@gmail.com>
4063
4064         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
4065         for SAVE_MULTIPLE/STORE_MULTIPLE.
4066
4067 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
4068
4069         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
4070         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
4071
4072 2016-05-03  Richard Biener  <rguenther@suse.de>
4073
4074         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
4075         default true.
4076         (gimplify_arg): Likewise.
4077         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
4078         re-writing the result to a decl if required.
4079         (internal_get_tmp_var): Add allow_ssa parameter
4080         and override into_ssa with it.
4081         (get_formal_tmp_var): Adjust.
4082         (get_initialized_tmp_var): Add allow_ssa parameter.
4083         (gimplify_arg): Add allow_ssa parameter and avoid generating
4084         SSA names for the result false.
4085         (gimplify_call_expr): If the call may return twice do not
4086         gimplify parameters into SSA.
4087         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
4088         (gimplify_modify_expr): Adjust assert.  For noreturn calls
4089         with a SSA name LHS adjust its def.
4090         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
4091         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
4092         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
4093         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
4094         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
4095         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
4096         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
4097         (optimize_target_teams): Do not allow SSA names for clause operands.
4098         (gimplify_expr): Likewise for where we mark the result addressable.
4099         * passes.def (pass_init_datastructures): Remove.
4100         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
4101         (rewrite_stmt): Likewise.
4102         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
4103         (replace_locals_op): Replace SSA names.
4104         (copy_gimple_seq_and_replace_locals): Init src_cfun.
4105         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
4106         * cgraph.c (release_function_body): Free CFG annotations only
4107         when we have a CFG.  Simplify.
4108         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
4109         force_gimple_operand instead of get_initialized_tmp_var.
4110         * tree-pass.h (make_pass_init_datastructures): Remove.
4111         * tree-ssa.c (execute_init_datastructures): Remove.
4112         (pass_data_init_datastructures): Likewise.
4113         (class pass_init_datastructures): Likewise.
4114         (make_pass_init_datastructures): Likewise.
4115         * omp-low.c (create_omp_child_function): Init SSA data structures.
4116         (grid_expand_target_grid_body): Likewise.
4117         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
4118         name before adding it to names_to_release.
4119         (remove_bb): Always release SSA defs.
4120         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
4121         before dereferencing it.
4122         * cgraphunit.c (init_lowered_empty_function): Always
4123         int SSA data structures.
4124         * tree-ssanames.c (release_defs): Remove assert that we are in
4125         SSA form.
4126         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
4127
4128 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
4129             Uros Bizjak  <ubizjak@gmail.com>
4130
4131         PR rtl-optimization/70467
4132         * config/i386/predicates.md (x86_64_hilo_int_operand,
4133         x86_64_hilo_general_operand): New predicates.
4134         * config/i386/constraints.md (Wd): New constraint.
4135         * config/i386/i386.md (mode attr di): Use Wd instead of e.
4136         (general_hilo_operand): New mode attr.
4137         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
4138         instead of <general_operand>.
4139         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
4140         x86_64_hilo_general_operand instead of <general_operand>.
4141
4142 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
4143
4144         PR tree-optimization/70916
4145         * tree-if-conv.c (constant_or_ssa_name): Removed.
4146         (fold_build_cond_expr): Use is_gimple_val instead of
4147         constant_or_ssa_name.
4148
4149         PR tree-optimization/70916
4150         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
4151         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
4152
4153         PR target/49244
4154         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
4155         (optimize_atomic_bit_test_and): New function.
4156         (pass_fold_builtins::execute): Use it.
4157         * optabs.def (atomic_bit_test_and_set_optab,
4158         atomic_bit_test_and_complement_optab,
4159         atomic_bit_test_and_reset_optab): New optabs.
4160         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
4161         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
4162         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
4163         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
4164         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
4165         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
4166         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
4167         * doc/md.texi (atomic_bit_test_and_set@var{mode},
4168         atomic_bit_test_and_complement@var{mode},
4169         atomic_bit_test_and_reset@var{mode}): Document.
4170         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
4171         atomic_bit_test_and_complement<mode>,
4172         atomic_bit_test_and_reset<mode>): New expanders.
4173         (atomic_bit_test_and_set<mode>_1,
4174         atomic_bit_test_and_complement<mode>_1,
4175         atomic_bit_test_and_reset<mode>_1): New insns.
4176
4177 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
4178
4179         PR rtl-optimization/70687
4180         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
4181         instead of unsigned HOST_WIDE_INT.
4182
4183 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
4184
4185         PR rtl-optimization/44281
4186         * hard-reg-set.h (struct target_hard_regs): New field
4187         x_fixed_nonglobal_reg_set.
4188         (fixed_nonglobal_reg_set): New macro.
4189         * reginfo.c (init_reg_sets_1): Initialize it.
4190         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
4191         of fixed_reg_set.
4192         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
4193
4194 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
4195
4196         PR tree-optimization/56541
4197         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
4198         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
4199         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
4200         (any_complicated_phi): new static variable.
4201         (aggressive_if_conv): delete.
4202         (if_convertible_phi_p): support phis with more than two arguments.
4203         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
4204         critical pred edges.
4205         (ifcvt_split_critical_edges): support phis with more than two
4206         arguments by checking new parameter.  only split critical edges
4207         if needed.
4208         (tree_if_conversion): handle simd pragma marked loop using new
4209         local variable aggressive_if_conv.  check any_complicated_phi.
4210
4211 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
4212
4213         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
4214         before using it.
4215
4216 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
4217
4218         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
4219         cbase.
4220
4221 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
4222
4223         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
4224         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
4225         define_insn_and_split.
4226         (mulsi3_i): New define_insn_and_split.
4227         (mulsi3_call): Convert to define_insn.
4228         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
4229         Remove constraints.
4230
4231 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
4232
4233         * machmode.h (mode_complex): Add support to give the complex mode
4234         for a given mode.
4235         (GET_MODE_COMPLEX_MODE): Likewise.
4236         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
4237         stored by build_complex_type and gfc_build_complex_type instead of
4238         trying to figure out the appropriate mode based on the size. Raise
4239         an assertion error, if the type was not set.
4240         * genmodes.c (struct mode_data): Add field for the complex type of
4241         the given type.
4242         (blank_mode): Likewise.
4243         (make_complex_modes): Remember the complex mode created in the
4244         base type.
4245         (emit_mode_complex): Write out the mode_complex array to map a
4246         type mode to the complex version.
4247         (emit_insn_modes_c): Likewise.
4248         * tree.c (build_complex_type): Set the complex type to use before
4249         calling layout_type.
4250         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
4251         support for __float128 complex datatypes.
4252         (rs6000_hard_regno_mode_ok): Likewise.
4253         (rs6000_setup_reg_addr_masks): Likewise.
4254         (rs6000_complex_function_value): Likewise.
4255         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
4256         __float128 and __ibm128 complex.
4257         (FLOAT128_IBM_P): Likewise.
4258         (ALTIVEC_ARG_MAX_RETURN): Likewise.
4259         * doc/extend.texi (Additional Floating Types): Document that
4260         -mfloat128 must be used to enable __float128.  Document complex
4261         __float128 and __ibm128 support.
4262
4263 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
4264
4265         PR target/49244
4266         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
4267         char/short arguments promoted to int because of promote_prototypes.
4268
4269 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
4270
4271         * config/i386/predicates.md (register_ssemem_operand): New predicate.
4272         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
4273         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
4274         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
4275         alternatives using "enabled" attribute.  Use register_ssemem_operand
4276         as operand 1 predicate.
4277         (*cmpi<unord>xf_i387): Split XFmode pattern from
4278         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
4279         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
4280         *absneg<mode>2_i387.  Disable unsupported alternatives using
4281         "enabled" attribute.
4282         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
4283
4284 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
4285
4286         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
4287         marker.
4288         (oacc_loop_process): Check mask for loop termination.
4289
4290 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
4291
4292         * cif-code.def (CIF_THUNK): Add.
4293         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
4294         accidental change.
4295
4296 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
4297
4298         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
4299         (dump_inline_summary): Dump it.
4300         (fp_expression_p): New predicate.
4301         (estimate_function_body_sizes): Use it.
4302         (inline_merge_summary): Merge fp_expressions.
4303         (inline_read_section): Read fp_expressions.
4304         (inline_write_summary): Write fp_expressions.
4305         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
4306         codegen boundary if either caller or callee is !fp_expressions.
4307         * ipa-inline.h (inline_summary): Add fp_expressions.
4308         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
4309         to fp_expressions be sure the fp generation flags are updated.
4310
4311 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
4312
4313         PR rtl-optimization/70467
4314         * cse.c (cse_insn): Handle no-op MEM moves after folding.
4315
4316         PR rtl-optimization/70467
4317         * ipa-pure-const.c (check_call): Handle internal calls even in
4318         ipa mode like in local mode.
4319
4320 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4321
4322         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
4323
4324 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
4325
4326         * match.pd (X u< X, X u> X): New transformations.
4327
4328 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
4329
4330         * flag-types.h (enum warn_strict_overflow_code): Move ...
4331         * coretypes.h: ... here.
4332         * fold-const.h (fold_overflow_warning): Declare.
4333         * fold-const.c (fold_overflow_warning): Make non-static.
4334         (fold_comparison): Move the transformation of X +- C1 CMP C2
4335         into X CMP C2 -+ C1 ...
4336         * match.pd: ... here.
4337         * gimple-fold.c (fold_stmt_1): Protect with
4338         fold_defer_overflow_warnings.
4339
4340 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
4341
4342         * omp-low.c (struct oacc_loop): Add 'inner' field.
4343         (new_oacc_loop_raw): Initialize it to zero.
4344         (oacc_loop_fixed_partitions): Initialize it.
4345         (oacc_loop_auto_partitions): Partition outermost loop to outermost
4346         available partitioning.
4347
4348 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
4349
4350         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
4351         register_operand.
4352         (umulsidi3): Likewise.
4353         (indirect_jump): Fix jump instruction assembly patterns.
4354
4355 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
4356
4357         PR target/70860
4358         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
4359         (nvptx_function_value): Assert non-NULL cfun.
4360
4361 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
4362
4363         PR rtl-optimization/70886
4364         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
4365
4366         * cselib.h (rtx_equal_for_cselib_1): Declare.
4367         (rtx_equal_for_cselib_p: New inline function.
4368         * cselib.c (rtx_equal_for_cselib_p): Delete.
4369         (rtx_equal_for_cselib_1): Make public.
4370
4371 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
4372
4373         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
4374         (register_mixssei387nonimm_operand): Remove predicate.
4375         * config/i386/i386.md (*fop_<mode>_comm): Merge from
4376         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
4377         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
4378         for TARGET_MIX_SSE_I387 alternatives.
4379         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
4380         Disable unsupported alternatives using "enabled" attribute.  Use
4381         nonimm_ssenomem_operand as operand 1 predicate.  Also check
4382         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
4383
4384 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
4385
4386         * tree.c (cst_and_fits_in_hwi): Simplify.
4387
4388 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
4389
4390         * tree.h (wi::to_wide): New function.
4391         * expr.c (expand_expr_real_1): Use wi::to_wide.
4392         * fold-const.c (int_const_binop_1): Likewise.
4393         (extract_muldiv_1): Likewise.
4394
4395 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
4396
4397         * wide-int.h: Update offset_int and widest_int documentation.
4398         (WI_SIGNED_SHIFT_RESULT): New macro.
4399         (wi::binary_shift): Define signed_shift_result_type for
4400         shifts on offset_int- and widest_int-like types.
4401         (generic_wide_int): Support <<= and >>= if << and >> are supported.
4402         * tree.h (int_bit_position): Use shift operators instead of wi::
4403          shifts.
4404         * alias.c (adjust_offset_for_component_ref): Likewise.
4405         * expr.c (get_inner_reference): Likewise.
4406         * fold-const.c (fold_comparison): Likewise.
4407         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
4408         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
4409         * tree-dfa.c (get_ref_base_and_extent): Likewise.
4410         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
4411         (stmt_kills_ref_p): Likewise.
4412         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
4413         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
4414         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
4415         (ao_ref_init_from_vn_reference): Likewise.
4416
4417 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
4418
4419         * wide-int.h: Update offset_int and widest_int documentation.
4420         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
4421         (wi::binary_traits): Allow ordered comparisons between offset_int and
4422         offset_int, between widest_int and widest_int, and between either
4423         of these types and basic C types.
4424         (operator <, <=, >, >=): Define for the same combinations.
4425         * tree.h (tree_int_cst_lt): Use comparison operators instead
4426         of wi:: comparisons.
4427         (tree_int_cst_le): Likewise.
4428         * gimple-fold.c (fold_array_ctor_reference): Likewise.
4429         (fold_nonarray_ctor_reference): Likewise.
4430         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
4431         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
4432         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
4433         * tree-sra.c (completely_scalarize): Likewise.
4434         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
4435         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
4436         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
4437         (check_for_binary_op_overflow): Likewise.
4438         (search_for_addr_array): Likewise.
4439         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
4440
4441 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
4442
4443         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
4444         (arc_save_restore): Likewise.
4445         (arc_dwarf_register_span): Likewise.
4446         (arc_output_pic_addr_const): Initialize suffix variable.
4447
4448 2016-05-02  Martin Liska  <mliska@suse.cz>
4449
4450         * symbol-summary.h (function_summary::function_summary):
4451         Remove checking assert for all cgraph nodes.
4452         (function_summary::get): Check summary_uid.
4453         (symtab_insertion): Check summary_uid.
4454
4455 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
4456
4457         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
4458         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
4459         bmaskn instruction.
4460         (arc_dwarf_register_span): Remove enum keyword.
4461         (compact_memory_operand_p): New function.
4462         * config/arc/arc.h (reg_class): Add code density register classes.
4463         (REG_CLASS_NAMES): Likewise.
4464         (REG_CLASS_CONTENTS): Likewise.
4465         * config/arc/arc.md (*movqi_insn): Add code density instructions.
4466         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
4467         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
4468         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
4469         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
4470         constraints.
4471         (h, Rcd, Rsd, Rzd): New register constraints.
4472         (T): Use compact_memory_operand_p function.
4473         * config/arc/predicates.md (compact_load_memory_operand): Remove.
4474
4475 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
4476
4477         * config/sh/sh.md (*negnegt, *movtt): Remove.
4478
4479 2016-05-02  Marek Polacek  <polacek@redhat.com>
4480             Tom de Vries  <tom@codesourcery.com>
4481
4482         PR tree-optimization/70700
4483         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
4484         bigger than FIRST_REF_NODE.
4485
4486 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
4487
4488         PR target/52898
4489         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
4490         TARGET_CMPEQDI_T.
4491         (prepare_cbranch_operands): Don't use scratch register.  Assume that
4492         function is used when pseudos can be created.
4493         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
4494         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
4495         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
4496         define_expand.  Allow it only when pseudos can be created.
4497         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
4498
4499 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
4500
4501         * config/i386/constraints.md (BC): Only allow -1 operands.
4502         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
4503         Add "enabled" attribute.  Update XI mode attribute calculation.
4504         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
4505         (*movoi_internal_avx): Update XI mode attribute calculation.
4506         (*movti_internal): Ditto.
4507
4508 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
4509
4510         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
4511         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
4512
4513 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
4514
4515         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
4516         statement on instruction code.  Remove trailing spaces.
4517         (altivec_expand_stv_builtin): Likewise.
4518
4519 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
4520
4521         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
4522         (TARGET_FPU_DOUBLE): Simplify.
4523         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
4524         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
4525         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
4526         with 'TARGET_FPU_DOUBLE'.
4527         * config/sh/sh.md: Likewise.
4528
4529 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
4530
4531         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
4532         SH_DIV_STR_FOR_SIZE): Remove.
4533         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
4534         SH_DIV_STR_FOR_SIZE): Remove.
4535
4536 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
4537
4538         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
4539         logical_reg_operand): Delete.
4540         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
4541         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
4542         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
4543         match_operand and match_test.
4544         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
4545         variables on their first use.  Return bool values.
4546         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
4547         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
4548         arith_reg_operand for input operand.  Remove empty constraints.
4549         (xorsi3): Delete.
4550         (*xorsi3_compact): Rename to xorsi3.
4551         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
4552         (*zero_extend<mode>si2_disp_mem): Update comment.
4553         (mov_nop): Delete.
4554
4555 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
4556
4557         * config/sh/t-sh: Remove SH5 support.
4558         * config.gcc: Likewise.
4559         * configure: Likewise.
4560
4561 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4562
4563         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
4564
4565 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
4566
4567         * config/sh/sh.c (register_sh_passes, sh_option_override,
4568         sh_print_operand, prepare_move_operands,
4569         sh_can_follow_jump): Remove TARGET_SH1 checks.
4570         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
4571         PROMOTE_MODE): Likewise.
4572         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
4573         movdi): Likewise.
4574
4575 2016-04-30  Alan Modra  <amodra@gmail.com>
4576
4577         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
4578         restoring when fixed_reg_p, but allow out-of-line or stmw save.
4579         Check for user regs later to avoid unnecessary looping over regs.
4580         Merge user reg check with non-saved reg check.  Don't force
4581         inline VR restore when static chain used.
4582         (rs6000_frame_related): Omit eh_frame info for user regs when
4583         saving.
4584         (fixed_regs_p): Delete.
4585
4586 2016-04-30  Alan Modra  <amodra@gmail.com>
4587
4588         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
4589         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
4590         Update all uses.
4591
4592 2016-04-30  Alan Modra  <amodra@gmail.com>
4593
4594         PR target/69645
4595         * config/rs6000/rs6000.c (fixed_reg_p): New function.
4596         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
4597         Update all uses.
4598
4599 2016-04-30  Alan Modra  <amodra@gmail.com>
4600
4601         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
4602         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
4603         flag_pic test for Darwin.
4604
4605 2016-04-30  Alan Modra  <amodra@gmail.com>
4606
4607         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
4608         throw_calls_crossed.
4609         (REG_FREQ_CALLS_CROSSED): Delete.
4610         (REG_N_THROWING_CALLS_CROSSED): Delete.
4611         * regstat.c (regstat_bb_compute_ri): Don't calculate
4612         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
4613         (dump_reg_info): Don't print call cross frequency.
4614         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
4615         and REG_N_THROWING_CALLS_CROSSED.
4616
4617 2016-04-30  Alan Modra  <amodra@gmail.com>
4618
4619         * regs.h (struct reg_info_t): Delete live_length.
4620         (REG_LIVE_LENGTH): Delete macro.
4621         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
4622         local_live, local_processed and local_live_last_luid params.
4623         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
4624         Formatting fixes.
4625         (regstat_compute_ri): Adjust for above.  Don't set
4626         REG_LIVE_LENGTH.
4627         (dump_reg_info): Don't print live length.
4628         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
4629         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
4630         Localize loop_depth var.
4631
4632 2016-04-30  Alan Modra  <amodra@gmail.com>
4633
4634         * ira.c (enum valid_equiv): New.
4635         (validate_equiv_mem): Return enum.
4636         (update_equiv_mem): Create replacement in more cases.
4637         (add_store_equivs): Update validate_equiv_mem call.
4638
4639 2016-04-30  Alan Modra  <amodra@gmail.com>
4640
4641         * ira.c (combine_and_move_insns): Rather than scanning insns,
4642         use DF infrastucture to find use and def insns.
4643
4644 2016-04-30  Alan Modra  <amodra@gmail.com>
4645
4646         ira.c (combine_and_move_insns): Move invariant conditions..
4647         (ira.c): ..to here.  Call combine_and_move_insns before
4648         add_store_equivs.  Call grow_reg_equivs later.  Allocate
4649         req_equiv later using max_reg_num() rather than global max_regno.
4650         (contains_replace_regs): Delete.
4651         (add_store_equivs): Remove contains_replace_regs test.
4652
4653 2016-04-30  Alan Modra  <amodra@gmail.com>
4654
4655         * ira.c (struct equiv_mem_data): New.
4656         (equiv_mem, equiv_mem_modified): Delete static vars.
4657         (validate_equiv_mem_from_store): Use "data" param to communicate..
4658         (validate_equiv_mem): ..from here.
4659
4660 2016-04-30  Alan Modra  <amodra@gmail.com>
4661
4662         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
4663         split out from..
4664         (update_reg_equivs): ..here.  Move allocation and freeing of
4665         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
4666         end_alias_analysis to..
4667         (ira): ..here.
4668
4669 2016-04-30  Alan Modra  <amodra@gmail.com>
4670
4671         * ira.c (pdx_subregs): Delete.
4672         (struct equivalence): Add pdx_subregs field.
4673         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
4674         pdx_subregs access.
4675         (update_equiv_regs): Don't create or free pdx_subregs.  Update
4676         pdx_subregs access.
4677
4678 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4679
4680         * config/rs6000/altivec.h: Change definitions of vec_xl and
4681         vec_xst.
4682         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
4683         (LD_ELEMREV_V2DI): New.
4684         (LD_ELEMREV_V4SF): New.
4685         (LD_ELEMREV_V4SI): New.
4686         (LD_ELEMREV_V8HI): New.
4687         (LD_ELEMREV_V16QI): New.
4688         (ST_ELEMREV_V2DF): New.
4689         (ST_ELEMREV_V2DI): New.
4690         (ST_ELEMREV_V4SF): New.
4691         (ST_ELEMREV_V4SI): New.
4692         (ST_ELEMREV_V8HI): New.
4693         (ST_ELEMREV_V16QI): New.
4694         (XL): New.
4695         (XST): New.
4696         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4697         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
4698         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
4699         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
4700         (altivec_expand_builtin): Add handling for
4701         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
4702         (rs6000_invalid_builtin): Add error-checking for
4703         RS6000_BTM_P9_VECTOR.
4704         (altivec_init_builtins): Define builtins used to implement vec_xl
4705         and vec_xst.
4706         (rs6000_builtin_mask_names): Define power9-vector.
4707         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
4708         (RS6000_BTM_P9_VECTOR): Define.
4709         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
4710         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
4711         (vsx_ld_elemrev_v2df): Likewise.
4712         (vsx_ld_elemrev_v4sf): Likewise.
4713         (vsx_ld_elemrev_v4si): Likewise.
4714         (vsx_ld_elemrev_v8hi): Likewise.
4715         (vsx_ld_elemrev_v16qi): Likewise.
4716         (vsx_st_elemrev_v2df): Likewise.
4717         (vsx_st_elemrev_v2di): Likewise.
4718         (vsx_st_elemrev_v4sf): Likewise.
4719         (vsx_st_elemrev_v4si): Likewise.
4720         (vsx_st_elemrev_v8hi): Likewise.
4721         (vsx_st_elemrev_v16qi): Likewise.
4722         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
4723         grammar.
4724
4725 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
4726
4727         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
4728         out into ...
4729         (simplify_control_stmt_condition_1): ... here.  Recurse into
4730         BIT_AND_EXPRs and BIT_IOR_EXPRs.
4731
4732 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
4733
4734         PR target/69810
4735         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
4736         (zero_extendqi<mode>2_dot): Revert earlier conversion from
4737         define_insn_and_split to define_insn.
4738         (zero_extendqi<mode>2_dot2): Same.
4739         (extendqi<mode>2_dot): Same.
4740         (extendqi<mode>2_dot2): Same.
4741
4742 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
4743
4744         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
4745         (probe_stack): New expander.
4746         (probe_stack_<mode>): New insn pattern.
4747
4748 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
4749
4750         * config/i386/i386.md
4751         (operations with memory inputs setting flags peephole2):
4752         Remove uneeded REG_P checks.  Cleanup pattern generation.
4753
4754 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
4755
4756         * tree-vect-loop.c (vect_transform_loop): Fix
4757         nb_iterations_upper_bound computation for vectorized loop.
4758
4759 2016-04-29  Marek Polacek  <polacek@redhat.com>
4760             Jakub Jelinek  <jakub@redhat.com>
4761
4762         PR sanitizer/70342
4763         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
4764         TARGET_EXPR_SLOT as a base.
4765
4766 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
4767
4768         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
4769         with 'rCm2' constraints to limit possible immediate size.
4770         (*load_zeroextendqisi_update): Likewise.
4771         (*load_signextendqisi_update): Likewise.
4772         (*loadhi_update): Likewise.
4773         (*load_zeroextendhisi_update): Likewise.
4774         (*load_signextendhisi_update): Likewise.
4775         (*loadsi_update): Likewise.
4776         (*loadsf_update): Likewise.
4777
4778 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
4779
4780         * config/i386/predicates.md (constm1_operand): Fix comparison.
4781
4782 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
4783
4784         * testsuite/gcc.target/arc/ieee_eq.c: New test.
4785
4786 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
4787
4788         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
4789         remaining SH5 related settings.
4790         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
4791         shmedia_prepare_call_address): Delete.
4792         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
4793         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
4794         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
4795         UNSUPPORTED_SH2A): Remove m5 checks.
4796         (sh_divide_strategy_e): Remove SH5 division strategies.
4797         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
4798         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
4799
4800 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4801
4802         * config/s390/s390.c (s390_rtx_costs): Update documentation.
4803
4804 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4805
4806         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
4807         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
4808         Change lder to ldr.
4809         * config/s390/vector.md ("mov<mode>"): Likewise.
4810
4811 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
4812
4813         * config/s390/constraints.md ("U", "W"): Invoke
4814         s390_mem_constraint with "ZR" and "ZT".
4815         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
4816         addresses when using LRA.  Accept also short displacements for S
4817         and T constraints.  Do not check for long displacement target for
4818         S and T constraints.
4819         (s390_mem_constraint): Remove handling of U and W constraints.
4820         * config/s390/s390.md (various patterns): Remove the short
4821         displacement constraints (Q and R) if a long displacement
4822         constraint is present.  Add longdisp as required CPU capability.
4823         * config/s390/vector.md: Likewise.
4824         * config/s390/vx-builtins.md: Likewise.
4825
4826 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
4827
4828         PR target/60040
4829         * reload1.c (reload): Call finish_spills before
4830         restarting reload loop. Skip select_reload_regs
4831         if update_eliminables_and_spill returns true.
4832
4833 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
4834
4835         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
4836         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
4837         (umulhisi3_imm): Update predicates and constraint letters.
4838         (umulhisi3_reg): Declare instruction as commutative.
4839         * config/arc/constraints.md (J12, J16): New constraints.
4840         * config/arc/predicates.md (short_unsigned_const_operand): New
4841         predicate.
4842         (arc_short_operand): Likewise.
4843         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
4844
4845 2016-04-29  Richard Biener  <rguenther@suse.de>
4846
4847         PR tree-optimization/13962
4848         PR tree-optimization/65686
4849         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
4850         * tree-ssa-alias.c (ptrs_compare_unequal): New function
4851         using PTA to compare pointers.
4852         * match.pd: Add pattern for pointer equality compare simplification
4853         using ptrs_compare_unequal.
4854
4855 2016-04-29  Richard Biener  <rguenther@suse.de>
4856
4857         * stor-layout.c (layout_type): Do not build a pointer-to-element
4858         type for arrays.
4859
4860 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
4861
4862         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
4863         Use SWI mode iterator.  Use general_reg_operand predicate.
4864         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
4865         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
4866         predicates.
4867
4868 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
4869
4870         PR middle-end/70843
4871         * fold-const.c (operand_equal_p): Don't verify hash value equality
4872         if arg0 == arg1.
4873         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
4874         and OMP_CLAUSE.
4875
4876 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
4877
4878         PR target/70858
4879         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
4880         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
4881         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
4882         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
4883         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
4884
4885 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
4886
4887         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
4888         to info.  Don't initialize separate fields to 0.  Clean up
4889         formatting a bit.
4890
4891 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
4892
4893         * config/i386/i386.md (peephole2s for operations with memory inputs):
4894         Use SWI mode iterator.
4895         (peephole2s for operations with memory outputs): Ditto.
4896         Do not check for stack checking probe.
4897
4898         (probe_stack): Remove expander.
4899
4900 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
4901             Andrew Burgess  <andrew.burgess@embecosm.com>
4902
4903         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
4904         operands as 32-bits.
4905
4906 2016-04-28  Jason Merrill  <jason@redhat.com>
4907
4908         * gdbinit.in: Skip line-map.h.
4909
4910 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
4911             Andrew Burgess  <andrew.burgess@embecosm.com>
4912
4913         * config/arc/arc.c (arc_conditional_register_usage): Take
4914         TARGET_RRQ_CLASS into account.
4915         (arc_print_operand): Support printing 'p' and 's' operands.
4916         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
4917         as 0.
4918         (TARGET_RRQ_CLASS): Define.
4919         (IS_POWEROF2_OR_0_P): Define.
4920         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
4921         alternatives.
4922         (*tst_movb): New define_insn.
4923         (*tst): Avoid recognition if it could prevent '*tst_movb'
4924         combination; replace c/CnL with c/Chs alternative.
4925         (*tst_bitfield_tst): New define_insn.
4926         (*tst_bitfield_asr): New define_insn.
4927         (*tst_bitfield): New define_insn.
4928         (andsi3_i): Add Rrq variant.
4929         (extzv): New define_expand.
4930         (insv): New define_expand.
4931         (*insv_i): New define_insn.
4932         (*movb): New define_insn.
4933         (*movb_signed): New define_insn.
4934         (*movb_high): New define_insn.
4935         (*movb_high_signed): New define_insn.
4936         (*movb_high_signed + 1): New define_split pattern.
4937         (*mrgb): New define_insn.
4938         (*mrgb + 1): New define_peephole2 pattern.
4939         (*mrgb + 2): New define_peephole2 pattern.
4940         * config/arc/arc.opt (mbitops): New option for nps400, uses
4941         TARGET_NPS_BITOPS_DEFAULT.
4942         * config/arc/constraints.md (q): Make register class conditional.
4943         (Rrq): New register constraint.
4944         (Chs): New constraint.
4945         (Clo): New constraint.
4946         (Chi): New constraint.
4947         (Cbf): New constraint.
4948         (Cbn): New constraint.
4949         (C18): New constraint.
4950         (Cbi): New constraint.
4951
4952 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
4953
4954         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
4955         dst->popcount.
4956         (bitmap_intersection_of_preds): Ditto.
4957         (bitmap_union_of_succs): Ditto.
4958         (bitmap_union_of_preds): Ditto.
4959         * sbitmap.c (do_popcount): Delete.
4960         (BITMAP_DEBUGGING): Delete.
4961         (sbitmap_verify_popcount): Delete.
4962         (sbitmap_alloc): Don't initialize the popcount field.
4963         (sbitmap_alloc_with_popcount): Delete.
4964         (sbitmap_resize): Don't resize the popcount array.
4965         (sbitmap_vector_alloc): Don't initialize the popcount field.
4966         (bitmap_copy): Don't copy the popcount array.
4967         (bitmap_clear): Don't clear the popcount array.
4968         (bitmap_clear): Delete the popcount array handling.
4969         (bitmap_ior_and_compl): Delete the popcount assert.
4970         (bitmap_not): Ditto.
4971         (bitmap_and_compl): Ditto.
4972         (bitmap_and): Delete the popcount array handling.
4973         (bitmap_xor): Ditto.
4974         (bitmap_ior): Ditto.
4975         (bitmap_or_and): Delete the popcount assert.
4976         (bitmap_and_or): Ditto.
4977         (popcount_table): Delete.
4978         (sbitmap_elt_popcount): Delete.
4979         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
4980         (bitmap_set_bit): Delete the popcount assert.
4981         (bitmap_clear_bit): Ditto.
4982         (sbitmap_free): Don't free the popcount array.
4983         (sbitmap_alloc_with_popcount): Delete declaration.
4984         (sbitmap_popcount): Ditto.
4985
4986 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
4987             Andrew Burgess  <andrew.burgess@embecosm.com>
4988
4989         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
4990         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
4991         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
4992         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
4993         * config/arc/arc.opt (mcmem): New option.
4994         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
4995         supply length for r/m alternative.
4996         (*extendqisi2_ac): Likewise.
4997         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
4998         r/Uex alternative.
4999         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
5000         (movhi_insn): Likewise.
5001         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
5002         (*zero_extendqihi2_i): Add r/Ucm alternative.
5003         (*zero_extendqisi2_ac): Likewise.
5004         (*zero_extendhisi2_i): Likewise.
5005         * config/arc/constraints.md (Uex): New memory constraint.
5006         (Ucm): New define_constraint.
5007         * config/arc/predicates.md (long_immediate_loadstore_operand):
5008         Return 0 for MEM with cmem_address address.
5009         (cmem_address_0): New predicates.
5010         (cmem_address_1): Likewise.
5011         (cmem_address_2): Likewise.
5012         (cmem_address): Likewise.
5013
5014 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
5015
5016         * config/rs6000/rs6000.c (machine_function): Rename
5017         insn_chain_scanned_p to spe_insn_chain_scanned_p.
5018         (rs6000_stack_info): Adjust.
5019
5020 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
5021             Andrew Burgess  <andrew.burgess@embecosm.com>
5022
5023         * config/arc/constraints.md (Usd): Convert to define_constraint.
5024         (Us<): Likewise.
5025         (Us>): Likewise.
5026
5027 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
5028
5029         PR target/70821
5030         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
5031         Add new peephole2 where the first insn is *mov<mode>_or instead of
5032         *mov<mode>_internal.
5033
5034 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
5035
5036         * tracer.c (bb_seen): Make static.
5037
5038 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
5039
5040         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
5041         support, setup defaults.
5042         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
5043         * config/arc/arc.c (arc_init): Add NPS400 support.
5044         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
5045         (TARGET_ARC700): NPS400 is also an ARC700.
5046         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
5047
5048 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
5049
5050         PR target/70668
5051         * config/nds32/nds32.md (casesi): Don't access the operands array
5052         out of bounds.
5053
5054 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
5055
5056         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
5057         (or $-1,reg peephole2): Ditto.
5058         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
5059
5060 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
5061
5062         * doc/extend.texi (Common Function Attributes) [optimize]:
5063         Discourage use of the optimize attribute.
5064
5065 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
5066
5067         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
5068         special case builtin.
5069         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
5070         ALTIVEC_BUILTIN_VEC_ADDE.
5071         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
5072         support for ALTIVEC_BUILTIN_VEC_ADDE.
5073         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
5074         for __builtin_vec_adde.
5075
5076 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
5077
5078         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
5079         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
5080
5081 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5082
5083         PR testsuite/70595
5084         * doc/sourcebuild.texi (Effective-Target Keywords, Other
5085         attributes): Document cilkplus_runtime.
5086
5087 2016-04-28  Martin Jambor  <mjambor@suse.cz>
5088
5089         * tree-cfg.c (verify_expr): Verify that local declarations belong to
5090         this function.  Call verify_expr on MEM_REFs and bases of other
5091         handled_components.
5092
5093 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5094
5095         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
5096         for WORD_REGISTER_OPERATIONS to runtime check.
5097
5098 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
5099
5100         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
5101
5102 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
5103
5104         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
5105         big-endian compilation.
5106         * config/arc/arc.md (addf3): Likewise.
5107         (subdf3): Likewise.
5108         (muldf3): Likewise.
5109
5110 2016-04-28  Richard Biener  <rguenther@suse.de>
5111
5112         PR tree-optimization/70840
5113         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
5114         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
5115         Mark x * pow(x,c) -> pow(x,c+1) commutative.
5116         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
5117
5118 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5119
5120         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
5121         and explain why in a comment.
5122
5123 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
5124
5125         * config/arc/arc.md (cpu_facility): Add fpx variant.
5126         (subdf3): Prohibit use reverse sub when assist operations option
5127         is enabled.
5128         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
5129         instructions only when FPX is enabled.
5130         * testsuite/gcc.target/arc/trsub.c: New test.
5131
5132 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
5133
5134         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
5135         mult_operator when calculating "type" attribute.
5136         (*fop_<mode>_1_i387): Ditto.
5137         (*fop_xf_1_i387): Ditto.
5138         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
5139         Use std::swap to swap operands.  Use RTL expressions to generate
5140         converted pattern.
5141
5142 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
5143             Joern Rennecke  <joern.rennecke@embecosm.com>
5144
5145         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
5146         declaration.
5147         (emit_pic_move): Remove.
5148         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
5149         * config/arc/arc.c (emit_pic_move): Removed.
5150         (TARGET_HAVE_TLS): Define.
5151         (arc_conditional_register_usage): Test for arc_tp_regno.
5152         (arc_print_operand, arc_print_operand_address): Handle TLS
5153         unspecs.
5154         (arc_needs_pcl_p): New function.
5155         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
5156         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
5157         (arc_raw_symbolic_reference_mentioned_p): Likewise.
5158         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
5159         (arc_legitimize_tls_address): Likewise.
5160         (DTPOFF_ZERO_SYM): Define.
5161         (arc_legitimize_pic_address): Make it static, handle TLS cases.
5162         (arc_output_pic_addr_const): Print TLS unspecs.
5163         (prepare_pic_move): New function, replaces emit_pic_move.
5164         (arc_legitimate_constant_p): Handle TLS unspecs.
5165         (arc_legitimate_address_p): Likewise.
5166         (arc_rewrite_small_data_p): Use assert for TLS constants.
5167         (prepare_move_operands): Use prepare_pic_move.
5168         (arc_legitimize_address): Legitimize tls addresses.
5169         (arc_epilogue_uses): Check for arc_tp_regno.
5170         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
5171         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
5172         Define.
5173         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
5174         Likewise.
5175         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
5176         %(arc_tls_extra_start_spec).
5177         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
5178         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
5179         (EH_USES): Define.
5180         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
5181         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
5182         (UNSPEC_TLS_OFF): Add.
5183         (R10_REG): Define.
5184         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
5185         (get_thread_pointersi): New patterns.
5186         * config/arc/arc.opt (mtp-regno): New option.
5187         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
5188         (move_dest_operand): Likewise.
5189         * configure: Regenerate.
5190         * configure.ac: Add arc*-*-* case to test for tls.
5191         * doc/invoke.texi (ARC options): Document mtp-regno.
5192
5193 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
5194
5195         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
5196         the new ARC HS SIMD instructions.
5197         (arc_preferred_simd_mode): New function.
5198         (arc_autovectorize_vector_sizes): Likewise.
5199         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
5200         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
5201         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
5202         (arc_init_builtins): Add new SIMD builtin types.
5203         (arc_split_move): Handle 64 bit vector moves.
5204         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
5205         (TARGET_PLUS_QMACW): Define.
5206         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
5207         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
5208         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
5209         (VSUBADD4H): New builtins.
5210         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
5211         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
5212
5213 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
5214             Matthias Klose  <doko@debian.org>
5215
5216         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
5217
5218 2016-04-28  Richard Biener  <rguenther@suse.de>
5219
5220         PR middle-end/70777
5221         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
5222         canonicalization.
5223
5224 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
5225
5226         * common/config/sh/sh-common.c: Remove SH5 support.
5227         * config/sh/constraints.md: Likewise.
5228         * config/sh/config/sh/elf.h: Likewise.
5229         * config/sh/linux.h: Likewise.
5230         * config/sh/netbsd-elf.h: Likewise.
5231         * config/sh/predicates.md: Likewise.
5232         * config/sh/sh-c.c: Likewise.
5233         * config/sh/sh-protos.h: Likewise.
5234         * config/sh/sh.c: Likewise.
5235         * config/sh/sh.h: Likewise.
5236         * config/sh/sh.md: Likewise.
5237         * config/sh/sh.opt: Likewise.
5238         * config/sh/sync.md: Likewise.
5239         * config/sh/sh64.h: Delete.
5240         * config/sh/shmedia.h: Likewise.
5241         * config/sh/shmedia.md: Likewise.
5242         * config/sh/sshmedia.h: Likewise.
5243         * config/sh/t-netbsd-sh5-64: Likewise.
5244         * config/sh/t-sh64: Likewise.
5245         * config/sh/ushmedia.h: Likewise.
5246
5247 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
5248
5249         * config/i386/i386.md (sign_extend to memory peephole2s): Use
5250         general_reg_operand instead of register_operand predicate.
5251
5252 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5253
5254         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
5255
5256 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
5257
5258         * match.pd (A - B > A, A + B < A): New transformations.
5259
5260 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
5261
5262         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
5263         which defaults to true.  Emit an outer pair of parentheses only if
5264         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
5265         don't emit parentheses for the right-hand operand.
5266
5267 2016-04-27  Jeff Law  <law@redhat.com>
5268
5269         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
5270
5271 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5272
5273         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
5274         (altivec_lvx_<mode>_internal): Document.
5275         (altivec_lvx_<mode>_2op): New define_insn.
5276         (altivec_lvx_<mode>_1op): Likewise.
5277         (altivec_lvx_<mode>_2op_si): Likewise.
5278         (altivec_lvx_<mode>_1op_si): Likewise.
5279         (altivec_stvx_<mode>): Remove.
5280         (altivec_stvx_<mode>_internal): Document.
5281         (altivec_stvx_<mode>_2op): New define_insn.
5282         (altivec_stvx_<mode>_1op): Likewise.
5283         (altivec_stvx_<mode>_2op_si): Likewise.
5284         (altivec_stvx_<mode>_1op_si): Likewise.
5285         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5286         Expand vec_ld and vec_st during parsing.
5287         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
5288         changes.
5289         (altivec_expand_stvx_be): Likewise.
5290         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
5291         address-masking behavior in RTL.
5292         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
5293         address-masking behavior in RTL.
5294         (altivec_expand_builtin): Change builtin code arguments for calls
5295         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
5296         (insn_is_swappable_p): Avoid incorrect swap optimization in the
5297         presence of lvx/stvx patterns.
5298         (alignment_with_canonical_addr): New function.
5299         (alignment_mask): Likewise.
5300         (find_alignment_op): Likewise.
5301         (recombine_lvx_pattern): Likewise.
5302         (recombine_stvx_pattern): Likewise.
5303         (recombine_lvx_stvx_patterns): Likewise.
5304         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
5305         stvx patterns from expand.
5306         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
5307         expansions.
5308         (vector_altivec_store_<mode>): Likewise.
5309
5310 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
5311
5312         * config/aarch64/aarch64.md
5313         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
5314         remove the "fp" attributes.
5315         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
5316         add the "simd" attributes.
5317         (*movdf_aarch64): Likewise.
5318         (*movtf_aarch64): Remove the "fp" attributes.
5319         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
5320         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
5321
5322 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
5323
5324         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
5325         rtx to rtx_code_label *.
5326         * rtl.h (maybe_set_first_label_num): Likewise.
5327
5328 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
5329
5330         * df-core.c (df_add_problem): Make the problem param be const.
5331         (df_remove_problem): Make local "problem" be const.
5332         * df-problems.c (problem_RD): Make const.
5333         (problem_LR): Likewise.
5334         (problem_LIVE): Likewise.
5335         (problem_MIR): Likewise.
5336         (problem_CHAIN): Likewise.
5337         (problem_WORD_LR): Likewise.
5338         (problem_NOTE): Likewise.
5339         (problem_MD): Likewise.
5340         * df-scan.c (problem_SCAN): Likewise.
5341         * df.h (struct df_problem): Make field "dependent_problem" be
5342         const.
5343         (struct dataflow): Likewise for field "problem".
5344         (df_add_problem): Make param const.
5345
5346 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
5347
5348         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
5349         inter-unit moves to/from vector registers are enabled.  Do not disable
5350         for TARGET_MMX.
5351
5352 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
5353
5354         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
5355         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
5356         #define to...
5357         (enum df_problem_id): ...this new enum.
5358         (struct df_problem): Convert field "id" from "int" to
5359         enum df_problem_id.
5360
5361 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
5362
5363         * rtl.def: Update comment for "things in the instruction chain" to
5364         reflect the removal of the leading "i" field for INSN_UID in
5365         r210360.  Fix bogus apostrophe.
5366
5367 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
5368
5369         * config/i386/i386.md
5370         (lea arith with mem operand + setcc peephole2): Set operator mode.
5371
5372 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
5373
5374         PR target/70155
5375         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
5376         (dimode_scalar_to_vector_candidate_p): This.
5377         (timode_scalar_to_vector_candidate_p): New function.
5378         (scalar_to_vector_candidate_p): Likewise.
5379         (timode_check_non_convertible_regs): Likewise.
5380         (timode_remove_non_convertible_regs): Likewise.
5381         (remove_non_convertible_regs): Likewise.
5382         (remove_non_convertible_regs): Renamed to ...
5383         (dimode_remove_non_convertible_regs): This.
5384         (scalar_chain::~scalar_chain): Make it virtual.
5385         (scalar_chain::compute_convert_gain): Make it pure virtual.
5386         (scalar_chain::mark_dual_mode_def): Likewise.
5387         (scalar_chain::convert_insn): Likewise.
5388         (scalar_chain::convert_registers): Likewise.
5389         (scalar_chain::add_to_queue): Make it protected.
5390         (scalar_chain::emit_conversion_insns): Likewise.
5391         (scalar_chain::replace_with_subreg): Likewise.
5392         (scalar_chain::replace_with_subreg_in_insn): Likewise.
5393         (scalar_chain::convert_op): Likewise.
5394         (scalar_chain::convert_reg): Likewise.
5395         (scalar_chain::make_vector_copies): Likewise.
5396         (scalar_chain::convert_registers): New pure virtual function.
5397         (class dimode_scalar_chain): New class.
5398         (class timode_scalar_chain): Likewise.
5399         (scalar_chain::mark_dual_mode_def): Renamed to ...
5400         (dimode_scalar_chain::mark_dual_mode_def): This.
5401         (timode_scalar_chain::mark_dual_mode_def): New function.
5402         (timode_scalar_chain::convert_insn): Likewise.
5403         (dimode_scalar_chain::convert_registers): Likewise.
5404         (scalar_chain::compute_convert_gain): Renamed to ...
5405         (dimode_scalar_chain::compute_convert_gain): This.
5406         (scalar_chain::replace_with_subreg): Renamed to ...
5407         (dimode_scalar_chain::replace_with_subreg): This.
5408         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
5409         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
5410         (scalar_chain::make_vector_copies): Renamed to ...
5411         (dimode_scalar_chain::make_vector_copies): This.
5412         (scalar_chain::convert_reg): Renamed to ...
5413         (dimode_scalar_chain::convert_reg ): This.
5414         (scalar_chain::convert_op): Renamed to ...
5415         (dimode_scalar_chain::convert_op): This.
5416         (scalar_chain::convert_insn): Renamed to ...
5417         (dimode_scalar_chain::convert_insn): This.
5418         (scalar_chain::convert): Call convert_registers.
5419         (convert_scalars_to_vector): Change to scalar_chain pointer to
5420         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
5421         in 32-bit mode.  Delete scalar_chain pointer.  Call
5422         free_dominance_info in 64-bit mode.
5423         (pass_stv::gate): Remove TARGET_64BIT check.
5424         (ix86_option_override): Put the 64-bit STV pass before the CSE
5425         pass.
5426
5427 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
5428
5429         * dwarf2out.h (struct dw_loc_descr_node): Remove the
5430         dw_loc_frame_offset field.
5431         * dwarf2out.c (new_loc_descr): Likewise.
5432         (resolve_args_picking_1): Turn the VISITED hash set into a
5433         FRAME_OFFSET hash map. Use it to associate a frame offset to
5434         visited nodes. Remove uses of the CHECKING_P macro.
5435         (resolve_args_picking): Update call to resolve_args_picking_1.
5436
5437 2016-04-27  Martin Liska  <mliska@suse.cz>
5438
5439         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
5440         (free_loop_data): Release vuses of groups.
5441
5442 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
5443
5444         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
5445         instead of redundant use_id and boolean have_use_for.
5446         (struct iv_use): Change sub_id into group_id.  Remove field next.
5447         Move fields: related_cands, n_map_members, cost_map and selected
5448         to ...
5449         (struct iv_group): ... here.  New structure.
5450         (struct iv_common_cand): Use structure declaration directly.
5451         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
5452         (MAX_CONSIDERED_USES): Rename macro to ...
5453         (MAX_CONSIDERED_GROUPS): ... here.
5454         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
5455         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
5456         (dump_uses): Rename to ...
5457         (dump_groups): ... here.  Update all uses.
5458         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
5459         (find_induction_variables): Refactor format of dump information.
5460         (record_sub_use): Delete.
5461         (record_use): Update all uses.
5462         (record_group): New function.
5463         (record_group_use, find_interesting_uses_op): Call above functions.
5464         Update all uses.
5465         (find_interesting_uses_cond): Ditto.
5466         (group_compare_offset): New function.
5467         (split_all_small_groups): Rename to ...
5468         (split_small_address_groups_p): ... here.  Update all uses.
5469         (split_address_groups):  Update all uses.
5470         (find_interesting_uses): Refactor format of dump information.
5471         (add_candidate_1): Update all uses.  Remove redundant check on iv,
5472         base and step.
5473         (add_candidate, record_common_cand): Remove redundant assert.
5474         (add_iv_candidate_for_biv): Update use.
5475         (add_iv_candidate_derived_from_uses): Update all uses.
5476         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
5477         (alloc_use_cost_map): Ditto.
5478         (set_use_iv_cost, get_use_iv_cost): Rename to ...
5479         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
5480         (determine_use_iv_cost_generic): Ditto.
5481         (determine_group_iv_cost_generic): Ditto.
5482         (determine_use_iv_cost_address): Ditto.
5483         (determine_group_iv_cost_address): Ditto.
5484         (determine_use_iv_cost_condition): Ditto.
5485         (determine_group_iv_cost_cond): Ditto.
5486         (determine_use_iv_cost): Ditto.
5487         (determine_group_iv_cost): Ditto.
5488         (set_autoinc_for_original_candidates): Update all uses.
5489         (find_iv_candidates): Update all uses.  Refactor dump information.
5490         (determine_use_iv_costs): Ditto.
5491         (determine_iv_costs): Ditto.
5492         (iv_ca_cand_for_use): Rename to ...
5493         (iv_ca_cand_for_group): ... here.  Update all uses.
5494         (iv_ca_add_use, iv_ca_add_group): Ditto.
5495         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
5496         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
5497         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
5498         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
5499         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
5500         (create_new_iv, adjust_iv_update_pos): Ditto.
5501         (rewrite_use_address): Delete.
5502         (rewrite_use_address_1): Rename to ...
5503         (rewrite_use_address): ... here.
5504         (rewrite_use_compare): Update all uses.
5505         (rewrite_use): Delete.
5506         (rewrite_uses): Rename to ...
5507         (rewrite_groups): ... here.  Update all uses.
5508         (remove_unused_ivs, free_loop_data): Update all uses.
5509         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
5510
5511 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5512
5513         * rtlanal.c (nonzero_bits1): Convert preprocessor check
5514         for WORD_REGISTER_OPERATIONS to runtime check.
5515
5516 2016-04-27  Richard Biener  <rguenther@suse.de>
5517
5518         PR ipa/70760
5519         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
5520         aggregate_value_p to determine if a function result is
5521         returned by reference.
5522         (ipa_pta_execute): Functions having their address taken are
5523         not automatically nonlocal.
5524
5525 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
5526
5527         PR sanitizer/70683
5528         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
5529         * fold-const.c (operand_equal_p): If flag_checking and
5530         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
5531         and if it returns non-zero, assert iterative_hash_expr on both
5532         args is the same.
5533
5534 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
5535
5536         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
5537
5538 2016-04-27  Nick Clifton  <nickc@redhat.com>
5539
5540         PR middle-end/49889
5541         * varasm.c (merge_weak): Generate an error if an attempt is made
5542         to convert a non-weak static function into a weak, public function.
5543
5544 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5545
5546         * params.def (MAX_PARTITION_SIZE): New param.
5547         * doc/invoke.texi: Document lto-max-partition.
5548
5549 2016-04-27  Richard Biener  <rguenther@suse.de>
5550
5551         PR ipa/70785
5552         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
5553         function cummulating used_from_other_partition, externally_visible
5554         and force_output from aliases.
5555         (refered_from_nonlocal_var): Likewise.
5556         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
5557         node flags properly.
5558
5559 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
5560
5561         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
5562         (-Wmemset-elt-size): New item.
5563
5564 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
5565
5566         PR ada/70759
5567         * stor-layout.h (internal_reference_types): Delete.
5568         * stor-layout.c (reference_types_internal): Likewise.
5569         (internal_reference_types): Likewise.
5570         (layout_type) <REFERENCE_TYPE>: Adjust.
5571
5572 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
5573
5574         PR sanitizer/70683
5575         * tree.h (inchash::add_expr): Add FLAGS argument.
5576         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
5577         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
5578         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
5579         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
5580         if swap_tree_comparison (code) is smaller than code, hash that
5581         and arguments in the other order.  Hash CONVERT_EXPR the same
5582         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
5583         of ADDR_EXPR of decl as the decl itself.  Add or remove
5584         OEP_ADDRESS_OF from recursive flags as needed.  For
5585         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
5586         operands commutatively and only the third one normally.
5587         For internal CALL_EXPR hash in CALL_EXPR_IFN.
5588
5589 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
5590
5591         * config/rtems.h (LIB_SPEC): Add -latomic.
5592
5593 2016-04-27  Joel Sherrill  <joel@rtems.org>
5594
5595         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
5596         xilink.ld and flags not relevant to RTEMS.
5597
5598 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
5599
5600         * toplev.c (backend_init_target): Avoid calling init_reload when using
5601         LRA.
5602
5603 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
5604
5605         * reorg.c (try_merge_delay_insns): Declare i and j inside the
5606         for loops rather than one for the whole function.
5607
5608 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
5609
5610         * match.pd (X + CST CMP X): New transformation.
5611
5612 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
5613
5614         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
5615         * fold-const.c (fold_binary_loc): Remove 2 transformations
5616         superseded by match.pd.
5617         * match.pd (x+x -> x*2): Generalize to integers.
5618
5619 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
5620
5621         * config/i386/i386.md (operation on memory peephole): Duplicate an
5622         existing peephole and adapt it to match lea rather than an operation
5623         that clobbers CC.
5624
5625         PR rtl-optimization/57193
5626         * opts.c (default_options_table): Add OPT_frename_registers at -O2
5627         and above.
5628         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
5629
5630 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
5631
5632         * tree-if-conv.c (any_pred_load_store): New static variable.
5633         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
5634         any_pred_load_store instead of and_mask_load_store.
5635         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
5636         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
5637         (combine_blocks, tree_if_conversion): Ditto.
5638
5639 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
5640
5641         PR tree-optimization/70771
5642         PR tree-optimization/70775
5643         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
5644         virtual PHI nodes.  Delete parameter.
5645         (if_convertible_loop_p_1): Delete argument to above function.
5646         (predicate_all_scalar_phis): Delete code handling single-argument
5647         PHIs.
5648         (tree_if_conversion): Mark and update virtual SSA.
5649
5650 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5651
5652         PR target/61821
5653         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
5654         (x86_elf_aligned_common): Rename to ...
5655         (x86_elf_aligned_decl_common): ... this.
5656         Add decl arg.  Switch to .lbss for largecomm object.  Use
5657         LARGECOMM_SECTION_ASM_OP.
5658         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
5659         renaming.
5660         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
5661         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
5662         Pass new decl arg.
5663         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
5664         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
5665
5666 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5667
5668         PR target/59407
5669         * config/i386/i386.c (SECTION_LARGE): Define.
5670         (x86_64_elf_select_section): Set it for large data/bss sections.
5671         Only clear SECTION_WRITE for .lrodata.
5672         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
5673         data/bss sections.
5674         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
5675         * varasm.c (default_elf_asm_named_section): Grow flagchars.
5676         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
5677         SECTION_MACH_DEP.
5678         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
5679         * doc/tm.texi: Regenerate.
5680
5681 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
5682
5683         PR bootstrap/70704
5684         * configure.ac (--enable-checking): Document extra flag, for
5685         non-release builds default to --enable-checking=yes,extra.
5686         If misc checking and extra checking, define CHECKING_P to 2 instead
5687         of 1.
5688         * common.opt (fchecking=): Add.
5689         * doc/invoke.texi (-fchecking=): Document.
5690         * doc/install.texi: Document --enable-checking changes.
5691         * configure: Regenerated.
5692         * config.in: Regenerated.
5693
5694 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
5695
5696         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
5697         attribute instead of which_alternative.
5698         * config/i386/sse.md (*mov<mode>_internal): Ditto.
5699         Use EXT_REX_SSE_REG_P where appropriate.
5700
5701 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
5702
5703         * config/i386/predicates.md (const0_operand): Do not match
5704         const_wide_int code.
5705         (const1_operand): Ditto.
5706
5707 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
5708
5709         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
5710         for SSE constm1 operands and TARGET_AVX512VL.
5711         (*movti_internal): Ditto.
5712         (*mov<mode>_or): Use constm1_operand predicate.
5713         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
5714         for SSE vector_all_ones operands and TARGET_AVX512VL.
5715         * config/i386/predicates.md (constm1_operand): New predicate.
5716         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
5717         emission of constant -1 load.
5718
5719 2016-04-25  Jason Merrill  <jason@redhat.com>
5720
5721         * gdbinit.in: Skip is-a.h.
5722
5723         * attribs.c (register_scoped_attributes): Fix logic.
5724         * attribs.h: Declare register_scoped_attributes.
5725
5726 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5727
5728         * config/rs6000/rs6000-builtin.def: Correct pasto error for
5729         stxvd2x and stxvw4x built-in functions.
5730
5731 2016-04-25  DJ Delorie  <dj@redhat.com>
5732
5733         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
5734         (ashrhi3): Likewise.
5735         (lshrhi3): Likewise.
5736
5737 2016-04-25  Richard Biener  <rguenther@suse.de>
5738
5739         PR tree-optimization/70780
5740         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
5741         wasn't visited yet.
5742         (compute_antic): Mark blocks with abnormal preds as visited as
5743         they have a final empty antic-in solution already.
5744
5745 2016-04-25  Michael Collison  <michael.collison@linaro.org>
5746
5747         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
5748
5749 2016-04-25  Michael Collison  <michael.collison@linaro.org>
5750
5751         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
5752         mode is VQI to improve mixed mode vectorization.
5753         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
5754         define_insn to match low half of signed vaddw.
5755         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
5756         define_insn to match high half of signed vaddw.
5757         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
5758         define_insn to match low half of unsigned vaddw.
5759         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
5760         define_insn to match high half of unsigned vaddw.
5761         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
5762         (arm_simd_check_vect_par_cnst_half_p): Likewise.
5763         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
5764         for new function.
5765         (arm_simd_check_vect_par_cnst_half_p): Likewise.
5766         * config/arm/predicates.md (vect_par_constant_high): Support
5767         big endian and simplify by calling
5768         arm_simd_check_vect_par_cnst_half
5769         (vect_par_constant_low): Likewise.
5770
5771 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
5772
5773         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
5774         predicate for operand 2.
5775
5776 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
5777             H.J. Lu  <hongjiu.lu@intel.com>
5778
5779         * config/i386/i386-protos.h (standard_sse_constant_p): Add
5780         machine_mode argument.
5781         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
5782         constm1_rtx operands.  For VOIDmode constants, get mode from
5783         pred_mode.  Check mode size if the mode is supported by ABI.
5784         (standard_sse_constant_opcode): Do not use standard_constant_p.
5785         Strictly check ABI support for all-ones operands.
5786         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
5787         immediates. Update calls to standard_sse_constant_p.
5788         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
5789         (ix86_rtx_costs): Ditto.
5790         * config/i386/i386.md (*movxi_internal_avx512f): Use
5791         nonimmediate_or_sse_const_operand instead of vector_move_operand.
5792         Use (v,BC) alternative instead of (v,C). Use register_operand
5793         checks instead of MEM_P.
5794         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
5795         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
5796         isa attribute.  Use register_operand checks instead of MEM_P.
5797         (*movti_internal): Use nonimmediate_or_sse_const_operand for
5798         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
5799         alternative and corresponding sse2 isa attribute.
5800         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
5801         to standard_sse_constant_p.
5802         (FP constant splitters): Ditto.
5803         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
5804         (C): Ditto.
5805         * config/i386/predicates.md (constm1_operand): Remove.
5806         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
5807         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
5808         vector_all_ones_operand instead of constm1_operand.
5809
5810 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5811
5812         * print-rtl.c (print_rtx_insn_vec): New function.
5813         * print-rtl.h: New prototype.
5814         * store-motion.c (struct st_expr): Make avail_stores a vector.
5815         (st_expr_entry): Adjust.
5816         (free_st_expr_entry): Likewise.
5817         (print_store_motion_mems): Likewise.
5818         (find_moveable_store): Likewise.
5819         (compute_store_table): Likewise.
5820         (delete_store): Likewise.
5821         (build_store_vectors): Likewise.
5822
5823 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5824
5825         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
5826
5827 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5828
5829         * vec.h (vec_safe_contains): New function.
5830         (vec::contains): Likewise.
5831         (vec::begin): Likewise.
5832         (vec::end): Likewise.
5833
5834 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
5835
5836         PR sanitizer/70712
5837         * cfgexpand.c (expand_stack_vars): Fix typo.
5838
5839 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
5840
5841         * system.h (list, map, set, vector): Include conditionally.
5842         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
5843         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
5844         * ipa-icf.c (INCLUDE_LIST): Define.
5845         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
5846         * config/sh/sh.c (INCLUDE_VECTOR): Define.
5847         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
5848         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
5849         * cp/logic.cc (INCLUDE_LIST): Define.
5850         * fortran/trans-common.c (INCLUDE_MAP): Define.
5851
5852 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
5853
5854         * auto-profile.c: Remove <string.h> include.
5855         * ipa-icf-gimple.c: Remove <list> include.
5856         * diagnostic.c: Remove <new> include.
5857         * genmatch.c: Likewise.
5858         * pretty-print.c: Likewise.
5859         * toplev.c: Likewise
5860         * c/c-objc-common.c: Likewise.
5861         * cp/error.c: Likewise.
5862         * fortran/error.c: Likewise.
5863
5864 2016-04-22  Richard Biener  <rguenther@suse.de>
5865
5866         * lto-streamer-in.c (input_ssa_names): Do not allocate
5867         GIMPLE_NOP for all SSA names.
5868         * lto-streamer-out.c (output_ssa_names): Do not output
5869         SSA names that should have been released.
5870
5871 2016-04-22  Richard Biener  <rguenther@suse.de>
5872
5873         PR tree-optimization/70740
5874         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
5875         VDEF.
5876
5877 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
5878
5879         PR target/70750
5880         * config/i386/predicates.md (call_insn_operand): Replace
5881         sibcall_memory_operand with memory_operand.
5882
5883 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
5884
5885         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
5886         has_single_use() tests.
5887         (register_edge_assert_for_1): Likewise.
5888         (find_assert_locations_1): Check the liveness bitmap instead of
5889         checking has_single_use().
5890
5891 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
5892
5893         PR target/70728
5894         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
5895         Extract AVX-512BW constraint from AVX.
5896
5897 2016-04-21  Richard Biener  <rguenther@suse.de>
5898
5899         PR tree-optimization/70725
5900         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
5901         for phi_convertible_by_degenerating_args.
5902         (predicate_all_scalar_phis): Handle single-argument PHIs.
5903
5904 2016-04-21  Richard Biener  <rguenther@suse.de>
5905
5906         PR middle-end/70747
5907         * fold-const.c (fold_comparison): Return properly typed
5908         constant boolean.
5909
5910 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
5911
5912         PR tree-optimization/70715
5913         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
5914         after expanding BASE using expand_simple_operations.
5915
5916 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
5917
5918         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
5919         New transformations.
5920
5921 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
5922
5923         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
5924
5925 2016-04-20  Jan Hubicka  <jh@suse.cz>
5926
5927         * ipa-inline.c (can_inline_edge_p): Pass caller info to
5928         ultiimate_alias_target.
5929         (update_callee_keys): Likewise.
5930         (lookup_recursive_calls): Likewise.
5931         (speculation_useful_p): Likewise.
5932
5933 2016-04-20  Jan Hubicka  <jh@suse.cz>
5934
5935         PR ipa/70018
5936         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
5937         (set_nothrow_flag_1): ... this; handle interposition correctly;
5938         recurse on aliases and thunks.
5939         (cgraph_node::set_nothrow_flag): New.
5940         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
5941         functions compiled with non-call exceptions that binds to current
5942         def.
5943         (propagate_nothrow): Be safe WRT interposition.
5944         * cgraph.h (set_nothrow_flag): Update prototype.
5945
5946 2016-04-18  Jan Hubicka  <jh@suse.cz>
5947
5948         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5949         max_loop_iterations_int.
5950         (tree_unswitch_outer_loop): Likewise.
5951
5952 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
5953
5954         PR tree-optimization/69489
5955         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
5956         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
5957         Revise dump message.
5958         (if_convertible_bb_p): Remove check on edge count of basic block's
5959         predecessors.
5960
5961 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
5962
5963         PR tree-optimization/56625
5964         PR tree-optimization/69489
5965         * tree-data-ref.h (DR_INNERMOST): New macro.
5966         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
5967         hashing struct innermost_loop_behavior.
5968         (ref_DR_map): Remove.
5969         (innermost_DR_map): New map.
5970         (baseref_DR_map): Revise comment.
5971         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
5972         to innermost_DR_map accroding to its innermost loop behavior.
5973         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
5974         to its innermost loop behavior.
5975         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
5976         Add initialization for innermost_DR_map.  Record memory reference
5977         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
5978         have innermost loop behavior.
5979         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
5980         innermost_DR_map.
5981
5982 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
5983
5984         * config/i386/i386.md (*lea<mode>_general_1): Rename from
5985         *lea_general_1.  Use explicit SWI12 mode interator.
5986         (*lea<mode>_general_2): Rename from *lea_general_2.
5987         Use explicit SWI12 mode interator.
5988         (*lea<mode>_general_3): Rename from *lea_general_3.
5989         Use explicit SWI12 mode interator.
5990         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
5991         Use explicit SWI12 mode interator.
5992         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
5993         Use explicit SWI48 mode interator.
5994
5995 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
5996
5997         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
5998         Short-cut unaligned load and store cases.  Handle all integer
5999         vector modes.
6000         (ix86_expand_vector_move_misalign): Short-cut unaligned load
6001         and store cases.  Call ix86_avx256_split_vector_move_misalign
6002         directly without checking mode class.
6003
6004 2016-04-20  Andrew Pinski  <apinski@cavium.com>
6005             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6006
6007         PR target/64971
6008         * config/aarch64/aarch64.md (sibcall): Force call
6009         address to be DImode for ILP32.
6010         (sibcall_value): Likewise.
6011
6012 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
6013
6014         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
6015
6016 2016-04-20  Richard Biener  <rguenther@suse.de>
6017
6018         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
6019         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
6020         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
6021         (maybe_push_res_to_seq): Adjust.
6022         * gimple-fold.c (maybe_build_generic_op): Likewise.
6023
6024 2016-04-20  Marek Polacek  <polacek@redhat.com>
6025
6026         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
6027         rather than true.
6028
6029 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
6030
6031         * config/i386/sse.md (vec_unpacks_lo_hi): Always
6032         use kmovw to support AVX512F target.
6033
6034 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
6035
6036         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
6037
6038 2016-04-20  Marek Polacek  <polacek@redhat.com>
6039
6040         PR tree-optimization/70725
6041         * tree-if-conv.c (is_false_predicate): New function.
6042         (predicate_mem_writes): Use it.
6043
6044 2016-04-20  Richard Biener  <rguenther@suse.de>
6045
6046         PR tree-optimization/70726
6047         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
6048         shift amounts from a pattern stmt operand.
6049
6050 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6051
6052         PR target/70674
6053         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
6054         stack_restore_from_fpr pattern when restoring r15.
6055         (s390_optimize_prologue): Strip away the memory barrier in the
6056         parallel when trying to get rid of restore insns.
6057         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
6058         definition for loading the stack pointer from an FPR.  Compared to
6059         the normal move insn this pattern includes a full memory barrier.
6060
6061 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
6062
6063         PR middle-end/70680
6064         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
6065         implicitly linear or lastprivate iterator on the outer context.
6066
6067 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
6068
6069         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
6070         alignment check.
6071         * config/i386/i386.md (ssememalign): Removed.
6072         * config/i386/sse.md: Remove ssememalign attribute from patterns.
6073
6074 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
6075
6076         PR target/69201
6077         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
6078         const short * to __builtin_ia32_loaddquhi512_mask.
6079         (_mm512_maskz_loadu_epi16): Likewise.
6080         (_mm512_mask_storeu_epi16): Pass short * to
6081         __builtin_ia32_storedquhi512_mask.
6082         (_mm512_mask_loadu_epi8): Pass const char * to
6083         __builtin_ia32_loaddquqi512_mask.
6084         (_mm512_maskz_loadu_epi8): Likewise.
6085         (_mm512_mask_storeu_epi8): Pass char * to
6086         __builtin_ia32_storedquqi512_mask.
6087         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
6088         const double * to __builtin_ia32_loadupd512_mask.
6089         (_mm512_mask_loadu_pd): Likewise.
6090         (_mm512_maskz_loadu_pd): Likewise.
6091         (_mm512_storeu_pd): Pass double * to
6092         __builtin_ia32_storeupd512_mask.
6093         (_mm512_mask_storeu_pd): Likewise.
6094         (_mm512_loadu_ps): Pass const float * to
6095         __builtin_ia32_loadups512_mask.
6096         (_mm512_mask_loadu_ps): Likewise.
6097         (_mm512_maskz_loadu_ps): Likewise.
6098         (_mm512_storeu_ps): Pass float * to
6099         __builtin_ia32_storeups512_mask.
6100         (_mm512_mask_storeu_ps): Likewise.
6101         (_mm512_mask_loadu_epi64): Pass const long long * to
6102         __builtin_ia32_loaddqudi512_mask.
6103         (_mm512_maskz_loadu_epi64): Likewise.
6104         (_mm512_mask_storeu_epi64): Pass long long *
6105         to __builtin_ia32_storedqudi512_mask.
6106         (_mm512_loadu_si512): Pass const int * to
6107         __builtin_ia32_loaddqusi512_mask.
6108         (_mm512_mask_loadu_epi32): Likewise.
6109         (_mm512_maskz_loadu_epi32): Likewise.
6110         (_mm512_storeu_si512): Pass int * to
6111         __builtin_ia32_storedqusi512_mask.
6112         (_mm512_mask_storeu_epi32): Likewise.
6113         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
6114         char * to __builtin_ia32_storedquqi256_mask.
6115         (_mm_mask_storeu_epi8): Likewise.
6116         (_mm256_mask_loadu_epi16): Pass const short * to
6117         __builtin_ia32_loaddquhi256_mask.
6118         (_mm256_maskz_loadu_epi16): Likewise.
6119         (_mm_mask_loadu_epi16): Pass const short * to
6120         __builtin_ia32_loaddquhi128_mask.
6121         (_mm_maskz_loadu_epi16): Likewise.
6122         (_mm256_mask_loadu_epi8): Pass const char * to
6123         __builtin_ia32_loaddquqi256_mask.
6124         (_mm256_maskz_loadu_epi8): Likewise.
6125         (_mm_mask_loadu_epi8): Pass const char * to
6126         __builtin_ia32_loaddquqi128_mask.
6127         (_mm_maskz_loadu_epi8): Likewise.
6128         (_mm256_mask_storeu_epi16): Pass short * to.
6129         __builtin_ia32_storedquhi256_mask.
6130         (_mm_mask_storeu_epi16): Pass short * to.
6131         __builtin_ia32_storedquhi128_mask.
6132         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
6133         const double * to __builtin_ia32_loadupd256_mask.
6134         (_mm256_maskz_loadu_pd): Likewise.
6135         (_mm_mask_loadu_pd): Pass onst double * to
6136         __builtin_ia32_loadupd128_mask.
6137         (_mm_maskz_loadu_pd): Likewise.
6138         (_mm256_mask_storeu_pd): Pass double * to
6139         __builtin_ia32_storeupd256_mask.
6140         (_mm_mask_storeu_pd): Pass double * to
6141         __builtin_ia32_storeupd128_mask.
6142         (_mm256_mask_loadu_ps): Pass const float * to
6143         __builtin_ia32_loadups256_mask.
6144         (_mm256_maskz_loadu_ps): Likewise.
6145         (_mm_mask_loadu_ps): Pass const float * to
6146         __builtin_ia32_loadups128_mask.
6147         (_mm_maskz_loadu_ps): Likewise.
6148         (_mm256_mask_storeu_ps): Pass float * to
6149         __builtin_ia32_storeups256_mask.
6150         (_mm_mask_storeu_ps): ass float * to
6151         __builtin_ia32_storeups128_mask.
6152         (_mm256_mask_loadu_epi64): Pass const long long * to
6153         __builtin_ia32_loaddqudi256_mask.
6154         (_mm256_maskz_loadu_epi64): Likewise.
6155         (_mm_mask_loadu_epi64): Pass const long long * to
6156         __builtin_ia32_loaddqudi128_mask.
6157         (_mm_maskz_loadu_epi64): Likewise.
6158         (_mm256_mask_storeu_epi64): Pass long long * to
6159         __builtin_ia32_storedqudi256_mask.
6160         (_mm_mask_storeu_epi64): Pass long long * to
6161         __builtin_ia32_storedqudi128_mask.
6162         (_mm256_mask_loadu_epi32): Pass const int * to
6163         __builtin_ia32_loaddqusi256_mask.
6164         (_mm256_maskz_loadu_epi32): Likewise.
6165         (_mm_mask_loadu_epi32): Pass const int * to
6166         __builtin_ia32_loaddqusi128_mask.
6167         (_mm_maskz_loadu_epi32): Likewise.
6168         (_mm256_mask_storeu_epi32): Pass int * to
6169         __builtin_ia32_storedqusi256_mask.
6170         (_mm_mask_storeu_epi32): Pass int * to
6171         __builtin_ia32_storedqusi128_mask.
6172         * config/i386/i386-builtin-types.def (PCSHORT): New.
6173         (PINT64): Likewise.
6174         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
6175         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
6176         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
6177         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
6178         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
6179         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
6180         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
6181         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
6182         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
6183         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
6184         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
6185         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
6186         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
6187         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
6188         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
6189         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
6190         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
6191         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
6192         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
6193         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
6194         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
6195         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
6196         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
6197         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
6198         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
6199         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
6200         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
6201         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
6202         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
6203         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
6204         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
6205         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
6206         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
6207         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
6208         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
6209         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
6210         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
6211         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
6212         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
6213         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
6214         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
6215         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
6216         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
6217         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
6218         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
6219         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
6220         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
6221         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
6222         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
6223         use UNSPEC_STOREU.
6224         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
6225         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
6226         load nor store.
6227         (ix86_expand_vector_move_misalign): Likewise.
6228         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
6229         to scalar function prototype for unaligned load/store builtins.
6230         (ix86_expand_special_args_builtin): Updated.
6231         * config/i386/sse.md (UNSPEC_LOADU): Removed.
6232         (UNSPEC_STOREU): Likewise.
6233         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
6234         (VI_ULOADSTORE_F_AVX512VL): Likewise.
6235         (ssescalarsize): Handle V4TI, V2TI and V1TI.
6236         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
6237         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
6238         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
6239         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
6240         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
6241         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
6242         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
6243         (<avx512>_storedqu<mode>_mask): Likewise.
6244         (*sse4_2_pcmpestr_unaligned): Likewise.
6245         (*sse4_2_pcmpistr_unaligned): Likewise.
6246         (*mov<mode>_internal): Renamed to ...
6247         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
6248         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
6249         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
6250         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
6251
6252 2016-04-19  Richard Biener  <rguenther@suse.de>
6253
6254         PR tree-optimization/70171
6255         * tree-ssa-phiprop.c: Include stor-layout.h.
6256         (phiprop_insert_phi): Handle the aggregate copy case.
6257         (propagate_with_phi): Likewise.
6258
6259 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
6260
6261         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
6262         instead of simplify_gen_subreg (... , 0).
6263         (ix86_delegitimize_address): Ditto.
6264         (ix86_split_divmod): Ditto.
6265         (ix86_split_copysign_const): Ditto.
6266         (ix86_split_copysign_var): Ditto.
6267         (ix86_expand_args_builtin): Ditto.
6268         (ix86_expand_round_builtin): Ditto.
6269         (ix86_expand_special_args_builtin): Ditto.
6270         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
6271         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
6272         (udivmodqi4): Ditto.
6273         (absneg splitters): Ditto.
6274         (*jcc_bt<mode>_1): Ditto.
6275
6276 2016-04-19  Richard Biener  <rguenther@suse.de>
6277
6278         PR tree-optimization/70724
6279         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
6280         restoring out from ...
6281         (free_scc_vn): ... here.
6282         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
6283         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
6284         tail merging.
6285         (pass_fre::execute): Restore SSA info.
6286
6287 2016-04-19  Richard Biener  <rguenther@suse.de>
6288
6289         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
6290         * gimple-walk.c (walk_gimple_op): Initialize it.
6291         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
6292         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
6293         remapping SSA names of defs.
6294         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
6295         adjustment.
6296
6297 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
6298
6299         PR middle-end/70689
6300         * lra-constraints.c (equiv_substition_p): New.
6301         (process_alt_operands): Use it.
6302         (swap_operands): Swap it.
6303         (curr_insn_transform): Update it.
6304
6305 2016-04-18  Michael Matz  <matz@suse.de>
6306
6307         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
6308         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
6309         * tree-core.h (tree_type_common.align): Use bit-field.
6310         (tree_type_common.spare): New.
6311         (tree_decl_common.off_align): Make smaller.
6312         (tree_decl_common.align): Use bit-field.
6313
6314         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
6315         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
6316         (scan_sharing_clauses): Ditto.
6317         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
6318         (omp_finish_file): Ditto.
6319         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
6320         (layout_decl): Ditto.
6321         (relayout_decl): Ditto.
6322         (finalize_record_size): Use SET_TYPE_ALIGN.
6323         (finalize_type_size): Ditto.
6324         (finish_builtin_struct): Ditto.
6325         (layout_type): Ditto.
6326         (initialize_sizetypes): Ditto.
6327         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
6328         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
6329         (lookup_field_for_decl): Use SET_DECL_ALIGN.
6330         (get_chain_field): Ditto.
6331         (get_trampoline_type): Ditto.
6332         (get_nl_goto_field): Ditto.
6333         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
6334         SET_DECL_ALIGN.
6335         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
6336         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
6337         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
6338         (build_qualified_type): Use SET_TYPE_ALIGN.
6339         (build_aligned_type, build_range_type_1): Ditto.
6340         (build_atomic_base): Ditto.
6341         (build_common_tree_nodes): Ditto.
6342         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
6343         (expand_one_stack_var_at): Ditto.
6344         * coverage.c (build_var): Use SET_DECL_ALIGN.
6345         * except.c (init_eh): Ditto.
6346         * function.c (assign_parm_setup_block): Ditto.
6347         * symtab.c (increase_alignment_1): Ditto.
6348         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
6349         * tree-vect-stmts.c (ensure_base_align): Ditto.
6350         * varasm.c (align_variable): Ditto.
6351         (assemble_variable): Ditto.
6352         (build_constant_desc): Ditto.
6353         (output_constant_def_contents): Ditto.
6354
6355         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
6356         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
6357         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
6358         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
6359         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
6360
6361 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
6362
6363         PR target/70708
6364         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
6365         replace %vmovsd with "%vmovq".
6366         (vec_concatv2df): Likewise.
6367
6368 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
6369
6370         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
6371         (*vec_extractv2si_0): Ditto.
6372         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
6373         (zero_extended_scalar_load_operand splitters): Ditto.
6374         (vec_extract splitters): Ditto.
6375         (*vec_extractv4si_0_zext): Ditto.
6376         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
6377         and lowpart_subreg.
6378         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
6379         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
6380         (*sse4_1_extractps): Use lowpart_subreg.
6381         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
6382
6383 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6384
6385         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
6386         gld requirements.
6387         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
6388         Mention Solaris 11 packaging changes.
6389         Update gas and gld requirements.
6390         Remove reference to pre-Solaris 10 bug.
6391         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
6392         systems and bugs.
6393         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
6394         with cc.
6395
6396 2016-04-17  Jan Hubicka  <jh@suse.cz>
6397
6398         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
6399         max_loop_iterations_int.
6400
6401 2016-04-18  Richard Biener  <rguenther@suse.de>
6402
6403         PR tree-optimization/43434
6404         * tree-ssa-structalias.c (struct vls_data): New.
6405         (visit_loadstore): Handle all pointer-based accesses.
6406         (compute_dependence_clique): Compute a bitmap of restrict tags
6407         assigned bases and pass it to visit_loadstore.
6408
6409 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
6410
6411         PR target/70711
6412         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
6413         armv8.1-a and armv8.1-a+crc.
6414
6415 2016-04-18  Richard Biener  <rguenther@suse.de>
6416
6417         PR tree-optimization/70701
6418         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
6419         references after translating through a memcpy.
6420
6421 2016-04-18  Richard Biener  <rguenther@suse.de>
6422
6423         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
6424         (compute_antic): ... here.  For partial antic use regular
6425         postorder and scrap iteration.
6426         (compute_partial_antic_aux): Remove unused return value.
6427         (init_pre): Do not allocate postorder.
6428         (fini_pre): Do not free postorder.
6429
6430 2016-04-18  Richard Biener  <rguenther@suse.de>
6431
6432         PR middle-end/37870
6433         * expmed.c (extract_bit_field_1): Remove broken case
6434         using a wider MODE_INT mode.
6435
6436 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
6437
6438         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
6439         unless compiling with at least GCC-4.8.
6440
6441 2016-04-17  Jan Hubicka  <jh@suse.cz>
6442
6443         PR bootstrap/70706
6444         * graphite.c (graphite_finalize): Update call to
6445         tree_estimate_probability.
6446         * predict.h (tree_estimate_probability): Update prototype.
6447
6448 2016-04-17  Jan Hubicka  <jh@suse.cz>
6449
6450         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
6451         (tree_estimate_probability): Likewise.
6452         (pass_profile::execute): Update.
6453         (report_predictor_hitrates): New function.
6454         * profile.c (compute_branch_probabilities): Use it.
6455         * predict.h (report_predictor_hitrates): Declare.
6456
6457 2016-04-17  Jan Hubicka  <jh@suse.cz>
6458
6459         PR ipa/70018
6460         * cgraph.h (cgraph_node::set_const_flag,
6461         cgraph_node::set_pure_flag): Update prototype to return bool;
6462         update comment.
6463         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
6464         of interposable symbol are interposable, too.
6465         (cgraph_set_const_flag_1): Rename to ...
6466         (set_const_flag_1): ... this one; change to self recursive function
6467         instead of call_for_symbol_thunks_and_aliases. Handle correctly
6468         clearnig the flag in all variants and also virtual thunks of const
6469         functions are pure; track if any change was done.
6470         (cgraph_node::set_const_flag): Update.
6471         (struct set_pure_flag_info): New struct.
6472         (cgraph_set_pure_flag_1): Rename to ...
6473         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
6474         rather than pointer encoded flags; track if any changes was done;
6475         handle correctly clearning flag and setting flag of aliases already
6476         declared const.
6477         (cgraph_node::set_pure_flag): Update.
6478         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
6479
6480 2016-04-17  Tom de Vries  <tom@codesourcery.com>
6481
6482         PR other/70433
6483         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
6484         backslash in label.
6485
6486 2016-04-17  Tom de Vries  <tom@codesourcery.com>
6487
6488         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
6489         '{}<> ' as escape-for-record.
6490
6491 2016-04-17  Tom de Vries  <tom@codesourcery.com>
6492
6493         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
6494         structure.
6495
6496 2016-04-17  Tom de Vries  <tom@codesourcery.com>
6497
6498         PR other/70185
6499         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
6500         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
6501         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
6502         * passes.c (finish_optimization_passes): Only call
6503         finish_graph_dump_file if dfi->graph_dump_initialized.
6504         (execute_function_dump, pass_init_dump_file): Use
6505         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
6506
6507 2016-04-17  Tom de Vries  <tom@codesourcery.com>
6508
6509         PR tree-optimization/70256
6510         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
6511         (debug_varmap): New function.
6512
6513 2016-04-17  Tom de Vries  <tom@codesourcery.com>
6514
6515         PR other/70183
6516         * passes.c (pass_manager::register_pass): Propagate pflags.
6517
6518 2016-04-17  Tom de Vries  <tom@codesourcery.com>
6519
6520         PR other/68875
6521         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
6522         * passes.c (pass_manager::pass_manager): Declare and init p_start in
6523         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
6524         check if it's equal to p_start.
6525         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
6526
6527 2016-04-15  Jan Hubicka  <jh@suse.cz>
6528
6529         PR ipa/70018
6530         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
6531         function does not bind to current def.
6532         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
6533         handle conservatively calls to functions that does not need to bind
6534         to current def.
6535         (check_call): Update call of worse_state.
6536         (ignore_edge_for_nothrow): Update.
6537         (ignore_edge_for_pure_const): Likewise.
6538         (propagate_pure_const): Update calls to worse_state.
6539         (skip_function_for_local_pure_const): Reformat comments.
6540
6541 2016-04-15  Jan Hubicka  <jh@suse.cz>
6542
6543         PR ipa/70018
6544         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
6545         (cgraph_node::function_symbol): Likewise.
6546         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
6547         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
6548         (symtab_node::ultimate_alias_target): Add REF parameter.
6549         (symtab_node::binds_to_current_def_p): Declare.
6550         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
6551         (cgraph_node::function_symbol): Likewise.
6552         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
6553         (cgraph_node::get_availability): Likewise.
6554         (cgraph_edge::binds_to_current_def_p): New inline function.
6555         (varpool_node::get_availability): Add REF parameter.
6556         (varpool_node::ultimate_alias_target): Likewise.
6557         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
6558         (symtab_node::binds_to_current_def_p): Likewise.
6559         * varpool.c (varpool_node::get_availability): Likewise.
6560
6561 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
6562
6563         PR target/70662
6564         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
6565         Fix mode size check.
6566
6567 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
6568
6569         * BASE-VER: Set to 7.0.0.
6570
6571 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
6572
6573         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
6574
6575 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6576
6577         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
6578         architecture revisions.
6579
6580 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
6581
6582         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
6583         * config/i386/i386.c (ix86_using_red_zone): No longer static.
6584         * config/i386/i386.md (stack decrement to push peepholes): Guard
6585         with !x86_using_red_zone ().
6586
6587 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
6588
6589         PR c++/70675
6590         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
6591         to dump_generic_node.
6592         (NIY): Pass also flags to do_niy.
6593
6594 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
6595
6596         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
6597         (simd_clone_vector_of_formal_parm_types)
6598         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
6599         (simd_clone_mangle, simd_clone_create)
6600         (simd_clone_adjust_return_type, create_tmp_simd_array)
6601         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
6602         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
6603         (ipa_simd_modify_function_body, simd_clone_linear_addend)
6604         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
6605         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
6606         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
6607         * omp-simd-clone.c: ... this new file.
6608         (simd_clone_vector_of_formal_parm_types): Make it static.
6609         * Makefile.in (OBJS): Add omp-simd-clone.o.
6610
6611 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
6612
6613         PR target/70662
6614         * config/i386/sse.md: Use proper memory operand modifiers.
6615
6616
6617 2016-04-15  Richard Biener  <rguenther@suse.de>
6618         Alan Modra  <amodra@gmail.com>
6619
6620         PR tree-optimization/70130
6621         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
6622         when alignment stays not the same and no not use the realign
6623         scheme then.
6624
6625 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6626
6627         PR target/70669
6628         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
6629         direct move handlers for KFmode. Change TFmode handlers test from
6630         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
6631
6632 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
6633
6634         PR c++/70594
6635         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
6636         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
6637         (inlined_polymorphic_ctor_dtor_block_p): Use it.
6638         * tree-ssa-live.c (remove_unused_scope_block_p): When
6639         in_ctor_dtor_block, avoid discarding not just BLOCKs with
6640         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
6641         block_ultimate_origin is FUNCTION_DECL.
6642         (remove_unused_locals): If current_function_decl is
6643         polymorphic_ctor_dtor_p, pass initial true to
6644         remove_unused_scope_block_p' is_ctor_dtor_block.
6645
6646 2016-04-14  Martin Sebor  <msebor@redhat.com>
6647
6648         PR c++/69517
6649         PR c++/70019
6650         PR c++/70588
6651         * doc/extend.texi (Variable Length): Revert.
6652
6653 2016-04-14  Marek Polacek  <polacek@redhat.com>
6654             Jan Hubicka  <hubicka@ucw.cz>
6655
6656         PR c++/70029
6657         * tree.c (verify_type): Disable the canonical type of main variant
6658         check.
6659
6660 2016-04-14  Jason Merrill  <jason@redhat.com>
6661
6662         * cfgexpand.c, expr.c: Revert previous change.
6663
6664 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
6665
6666         PR middle-end/70643
6667         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
6668         when building a mem ref for the incoming reduction variable.
6669
6670 2016-04-14  Richard Biener  <rguenther@suse.de>
6671
6672         PR tree-optimization/70614
6673         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
6674         loop if the evolution dropped to chrec_dont_know.
6675         (interpret_condition_phi): Likewise.
6676
6677 2016-04-14  Richard Biener  <rguenther@suse.de>
6678
6679         PR tree-optimization/70623
6680         * tree-ssa-pre.c (changed_blocks): Make global ...
6681         (compute_antic): ... local here.  Move and fix worklist
6682         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
6683         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
6684         worklist handling, dump when ANTIC_IN changed.
6685         (compute_partial_antic_aux): Remove worklist handling.
6686         (init_pre): Do not compute post dominators.  Add a comment about
6687         the CFG order chosen.
6688         (fini_pre): Do not free post dominators.
6689
6690 2016-04-13  Martin Sebor  <msebor@redhat.com>
6691
6692         PR c++/69517
6693         PR c++/70019
6694         PR c++/70588
6695         * doc/extend.texi (Variable Length): Document C++ specifics.
6696
6697 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
6698
6699         PR c++/70641
6700         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
6701         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
6702         eh edges have been purged.
6703
6704         PR c++/70594
6705         * tree-sra.c (create_access_replacement,
6706         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
6707         gets fancy name.
6708         * tree-pretty-print.c (dump_fancy_name): New function.
6709         (dump_decl_name, dump_generic_node): Use it.
6710
6711 2016-04-13  Jason Merrill  <jason@redhat.com>
6712
6713         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
6714         * expr.c (expand_expr_real_1): Likewise.
6715
6716 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
6717
6718         * config/i386/i386.md (kunpckhi): Swap operands.
6719         (kunpcksi): Likewise.
6720         (kunpckdi): Likewise.
6721         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
6722         (vec_pack_trunc_<mode>): Likewise.
6723
6724 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
6725
6726         PR debug/70628
6727         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
6728
6729         PR middle-end/70633
6730         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
6731         gimplification turns some element into non-constant.
6732
6733         PR debug/70628
6734         * rtl.h (convert_memory_address_addr_space_1): New prototype.
6735         * explow.c (convert_memory_address_addr_space_1): No longer static,
6736         add NO_EMIT argument and don't call convert_modes if true, pass
6737         it down recursively, remove break after return.
6738         (convert_memory_address_addr_space): Adjust caller.
6739         * simplify-rtx.c (simplify_unary_operation_1): Call
6740         convert_memory_address_addr_space_1 instead of convert_memory_address,
6741         if it returns NULL, don't simplify.
6742
6743 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
6744
6745         PR target/70630
6746         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
6747
6748 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
6749
6750         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6751         Bump the upper SIMDLEN limits, so that if the return type or
6752         characteristic type if the return type is void can be passed in
6753         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
6754         allowed.
6755
6756 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
6757
6758         PR target/70640
6759         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
6760         Do not use "=" constraint on an input constraint.
6761         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
6762         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
6763         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
6764         generates (neg (abs ...)) instead of (abs ...).
6765
6766 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
6767
6768         PR rtl-optimization/70596
6769         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
6770         just invalidate LRA data and reset them.  Adjust dump wording.
6771
6772 2016-04-12  Martin Liska  <mliska@suse.cz>
6773
6774         Revert
6775         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
6776
6777         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
6778         estimates here.
6779         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
6780         max_loop_iterations_int.
6781         (tree_unswitch_outer_loop): Likewise.
6782         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
6783         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
6784
6785 2016-04-12  Tom de Vries  <tom@codesourcery.com>
6786
6787         PR tree-optimization/68756
6788         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
6789         instead of new_name.
6790
6791 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
6792
6793         PR tree-optimization/70602
6794         * tree-sra.c (generate_subtree_copies): Don't write anything into
6795         constant pool decls.
6796
6797         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
6798         regardless whether there are depend clauses or not.
6799
6800 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
6801
6802         PR target/70381
6803         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
6804         target attribute and pragma from changing the -mfloat128
6805         and -mfloat128-hardware options.
6806
6807         * doc/extend.texi (Additional Floating Types): Document PowerPC
6808         __float128 restrictions.
6809
6810 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
6811
6812         PR target/70133
6813         * config/aarch64/driver-aarch64.c
6814         (aarch64_get_extension_string_for_isa_flags): New.
6815         (arch_extension): Rename to...
6816         (aarch64_arch_extension): ...This.
6817         (ext_to_feat_string): Rename to...
6818         (aarch64_extensions): ...This.
6819         (aarch64_core_data): Keep track of architecture extension flags.
6820         (cpu_data): Rename to...
6821         (aarch64_cpu_data): ...This.
6822         (aarch64_arch_driver_info): Keep track of architecture extension
6823         flags.
6824         (get_arch_name_from_id): Rename to...
6825         (get_arch_from_id): ...This, change return type.
6826         (host_detect_local_cpu): Update and reformat for renames, handle
6827         extensions through common infrastructure.
6828
6829 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
6830
6831         PR target/70133
6832         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
6833         track of a canonical flag name.
6834         (all_extensions): Likewise.
6835         (arch_to_arch_name): Also track extension flags enabled by the arch.
6836         (all_architectures): Likewise.
6837         (aarch64_parse_extension): Move to here.
6838         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
6839         rework.
6840         (aarch64_rewrite_selected_cpu): Update for above change.
6841         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
6842         are handled, such that the single explicit value enabled by an
6843         extension is kept seperate from the implicit values it also enables.
6844         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
6845         to here.
6846         (aarch64_parse_extension): New.
6847         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
6848         here to config/aarch64/aarch64-protos.h.
6849         (aarch64_parse_extension): Move from here to
6850         common/config/aarch64/aarch64-common.c.
6851         (aarch64_option_print): Update.
6852         (aarch64_declare_function_name): Likewise.
6853         (aarch64_start_file): Likewise.
6854         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
6855         the canonical flag for extensions.
6856         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
6857         flags.
6858
6859 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
6860
6861         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
6862         AARCH64_FL_CRC.
6863
6864 2016-04-09  Tom de Vries  <tom@codesourcery.com>
6865
6866         PR tree-optimization/68953
6867         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
6868         first to last subscript.
6869
6870 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
6871
6872         PR tree-optimization/70586
6873         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
6874         for any calls.
6875
6876 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
6877
6878         PR lto/70289
6879         PR ipa/70348
6880         PR tree-optimization/70373
6881         PR middle-end/70533
6882         PR middle-end/70534
6883         PR middle-end/70535
6884         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
6885         clauses for acc parallel reductions as necessary.  Error on those
6886         that are private.
6887         * omp-low.c (scan_sharing_clauses): Don't install variables which
6888         are used in acc parallel reductions.
6889         (lower_rec_input_clauses): Remove dead code.
6890         (lower_oacc_reductions): Add support for reference reductions.
6891         (lower_reduction_clauses): Remove dead code.
6892         (lower_omp_target): Don't remap variables appearing in acc parallel
6893         reductions.
6894         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
6895
6896 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
6897
6898         PR middle-end/70593
6899         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
6900         with multiple SSA_NAME defs, force the outputs other than first
6901         to be live before calling live_track_process_def on each output.
6902
6903         PR rtl-optimization/70574
6904         * fwprop.c (forward_propagate_and_simplify): Don't add
6905         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
6906         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
6907         paradoxical subregs within *loc.
6908
6909 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
6910
6911         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
6912         -ftree-parallelize-loops={0,1}.
6913         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
6914         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
6915         * config/ia64/hpux.h (LIB_SPEC): Likewise.
6916         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
6917         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
6918
6919 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
6920
6921         PR sanitizer/70541
6922         * asan.c (instrument_derefs): If we get unknown location, extract it
6923         with EXPR_LOCATION.
6924         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
6925
6926 2016-04-08  Tom de Vries  <tom@codesourcery.com>
6927
6928         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
6929         implicit firstprivate clause.
6930
6931 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6932
6933         PR target/70566
6934         * config/arm/thumb2.md (tst + branch-> lsls + branch
6935         peephole below *orsi_not_shiftsi_si): Require that condition
6936         register is dead after the peephole.
6937         (second peephole after the above): Likewise.
6938
6939 2016-04-08  Alan Modra  <amodra@gmail.com>
6940
6941         PR target/70117
6942         * builtins.c (fold_builtin_classify): For IBM extended precision,
6943         look at just the high-order double to test for NaN.
6944         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
6945         test just the high double for Inf but both doubles for subnormal
6946         limit.
6947
6948 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
6949
6950         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
6951         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
6952         node->simdclone->mask_mode != VOIDmode masks.
6953         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
6954         earlier, use it instead of node->simdclone.
6955         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6956         Set clonei->mask_mode.
6957
6958 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
6959
6960         PR c/70436
6961         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
6962         Pass it through to cp_parser_already_scoped_statement.
6963         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
6964         it through to cp_parser_statement.
6965         (cp_parser_statement): Pass IF_P through to
6966         cp_parser_iteration_statement.
6967         (cp_parser_pragma): Adjust call to
6968         cp_parser_iteration_statement.
6969
6970 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
6971
6972         PR c/70436
6973         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
6974         resolve a future -Wparentheses warning.
6975         * omp-low.c (scan_sharing_clauses): Likewise.
6976         * tree-parloops.c (eliminate_local_variables): Likewise.
6977
6978 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
6979
6980         PR rtl-optimization/70398
6981         * lra-constraints.c (process_address_1): Check zero scale and code
6982         for reloading with zero scale.
6983
6984 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
6985
6986         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
6987         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
6988
6989 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
6990
6991         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6992         Add support for AVX512F clones, include them by default for
6993         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
6994         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
6995         up to 128.
6996
6997         PR middle-end/70550
6998         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
6999         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
7000         firstprivate clauses.
7001         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
7002         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
7003         (lower_omp_target): Set TREE_NO_WARNING for
7004         non-addressable possibly uninitialized vars which are copied into
7005         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
7006
7007 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
7008
7009         * config/pa/predicates.md (integer_store_memory_operand): Accept
7010         REG+D operands with a large offset when reload_in_progress is true.
7011         (floating_point_store_memory_operand): Likewise.
7012
7013 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
7014
7015         PR c++/70336
7016         * match.pd (nested int casts): Limit to GIMPLE.
7017
7018 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
7019
7020         PR ipa/66223
7021         * ipa-devirt.c (maybe_record_node): Fix comment; use
7022         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
7023
7024 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
7025
7026         PR rtl-optimization/70542
7027         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
7028         if there are any uses other than insn or debug insns.
7029
7030 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
7031             Jakub Jelinek  <jakub@redhat.com>
7032
7033         PR tree-optimization/70509
7034         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
7035         Shift HOST_WIDE_INT_1U instead of 1.
7036
7037 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
7038
7039         PR tree-optimization/70509
7040         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
7041         of the vector base type for index.
7042
7043 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
7044
7045         PR target/70510
7046         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
7047
7048 2016-04-05  Richard Biener  <rguenther@suse.de>
7049
7050         PR tree-optimization/70526
7051         * tree-sra.c (build_ref_for_offset): Use prev_base to
7052         extract the alias pointer type.
7053
7054 2016-04-05  Richard Biener  <rguenther@suse.de>
7055
7056         * dse.c (struct store_info): Remove alias_set member.
7057         (struct read_info_type): Likewise.
7058         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
7059         spill_deleted, clear_alias_set_lookup): Remove.
7060         (get_group_info): Remove dead base == NULL_RTX case.
7061         (dse_step0): Remove initialization of removed variables.
7062         (delete_dead_store_insn): Reomve alias set dumping.
7063         (free_read_records): Remove alias_set handling.
7064         (canon_address): Remove alias_set_out parameter.
7065         (record_store): Remove spill_alias_set, it's always zero.
7066         (check_mem_read_rtx): Likewise.
7067         (dse_step2): Rename from ...
7068         (dse_step2_nospill): ... this.  Adjust.
7069         (scan_stores): Rename from ...
7070         (scan_stores_nospill): ... this.
7071         (scan_reads): Rename from ...
7072         (scan_reads_nospill): ... this.
7073         (scan_stores_spill, scan_reads_spill): Remove.
7074         (dse_step3_scan): Remove for_spills argument which is always false.
7075         (dse_step3): Likewise.
7076         (dse_step5): Rename from ...
7077         (dse_step5_nospill): ... this.  Remove alias_set handling.
7078         (rest_of_handle_dse): Adjust.
7079
7080 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
7081
7082         PR target/70525
7083         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
7084         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
7085         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
7086         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
7087
7088 2016-04-05  Richard Biener  <rguenther@suse.de>
7089
7090         PR middle-end/70499
7091         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
7092         non-register type temporaries into SSA.
7093
7094 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
7095
7096         PR ipa/66223
7097         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
7098         calls when sanitizing.
7099         (possible_polymorphic_call_target_p): Fix formatting.
7100
7101 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7102             Jakub Jelinek <jakub@redhat.com>
7103
7104         PR middle-end/70457
7105         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
7106         to ensure a call statement is compatible with a built-in's
7107         prototype.
7108         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
7109         Likewise.
7110
7111 2016-04-04  Richard Biener  <rguenther@suse.de>
7112
7113         PR rtl-optimization/70484
7114         * rtl.h (canon_output_dependence): Declare.
7115         * alias.c (canon_output_dependence): New function.
7116         * dse.c (record_store): Use canon_output_dependence rather
7117         than canon_true_dependence.
7118
7119 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
7120
7121         PR ipa/68881
7122         * cgraph.h (symtab_node::copy_visibility_from): New function.
7123         * symtab.c (symtab_node::copy_visibility_from): New function.
7124         * ipa-visibility.c (optimize_weakref): New function.
7125         (function_and_variable_visibility): Use it.
7126
7127 2016-04-04  Martin Liska  <mliska@suse.cz>
7128
7129         PR hsa/70402
7130         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
7131         value that is really in range handled by SBR instruction.
7132         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
7133         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
7134         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
7135
7136 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
7137
7138         PR target/70416
7139         PR target/67391
7140         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
7141         set, but not for SP_REG operands.
7142
7143 2016-04-02  Martin Sebor  <msebor@redhat.com>
7144
7145         PR c++/67376
7146         * fold-const.c (maybe_nonzero_address): New function.
7147         (fold_comparison): Call it.  Fold equality and relational
7148         expressions involving null pointers.
7149         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
7150
7151 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
7152
7153         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
7154         the "Y" constraint (scalar FP 0.0 immediate).
7155
7156         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
7157         Add the "const_double" to the list of operand constraints.
7158
7159 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
7160
7161         PR rtl-optimization/70467
7162         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
7163         If low word of the last operand is 0, just emit addition/subtraction
7164         for the high word.
7165
7166 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7167
7168         PR target/70404
7169         * config/s390/s390.c (s390_expand_insv): Check for everything
7170         constant instead of just VOIDmode stuff.
7171
7172 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7173
7174         PR target/70496
7175         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
7176
7177 2016-04-01  Nathan Sidwell  <nathan@acm.org>
7178
7179         * tree.def (TRY_CATCH_EXPR): Correct documentation.
7180
7181 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
7182
7183         PR rtl-optimization/70461
7184         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
7185         is necessary.
7186
7187 2016-03-31  Martin Liska  <mliska@suse.cz>
7188
7189         PR hsa/70399
7190         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
7191         a tree value or an immediate integer value to a buffer
7192         that is eventually copied to a BRIG section.
7193         (emit_immediate_operand): Call the function here.
7194         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
7195         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
7196         of class' fields that are removed.
7197         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
7198         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
7199         m_brig_repr_size fields.
7200
7201 2016-03-31  Martin Liska  <mliska@suse.cz>
7202
7203         PR hsa/70391
7204         * hsa-gen.c (hsa_function_representation::update_dominance): New
7205         function.
7206         (convert_addr_to_flat_segment): Likewise.
7207         (gen_hsa_memory_set): New alignment argument.
7208         (gen_hsa_ctor_assignment): Likewise.
7209         (gen_hsa_insns_for_single_assignment): Provide alignment
7210         to gen_hsa_ctor_assignment.
7211         (gen_hsa_insns_for_direct_call): Add new argument.
7212         (expand_lhs_of_string_op): New function.
7213         (expand_string_operation_builtin): Likewise.
7214         (expand_memory_copy): New function.
7215         (expand_memory_set): New function.
7216         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
7217         (convert_switch_statements): Change signature.
7218         (generate_hsa): Use a return value of the function.
7219         (pass_gen_hsail::execute): Do not call
7220         convert_switch_statements here.
7221         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
7222         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
7223         (hsa_function_representation::update_dominance): New function.
7224
7225 2016-03-31  Martin Liska  <mliska@suse.cz>
7226
7227         PR hsa/70391
7228         * hsa-brig.c (emit_directive_variable): Emit alignment
7229         according to hsa_symbol::m_align.
7230         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
7231         (dump_hsa_symbol): Dump alignment of HSA symbols.
7232         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
7233         (gen_hsa_addr_with_align): New function.
7234         (hsa_bitmemref_alignment): Use newly added function.
7235         (gen_hsa_insns_for_load): Likewise.
7236         (gen_hsa_insns_for_store): Likewise.
7237         (gen_hsa_memory_copy): New argument added.
7238         (gen_hsa_insns_for_single_assignment): Respect
7239         alignment for assignments processed via gen_hsa_memory_copy.
7240         (gen_hsa_insns_for_direct_call): Likewise.
7241         (gen_hsa_insns_for_return): Likewise.
7242         (gen_function_def_parameters): Set default alignment.
7243         * hsa.c (hsa_object_alignment): New function.
7244         (hsa_byte_alignment): Pasted function.
7245         * hsa.h (hsa_symbol::m_align): New field.
7246
7247 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
7248
7249         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
7250         scratch field for goto case.
7251
7252 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
7253
7254         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
7255
7256 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
7257
7258         PR target/70442
7259         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
7260         (scalar_chain::convert_insn): Call convert_op for reg
7261         moves to handle undefined registers.
7262
7263 2016-03-31  Nathan Sidwell  <nathan@acm.org>
7264
7265         PR c++/70393
7266         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
7267         Assert we don't want to move backwards.
7268
7269 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
7270
7271         PR target/70453
7272         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
7273
7274 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
7275
7276         PR rtl-optimization/70460
7277         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
7278         with operand from REG_LABEL_OPERAND, instead substitute
7279         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
7280         Don't do anything for REG_NON_LOCAL_GOTO jumps.
7281
7282 2016-03-31  Martin Liska  <mliska@suse.cz>
7283
7284         * passes.c (execute_one_pass): Do not call
7285         todo_after for a discarded function.
7286
7287 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
7288
7289         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
7290         (no_cost, infinite_cost): Initialize the new field.
7291         (get_computation_cost_at): Record setup cost.
7292         (determine_use_iv_cost_address): Skip cost computation for sub
7293         uses if we can estimate it without losing accuracy.
7294
7295 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
7296
7297         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
7298         estimates here.
7299         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
7300         max_loop_iterations_int.
7301         (tree_unswitch_outer_loop): Likewise.
7302         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
7303         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
7304
7305 2016-03-30  Richard Biener  <rguenther@suse.de>
7306
7307         PR middle-end/70450
7308         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
7309
7310 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
7311
7312         PR target/70421
7313         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
7314         in gen_blendm expander.
7315
7316 2016-03-30  Nick Clifton  <nickc@redhat.com>
7317
7318         PR target/62254
7319         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
7320         case where we are already provided with an SImode SUBREG.
7321
7322 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
7323
7324         PR target/70439
7325         * config/i386/i386.c (ix86_expand_epilogue): Properly check
7326         conflict between DRAP register and __builtin_eh_return.
7327
7328 2016-03-30  Michael Matz  <matz@suse.de>
7329             Richard Biener  <rguenther@suse.de>
7330
7331         PR ipa/12392
7332         * ipa-polymorphic-call.c (struct type_change_info): Change
7333         speculative to an unsigned allowing to limit the work we do.
7334         (csftc_abort_walking_p): New inline function..
7335         (check_stmt_for_type_change): Limit the number of may-defs
7336         skipped for speculative devirtualization to
7337         max-speculative-devirt-maydefs.
7338         * params.def (max-speculative-devirt-maydefs): New param.
7339         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
7340
7341 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
7342
7343         PR target/63890
7344         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
7345         and TARGET_MACHO.
7346
7347 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
7348
7349         PR tree-optimization/59124
7350         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
7351         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
7352
7353 2016-03-29  Jeff Law  <law@redhat.com>
7354
7355         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
7356
7357 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
7358
7359         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
7360         to HOST_WIDE_INT.
7361
7362 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
7363
7364         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
7365         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
7366         gcrt0.o if linking dynamically.
7367
7368 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
7369
7370         PR ipa/70283
7371         * ipa-devirt.c (methods_equal_p): New function.
7372         (compare_virtual_tables): Use it.
7373         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
7374         * cgraphclones.c (clone_function_name_1): Use
7375         symbol_table::symbol_suffix_separator.
7376         * coverage.c (build_var): Likewise.
7377         * symtab.c (symbol_table::symbol_suffix_separator): New.
7378
7379 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
7380
7381         PR rtl-optimization/70429
7382         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
7383         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
7384         mode != result_mode.
7385
7386         PR c++/70353
7387         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
7388
7389         PR tree-optimization/70405
7390         * ssa-iterators.h (num_imm_uses): Add missing braces.
7391
7392 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
7393
7394         PR rtl-optimization/68695
7395         * ira-color.c (allocno_copy_cost_saving): New.
7396         (improve_allocation): Use it.
7397
7398 2016-03-29  Richard Henderson  <rth@redhat.com>
7399
7400         PR middle-end/70355
7401         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
7402
7403 2016-03-29  Richard Biener  <rguenther@suse.de>
7404
7405         PR middle-end/70424
7406         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
7407         use alignment returned by get_pointer_alignment_1 if it is
7408         bigger than BITS_PER_UNIT.
7409         * builtins.c (get_pointer_alignment_1): Do not return true
7410         for alignment extracted from SSA info.
7411
7412 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
7413
7414         * config/ft32/ft32.opt (mnodiv): New.
7415         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
7416         * doc/invoke.texi (FT32 Options -mnodiv): New.
7417
7418 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
7419
7420         PR target/70406
7421         * config/i386/i386.md (define_split, andn): Fix modes.
7422
7423 2016-03-26  Richard Biener  <rguenther@suse.de>
7424             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7425
7426         PR ipa/70366
7427         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
7428         instead of
7429         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
7430         as 2nd argument to cl_optimization_restore().
7431
7432 2016-03-25  Richard Henderson  <rth@redhat.com>
7433
7434         PR target/70120
7435         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
7436         * config/aarch64/aarch64-protos.h: Declare it.
7437         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
7438
7439 2016-03-25  Alan Modra  <amodra@gmail.com>
7440
7441         PR target/70052
7442         * config/rs6000/constraints.md (j): Simplify.
7443         * config/rs6000/predicates.md (easy_fp_constant): Exclude
7444         decimal float 0.D.
7445         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
7446         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
7447          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
7448         in all constraint alternatives.
7449         (movtd_64bit_nodm): Delete "j" constraint alternative.
7450
7451 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
7452
7453         * tree-ssa-propagate.c: Enhance docs for
7454         SSA_PROP_NOT_INTERESTING.
7455
7456 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
7457
7458         * doc/extend.texi: Fix typo in documentation to pure attribute.
7459
7460 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
7461
7462         PR target/70319
7463         * config/pa/pa.md (bswapdi2): Use a scratch register.
7464
7465 2016-03-24  Richard Henderson  <rth@redhat.com>
7466
7467         PR middle-end/69845
7468         * fold-const.c (extract_muldiv_1): Correct test for multiplication
7469         overflow.
7470
7471 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
7472
7473         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
7474         using ix86_expand_binary_operator instead of gen_andsi3.
7475
7476 2016-03-24  Richard Biener  <rguenther@suse.de>
7477
7478         PR tree-optimization/70396
7479         * tree-vect-stmts.c (vectorizable_comparison): Use
7480         get_vectype_for_scalar_type.
7481
7482 2016-03-24  Richard Biener  <rguenther@suse.de>
7483
7484         PR middle-end/70370
7485         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
7486         with register bases.
7487
7488 2016-03-24  Richard Biener  <rguenther@suse.de>
7489
7490         PR tree-optimization/70372
7491         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
7492         build_all_ones_cst to also handle vector types correctly.
7493
7494 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
7495
7496         PR target/70381
7497         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
7498         -mfloat128 here.
7499
7500 2016-03-23  Marek Polacek  <polacek@redhat.com>
7501
7502         PR c++/69884
7503         * doc/invoke.texi: Document -Wignored-attributes.
7504
7505 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
7506
7507         PR tree-optimization/69042
7508         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
7509         parameter from 30 to 40.
7510
7511 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
7512
7513         PR tree-optimization/69042
7514         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
7515         for use with constant offset stripped in base.
7516
7517 2016-03-23  Richard Biener  <rguenther@suse.de>
7518
7519         PR middle-end/70251
7520         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
7521         mode compatibility check.
7522         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
7523
7524 2016-03-23  Jeff Law  <law@redhat.com>
7525
7526         PR tree-optimization/64058
7527         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
7528         CONFLICT_COUNT.
7529         (struct ssa_conflicts): Move up earlier in the file.
7530         (conflicts_, var_map_): New static variables.
7531         (initialize_conflict_count): New function to initialize the
7532         CONFLICT_COUNT field for each conflict pair.
7533         (compare_pairs): Lazily initialize the conflict count and use it
7534         as the first tie-breaker.
7535         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
7536         and wipe conflicts_ and map_ around the call to qsort.  Remove
7537         special case for 2 coalesce pairs.
7538         * bitmap.c (bitmap_count_unique_bits): New function.
7539         (bitmap_count_bits_in_word): New function, extracted from
7540         bitmap_count_bits.
7541         (bitmap_count_bits): Use bitmap_count_bits_in_word.
7542         * bitmap.h (bitmap_count_unique_bits): Declare it.
7543
7544 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
7545
7546         PR target/69917
7547         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
7548         transparent alias chain for decl assembler name.
7549         * config/sol2.c (solaris_assemble_visibility): Likewise.
7550
7551 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7552
7553         * config/arm/arm1020e.md (1020call_op): Reduce reservation
7554         duration.
7555         (v10_fdivs): Likewise.
7556         (v10_fdivd): Likewise.
7557
7558 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7559
7560         PR driver/70132
7561         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
7562         to not call fclose twice on file.
7563
7564 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
7565
7566         PR tree-optimization/70354
7567         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
7568         oprnd0 is wider than oprnd1 and there is a cast from the wider
7569         type to oprnd1, mask it with the mask of the narrower type.
7570
7571         PR target/70321
7572         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
7573         Optimize TARGET_STV splitters, if high or low word of last argument
7574         is 0 or -1.
7575
7576 2016-03-22  Jeff Law  <law@redhat.com>
7577
7578         PR target/70232
7579         tree-ssa-threadbackward.c
7580         (fsm_find_control_statement_thread_paths): Correctly distinguish
7581         between old style jump threads vs FSM jump threads.
7582
7583 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
7584
7585         PR target/70302
7586         * config/i386/i386.c (scalar_chain::convert_op): Support
7587         uninitialized register usage case.
7588
7589 2016-03-22  Richard Biener  <rguenther@suse.de>
7590
7591         PR middle-end/70251
7592         * genmatch.c (gen_transform): Adjust last parameter to a three-state
7593         int...
7594         (capture::gen_transform): ... to change behavior when substituting
7595         a condition into cond or not-cond expr context.
7596         (dt_simplify::gen_1): Adjust.
7597         * gimple-match-head.c: Include gimplify.h for unshare_expr.
7598         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
7599         last change and instead change to
7600         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
7601         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
7602
7603 2016-03-22  Anthony Green  <green@moxielogic.com>
7604
7605         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
7606         issue for moxiebox targets.
7607         (CC1PLUS_SPEC): Ditto.
7608
7609 2016-03-22  Richard Biener  <rguenther@suse.de>
7610
7611         PR middle-end/70333
7612         * fold-const.c (extract_muldiv_1): Properly perform multiplication
7613         in the wide type.
7614
7615 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
7616
7617         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
7618
7619 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
7620
7621         PR target/70325
7622         * config/i386/i386.c (def_builtin): Handle
7623         OPTION_MASK_ISA_AVX512VL to be and-ed with other
7624         bits.
7625         (const struct builtin_description bdesc_special_args[]):
7626         Remove duplicate ISA bits.
7627
7628 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
7629
7630         PR target/70329
7631         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
7632         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
7633         in a way that works also for AVX512BW.
7634
7635         PR target/70300
7636         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
7637         instead of source if operands[1] is xmm16 and above and
7638         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
7639         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
7640
7641         PR c++/70295
7642         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
7643         on assign if (*from_p) is a comparison, set it to
7644         TREE_NO_WARNING (*from_p).
7645
7646 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
7647
7648         PR middle-end/70326
7649         * lra.c (restore_scratches): Ignore deleted insns.
7650
7651 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
7652             Jakub Jelinek  <jakub@redhat.com>
7653
7654         PR tree-optimization/70317
7655         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
7656         to HONOR_NANS.
7657
7658 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
7659
7660         PR target/70327
7661         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
7662         of ix86_expand_move.
7663         (movoi): Ditto.
7664         (movti): Use general_operand for operand 1 predicate.
7665
7666 2016-03-21  Martin Liska  <mliska@suse.cz>
7667
7668         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
7669         insns.
7670         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
7671
7672 2016-03-21  Martin Liska  <mliska@suse.cz>
7673
7674         PR ipa/70306
7675         * ipa-icf.c (sem_function::parse): Skip static
7676         constructors and destructors.
7677
7678 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
7679
7680         PR target/70296
7681         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
7682         function-like macro, peek following token(s) if it is followed
7683         by CPP_OPEN_PAREN token with optional padding in between, and
7684         if not, don't treat it like a macro.
7685
7686 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
7687             Alexander Monakov  <amonakov@ispras.ru>
7688
7689         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
7690         for the stabs debug format.
7691
7692 2016-03-21  Richard Biener  <rguenther@suse.de>
7693
7694         PR tree-optimization/70310
7695         * tree-vect-generic.c (expand_vector_condition): Fold the built
7696         condition.
7697
7698 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
7699
7700         PR target/70293
7701         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
7702         Block third alternative for AVX-512VL target,
7703
7704 2016-03-21  Martin Liska  <mliska@suse.cz>
7705
7706         PR hsa/70234
7707         * hsa-brig.c (emit_function_directives): Mark unemitted
7708         global variables for emission.
7709         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
7710         (get_symbol_for_decl): Likewise.
7711         * hsa.h (struct hsa_symbol): New flag.
7712
7713 2016-03-21  Richard Biener  <rguenther@suse.de>
7714
7715         PR tree-optimization/70288
7716         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
7717         we do not estimate unsimplified all-constant conditionals or
7718         switches as optimized away.
7719
7720 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
7721
7722         PR rtl-optimization/69102
7723         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
7724         when we have a readonly dependency context.
7725
7726 2016-03-18  Jeff Law  <law@redhat.com>
7727
7728         PR rtl-optimization/70263
7729         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
7730         (update_equiv_regs): When trying to move a store to after the insn
7731         that sets the source of the store, make sure the store occurs after
7732         the insn that sets the source of the store.  When successful note
7733         the REG_EQUIV note created in the dump file.
7734
7735 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
7736             Bernd Schmidt  <bschmidt@redhat.com>
7737
7738         * doc/extend.texi: Document more potential problems with basic asms.
7739
7740 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
7741
7742         PR rtl-optimization/70278
7743         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
7744         VOIDmode.
7745
7746 2016-03-18  Jason Merrill  <jason@redhat.com>
7747
7748         * calls.c (load_register_parameters): Fix zero size sibcall logic.
7749
7750 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
7751
7752         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
7753         values to 128b regs.
7754
7755 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
7756
7757         PR tree-optimization/70252
7758         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
7759         boolean vector has a proper number of elements.
7760         (supportable_narrowing_operation): Likewise.
7761
7762 2016-03-18  Tom de Vries  <tom@codesourcery.com>
7763
7764         PR ipa/70269
7765         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
7766
7767 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
7768
7769         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
7770         instead of replace_rtx for DEBUG_INSNs.
7771
7772 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
7773
7774         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
7775         load type reservations.
7776
7777 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
7778
7779         PR target/70188
7780         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
7781         define_constraint for "Q" and "T" constraints.
7782
7783 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
7784
7785         Tweak the pipeline model for Exynos M1
7786
7787         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
7788         model.
7789
7790 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
7791
7792         PR c/70264
7793         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
7794         where one or both locations aren't within a line_map.
7795
7796 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
7797
7798         PR driver/70192
7799         * opts.c (finish_options): Don't set flag_pie to the default if
7800         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
7801         if it is -1.
7802
7803 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
7804
7805         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
7806         true as ALL_REGS argument to replace_rtx.
7807
7808 2016-03-17  Richard Biener  <rguenther@suse.de>
7809
7810         PR debug/70271
7811         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
7812         last.
7813
7814 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
7815
7816         PR target/70245
7817         * rtl.h (replace_rtx): Add ALL_REGS argument.
7818         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
7819         equality and assert mode is the same, instead of just rtx pointer
7820         equality.
7821         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
7822         true as ALL_REGS argument to replace_rtx.
7823
7824 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
7825
7826         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
7827         for boolean vector with vector mode only.
7828         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
7829
7830 2016-03-17  Nick Clifton  <nickc@redhat.com>
7831
7832         PR target/70162
7833         * config/rx/rx.c (rx_print_integer): Print negative constants in
7834         decimal.
7835
7836 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
7837
7838         PR target/70261
7839         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
7840
7841 2016-03-16  Richard Henderson  <rth@redhat.com>
7842             Richard Biener  <rguenth@suse.de>
7843
7844         PR middle-end/70240
7845         PR middle-end/68215
7846         PR tree-opt/68714
7847         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
7848         first operand as is_gimple_condexpr.
7849
7850         PR middle-end/70240
7851         PR middle-end/68215
7852         Revert r231575
7853         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
7854         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
7855         Do not gimplify the result.
7856         (do_unop): Adjust call to tree_vec_extract.
7857         (do_binop): Likewise.
7858         (do_compare): Likewise.
7859         (do_plus_minus): Likewise.
7860         (do_negate): Likewise.
7861         (expand_vector_condition): Likewise.
7862         (do_cond): Likewise.
7863
7864 2016-03-16  Richard Henderson  <rth@redhat.com>
7865
7866         PR target/70048
7867         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
7868         (aarch64_classify_address): Use it.
7869         (aarch64_legitimize_address): Force all subexpressions of PLUS
7870         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
7871
7872 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
7873             Richard Biener  <rguenth@suse.de>
7874
7875         PR target/70245
7876         * rtlanal.c (replace_rtx): For REG, if from is a REG,
7877         return to even if only REGNO is equal, and assert
7878         mode is the same.
7879
7880 2016-03-11  Jeff Law  <law@redhat.com>
7881
7882         PR rtl-optimization/70224
7883         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
7884
7885 2016-03-16  Richard Henderson  <rth@redhat.com>
7886
7887         PR middle-end/70199
7888         * function.h (struct function): Add has_forced_label_in_static.
7889         * gimplify.c (force_labels_r): Set it.
7890         * lto-streamer-in.c (input_struct_function_base): Read it.
7891         * lto-streamer-out.c (output_struct_function_base): Write it.
7892         * tree-inline.c (has_label_address_in_static_1): Remove.
7893         (copy_forbidden): Remove fndecl parameter; test
7894         has_forced_label_in_static.
7895         (inline_forbidden_p): Update call to copy_forbidden.
7896         (tree_versionable_function_p): Likewise.
7897         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
7898         (chkp_versioning): Likewise.
7899         * tree-inline.h (copy_forbidden): Update decl.
7900
7901 2016-03-16  Marek Polacek  <polacek@redhat.com>
7902
7903         PR c/70093
7904         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
7905         function being thunked if the result type doesn't have fixed size.
7906         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
7907         doesn't have fixed size.
7908
7909 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
7910
7911         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
7912         reporting malformed loop nest.
7913
7914 2016-03-16  Tom de Vries  <tom@codesourcery.com>
7915
7916         PR lto/70187
7917         * ipa-devirt.c (possible_polymorphic_call_targets): Move
7918         nodes.length () == 1 test to before first nodes[0] access.
7919
7920 2016-03-16  Tom de Vries  <tom@codesourcery.com>
7921
7922         PR tree-optimization/68715
7923         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
7924         single_pred_p test.
7925
7926 2016-03-16  Tom de Vries  <tom@codesourcery.com>
7927
7928         PR tree-optimization/68809
7929         * graphite-scop-detection.c (same_close_phi_node): Test if result types
7930         are the same.
7931
7932 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
7933             Sandra Loosemore  <sandra@codesourcery.com>
7934
7935         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
7936         on leaf attribute. Mention ELF interposition problems.
7937
7938 2016-03-16  Alan Modra  <amodra@gmail.com>
7939
7940         PR rtl-optimization/69195
7941         PR rtl-optimization/47992
7942         * ira.c (indirect_jump_optimize): Ignore artificial defs.
7943         Add comments.
7944
7945 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
7946
7947         PR bootstrap/69513
7948         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
7949
7950 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7951
7952         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
7953
7954 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
7955
7956         PR rtl-optimization/70222
7957         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
7958         optimization if mode is different from result_mode, queue up masking
7959         of the result in outer_op.  Formatting fix.
7960
7961         PR middle-end/70239
7962         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
7963         of safe_grow.
7964
7965 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
7966
7967         PR rtl-optimization/69032
7968         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
7969         looping backwards over basic block insns.
7970
7971 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
7972
7973         PR target/66660
7974         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
7975         to non-speculative when propagating trap bits.
7976
7977 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
7978
7979         PR rtl-optimization/63384
7980         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
7981         DEBUG_INSN_P insns.
7982
7983 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
7984
7985         PR target/64411
7986         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
7987         factored out from ...
7988         (sched_analyze_insn): ... here.
7989         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
7990         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
7991         get_implicit_reg_pending_clobbers in it.
7992         (setup_id_reg_sets): Use setup_id_implicit_regs.
7993         (deps_init_id): Ditto.
7994
7995 2016-03-15  Tom de Vries  <tom@codesourcery.com>
7996
7997         PR ipa/70161
7998         * cgraph.c (cgraph_node::get_body): Save, reset and restore
7999         dump_file_name.
8000         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
8001         execute_function_dump.
8002         (execute_one_pass): Don't dump function if it will be dumped after ipa
8003         transform.
8004
8005 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
8006
8007         * genrecog.c (match_pattern_2): If pred is NULL don't call
8008         safe_predicate_mode on it.
8009
8010 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
8011
8012         PR middle-end/70219
8013         * lra-constraints.c (delete_move_and_clobber): Change assertion
8014         to also allow dregno == 0.
8015
8016 2016-03-14  Richard Henderson  <rth@redhat.com>
8017
8018         PR tree-opt/68714
8019         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
8020         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
8021         (reassociate_bb): Use optimize_vec_cond_expr; avoid
8022         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
8023         on vectors.
8024
8025 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
8026
8027         PR target/70083
8028         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
8029         regs.
8030         (lra_create_live_ranges_1): initialize hard register biggest_mode to
8031         VOIDmode.
8032         * lra-constraints.c (split_reg): For hard regs, try to find the
8033         biggest single-register mode used in the function.
8034
8035 2016-03-14  Richard Biener  <rguenther@suse.de>
8036
8037         PR tree-optimization/56365
8038         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
8039         constants to compare against.
8040
8041 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
8042
8043         PR target/70098
8044         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
8045         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
8046         (define_split for the GPR case): Use int_reg_operand instead of
8047         gpc_reg_operand for the output.
8048
8049 2016-03-14  Tom de Vries  <tom@codesourcery.com>
8050
8051         PR tree-optimization/70045
8052         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
8053         create_empty_if_region_on_edge argument.
8054
8055 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
8056
8057         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
8058         (STACK_CHECK_PROTECT): Likewise.
8059         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
8060         (STACK_CHECK_PROTECT): Likewise.
8061         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
8062         (STACK_CHECK_PROTECT): Likewise.
8063         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
8064         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8065         (STACK_CHECK_PROTECT): Likewise.
8066
8067 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
8068
8069         PR rtl-optimization/69307
8070         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
8071         registers in modes that span more than one register.
8072
8073 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
8074
8075         PR target/69614
8076         * lra-constraints.c (delete_move_and_clobber): New.
8077         (remove_inheritance_pseudos): Use it.
8078
8079 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
8080
8081         PR ada/70017
8082         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
8083         the libcall is LCT_THROW.
8084         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
8085         for the checking routine.
8086
8087 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
8088
8089         PR target/70131
8090         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
8091         optimization if we have direct move.
8092         (roundu32<mode>2_fprs): Likewise.
8093
8094 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
8095
8096         PR target/70123
8097         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
8098         be rematerialized.
8099         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
8100         Arguments swapped.  All callers changed.  Take reg_renumber into
8101         account, and Calculate and compare register ranges for hard regs.
8102
8103 2016-03-11  Jeff Law  <law@redhat.com>
8104
8105         PR tree-optimization/70190
8106         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8107         Handle cases where we can not extract the taken edge, even though we
8108         found a constant value.
8109
8110         PR tree-optimization/64058
8111         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
8112         (num_coalesce_pairs): Move up earlier in file.
8113         (find_coalesce_pair): Initialize the INDEX field for each pair
8114         discovered.
8115         (compare_pairs): No longer sort on the elements in each pair.
8116         Instead break ties with the index of the coalesce pair.
8117
8118 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8119
8120         PR target/70002
8121         * config/aarch64/aarch64-protos.h
8122         (aarch64_save_restore_target_globals): New prototype.
8123         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
8124         Call the above when popping pragma.
8125         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
8126         New function.
8127         (aarch64_set_current_function): Rewrite using the above.
8128
8129 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
8130
8131         PR tree-optimization/70177
8132         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
8133         (extract_ops_from_tree): ... this.  In the 2 argument
8134         overload remove _1 suffix.
8135         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
8136         (extract_ops_from_tree): ... this.
8137         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
8138         Adjust callers.
8139         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
8140         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
8141         extract_ops_from_tree instead of 2 operand one.
8142
8143 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
8144
8145         PR tree-optimization/70013
8146         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
8147         for constant-pool entries.
8148
8149 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
8150
8151         PR rtl-optimization/70174
8152         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
8153         followed by gen_lowpart on force_reg instead of just gen_lowpart.
8154
8155         PR tree-optimization/70169
8156         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
8157         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
8158         for unknown codes.
8159
8160 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
8161             Jakub Jelinek  <jakub@redhat.com>
8162
8163         PR target/70160
8164         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
8165         of uninitialized values.
8166
8167 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8168
8169         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
8170         define_expand.
8171         ("*trunctddd2"): New pattern definition.
8172         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
8173         TD->DD truncation.
8174
8175 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8176
8177         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
8178         definitions for BFP and DFP rounding modes.
8179         ("fixuns_truncdddi2", "fixuns_trunctddi2")
8180         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
8181         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
8182         ("fix_trunctf<mode>2"): Use the new constants instead of magic
8183         numbers.
8184
8185 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8186
8187         * config/s390/constraints.md: Adjust comment.
8188         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
8189         s390_decompose_addrstyle_without_index.
8190         * config/s390/predicates.md (shift_count_or_setmem_operand):
8191         Rename to setmem_operand.
8192         * config/s390/s390-protos.h
8193         (s390_decompose_shift_count): Rename to
8194         s390_decompose_addrstyle_without_index.
8195         * config/s390/s390.c (s390_decompose_shift_count)
8196         (s390_mem_constraint, print_shift_count_operand)
8197         (print_operand_address, print_operand): Rename
8198         s390_decompose_shift_count to
8199         s390_decompose_addrstyle_without_index and rename
8200         print_shift_count_operand to print_addrstyle_operand troughout the
8201         file.
8202         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
8203         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
8204         Rename shift_count_or_setmem_operand to setmem_operand.
8205         * config/s390/vx-builtins.md ("vec_insert<mode>")
8206         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
8207         nonmemory_operand.
8208
8209 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8210
8211         PR target/70168
8212         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
8213         Handle overlapping retval and newval.
8214
8215 2016-03-10  Nick Clifton  <nickc@redhat.com>
8216
8217         PR target/7044
8218         * config/aarch64/aarch64.c
8219         (aarch64_override_options_after_change_1): When forcing
8220         flag_omit_frame_pointer to be true, use a special value that can
8221         be detected if this function is called again, thus preventing
8222         flag_omit_leaf_frame_pointer from being forced to be false.
8223
8224 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8225
8226         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
8227         Set x_flag_omit_leaf_frame_pointer when handling
8228         -momit-leaf-frame-pointer.
8229
8230 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
8231
8232         PR lto/69589
8233         * cgraph.c (cgraph_node::dump): Dump split_part and
8234         indirect_call_target.
8235         * cgraph.h (cgraph_node): Add indirect_call_target flag.
8236         * ipa.c (has_addr_references_p): Cleanup.
8237         (is_indirect_call_target_p): New.
8238         (walk_polymorphic_call_targets): Do not mark virtuals that may be
8239         called indirectly as local.
8240         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
8241
8242 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
8243
8244         PR ipa/69630
8245         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
8246         on cxa_pure_virtual.
8247
8248 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
8249
8250         PR lto/69589
8251         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
8252
8253 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
8254
8255         PR lto/69589
8256         * tree.c (need_assembler_name_p): Only record main variant type names.
8257
8258 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
8259
8260         PR target/70113.
8261         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
8262         Always define to 0 or 1.
8263         (TARGET_FIX_ERR_A53_843419): New macro.
8264         * config/aarch64/aarch64-elf-raw.h
8265         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
8266         * config/aarch64/aarch64-linux.h: Likewise.
8267         * config/aarch64/aarch64.c
8268         (aarch64_override_options_after_change_1): Do not default
8269         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
8270         843419 is on.
8271         (aarch64_attributes): Handle fix-cortex-a53-843419.
8272         (aarch64_can_inline_p): Likewise.
8273         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
8274
8275 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
8276         Jakub Jelinek <jakub@redhat.com>
8277
8278         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
8279         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
8280         DECL_COMMONS if flag_unconstrained_commons is set.
8281         * tree-dfa.c (get_ref_base_and_extent): Likewise.
8282         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
8283         (funconstrained-commons): Document.
8284
8285 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
8286
8287         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
8288         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
8289
8290 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
8291
8292         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
8293         has a proper number of elements.
8294
8295 2016-03-10  Alan Modra  <amodra@gmail.com>
8296
8297         PR rtl-optimization/69195
8298         PR rtl-optimization/47992
8299         * ira.c (recorded_label_ref): Delete.
8300         (update_equiv_regs): Return void.
8301         (indirect_jump_optimize): New function.
8302         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
8303         before regstat_compute_ri.  Don't rebuild_jump_labels here.
8304         Delete update_regstat.
8305
8306 2016-03-10  Richard Biener  <rguenther@suse.de>
8307
8308         PR tree-optimization/70128
8309         * tree-ssa-structalias.c (set_uids_in_ptset): Set
8310         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
8311
8312 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
8313
8314         PR tree-optimization/70152
8315         * tree-sra.c (replace_removed_params_ssa_names): Copy over
8316         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
8317
8318         PR target/70086
8319         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
8320         instead of gen_sse2_loadlpd.
8321         * config/i386/sse.md (*vec_concatv2df): Rename to...
8322         (vec_concatv2df): ... this.
8323
8324         PR tree-optimization/70127
8325         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
8326
8327 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
8328
8329         PR c/68473
8330         PR c++/70105
8331         * diagnostic-show-locus.c (compatible_locations_p): New function.
8332         (layout::layout): Sanitize ranges using compatible_locations_p.
8333
8334 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
8335
8336         PR c/68473
8337         PR c++/70105
8338         * diagnostic-show-locus.c (layout_range::layout_range): Replace
8339         location_range param with three const expanded_locations * and a
8340         bool.
8341         (layout::layout): Replace call to
8342         rich_location::lazily_expand_location with get_expanded_location.
8343         Extract the range and perform location expansion here, passing
8344         the results to the layout_range ctor.
8345         * diagnostic.c (source_range::debug): Delete.
8346         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
8347         of rich_location::get_expanded_location.
8348         * gcc-rich-location.c (get_range_for_expr): Delete.
8349         (gcc_rich_location::add_expr): Reimplement to avoid the
8350         rich_location::add_range overload that took a location_range,
8351         passing a location_t instead.
8352
8353 2016-03-09  Richard Biener  <rguenther@suse.de>
8354         Jakub Jelinek  <jakub@redhat.com>
8355
8356         PR tree-optimization/70138
8357         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
8358         Also skip vect_double_reduction_def.
8359
8360 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
8361
8362         PR target/70049
8363         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
8364         if the operand is "m".
8365
8366 2016-03-09  Nathan Sidwell  <nathan@acm.org>
8367
8368         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
8369
8370 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
8371
8372         * config/i386/i386.c (processor_target_table): Fix cost table
8373         intialization order for znver1.
8374
8375 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
8376
8377         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
8378         - becuase -> because.
8379         * ipa-reference.c (ignore_module_statics): Likewise.
8380         * cgraph.c (cgraph_node::get_body): Likewise.
8381         * ipa-inline.c (early_inliner): Likewise.
8382         * ipa-devirt.c (types_same_for_odr): Likewise.
8383         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
8384         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
8385
8386 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8387
8388         * tree-ssa-math-opts.c: Fix typo in comment.
8389
8390 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
8391
8392         PR target/70110
8393         * config/i386/i386.c (scalar_chain::make_vector_copies,
8394         scalar_chain::convert_reg): Call end_sequence in between
8395         get_insns and emit_conversion_insns rather than after both
8396         calls.
8397
8398 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
8399
8400         PR target/70064
8401         * config/i386/i386.h (machine_function): Add
8402         pc_thunk_call_expanded flag.
8403         (ix86_pc_thunk_call_expanded): New define.
8404         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
8405         (*set_got): Rename insn pattern from set_got.
8406         (*set_got_labelled): Rename inst pattern from set_got_labelled.
8407         * config/i386/i386.c (ix86_compute_frame_layout): Use
8408         ix86_pc_thunk_call_expanded to prevent red-zone.
8409
8410 2016-03-07  Martin Jambor  <mjambor@suse.cz>
8411
8412         * hsa.h (hsa_get_ctor_statements): Declare.
8413         (hsa_get_dtor_statements): Likewise.
8414         (hsa_get_kernel_dispatch_type): Likewise.
8415         * hsa.c (hsa_get_ctor_statements): New function.
8416         (hsa_get_dtor_statements): Likewise.
8417         (hsa_get_kernel_dispatch_type): Likewise.
8418         * hsa-brig.c (hsa_cdtor_statements): Removed.
8419         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
8420         hsa_get_dtor_statements.
8421         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
8422         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
8423
8424 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
8425
8426         * config/arm/arm-cores.def (cortex-r8): New.
8427         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
8428         * config/arm/arm-tune.md: Likewise.
8429         * doc/invoke.texi: Add cortex-r8 to list of cpu values.
8430
8431 2016-03-07  Martin Sebor  <msebor@redhat.com>
8432
8433         PR rtl-optimization/19705
8434         * doc/invoke.texi (Options That Control Optimization): Clarify
8435         -fno-branch-count-reg.
8436
8437 2016-02-26  Richard Biener  <rguenther@suse.de>
8438             Jeff Law  <law@redhat.com>
8439
8440         PR tree-optimization/69740
8441         * cfghooks.c (remove_edge): Request loop fixups if we delete
8442         an edge that might turn an irreducible loop into a natural
8443         loop.
8444         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
8445         Move after definition of loops_state_clear.
8446
8447 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
8448
8449         PR rtl-optimization/69052
8450         * rtlanal.c (commutative_operand_precedence): Set higher precedence
8451         to CONST_WIDE_INT.
8452
8453 2016-03-07  Tom de Vries  <tom@codesourcery.com>
8454
8455         PR tree-optimization/70116
8456         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
8457         is_tm_ending stmts and ubsan/asan internal functions.
8458         (find_duplicate): Use it.  Don't test is_tm_ending here.
8459
8460 2016-03-07  Richard Biener  <rguenther@suse.de>
8461
8462         PR tree-optimization/70115
8463         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
8464         (propagate_constants_for_unrolling): Use replace_uses_by.
8465
8466 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
8467
8468         PR middle-end/69916
8469         * omp-low.c (struct oacc_loop): Add ifns.
8470         (new_oacc_loop_raw): Initialize it.
8471         (finish_oacc_loop): Clear mask & flags if no ifns.
8472         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
8473         (oacc_loop_xform_loop): Add ifns arg & adjust.
8474         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
8475
8476 2016-03-07  Richard Henderson  <rth@redhat.com>
8477
8478         PR rtl-opt/70061
8479         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
8480         (insert_value_copy_on_edge): Likewise.
8481
8482 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8483
8484         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
8485
8486 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8487
8488         PR target/62281
8489         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
8490
8491 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
8492
8493         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
8494
8495 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
8496
8497         Fix sseimul type attribute.
8498         * config/i386/znver1.md
8499         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
8500         znver1_sseimul_avx256_load) : Fix the type attribute.
8501         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
8502         pipe usage and latency.
8503
8504 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
8505
8506         PR c++/70084
8507         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
8508         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
8509         to the right type.
8510
8511 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
8512
8513         PR c/69973
8514         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
8515
8516         PR rtl-optimization/69941
8517         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
8518         the reg share its mode.
8519
8520 2016-03-04  Jeff Law  <law@redhat.com>
8521
8522         PR tree-optimization/69196
8523         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8524         If the both SSA_NAMEs are anonymous, then consider them unassociated
8525         and include the PHI in the statement count.
8526
8527 2016-03-05  Tom de Vries  <tom@codesourcery.com>
8528
8529         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
8530         construct in oacc routine.  Check for oacc region in oacc routine.
8531
8532 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
8533
8534         PR target/70062
8535         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
8536         2016-02-22 changes, instead don't recurse if RECUR is already true.
8537         Don't change *dynamic_check if RECUR.  Adjust recursive caller
8538         to pass true to the new argument.
8539         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
8540
8541         PR target/70059
8542         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
8543         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
8544         fixes.
8545         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
8546
8547 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
8548
8549         PR rtl-optimization/57676
8550         * lra-assigns.c (lra_assign): Guard test for maximum iterations
8551         with flag_checking.
8552
8553 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
8554
8555         * tree-vect-patterns.c (search_type_for_mask): Handle
8556         comparison of booleans.
8557
8558 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
8559
8560         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
8561         Fix @xref usage.
8562
8563         PR debug/69947
8564         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
8565         all other ops that have dw_val_class_die_ref operands,
8566         and DW_OP_GNU_entry_value.
8567
8568 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8569
8570         PR rtl-optimization/69904
8571         * config/arm/arm.c (arm_cannot_copy_insn_p):
8572         Return true for load-exclusive instructions.
8573
8574 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
8575
8576         PR target/70021
8577         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
8578         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
8579         the pattern no matter if it is used just by non-pattern, pattern
8580         or mix thereof.
8581         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
8582         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
8583         oprnd1 def_stmt is in pattern, don't look through it.
8584
8585 2016-03-03  Marek Polacek  <polacek@redhat.com>
8586
8587         PR middle-end/70050
8588         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
8589
8590 2016-03-03  Martin Liska  <mliska@suse.cz>
8591
8592         PR tree-optimization/70043
8593         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
8594         previous statement if we see a debug statement.
8595
8596 2016-03-03  Richard Biener  <rguenther@suse.de>
8597
8598         PR tree-optimization/55936
8599         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
8600         parameter and guard unsafe equivalence use.
8601         (vrp_evaluate_conditional_warnv_with_ops): Always use
8602         safe equivalences but not via the quadratic compare_names
8603         helper.
8604
8605 2016-03-03  Michael Collison  <michael.collison@linaro.org>
8606
8607         PR target/70014
8608         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
8609         for operand 1 to s_register_operand. Change predicate for operand
8610         2 to arm_not_immediate_operand.
8611
8612 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
8613
8614         * doc/tm.texi: Regenerated.
8615
8616 2016-03-02  Richard Henderson  <rth@redhat.com>
8617
8618         PR rtl-opt/67145
8619         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
8620         simplification when all args are positive non-fixed registers.
8621
8622 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
8623
8624         * target.def (lra_p): Specify that new ports should use LRA.
8625
8626 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
8627
8628         PR libgomp/69555
8629         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
8630         gimplify_type_sizes the type they refer to.
8631         (omp_notice_variable): Handle reference vars to VLAs.
8632         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
8633         reference to VLA decls in the second pass instead of first pass.
8634
8635 2016-03-02  Tom de Vries  <tom@codesourcery.com>
8636
8637         PR tree-optimization/68659
8638         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
8639         new_expr == NULL_TREE.
8640         (get_new_name): Handle ADDR_EXPR.
8641
8642 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
8643
8644         PR rtl-optimization/69052
8645         * loop-invariant.c (canonicalize_address): New function.
8646         (inv_can_prop_to_addr_use): Check validity of address expression
8647         which is canonicalized by above function.
8648
8649 2016-03-02  Alan Modra  <amodra@gmail.com>
8650
8651         PR ipa/69990
8652         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
8653         larger alignment.
8654
8655 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
8656
8657         PR target/70028
8658         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
8659         (*movhi_internal): Put mask moves from and to memory separately
8660         from moves from/to GPRs.
8661
8662 2016-03-02  Richard Biener  <rguenther@suse.de>
8663
8664         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
8665         GENERIC expressions in GIMPLE.
8666
8667 2016-03-02  Richard Biener  <rguenther@suse.de>
8668
8669         * config/i386/i386.c (type_natural_mode): Fix typo.
8670
8671 2016-03-02  Nick Clifton  <nickc@redhat.com>
8672
8673         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
8674
8675 2016-03-02  Richard Biener  <rguenther@suse.de>
8676             Uros Bizjak  <ubizjak@gmail.com>
8677
8678         PR target/67278
8679         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
8680
8681 2016-03-02  Richard Biener  <rguenther@suse.de>
8682
8683         PR middle-end/67278
8684         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
8685
8686 2016-03-02  Marek Polacek  <polacek@redhat.com>
8687
8688         PR c/67854
8689         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
8690         "is promoted to" warning.
8691
8692 2016-03-01  DJ Delorie  <dj@redhat.com>
8693
8694         * config.gcc: Deprecate mep-*.
8695
8696 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
8697
8698         PR middle-end/70025
8699         * lra-constraints.c (regno_val_use_in): New.
8700         (match_reload): Use it instead of regno_use_in.
8701
8702 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
8703
8704         PR rtl-optimization/70007
8705         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
8706         references present in REG_EQUAL notes attached to non-SET patterns.
8707
8708 2016-03-01  Jeff Law  <law@redhat.com>
8709
8710         PR tree-optimization/69196
8711         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8712         Appropriately clamp the number of statements to copy when the
8713         thread path does not traverse a loop backedge.
8714
8715         PR tree-optimization/69196
8716         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8717         Do count some PHIs in the thread path against the insn count.  Decrease
8718         final statement count by one as the control statement in the last
8719         block will get removed.  Remove special cased code for handling PHIs
8720         in the last block.
8721
8722 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
8723
8724         PR target/70027
8725         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
8726         asm dialect alternatives to explicit GOTPCREL calls.
8727
8728 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
8729
8730         PR ada/70017
8731         * ira.c (do_reload): Issue warning for generic stack checking here...
8732         * reload1.c (reload): ...instead of here and streamline it.
8733
8734 2016-03-01  Nick Clifton  <nickc@redhat.com>
8735
8736         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
8737
8738 2016-03-01  Richard Biener  <rguenther@suse.de>
8739
8740         PR tree-optimization/69983
8741         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
8742         types and fall back to operand_equal_p.
8743
8744 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8745
8746         Revert
8747         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8748
8749         * config/s390/constraints.md ("jm8"): New constraint.
8750         * config/s390/predicates.md ("const_int_8bitset_operand"): New
8751         predicate.
8752         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
8753         into ...
8754         ("*setmem_long<setmem_and>"): New pattern.
8755         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
8756         into ...
8757         ("*setmem_long_31z<setmem_and>"): New pattern.
8758         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
8759         New substitution rules with the required attributes.
8760
8761
8762 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8763
8764         Revert
8765         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8766
8767         * gensupport.c (process_substs_on_one_elem): Split loop to
8768         complete mark_operands_used_in_match_dup on all expressions in the
8769         vector first.
8770         (adjust_operands_numbers): Inline into process_substs_on_one_elem
8771         and remove function.
8772
8773 2016-03-01  Richard Biener  <rguenther@suse.de>
8774
8775         PR middle-end/70022
8776         * fold-const.c (fold_indirect_ref_1): Fix range checking for
8777         vector BIT_FIELD_REF extract.
8778
8779 2016-03-01  Richard Biener  <rguenther@suse.de>
8780
8781         PR tree-optimization/69994
8782         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
8783
8784 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
8785
8786         PR tree-optimization/69956
8787         * tree-vect-stmts.c (supportable_widening_operation): Support
8788         multi-step conversion of boolean vectors.
8789         (supportable_narrowing_operation): Likewise.
8790
8791 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8792
8793         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
8794         anymore.
8795
8796 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8797
8798         * config/s390/subst.md (DSI_VI): New mode iterator.
8799         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
8800         * config/s390/vector.md ("vec_set<mode>"): Move expander before
8801         the insn definition.
8802         ("*vec_set<mode>"): Change predicate and add alternative to
8803         support only either register or const_int operands as element
8804         selector.
8805         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
8806         operands.
8807         ("vec_extract<mode>"): New expander.
8808         ("*vec_extract<mode>"): New insn definition supporting reg and
8809         const_int element selectors.
8810         ("*vec_extract<mode>_plus"): New insn definition supporting
8811         reg+const_int element selectors.
8812         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
8813         following expander+insn definition.
8814         ("<vec_shifts_name><mode>3"): New expander.
8815         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
8816
8817 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8818
8819         * config/s390/s390.md ("*tabort_1"): Change predicate to
8820         nonmemory_operand.  Add a second alternative to cover
8821         register as well as const int operands.
8822         ("*tabort_1_plus"): New pattern definition.
8823
8824 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8825
8826         * config/s390/s390.md ("*ashrdi3_cc_31")
8827         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
8828         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
8829         Merge insn definitions into ...
8830         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
8831         New pattern definition.
8832         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
8833         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
8834         ("*ashr<mode>3_and"): Merge insn definitions into ...
8835         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
8836         New pattern definition.
8837         * config/s390/subst.md ("addr_style_op_cc_subst")
8838         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
8839         substitutions patterns plus attributes.
8840         Add ashiftrt to SUBST iterator.
8841
8842 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8843
8844         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
8845         op2 to nonmemory_operand.
8846         ("*<shift>di3_31", "*<shift>di3_31_and"):
8847         Merge into single pattern definition ...
8848         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
8849         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
8850         pattern definition ...
8851         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
8852         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
8853         iterator.
8854
8855 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8856
8857         * config/s390/predicates.md (const_int_6bitset_operand): New
8858         predicate.
8859         * config/s390/s390.md: Include subst.md.
8860         ("rotl<mode>3"): New expander.
8861         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
8862         ...
8863         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
8864         * config/s390/subst.md: New file.
8865
8866 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8867
8868         * config/s390/s390.md ("op_type", "atype", "length" attributes):
8869         Remove RRR type.  It doesn't really exist.
8870         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
8871         attributes.
8872         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
8873         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
8874         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
8875         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
8876         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
8877         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
8878         `enabled' attribute.
8879
8880 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8881
8882         * gensupport.c (process_substs_on_one_elem): Split loop to
8883         complete mark_operands_used_in_match_dup on all expressions in the
8884         vector first.
8885         (adjust_operands_numbers): Inline into process_substs_on_one_elem
8886         and remove function.
8887
8888 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
8889
8890         PR target/69706
8891         * config/sparc/sparc.c (NWORDS_UP): Rename to...
8892         (CEIL_NWORDS): ...this.  Use CEIL macro.
8893         (compute_fp_layout): Adjust to above renaming.
8894         (function_arg_union_value): Likewise.
8895         (sparc_arg_partial_bytes): Likewise.
8896         (sparc_function_arg_advance): Likewise.
8897
8898 2016-02-29  Jeff Law  <law@redhat.com>
8899
8900         PR tree-optimization/70005
8901         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
8902         where an object with a boolean range is compared against a value
8903         outside [0..1].
8904
8905         PR tree-optimization/69999
8906         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
8907         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
8908         loop cleanups.
8909
8910 2016-02-29  Richard Biener  <rguenther@suse.de>
8911
8912         PR tree-optimization/69994
8913         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
8914         (get_unary_op): Look through nop conversions.
8915         (ops_equal_values_p): New function, look for equality diregarding
8916         nop conversions.
8917         (eliminate_plus_minus_pair): Use ops_equal_values_p
8918         (repropagate_negates): Do not use get_unary_op here.
8919
8920 2016-02-29  Martin Liska  <mliska@suse.cz>
8921
8922         * system.h: Poison ENABLE_CHECKING macro.
8923
8924 2016-02-29  Martin Liska  <mliska@suse.cz>
8925
8926         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
8927         is presented in dump flags.
8928         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
8929         (hsa_regalloc): Likewise.
8930
8931 2016-02-19  Richard Biener  <rguenther@suse.de>
8932
8933         PR tree-optimization/69980
8934         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
8935         permutation of those we need to keep.
8936
8937 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
8938
8939         PR target/69706
8940         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
8941         (NWORDS_UP): ...this
8942         (init_cumulative_args): Minor tweaks.
8943         (sparc_promote_function_mode): Likewise.
8944         (scan_record_type): Delete.
8945         (traverse_record_type): New function template.
8946         (classify_data_t): New structure type.
8947         (classify_registers): New inline function.
8948         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
8949         exhausted.  Instantiate traverse_record_type on classify_registers and
8950         deal with the case of a structure passed in slot #15 with no FP field
8951         in the first word.
8952         (assign_data_t): New structure type.
8953         (compute_int_layout): New static function.
8954         (compute_fp_layout): Likewise.
8955         (count_registers): New inline function.
8956         (assign_int_registers): New static function.
8957         (assign_fp_registers): Likewise.
8958         (assign_registers): New inline function.
8959         (function_arg_record_value_1): Delete.
8960         (function_arg_record_value_2): Likewise.
8961         (function_arg_record_value_3): Likewise.
8962         (function_arg_record_value): Adjust to above changes.  Instantiate
8963         traverse_record_type on count_registers to first count the number of
8964         registers to be used and then on assign_registers to assign them.
8965         (function_arg_union_value): Adjust to above renaming.
8966         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
8967         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
8968         case of a structure passed in slot #15
8969         (sparc_function_arg_advance): Likewise.
8970         (function_arg_padding): Minor tweak.
8971
8972 2016-02-29  Richard Biener  <rguenther@suse.de>
8973
8974         PR tree-optimization/69720
8975         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
8976         the adjustment_def path for possibly vectorized defs.
8977         (vect_create_epilog_for_reduction): Handle vectorized initial
8978         defs properly.
8979
8980 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
8981
8982         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
8983
8984 2016-02-27  Jeff Law  <law@redhat.com>
8985
8986         Revert
8987         2016-02-26  Richard Biener  <rguenther@suse.de>
8988                     Jeff Law  <law@redhat.com>
8989
8990         PR tree-optimization/69740
8991         * cfghooks.c (remove_edge): Request loop fixups if we delete
8992         an edge that might turn an irreducible loop into a natural
8993         loop.
8994
8995 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
8996
8997         PR rtl-optimization/69896
8998         * tree-vect-generic.c (get_compute_type): Avoid single element
8999         vector types.
9000
9001 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
9002
9003         Rename the AArch64 tuning option and related functions to enable the
9004         Newton series for the reciprocal square root to reflect its
9005         approximative characteristic.
9006
9007         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
9008         function to "aarch64_emit_approx_rsqrt".
9009         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
9010         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
9011         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
9012         (xgene1_tunings): Likewise.
9013         (use_rsqrt_p): Likewise.
9014         (aarch64_emit_swrsqrt): Use new function name.
9015         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
9016         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
9017         text explaining this option.
9018         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
9019
9020 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
9021
9022         PR target/69969
9023         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
9024         complain about -mallow-movmisalign without -mvsx if
9025         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
9026
9027 2016-02-26  Joel Sherrill  <joel@rtems.org>
9028
9029         * config.gcc: Add x86_64-*-rtems*.
9030         * config/i386/rtems-64.h: New file.
9031
9032 2016-02-26  Joel Sherrill  <joel@rtems.org>
9033
9034         * config.gcc: Add aarch64-*-rtems*.
9035         * config/aarch64/rtems.h: New file.
9036
9037 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
9038
9039         PR target/69946
9040         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
9041         shift amount using %h.  Add comment.
9042
9043 2016-02-26  Richard Biener  <rguenther@suse.de>
9044             Jeff Law  <law@redhat.com>
9045
9046         PR tree-optimization/69740
9047         * cfghooks.c (remove_edge): Request loop fixups if we delete
9048         an edge that might turn an irreducible loop into a natural
9049         loop.
9050
9051 2016-02-26  Martin Jambor  <mjambor@suse.cz>
9052
9053         PR middle-end/69920
9054         * tree-sra.c (sra_modify_assign): Do not remove loads of
9055         uninitialized aggregates to SSA_NAMEs.
9056
9057 2016-02-26  Richard Henderson  <rth@redhat.com>
9058
9059         PR target/69709
9060         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
9061         pseudo in case the target rtx matches the source of the left
9062         shift.
9063
9064 2016-02-26  Martin Jambor  <mjambor@suse.cz>
9065
9066         PR hsa/69568
9067         * hsa.h (hsa_type_packed_p): Declare.
9068         * hsa.c (hsa_type_packed_p): New function.
9069         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
9070         loads.
9071         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
9072         * hsa-brig.c (emit_basic_insn): Likewise.
9073
9074 2016-02-26  Martin Jambor  <mjambor@suse.cz>
9075
9076         pr hsa/69674
9077         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
9078         pointers.
9079         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
9080
9081 2016-02-26  Martin Jambor  <mjambor@suse.cz>
9082
9083         * hsa.h (is_a_helper): New overload for hsa_op_immed for
9084         hsa_op_with_type operands.
9085         (hsa_unsigned_type_for_type): Declare.
9086         * hsa.c (hsa_unsigned_type_for_type): New function.
9087         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
9088         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
9089         the finalizer.  Do not emit extra move.
9090
9091 2016-02-26  Martin Jambor  <mjambor@suse.cz>
9092
9093         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
9094         atomic operations in private segment.
9095
9096 2016-02-26  Martin Jambor  <mjambor@suse.cz>
9097
9098         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
9099         statements to wi->info.  Also disallow omp simd constructs.
9100         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
9101         for not gridifying.  Dump special string for omp_for.
9102
9103 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9104
9105         PR target/69245
9106         * config/aarch64/aarch64.c (aarch64_set_current_function):
9107         Save/restore target globals when switching to
9108         target_option_default_node.
9109
9110 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9111
9112         PR target/69613
9113         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
9114         Return 0 if !SHIFT_COUNT_TRUNCATED.
9115
9116 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
9117             Eric Botcazou  <ebotcazou@adacore.com>
9118
9119         PR rtl-optimization/69891
9120         * dse.c (scan_insn): If we can't figure out memset arguments
9121         or they are non-constant, call clear_rhs_from_active_local_stores.
9122
9123 2016-02-26  Martin Liska  <mliska@suse.cz>
9124
9125         * doc/extend.texi: Mention clog10, clog10f an clog10l
9126         in Builtins section.
9127
9128 2016-02-26  Martin Liska  <mliska@suse.cz>
9129
9130         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
9131         CHECKING_P.
9132         (resolve_args_picking_1): Likewise.
9133         * dwarf2out.h (struct GTY): Likewise.
9134
9135 2016-02-26  Martin Liska  <mliska@suse.cz>
9136
9137         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
9138         with flag_checking.
9139         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
9140
9141 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
9142             Martin Liska  <mliska@suse.cz>
9143
9144         * doc/install.texi: Mention --enable-valgrind-annotations.
9145
9146 2016-02-26  Richard Biener  <rguenther@suse.de>
9147
9148         PR tree-optimization/69551
9149         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
9150         looking through aliases adjust DECL_PT_UID to refer to the
9151         ultimate alias target.
9152
9153 2016-02-25  Martin Liska  <mliska@suse.cz>
9154
9155         PR middle-end/69919
9156         * alloc-pool.c (after_memory_report): New variable.
9157         * alloc-pool.h (base_pool_allocator ::release): Do not use
9158         the infrastructure if after_memory_report.
9159         * toplev.c (toplev::main): Mark after memory report.
9160
9161 2016-02-25  Richard Biener  <rguenther@suse.de>
9162
9163         PR tree-optimization/48795
9164         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
9165
9166 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
9167
9168         PR driver/68463
9169         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
9170         offloading is enabled and -fopenacc or -fopenmp is specified.
9171         (CRTOFFLOADEND): Likewise.
9172         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
9173         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
9174         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
9175         (offload_objects_file_name): New static var.
9176         (tool_cleanup): Remove offload_objects_file_name file.
9177         (find_offloadbeginend): Replace with ...
9178         (find_crtoffloadtable): ... this.
9179         (run_gcc): Remove offload_argc and offload_argv.
9180         Get offload_objects_file_name from -foffload-objects=... option.
9181         Read names of object files with offload from this file, pass them to
9182         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
9183         don't pass offloadbegin and offloadend to the linker.  Don't pass
9184         offload non-LTO files to the linker, because now they're not claimed.
9185
9186 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
9187
9188         PR ipa/69630
9189         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
9190         on builtin_unreachable.
9191
9192 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
9193
9194         PR rtl-optimization/69896
9195         * regcprop.c: Include cfgrtl.h.
9196         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
9197         than remembered mode, either delete it (if noop_move_p), or
9198         treat like copy_p but not noop_p instruction.
9199
9200 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
9201
9202         PR debug/69705
9203         * dwarf2out.c (gen_variable_die): Work around buggy LTO
9204         - allow NULL decl for Fortran DW_TAG_common_block variables.
9205
9206 2016-02-24  Jason Merrill  <jason@redhat.com>
9207
9208         * common.opt (flifetime-dse): Add -flifetime-dse=1.
9209
9210 2016-02-24  Richard Biener  <rguenther@suse.de>
9211             Jakub Jelinek  <jakub@redhat.com>
9212
9213         PR middle-end/69760
9214         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
9215         conditionally executed ops to well-defined overflow behavior.
9216
9217 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
9218
9219         PR middle-end/69915
9220         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
9221         elements.
9222
9223 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9224
9225         PR rtl-optimization/69886
9226         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
9227         argument.  Use it when checking validity of set instructions.
9228         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
9229         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
9230         callsite.
9231         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
9232         * store-motion.c (find_moveable_store): Update
9233         can_assign_to_reg_without_clobbers_p callsite.
9234
9235 2016-02-24  Richard Biener  <rguenther@suse.de>
9236
9237         PR middle-end/68963
9238         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
9239         bogus check.
9240         (record_nonwrapping_iv): Do not fall back to the low/high bound
9241         for non-constant IV bases if the stmt is not always executed.
9242
9243 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9244
9245         * config/arm/arm-cores.def (cortex-a32): New entry.
9246         * config/arm/arm-tables.opt: Regenerate.
9247         * config/arm/arm-tune.md: Regenerate.
9248         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
9249         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
9250         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
9251         for -mcpu and -mtune.
9252
9253 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9254
9255         PR target/69875
9256         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
9257         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
9258         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
9259         (atomic_loaddi_1): Delete.
9260         (atomic_loaddi): Rewrite expander using the above changes.
9261
9262 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
9263
9264         PR c/69918
9265         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
9266         2 to 3.
9267
9268 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
9269             Richard Biener  <rguenth@suse.de>
9270
9271         PR middle-end/69909
9272         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
9273         set_mem_attributes if tem is SSA_NAME which got expanded
9274         as a MEM.
9275
9276 2016-02-24  Richard Biener  <rguenther@suse.de>
9277
9278         PR tree-optimization/69907
9279         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
9280         end of permutations for BB vectorization.
9281
9282 2016-02-24  Christian Bruel  <christian.bruel@st.com>
9283
9284         * config/arm/arm-c.c (arm_option_override): Initialize
9285         target_option_current_node.
9286         * config/arm/arm.c (arm_pragma_target_parse): Replace
9287         build_target_option_node call by target_option_current_node.
9288         Set target_option_current_node.
9289         Fix comments.
9290
9291 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
9292
9293         PR target/69810
9294         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
9295         define_insn_and_split to define_insn.
9296         (zero_extendqi<mode>2_dot2): Same.
9297         (extendqi<mode>2_dot): Same.
9298         (extendqi<mode>2_dot2): Same.
9299
9300 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
9301
9302         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
9303         and add bypass for AES{D,E} and AESMC pairs.
9304         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
9305         and AESMC pairs.
9306
9307 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
9308
9309         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
9310         series for reciprocal square root in Exynos M1.
9311
9312 2016-02-23  Martin Sebor  <msebor@redhat.com>
9313
9314         PR c/69759
9315         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
9316         __builtin_alloca_with_align.
9317
9318 2016-02-23  Richard Henderson  <rth@redhat.com>
9319
9320         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
9321         (ix86_register_pragmas): Remove __seg_tls.
9322         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
9323         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
9324         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
9325         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
9326         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
9327         * doc/extend.texi (__seg_tls): Remove item.
9328
9329 2016-02-23  Richard Biener  <rguenther@suse.de>
9330
9331         * alloc-pool.h (struct allocation_object): Make id member
9332         conditional on CHECKING_P again.
9333         (get_instance): Adjust.
9334         (base_pool_allocator): Likewise.
9335
9336 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
9337
9338         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
9339         (parallelize_loops): In OpenACC kernels mode, set n_threads to
9340         zero.
9341         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
9342         flag_openacc.
9343         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
9344
9345 2016-02-23  Richard Biener  <rguenther@suse.de>
9346
9347         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
9348         * bitmap.h (struct bitmap_usage): Likewise.
9349         (bitmap_move): Declare.
9350         * bitmap.c (register_overhead): Take size_t argument.
9351         (bitmap_move): New function.
9352         * df-problems.c (df_rd_transfer_function): Use bitmap_move
9353         to properly account overhead.
9354         * tree.c (free_node): Use tree_size.
9355
9356 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
9357
9358         PR c++/69902
9359         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
9360         when inverting comparison.
9361
9362         PR c/69900
9363         * common.opt (Wunreachable-code): Add Warning flag.
9364
9365 2016-02-23  Mark Wielaard  <mjw@redhat.com>
9366             Jakub Jelinek  <jakub@redhat.com>
9367
9368         PR c/69911
9369         * cgraphunit.c (check_global_declaration): Check main_input_filename
9370         and DECL_SOURCE_FILE are not NULL.
9371
9372 2016-02-23  Martin Jambor  <mjambor@suse.cz>
9373
9374         PR tree-optimization/69666
9375         * tree-sra.c (sra_modify_assign): Do not attempt to create
9376         default_def replacements for unscalarizable regions.
9377
9378 2016-02-20  Mark Wielaard  <mjw@redhat.com>
9379
9380         PR c/28901
9381         * cgraphunit.c (check_global_declaration): Check level of
9382         warn_unused_const_variable and main_input_filename.
9383         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
9384         (-Wunused-variable): For C implies -Wunused-const-variable=1.
9385         (-Wunused-const-variable): Explain levels 1 and 2.
9386
9387 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
9388
9389         PR target/69888
9390         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
9391         identical arguments.  Formatting and spelling fixes.
9392
9393         PR target/69885
9394         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
9395         be specified.
9396
9397         PR target/69894
9398         PR target/69895
9399         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
9400         and m68k-devices.def.
9401         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
9402         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
9403
9404 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
9405
9406         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
9407         and HImode registers.
9408
9409 2016-02-22  Richard Biener  <rguenther@suse.de>
9410
9411         PR tree-optimization/69882
9412         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
9413         preserve permutations present because of gaps.
9414         (vect_supported_load_permutation_p): Always continue checking
9415         permutations after vect_attempt_slp_rearrange_stmts.
9416
9417 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
9418
9419         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
9420         min_profitable_estimate, rather than min_profitable_iters.
9421
9422 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
9423
9424         PR target/69885
9425         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
9426         SImode for last match_operand.
9427
9428 2016-02-22  Martin Liska  <mliska@suse.cz>
9429
9430         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
9431         return bitsize - 1 as the return value.
9432
9433 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
9434
9435         PR target/69806
9436         PR target/54089
9437         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
9438         Handle negative shift counts.
9439         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
9440         force_reg on the shift constant.
9441         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
9442         (lshrsi3_d): Handle negative shift counts.
9443
9444 2016-02-22  Richard Biener  <rguenther@suse.de>
9445             Tom de Vries  <tom@codesourcery.com>
9446
9447         * graph.c: Include dumpfile.h.
9448         (print_graph_cfg): Split into three overloads.
9449         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
9450
9451 2016-02-22  Tom de Vries  <tom@codesourcery.com>
9452
9453         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
9454         dump-fn.
9455
9456 2016-02-22  Richard Biener  <rguenther@suse.de>
9457
9458         PR ipa/37448
9459         * ipa-inline-transform.c (inline_call): When not updating
9460         overall summaries adjust self size by the growth estimate.
9461         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
9462         hash-set, do not update overall summaries here.  Renamed from ...
9463         (inline_to_all_callers): ... this which is now wrapping the
9464         above and performing delayed overall summary update.
9465         (early_inline_small_functions): Delay updating of the overall
9466         summary.
9467
9468 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
9469
9470         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
9471         variable.
9472
9473 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
9474
9475         PR driver/69805
9476         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
9477         :%* in %:gt() argument.
9478         (greater_than_spec_func): Adjust for expecting only numbers,
9479         if there are more than two numbers, compare the last two.
9480
9481 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
9482
9483         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
9484         -Wnarrowing with -std.
9485
9486 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
9487
9488         PR c++/69851
9489         * expr.c (store_field): Don't use bit-field path if exp is
9490         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
9491         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
9492         and the assignment can be performed by bitwise copy.  Formatting
9493         fix.
9494
9495         PR middle-end/69838
9496         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
9497         call copy_reg_eh_region_note_forward on before and/or after sequences
9498         and remove note from insn if it no longer can throw.
9499
9500         PR target/69820
9501         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
9502         if TARGET_AVX512BW.
9503
9504 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9505
9506         * config/s390/vector.md: Add missing commutative operand markers
9507         to the patterns which qualify for one.
9508         * config/s390/vx-builtins.md: Likewise.
9509
9510 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9511
9512         * config/s390/vector.md (VI, VI_QHS): Add single element vector
9513         types to mode iterators.
9514         (vec_double): ... and mode attribute.
9515         * config/s390/vx-builtins.md (non_vec_int): Likewise.
9516
9517 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9518
9519         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
9520         Change the predicate of op2 from nonimmediate to general and let
9521         reload fix it if necessary.
9522
9523 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9524
9525         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
9526
9527 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9528
9529         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
9530         mode.
9531
9532 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9533
9534         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
9535         * config/s390/s390.c (s390_expand_vec_movstr): New function.
9536         * config/s390/s390.md ("movstr<P:mode>"): Call
9537         s390_expand_vec_movstr.
9538
9539 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9540
9541         * config/s390/s390.md: Add missing output modifier for operand 1
9542         to print it as address properly.
9543
9544 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9545
9546         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
9547         * config/s390/2964.md: New file.
9548         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
9549         of insn grouping attributes depending on the CPU level.
9550         (s390_get_unit_mask): New function.
9551         (s390_sched_score): Remove the OOO from the scheduling macros.
9552         Add loop to calculate a score for the instruction mix.
9553         (s390_sched_reorder): Likewise plus improve debug output.
9554         (s390_sched_variable_issue): Rename macros as above.  Calculate
9555         the unit distances after actually scheduling an insn.  Improve
9556         debug output.
9557         (s390_sched_init): Clear last_scheduled_unit_distance array.
9558         * config/s390/s390.md: Include 2964.md.
9559
9560 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
9561
9562         PR target/69671
9563         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
9564         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
9565         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
9566         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
9567         *avx512f_<code>v8div16qi2_mask_1): New insns.
9568
9569 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
9570
9571         PR target/68404
9572         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
9573         2016-02-09 change.
9574
9575         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
9576         earlyclobber from target.  Use wF constraint for fused memory
9577         address.
9578         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
9579
9580 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
9581             Martin Liska  <mliska@suse.cz>
9582
9583         PR sanitizer/69863
9584         * cfgexpand.c (asan_sanitize_stack_p): New function.
9585         (partition_stack_vars): Use the function.
9586         (expand_stack_vars): Likewise.
9587         (defer_stack_allocation): Likewise.
9588         (expand_used_vars): Likewise.
9589
9590 2016-02-18  Richard Biener  <rguenther@suse.de>
9591
9592         PR middle-end/69553
9593         * fold-const.c (operand_equal_p): Properly compare offsets for
9594         IMAGPART_EXPR and ARRAY_REF.
9595
9596 2016-02-18  Nick Clifton  <nickc@redhat.com>
9597
9598         PR target/62254
9599         PR target/69610
9600         * config/arm/arm.c (arm_option_override_internal): Disable
9601         interworking if the target does not support thumb instructions.
9602         (arm_reload_in_hi): Handle the case where a register to register
9603         move needs reloading because there is no simple pattern to handle
9604         it.
9605         (arm_reload_out_hi): Likewise.
9606
9607 2016-02-18  Richard Biener  <rguenther@suse.de>
9608
9609         PR middle-end/69854
9610         * match.pd: Don't use fold_binary or fold_unary for folding
9611         constants.
9612
9613 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
9614
9615         PR c++/69850
9616         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
9617         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
9618         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
9619         warn on gimple_no_warning_p statements.
9620
9621 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
9622
9623         * doc/extend.texi (C++ Attributes): Correct description of
9624         warn_unused type attribute.
9625
9626 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9627
9628         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
9629         correct instruction.
9630
9631 2016-02-17  Richard Biener  <rguenther@suse.de>
9632
9633         PR rtl-optimization/69609
9634         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
9635         (find_traces_1_round): When ending a trace update cached priority
9636         of successors.
9637         (bb_to_key): Use cached priority when available.
9638         (copy_bb): Initialize cached priority.
9639         (reorder_basic_blocks_software_trace_cache): Likewise.
9640
9641 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9642
9643         PR target/69161
9644         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
9645         New predicate.
9646         (aarch64_comparison_operator): Break overly long line into two.
9647         (aarch64_comparison_operation): Likewise.
9648         * config/aarch64/aarch64.md (cstorecc4): Use
9649         aarch64_comparison_operator_mode instead of
9650         aarch64_comparison_operator.
9651         (cstore<mode>4): Likewise.
9652         (aarch64_cstore<mode>): Likewise.
9653         (*cstoresi_insn_uxtw): Likewise.
9654         (cstore<mode>_neg): Likewise.
9655         (*cstoresi_neg_uxtw): Likewise.
9656
9657 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9658
9659         PR target/69161
9660         * config/arm/predicates.md (arm_comparison_operator_mode):
9661         New predicate.
9662         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
9663         instead of arm_comparison_operator.
9664         (*mov_negscc): Likewise.
9665         (*mov_notscc): Likewise.
9666         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
9667         (*thumb2_mov_negscc): Likewise.
9668         (*thumb2_mov_negscc_strict_it): Likewise.
9669         (*thumb2_mov_notscc): Likewise.
9670         (*thumb2_mov_notscc_strict_it): Likewise.
9671
9672 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
9673
9674         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
9675         Add missing return.
9676
9677 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
9678
9679         * config/visium/visium.c (machine_libfunc_index): New enum.
9680         (machine_libfuncs): New structure.
9681         (visium_libfuncs): New static variable.
9682         (TARGET_INIT_LIBFUNCS): Define to...
9683         (visium_init_libfuncs): ...this.  New function.
9684         (expand_block_move_4): Use the appropriate libfunc.
9685         (expand_block_move_2): Likewise.
9686         (expand_block_move_1): Likewise.
9687         (expand_block_set_4): Likewise.
9688         (expand_block_set_2): Likewise.
9689         (expand_block_set_1): Likewise.
9690         (visium_trampoline_init): Likewise.
9691
9692 2016-02-17  Nick Clifton  <nickc@redhat.com>
9693
9694         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
9695         TI's devices.csv file as of March 2016.
9696
9697 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
9698
9699         PR Target/48344
9700         * opts-global.c (handle_common_deferred_options): Introduce and
9701         initialize two global variables to remember command-line options
9702         specifying a stack-limiting register.
9703         * opts.h: Add extern declarations of the two new global variables.
9704         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
9705         variable based on the values of the two new global variables.
9706
9707 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
9708
9709         PR c/69835
9710         * common.opt (Wnonnull-compare): New warning.
9711         * doc/invoke.texi (-Wnonnull): Remove text about comparison
9712         of arguments against NULL.
9713         (-Wnonnull-compare): Document.
9714         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
9715         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
9716         * passes.def (pass_warn_nonnull_compare): Add.
9717         * gimple-ssa-nonnull-compare.c: New file.
9718
9719 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
9720
9721         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
9722         AARCH64_EXTRA_TUNE_RECIP_SQRT.
9723
9724 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
9725
9726         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
9727         reciprocal sqrt for -mlow-precision-recip-sqrt.
9728
9729 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
9730             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9731
9732         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
9733         always use lane loads to construct non-constant vectors.
9734
9735 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
9736
9737         * config/aarch64/aarch64.md
9738         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
9739         constraints for operand 3.
9740         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
9741
9742 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
9743             Richard Biener  <rguenther@suse.de>
9744
9745         PR tree-optimization/69820
9746         * tree-vect-patterns.c (type_conversion_p): Return false if
9747         *orig_type is unsigned single precision or boolean.
9748         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
9749         Formatting fix.
9750
9751 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
9752
9753         PR rtl-optimization/69764
9754         PR rtl-optimization/69771
9755         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
9756         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
9757
9758 2016-02-16  Richard Biener  <rguenther@suse.de>
9759
9760         PR tree-optimization/69776
9761         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
9762         sets from caller.
9763         (indirect_refs_may_alias_p): Likewise.
9764         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
9765         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
9766         according to tbaa_p.
9767         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
9768         (optimize_stmt): For redundant store discovery do not allow tbaa.
9769
9770 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
9771
9772         PR tree-optimization/69714
9773         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
9774         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
9775
9776 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
9777
9778         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
9779         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
9780         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
9781         * config/arc/arc.c (arc_init): Check FPU options.
9782         (get_arc_condition_code): Handle new CC_FPU* modes.
9783         (arc_select_cc_mode): Likewise.
9784         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
9785         register pair only. Allow access for ARCv2 accumulator.
9786         (gen_compare_reg): Whenever we have FPU support use FPU compare
9787         instructions.
9788         (arc_reorg): Don't generate brcc insns when FPU compare
9789         instructions are involved.
9790         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
9791         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
9792         floating point emulation.
9793         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
9794         (REVERSE_CONDITION): Add new CC_FPU* modes.
9795         (TARGET_FP_SP_BASE): Define.
9796         (TARGET_FP_DP_BASE): Likewise.
9797         (TARGET_FP_SP_FUSED): Likewise.
9798         (TARGET_FP_DP_FUSED): Likewise.
9799         (TARGET_FP_SP_CONV): Likewise.
9800         (TARGET_FP_DP_CONV): Likewise.
9801         (TARGET_FP_SP_SQRT): Likewise.
9802         (TARGET_FP_DP_SQRT): Likewise.
9803         (TARGET_FP_DP_AX): Likewise.
9804         * config/arc/arc.md (ARCV2_ACC): New constant.
9805         (type): New fpu type attribute.
9806         (SDF): Conditional iterator.
9807         (cstore<mode>, cbranch<mode>): Change expand condition.
9808         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
9809         handles FPU/FPX cases as well.
9810         * config/arc/arc.opt (mfpu): New option.
9811         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
9812         Renamed.
9813         (adddf3, muldf3, subdf3): Removed.
9814         * config/arc/predicates.md (proper_comparison_operator): Recognize
9815         CC_FPU* modes.
9816         * config/arc/fpu.md: New file.
9817         * doc/invoke.texi (ARC Options): Document mfpu option.
9818
9819 2016-02-16  Richard Biener  <rguenther@suse.de>
9820
9821         PR rtl-optimization/69291
9822         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
9823         noce_operand_ok check.
9824
9825 2016-02-16  Tom de Vries  <tom@codesourcery.com>
9826
9827         PR lto/67709
9828         * omp-low.c (simd_clone_create): Remove call to
9829         symtab->call_cgraph_insertion_hooks.
9830
9831 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
9832
9833         PR tree-optimization/69802
9834         * tree-ssa-reassoc.c (update_range_test): If op is
9835         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
9836         op == 1 test of precision 1 integral op, otherwise handle
9837         that case as op itself.  Fix up formatting.
9838         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
9839         up formatting.
9840
9841 2016-02-16  Richard Biener  <rguenther@suse.de>
9842
9843         PR tree-optimization/69586
9844         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
9845         types for conversion sources.
9846
9847 2016-02-16  Richard Biener  <rguenther@suse.de>
9848
9849         PR middle-end/69801
9850         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
9851         mask OEP_ADDRESS_OF.
9852
9853 2016-02-16  Alan Modra  <amodra@gmail.com>
9854
9855         PR target/68973
9856         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
9857         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
9858         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
9859         (p8_mtvsrwz): New.
9860         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
9861         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
9862         (p8_fmrgow_<mode>): Likewise.
9863         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
9864         changes.
9865         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
9866         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
9867         to use movdi_internal64.  Remove op0_di.
9868         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
9869
9870 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
9871
9872         Add support for the FCCMP insn types
9873
9874         * config/aarch64/aarch64.md (fccmp): Change insn type.
9875         (fccmpe): Likewise.
9876         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
9877         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
9878         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
9879         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
9880         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
9881         * config/arm/types.md (fccmps): Add new insn type.
9882         (fccmpd): Likewise.
9883
9884 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9885
9886         * alias.c (get_alias_set): Fix a typo in comment.
9887
9888 2016-02-15  Richard Biener  <rguenther@suse.de>
9889
9890         PR tree-optimization/69595
9891         * match.pd: Complete range test simplification to true.
9892
9893 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
9894
9895         PR rtl-optimization/69648
9896         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
9897         pic_offset_table_rtx.
9898
9899         PR rtl-optimization/69752
9900         * ira.c (update_equiv_regs): When looking for more than a single SET,
9901         also take other side effects into account.
9902
9903 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
9904
9905         * config/s390/s390.c (s390_function_profiler): Add a new sequence
9906         for z900+ CPUs in 31-bit mode.
9907
9908 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
9909
9910         * common/config/s390/s390-common.c (s390_supports_split_stack):
9911         New function.
9912         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
9913         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
9914         * config/s390/s390.c (struct machine_function): New field
9915         split_stack_varargs_pointer.
9916         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
9917         in s390_emit_prologue.
9918         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
9919         vararg pointer.
9920         (morestack_ref): New global.
9921         (SPLIT_STACK_AVAILABLE): New macro.
9922         (s390_expand_split_stack_prologue): New function.
9923         (s390_live_on_entry): New function.
9924         (s390_va_start): Use split-stack vararg pointer if appropriate.
9925         (s390_asm_file_end): Emit the split-stack note sections.
9926         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
9927         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
9928         (UNSPECV_SPLIT_STACK_CALL): New unspec.
9929         (UNSPECV_SPLIT_STACK_DATA): New unspec.
9930         (split_stack_prologue): New expand.
9931         (split_stack_space_check): New expand.
9932         (split_stack_data): New insn.
9933         (split_stack_call): New expand.
9934         (split_stack_call_*): New insn.
9935         (split_stack_cond_call): New expand.
9936         (split_stack_cond_call_*): New insn.
9937
9938 2016-02-15  Richard Biener  <rguenther@suse.de>
9939
9940         PR tree-optimization/69783
9941         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9942         Add trivially correct cases.
9943
9944 2016-02-15  Tom de Vries  <tom@codesourcery.com>
9945
9946         PR lto/69655
9947         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
9948         do_force_output.
9949         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
9950
9951 2016-02-15  Richard Biener  <rguenther@suse.de>
9952
9953         PR tree-optimization/69776
9954         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
9955         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
9956         indicate whether we can use TBAA to disambiguate against stores.
9957         Use alias-set zero if not.
9958         (visit_reference_op_store): Do not use TBAA when looking up
9959         redundant stores.
9960         * tree-ssa-pre.c (compute_avail): Use TBAA here.
9961         (eliminate_dom_walker::before_dom_children): But not when looking
9962         up redundant stores.
9963
9964 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
9965
9966         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
9967
9968 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
9969
9970         *  config/i386/znver1.md
9971         (znver1_pop, znver1_pop_mem,
9972         znver1_load_imov_double_store,
9973         znver1_load_imov_direct_store,
9974         znver1_load_imov_direct_load,
9975         znver1_load_imov_double_load): Add new.
9976         (znver1_insn, znver1_insn_load): Add icmov type.
9977         (znver1_sseavx_fma,
9978         znver1_sseavx_fma_load,
9979         znver1_avx256_fma,
9980         znver1_avx256_fma_load): Fix pipe usage.
9981
9982 2016-02-14  Alan Modra  <amodra@gmail.com>
9983
9984         PR target/68973
9985         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
9986         with an invalid hard reg, reload just the reg not the entire
9987         pre/post-inc/dec address expression.
9988
9989 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
9990
9991         PR target/67260
9992         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
9993         fixed R1_REG scratch reg.
9994         (sibcall_value_pcrel_fdpic): Likewise.
9995
9996 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
9997
9998         PR target/67636
9999         PR target/64345
10000         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
10001
10002 2016-02-12  Walter Lee  <walt@tilera.com>
10003
10004         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
10005         * config/tilegx/t-tilegx: Likewise.
10006
10007 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
10008
10009         PR other/69554
10010         * diagnostic-show-locus.c (struct line_span): New struct.
10011         (layout::get_first_line): Delete.
10012         (layout::get_last_line): Delete.
10013         (layout::get_num_line_spans): New member function.
10014         (layout::get_line_span): Likewise.
10015         (layout::print_heading_for_line_span_index_p): Likewise.
10016         (layout::get_expanded_location): Likewise.
10017         (layout::calculate_line_spans): Likewise.
10018         (layout::m_first_line): Delete.
10019         (layout::m_last_line): Delete.
10020         (layout::m_line_spans): New field.
10021         (layout::layout): Update comment.  Replace m_first_line and
10022         m_last_line with m_line_spans, replacing their initialization
10023         with a call to calculate_line_spans.
10024         (diagnostic_show_locus): When printing source lines and
10025         annotations, rather than looping over a single span
10026         of lines, instead loop over each line_span within
10027         the layout, with an inner loop over the lines within them.
10028         Call the context's start_span callback when changing line spans.
10029         * diagnostic.c (diagnostic_initialize): Initialize start_span.
10030         (diagnostic_build_prefix): Break out the building of the location
10031         part of the string into...
10032         (diagnostic_get_location_text): ...this new function, rewriting
10033         it from nested ternary expressions to a sequence of "if"
10034         statements.
10035         (default_diagnostic_start_span_fn): New function.
10036         * diagnostic.h (diagnostic_start_span_fn): New typedef.
10037         (diagnostic_context::start_span): New field.
10038         (default_diagnostic_start_span_fn): New prototype.
10039
10040 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
10041
10042         PR driver/69779
10043         * gcc.c (driver::finalize): Fix cleanup of "specs".
10044
10045 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
10046
10047         PR driver/69265
10048         PR driver/69453
10049         * gcc.c (driver::driver): Initialize m_option_suggestions.
10050         (driver::~driver): Clean up m_option_suggestions.
10051         (suggest_option): Convert to...
10052         (driver::suggest_option): ...this, and split out into
10053         driver::build_option_suggestions and find_closest_string.
10054         (driver::build_option_suggestions): New function, from
10055         first half of suggest_option.  Special-case
10056         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
10057         the sanitizer_opts array.  For options of enum types, add the
10058         various enum values to the candidate strings.
10059         (driver::handle_unrecognized_options): Remove "const".
10060         * gcc.h (driver::handle_unrecognized_options): Likewise.
10061         (driver::build_option_suggestions): New decl.
10062         (driver::suggest_option): New decl.
10063         (driver::m_option_suggestions): New field.
10064         * opts-common.c (add_misspelling_candidates): New function.
10065         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
10066         and make non-static.
10067         * opts.h (sanitizer_opts): New array decl.
10068         (add_misspelling_candidates): New function decl.
10069         * spellcheck.c (find_closest_string): New function.
10070         * spellcheck.h (find_closest_string): New function decl.
10071
10072 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
10073
10074         PR rtl-optimization/69764
10075         PR rtl-optimization/69771
10076         * optabs.c (expand_binop_directly): For shift_optab_p, force
10077         convert_modes with VOIDmode if xop1 has VOIDmode.
10078
10079 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
10080
10081         PR target/69729
10082         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
10083         to correctly determine instrumentation thunks.
10084
10085 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
10086
10087         PR ipa/69241
10088         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
10089         type by reference, force lhs on the call.
10090
10091         PR ipa/68672
10092         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
10093         Compute retval and retbnd early in all cases if split_part_return_p
10094         and return_bb is not EXIT.  Remove all clobber stmts and reset
10095         all debug stmts that refer to SSA_NAMEs defined in split part,
10096         except if it is retval, in that case replace the old retval with the
10097         lhs of the call to the split part.
10098
10099 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
10100
10101         revert:
10102         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
10103
10104         PR middle-end/66726
10105         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
10106         whose result is used in PHI.
10107         (maybe_optimize_range_tests): Likewise.
10108         (final_range_test_p): Likweise.
10109
10110 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
10111
10112         PR middle-end/66726
10113         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
10114         whose result is used in PHI.
10115         (maybe_optimize_range_tests): Likewise.
10116         (final_range_test_p): Likweise.
10117
10118 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
10119
10120         * cgraph.c: Spelling fixes - behaviour -> behavior and
10121         neighbour -> neighbor.
10122         * target.def: Likewise.
10123         * sel-sched.c: Likewise.
10124         * config/mips/mips.c: Likewise.
10125         * config/arc/arc.md: Likewise.
10126         * config/arm/cortex-a57.md: Likewise.
10127         * config/arm/arm.c: Likewise.
10128         * config/arm/neon.md: Likewise.
10129         * config/arm/arm-c.c: Likewise.
10130         * config/vms/vms-c.c: Likewise.
10131         * config/s390/s390.c: Likewise.
10132         * config/i386/znver1.md: Likewise.
10133         * config/i386/i386.c: Likewise.
10134         * config/ia64/hpux-unix2003.h: Likewise.
10135         * config/msp430/msp430.md: Likewise.
10136         * config/rx/rx.c: Likewise.
10137         * config/rx/rx.md: Likewise.
10138         * config/aarch64/aarch64-simd.md: Likewise.
10139         * config/aarch64/aarch64.c: Likewise.
10140         * config/nvptx/nvptx.c: Likewise.
10141         * config/bfin/bfin.c: Likewise.
10142         * config/cris/cris.opt: Likewise.
10143         * config/rs6000/rs6000.c: Likewise.
10144         * target.h: Likewise.
10145         * spellcheck.c: Likewise.
10146         * ira-build.c: Likewise.
10147         * tree-inline.c: Likewise.
10148         * builtins.c: Likewise.
10149         * lra-constraints.c: Likewise.
10150         * explow.c: Likewise.
10151         * hwint.h: Likewise.
10152         * targhooks.c: Likewise.
10153         * tree-vect-data-refs.c: Likewise.
10154         * expr.c: Likewise.
10155         * doc/tm.texi: Likewise.
10156         * doc/extend.texi: Likewise.
10157         * doc/install.texi: Likewise.
10158         * doc/md.texi: Likewise.
10159         * tree-ssa-tail-merge.c: Likewise.
10160         * sched-int.h: Likewise.
10161         * match.pd: Likewise.
10162         * sched-ebb.c: Likewise.
10163         * target.def (omit_struct_return_reg): Likewise.
10164         * gimple-ssa-isolate-paths.c: Likewise.
10165         (find_implicit_erroneous_behaviour): Renamed to...
10166         (find_implicit_erroneous_behavior): ... this.
10167         (find_explicit_erroneous_behaviour): Renamed to...
10168         (find_explicit_erroneous_behavior): ... this.
10169         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
10170
10171 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
10172
10173         PR rtl-optimization/64682
10174         PR rtl-optimization/69567
10175         PR rtl-optimization/69737
10176         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
10177         in I2 as well, just lose it.
10178
10179 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10180
10181         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
10182         New variable.
10183         (aarch64_last_printed_tune_string): Likewise.
10184         (aarch64_declare_function_name): Only output .arch assembler
10185         directive if it will be different from the previously output
10186         directive.  Same for .tune comment but only if -dA is set.
10187         (aarch64_start_file): New function.
10188         (TARGET_ASM_FILE_START): Define.
10189
10190 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
10191
10192         PR plugins/69758
10193         * Makefile.in (PLUGIN_HEADERS): Add params.list.
10194
10195 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
10196
10197         PR target/65313
10198         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
10199         -Wmaybe-uninitialized warning.
10200
10201 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
10202
10203         PR target/69713
10204         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
10205
10206 2016-02-11  Richard Biener  <rguenther@suse.de>
10207
10208         PR rtl-optimization/69291
10209         * ifcvt.c (noce_try_store_flag_constants): Do not allow
10210         subexpressions affected by changing the result.
10211
10212 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
10213
10214         PR target/69148
10215         * lra-constraints.c (curr_insn_transform): Find in/out operands
10216         for secondary memory moves.  Update dups.
10217
10218 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
10219
10220         PR tree-optimization/69652
10221         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
10222         to nested loop, did source re-formatting, skip debug statements,
10223         add check on statement with volatile operand, remove dead scalar
10224         statements.
10225
10226 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
10227             Patrick Palka  <ppalka@gcc.gnu.org>
10228
10229         PR ipa/69241
10230         PR c++/69649
10231         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
10232         calls if the return type is TREE_ADDRESSABLE.
10233         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
10234         * ipa-split.c (split_function): Fix doubled "we" in comment.
10235         Use void return type for the split part even if
10236         !split_point->split_part_set_retval.
10237
10238 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
10239
10240         PR tree-optimization/68021
10241         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
10242         when computing the value of biv cand by itself.
10243
10244 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
10245
10246         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
10247         (cortexa57_tunings): Likewise.
10248         (cortexa72_tunings): Likewise.
10249         (arch_macro_fusion_pair_p): Add support for AES fusion.
10250         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
10251         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
10252         Allow virtual registers before reload so early scheduling works.
10253         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
10254         correct latency and pipeline.
10255         (cortex_a57_crypto_complex): Likewise.
10256         (cortex_a57_crypto_xor): Likewise.
10257         (define_bypass): Add AES bypass.
10258
10259 2016-02-10  Richard Biener  <rguenther@suse.de>
10260
10261         PR tree-optimization/69726
10262         * passes.def: Add DCE pass before late uninit.
10263         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
10264         really fixup if-conversions job.
10265
10266 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
10267
10268         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
10269         (arm_cortex_a57_tune): Likewise.
10270         (aarch_macro_fusion_pair_p): Add support for AES fusion.
10271         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
10272
10273 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
10274
10275         * timevar.def (TV_PHASE_DBGINFO): Delete.
10276         (TV_PHASE_CHECK_DBGINFO): Likewise.
10277         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
10278
10279 2016-02-10  Richard Biener  <rguenther@suse.de>
10280
10281         PR tree-optimization/69719
10282         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
10283         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
10284
10285 2016-02-09  Andrew Pinski  <apinski@cavium.com>
10286
10287         PR tree-opt/69282
10288         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
10289         get_vcond_mask_icode returns false.
10290
10291 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
10292
10293         PR target/68404
10294         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
10295         an ADDIS that adds a pointer to a large constant that sets the
10296         upper16 bits with a load operation.
10297
10298 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
10299
10300         PR target/68532
10301         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
10302         order.
10303         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
10304         endian.
10305         (vzipq_s16): Likewise.
10306         (vzipq_s32): Likewise.
10307         (vzipq_f32): Likewise.
10308         (vzipq_u8): Likewise.
10309         (vzipq_u16): Likewise.
10310         (vzipq_u32): Likewise.
10311         (vzipq_p8): Likewise.
10312         (vzipq_p16): Likewise.
10313
10314 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
10315
10316         PR target/68532
10317         * config/arm/arm.c (neon_endian_lane_map): New function.
10318         (neon_vector_pair_endian_lane_map): New function.
10319         (arm_evpc_neon_vuzp): Allow for big endian lane order.
10320         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
10321         endian.
10322         (vuzpq_s16): Likewise.
10323         (vuzpq_s32): Likewise.
10324         (vuzpq_f32): Likewise.
10325         (vuzpq_u8): Likewise.
10326         (vuzpq_u16): Likewise.
10327         (vuzpq_u32): Likewise.
10328         (vuzpq_p8): Likewise.
10329         (vuzpq_p16): Likewise.
10330
10331 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
10332
10333         PR target/69634
10334         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
10335         debug insns.
10336
10337 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
10338
10339         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
10340         truncate const_int operand 1 to QImode.
10341
10342 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
10343
10344         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
10345         corresponding to an abnormal edge.
10346
10347 2016-02-09  Tom de Vries  <tom@codesourcery.com>
10348
10349         PR tree-optimization/69599
10350         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
10351         function.
10352         (find_func_aliases_for_builtin_call, find_func_clobbers)
10353         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
10354         partition.
10355
10356 2016-02-09  Richard Biener  <rguenther@suse.de>
10357
10358         PR tree-optimization/69715
10359         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
10360         LHS on calls as non-rewritable.
10361
10362 2016-02-09  Tom de Vries  <tom@codesourcery.com>
10363
10364         PR lto/69707
10365         * lto-wrapper.c (append_diag_options): New function.
10366         (compile_offload_image): Call append_diag_options.
10367
10368 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
10369
10370         PR other/69722
10371         * doc/extend.texi (Flag Output Operands): Correct sectioning.
10372         Minor copy-edit to fix verb tenses.
10373
10374 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
10375
10376         PR tree-optimization/69209
10377         * ipa-split.c (split_function): If split part is not
10378         returning retval, retval has gimple type but is not
10379         gimple value, force it into a SSA_NAME first.
10380
10381 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
10382
10383         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
10384         outdated section.
10385
10386 2016-02-08  Jason Merrill  <jason@redhat.com>
10387
10388         PR c++/69631
10389         * convert.c (convert_to_integer_1): Check dofold on truncation
10390         distribution.
10391         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
10392         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
10393         Rename from *_nofold.
10394         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
10395         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
10396
10397 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
10398
10399         PR target/60410
10400         * tree.c (build_common_tree_nodes): Remove short_double argument.
10401         All callers changed.
10402         * tree.h (build_common_tree_nodes): Adjust declaration.
10403         * doc/invoke.texi (-fshort-double): Remove documentation.
10404         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10405         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
10406         * lto-wrapper.c (merge_and_complain, append_compiler_options)
10407         (append_linker_options): Don't handle OPT_fshort_double.
10408
10409         PR rtl-optimization/68730
10410         * lra-remat.c (insn_to_cand_activation): New static variable.
10411         (lra_remat): Allocate and free it.
10412         (create_cand): New arg activation. Initialize a field in
10413         insn_to_cand_activation if it is nonnull.
10414         (create_cands): Pass the activation insn to create_cand when making
10415         a candidate involving an output reload.  Reorganize code a little.
10416         (do_remat): Keep track of active status of candidates in a separate
10417         bitmap.
10418
10419 2016-02-08  Richard Biener  <rguenther@suse.de>
10420
10421         PR tree-optimization/69719
10422         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
10423         Properly use absolute of the difference of the two offsets to
10424         compare or adjust the segment length.
10425
10426 2016-02-08  Richard Biener  <rguenther@suse.de>
10427             Jeff Law  <law@redhat.com>
10428
10429         PR target/68273
10430         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
10431         types for anonymous SSA names.
10432
10433 2016-02-08   Richard Biener  <rguenther@suse.de>
10434
10435         PR rtl-optimization/69274
10436         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
10437
10438 2016-02-08  Jeff Law  <law@redhat.com>
10439
10440         PR tree-optimization/65917
10441         * tree-ssa-dom.c (record_temporary_equivalences): Record both
10442         equivalences from if (x == y) style conditionals.
10443         (loop_depth_of_name): Remove.
10444         (record_equality): Remove loop depth check.
10445         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
10446         (const_and_copies::record_const_or_copy_raw): New member function.
10447         * tree-ssa-scopedtables.c
10448         (const_and_copies::record_const_or_copy_raw): New, factored out of
10449         (const_and_copies::record_const_or_copy): Call new member function.
10450
10451 2016-02-05  Jeff Law  <law@redhat.com>
10452
10453         PR tree-optimization/68541
10454         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
10455         (count_stmts_in_block): New function.
10456         (poor_ifcvt_candidate_code): Likewise.
10457         (is_feasible_trace): Add some heuristics to determine when path
10458         splitting is profitable.
10459         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
10460         is a diamond with a single exit.
10461
10462 2016-02-05  Martin Sebor  <msebor@redhat.com>
10463
10464         PR c++/69662
10465         * doc/invoke.texi: Update -Wplacement-new to take an optional
10466         argument.
10467
10468 2016-02-06  Richard Henderson  <rth@redhat.com>
10469
10470         PR c/69643
10471         * tree.c (tree_nop_conversion_p): Do not strip casts into or
10472         out of non-standard address spaces.
10473
10474 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
10475
10476         PR rtl-optimization/69691
10477         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
10478
10479 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
10480
10481         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
10482         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
10483         (*ieee128_mfvsrd_64bit): Likewise.
10484         (*ieee128_mfvsrd_32bit): Likewise.
10485
10486 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
10487
10488         PR target/69369
10489         Revert r232560:
10490         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10491
10492         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
10493         instrumented_version.
10494
10495 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
10496
10497         * doc/invoke.texi (Optimize Options): In table of --param options
10498         rename second occurrence of tracer-min-branch-ratio to
10499         tracer-min-branch-probability, rename
10500         tracer-min-branch-ratio-feedback to
10501         tracer-min-branch-probability-feedback and clarify description,
10502         rename sched-spec-state-edge-prob-cutoff to
10503         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
10504         to selsched-insns-to-rename, rename lto-minpartition to
10505         lto-min-partition, delete reorder-blocks-duplicate and
10506         reorder-blocks-duplicate-feedback.
10507
10508 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10509
10510         * config/s390/s390.c (s390_register_info_set_ranges): Remove
10511         superfluous loops.
10512
10513 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10514
10515         * doc/extend.texi: S/390: Correct some typos.
10516
10517 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10518
10519         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
10520
10521 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10522
10523         PR target/69625
10524         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
10525         (s390_register_info_gprtofpr): Use new macros above.
10526         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
10527         its name.
10528         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
10529         its name.  Adjust restore and save gpr ranges.
10530         (s390_register_info_set_ranges): New function.
10531         (s390_register_info): Use new macros above.  Call
10532         s390_register_info_set_ranges.
10533         (s390_optimize_register_info): Likewise.
10534         (s390_hard_regno_rename_ok): Use new macros.
10535         (s390_hard_regno_scratch_ok): Likewise.
10536         (s390_emit_epilogue): Likewise.
10537         (s390_can_use_return_insn): Likewise.
10538         (s390_optimize_prologue): Likewise.
10539         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
10540
10541 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
10542
10543         PR bootstrap/69677
10544         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
10545         alignment fixes.
10546         (ix86_option_override_internal): Disable TARGET_STV even for
10547         -m{incoming,preferred}-stack-boundary=3.
10548
10549 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10550
10551         * config.gcc: Mark deprecated rtems targets as obsolete.
10552
10553 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
10554
10555         PR rtl-optimization/64682
10556         PR rtl-optimization/69567
10557         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
10558         before I2 only if the register is both used and set in I2.
10559
10560 2016-02-04  DJ Delorie  <dj@redhat.com>
10561
10562         * config/msp430/msp430.c (msp430_start_function): Add function type.
10563
10564 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
10565
10566         PR fortran/69368
10567         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
10568
10569 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
10570
10571         PR rtl-optimization/69577
10572         Revert:
10573         2015-10-29  Richard Henderson  <rth@redhat.com>
10574
10575         PR target/68124
10576         PR rtl-opt/67609
10577         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
10578         sse check to the exact conditions of PR 67609.
10579
10580 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
10581
10582         PR target/69667
10583         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
10584         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
10585         not allowed into the traditional Altivec registers.
10586         (movtd_64bit_nodm): Likewise.
10587         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
10588
10589 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
10590
10591         * config/aarch64/cortex-a57-fma-steering.c
10592         (aarch64_register_fma_steering): Remove "static" from arguments
10593         to register_pass.
10594
10595 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
10596
10597         PR target/69619
10598         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
10599         twice when complex.
10600
10601 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
10602
10603         * doc/invoke.texi: Delete -mno-fma4.
10604
10605 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
10606
10607         PR rtl-optimization/69577
10608         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
10609         (find_subregs_of_mode): Update accordingly.  Iterate over partial
10610         definitions.
10611
10612 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
10613
10614         * config/arm/arm-protos.h (neon_reinterpret): Remove.
10615         * config/arm/arm.c (neon_reinterpret): Remove.
10616         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
10617         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
10618         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
10619         vreinterpretti): Remove.
10620         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
10621         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
10622         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
10623         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
10624         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
10625         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
10626         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
10627         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
10628         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
10629         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
10630         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
10631         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
10632         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
10633         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
10634         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
10635         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
10636         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
10637         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
10638         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
10639         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
10640         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
10641         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
10642         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
10643         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
10644         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
10645         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
10646         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
10647         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
10648         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
10649         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
10650         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
10651         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
10652         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
10653         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
10654         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
10655         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
10656         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
10657         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
10658         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
10659         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
10660         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
10661         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
10662         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
10663         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
10664         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
10665         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
10666         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
10667         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
10668         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
10669         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
10670         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
10671         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
10672         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
10673         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
10674         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
10675         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
10676         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
10677         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
10678         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
10679         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
10680         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
10681         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
10682         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
10683         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
10684         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
10685         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
10686         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
10687         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
10688         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
10689         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
10690         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
10691         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
10692         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
10693         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
10694         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
10695         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
10696         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
10697         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
10698         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
10699         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
10700         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
10701         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
10702         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
10703         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
10704         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
10705         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
10706         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
10707         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
10708         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
10709         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
10710         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
10711         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
10712         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
10713         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
10714         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
10715         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
10716         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
10717         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
10718         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
10719         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
10720         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
10721         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
10722         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
10723
10724 2016-02-04  Martin Liska  <mliska@suse.cz>
10725
10726         PR sanitizer/69276
10727         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
10728         that are gimple_store_p.
10729         (maybe_instrument_call): Likewise.
10730
10731 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
10732
10733         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
10734         register scaling out of memory reference and comment why.
10735
10736 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10737
10738         PR target/65932
10739         PR target/67714
10740         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
10741         folding the source of a SET.
10742
10743 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10744
10745         PR target/65932
10746         PR target/67714
10747         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
10748         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
10749
10750 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
10751
10752         PR target/65932
10753         PR target/67714
10754         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
10755         HImode.
10756
10757 2016-02-04  Christian Bruel  <christian.bruel@st.com>
10758
10759         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
10760         * config/arm/arm.c (arm_set_current_function): Likewise.
10761
10762 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
10763             Ilya Enkovich  <enkovich.gnu@gmail.com>
10764             H.J. Lu  <hongjiu.lu@intel.com>
10765
10766         PR target/69454
10767         * config/i386/i386.c (convert_scalars_to_vector): Remove
10768         stack alignment fixes.
10769         (ix86_option_override_internal): Disable TARGET_STV if stack
10770         might not be aligned enough.
10771         (ix86_minimum_alignment): Assert that TARGET_STV is false.
10772
10773 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
10774
10775         * config/i386/x86-tune.def: Disable default prefetching
10776         for -march=znver1.
10777
10778 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
10779             Vladimir Makarov  <vmakarov@redhat.com>
10780
10781         PR target/69461
10782         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
10783         in validating fused toc addresses.
10784
10785 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
10786
10787         PR c/69627
10788         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
10789         range->m_caret fields if range->m_show_caret_p is false.
10790
10791         PR target/69644
10792         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
10793         Force oldval into register if it does not satisfy reg_or_short_operand
10794         predicate.  Fix up formatting.
10795
10796 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
10797             Alexandre Oliva  <aoliva@redhat.com>
10798
10799         PR target/69461
10800         * lra-constraints.c (simplify_operand_subreg): Check additionally
10801         address validity after potential reloading.
10802         (process_address_1): Check insns validity.  In case of failure do
10803         nothing.
10804
10805 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
10806
10807         PR target/69118
10808         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
10809         Fix target.
10810
10811 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
10812
10813         * wide-int.cc (canonize_uhwi): New function.
10814         (wi::divmod_internal): Use it.
10815
10816 2016-02-02  James Norris  <jnorris@codesourcery.com
10817
10818         * gimplify.c (omp_notice_variable): Add usage check.
10819
10820 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
10821
10822         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
10823         like LE, GE, LT, GT when emitting relational operator.
10824
10825 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
10826
10827         * ira-costs.c (find_costs_and_classes): Add extra argument.
10828         * target.def (ira_change_pseudo_allocno_class): Add parameter.
10829         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
10830         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
10831         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
10832         Add best_class parameter, and return it if not ALL_REGS.
10833         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
10834         Add parameter.
10835         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
10836         Update target hook.
10837
10838 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
10839
10840         * config/aarch64/aarch64.c
10841         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
10842         (aarch64_ira_change_pseudo_allocno_class): New function.
10843
10844 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
10845
10846         PR target/67032
10847         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
10848
10849 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
10850
10851         * config/avr/avr.c (avr_option_override): Set
10852         PARAM_ALLOW_STORE_DATA_RACES to 1.
10853
10854 2016-02-02  Richard Biener  <rguenther@suse.de>
10855
10856         PR tree-optimization/69595
10857         * match.pd: Add range test simplifications to true/false.
10858
10859 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
10860
10861         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
10862         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
10863         instead.
10864
10865 2016-02-02  Richard Biener  <rguenther@suse.de>
10866
10867         PR tree-optimization/69606
10868         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
10869         info on the result before moving a stmt.
10870
10871 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
10872
10873         PR middle-end/68542
10874         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
10875         branch with vector comparison.
10876         * config/i386/sse.md (VI48_AVX): New mode iterator.
10877         (define_expand "cbranch<mode>4): Add support for conditional branch
10878         with vector comparison.
10879         * tree-vect-loop.c (optimize_mask_stores): New function.
10880         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
10881         has_mask_store field of vect_info.
10882         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
10883         vectorized loops having masked stores after vec_info destroy.
10884         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
10885         correspondent macros.
10886         (optimize_mask_stores): Add prototype.
10887
10888 2016-02-02  Alan Modra  <amodra@gmail.com>
10889
10890         PR target/69548
10891         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
10892         allow subregs.
10893
10894 2016-02-02  Alan Modra  <amodra@gmail.com>
10895
10896         PR target/68662
10897         * config/rs6000/rs6000.c (need_toc_init): New var, set it
10898         whenever toc_label_name used.
10899         (rs6000_file_start): Don't set up toc section here,
10900         (rs6000_output_function_epilogue): do so here instead,
10901         (rs6000_xcoff_file_start): and here.
10902         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
10903         (load_toc_aix_di): Likewise.
10904
10905 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
10906
10907         PR rtl-optimization/69592
10908         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
10909         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
10910         (num_sign_bit_copies_binary_arith_p): New inline function.
10911         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
10912
10913 2016-02-01  Jeff Law  <law@redhat.com>
10914
10915         PR tree-optimization/69580
10916         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
10917         * tree-ssa-threadbackward.c
10918         (fsm_find_control_statement_thread_paths): Do not try to walk
10919         through large PHI nodes.
10920
10921 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
10922
10923         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
10924         when count is incremented above limit, don't analyze further
10925         insns afterwards.
10926
10927         * omp-low.c (oacc_parse_default_dims): Avoid
10928         -Wsign-compare warning, make sure value fits into int
10929         rather than just unsigned int.
10930
10931 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
10932
10933         PR tree-optimization/67921
10934         * fold-const.c (split_tree): New parameters.  Convert pointer
10935         type variable part to proper type before negating.
10936         (fold_binary_loc): Pass new arguments to split_tree.
10937
10938 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
10939
10940         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
10941         (nvptx_goacc_validate_dims): Extend to handle global defaults.
10942         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
10943         * doc/tm.texti: Rebuilt.
10944         * doc/invoke.texi (fopenacc-dim): Document.
10945         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
10946         (append_compiler_options): Likewise.
10947         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
10948         (oacc_parse_default_dims): New.
10949         (oacc_validate_dims): Add USED arg.  Select non-unity default when
10950         possible.
10951         (oacc_loop_fixed_partitions): Return mask of used partitions.
10952         (oacc_loop_auto_partitions): Emit dump info.
10953         (oacc_loop_partition): Return mask of used partitions.
10954         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
10955         loop partitioning and validation calls.
10956
10957 2016-02-01  Richard Biener  <rguenther@suse.de>
10958
10959         PR middle-end/69556
10960         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
10961
10962 2016-02-01  Richard Biener  <rguenther@suse.de>
10963
10964         PR tree-optimization/69574
10965         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
10966         of asserting return chrec_dont_know.
10967
10968 2016-02-01  Martin Liska  <mliska@suse.cz>
10969
10970         * mem-stats-traits.h: Add copyright header.
10971         * mem-stats.h: Likewise.
10972
10973 2016-02-01  Richard Biener  <rguenther@suse.de>
10974
10975         PR tree-optimization/69579
10976         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
10977         Do not propagate through abnormal PHI results.
10978
10979 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
10980
10981         * postreload.c (reload_cse_simplify): Remove dead code.
10982
10983 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
10984
10985         PR rtl-optimization/69570
10986         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
10987         if there is more than one set, not if there is a single set.
10988
10989 2016-02-01  Richard Henderson  <rth@redhat.com>
10990
10991         PR rtl-opt/69535
10992         * combine.c (make_compound_operation): When looking through a
10993         subreg, make sure to re-extend to the width of the outer mode.
10994
10995 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
10996
10997         PR tree-optimization/69546
10998         * wide-int.cc (wi::divmod_internal): For unsigned division
10999         where both operands fit into uhwi, if o1 is 1 and o0 has
11000         msb set, if divident_prec is larger than bits per hwi,
11001         clear another quotient word and return 2 instead of 1.
11002         Similarly for remainder with msb in HWI set, if dividend_prec
11003         is larger than bits per hwi.
11004
11005 2016-01-29  Martin Jambor  <mjambor@suse.cz>
11006
11007         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
11008         Use short lowercase names.
11009         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
11010         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
11011         acq_rel one.  Protect warning agains segfaults if
11012         get_memory_order_name returns NULL.
11013         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
11014         with release semantics.  Do not warn if get_memory_order already did.
11015         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
11016         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
11017         if get_memory_order already did.
11018
11019 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
11020
11021         * doc/install.texi: Document that isl-0.16 is supported.
11022
11023 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
11024
11025         PR target/69299
11026         * config/i386/constraints.md (Bm): Describe as special memory
11027         constraint.
11028         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
11029         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
11030         * genpreds.c (struct constraint_data): Add is_special_memory.
11031         (have_special_memory_constraints, special_memory_start): New
11032         static vars.
11033         (special_memory_end): Ditto.
11034         (add_constraint): Add new arg is_special_memory.  Add code to
11035         process its true value.  Update have_special_memory_constraints.
11036         (process_define_constraint): Pass the new arg.
11037         (process_define_register_constraint): Ditto.
11038         (choose_enum_order): Process special memory.
11039         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
11040         function insn_extra_special_memory_constraint.
11041         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
11042         * gensupport.c (process_rtx): Process
11043         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
11044         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
11045         * ira-lives.c (single_reg_class): Use
11046         insn_extra_special_memory_constraint.
11047         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
11048         * lra-constraints.c (process_alt_operands): Ditto.
11049         (curr_insn_transform): Use insn_extra_special_memory_constraint.
11050         * recog.c (asm_operand_ok, preprocess_constraints): Process
11051         CT_SPECIAL_MEMORY.
11052         * reload.c (find_reloads): Ditto.
11053         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
11054         * stmt.c (parse_input_constraint): Use
11055         insn_extra_special_memory_constraint.
11056
11057 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
11058
11059         PR target/69530
11060         * lra-splill.c (lra_final_code_change): Revert r229087 by
11061         removing all sub-registers.
11062
11063 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
11064
11065         PR target/65604
11066         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
11067
11068 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
11069
11070         PR target/69551
11071         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
11072         SSE1, copy target into the temporary reg first before recursing
11073         on it.
11074
11075 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
11076
11077         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
11078         with vm.
11079
11080 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
11081
11082         * ginclude/stdarg.h: Test __cplusplus instead of
11083         __GXX_EXPERIMENTAL_CXX0X__.
11084
11085 2016-01-29  Richard Biener  <rguenther@suse.de>
11086
11087         PR tree-optimization/69547
11088         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
11089         Do not mark clobbers necessary.
11090         (mark_all_reaching_defs_necessary_1): Likewise.
11091
11092 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11093
11094         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
11095         declaration name with %qs and print it in both error messages.
11096         Also fix indentation.
11097
11098 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11099
11100         PR other/69006
11101         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
11102         trailing blank line from error message.
11103
11104 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
11105
11106         PR c++/69462
11107         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
11108         for C++-11.
11109
11110 2016-01-29  Richard Biener  <rguenther@suse.de>
11111
11112         PR middle-end/69537
11113         * match.pd: Allow all integral types when simplifying a
11114         widening or sign-changing conversion.
11115
11116 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
11117
11118         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
11119         back to setting codegen_error to fail codegen.
11120
11121 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
11122
11123         PR target/69459
11124         * config/i386/constraints.md (C): Only accept constant zero operand.
11125         (BC): New constraint.
11126         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
11127         instead of C constraint.
11128         * doc/md.texi (Machine Constraints): Update description
11129         of C constraint.
11130
11131 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
11132
11133         PR target/68400
11134         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
11135
11136 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
11137
11138         PR middle-end/69542
11139         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
11140         non-debug insns.
11141
11142 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
11143
11144         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
11145         branches if using guessed profile.
11146
11147 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
11148
11149         * graphite-optimize-isl.c (optimize_isl): Fix dump.
11150
11151 2016-01-28  Richard Henderson  <rth@redhat.com>
11152
11153         PR target/69305
11154         * config/aarch64/aarch64-modes.def (CC_Cmode): New
11155         * config/aarch64/aarch64-protos.h: Update.
11156         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
11157         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
11158         (aarch64_get_condition_code_1): Handle CC_Cmode.
11159         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
11160         (*add<mode>3_compareC_cconly_imm): New.
11161         (*add<mode>3_compareC_cconly): New.
11162         (*add<mode>3_compareC_imm): New.
11163         (add<mode>3_compareC): New.
11164         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
11165         to be first.  Use aarch64_carry_operation.
11166         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
11167         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
11168         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
11169         (subti3): Use subdi3_compare1.
11170         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
11171         (sub<mode>3_compare1): New.
11172         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
11173         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
11174         (*subsi3_carryin_uxtw): Likewise.
11175         (*ngc<mode>, *ngcsi_uxtw): Likewise.
11176         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
11177         * config/aarch64/iterators.md (DWI): New.
11178         * config/aarch64/predicates.md (aarch64_carry_operation): New.
11179         (aarch64_borrow_operation): New.
11180
11181 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
11182
11183         * graphite-optimize-isl.c (optimize_isl): Print a different debug
11184         message when isl does not return a valid schedule.
11185
11186 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
11187
11188         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
11189         Remove comments from class declarations: they are already in the code
11190         close by the defs.
11191
11192 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
11193
11194         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
11195         codegen_error_p.
11196         (ternary_op_to_tree): Same.
11197         (unary_op_to_tree): Same.
11198         (nary_op_to_tree): Same.
11199         (gcc_expression_from_isl_expr_op): Same.
11200         (gcc_expression_from_isl_expression): Same.
11201         (graphite_create_new_loop): Same.
11202         (graphite_create_new_loop_guard): Same.
11203         (build_iv_mapping): Same.
11204         (graphite_create_new_guard): Same.
11205         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
11206         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
11207
11208 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
11209
11210         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
11211         instead of setting codegen_error to fail codegen.
11212
11213 2016-01-28  Jason Merrill  <jason@redhat.com>
11214
11215         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
11216
11217 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
11218
11219         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
11220         Remove CONST_INT_P check in CCMP cost calculation.
11221
11222 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
11223
11224         * config/aarch64/aarch64.c (generic_vector_cost):
11225         Set vec_permute_cost.
11226         (cortexa57_vector_cost): Likewise.
11227         (exynosm1_vector_cost): Likewise.
11228         (xgene1_vector_cost): Likewise.
11229         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
11230         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
11231         Add vec_permute_cost entry.
11232
11233 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
11234
11235         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
11236         immediate as %1.
11237         (add<mode>3_compare0): Likewise.
11238         (addsi3_compare0_uxtw): Likewise.
11239         (add<mode>3nr_compare0): Likewise.
11240         (compare_neg<mode>): Likewise.
11241         (<optab><mode>3): Likewise.
11242
11243 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
11244
11245         * tree-vect-stmts.c (vectorizable_comparison): Add
11246         NULL check for vectype.
11247
11248 2016-01-28  Richard Biener  <rguenther@suse.de>
11249
11250         PR tree-optimization/69466
11251         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
11252         Account for PHIs we couldn't duplicate.
11253
11254 2016-01-28  Martin Liska  <mliska@suse.cz>
11255
11256         PR pch/68758
11257         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
11258         instead of ENABLE_VALGRIND_CHECKING.
11259
11260 2016-01-27  Richard Henderson  <rth@redhat.com>
11261
11262         PR rtl-opt/69447
11263         * lra-remat.c (subreg_regs): New.
11264         (dump_candidates_and_remat_bb_data): Dump it.
11265         (operand_to_remat): Reject if operand in subreg_regs.
11266         (set_bb_regs): Collect subreg_regs.
11267         (lra_remat): Init and free subreg_regs.  Compute
11268         calculate_local_reg_remat_bb_data before create_cands.
11269
11270 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
11271
11272         PR target/68986
11273         * config/i386/i386.c (ix86_update_stack_boundary): Don't
11274         change stack_alignment_needed for __tls_get_addr call.
11275
11276 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
11277
11278         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
11279
11280 2016-01-27  Jeff Law  <law@redhat.com>
11281
11282         PR tree-optimization/68398
11283         PR tree-optimization/69196
11284         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
11285         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
11286         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11287         Only count PHIs in the last block in the path.  The others will
11288         const/copy propagate away.  Add heuristic to allow more irreducible
11289         subloops to be created when it is likely profitable to do so.
11290
11291         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11292         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
11293         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
11294
11295 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
11296
11297         PR lto/69254
11298         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
11299         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
11300         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
11301         * tree-streamer-in.c: Include asan.h.
11302         (streamer_get_builtin_tree): For builtins in sanitizer
11303         range call initialize_sanitizer_builtins and retry.
11304
11305 2016-01-27  Ian Lance Taylor  <iant@google.com>
11306
11307         * common.opt (fkeep-gc-roots-live): New undocumented option.
11308         * tree-ssa-loop-ivopts.c (add_candidate_1): If
11309         -fkeep-gc-roots-live, skip pointers.
11310         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
11311         NULL.
11312
11313 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
11314
11315         PR target/69512
11316         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
11317         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
11318
11319 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
11320
11321         PR target/68380
11322         * configure.ac: NetBSD provides SSP in its C library.
11323         * configure: Updated.
11324
11325 2016-01-27  Richard Biener  <rguenther@suse.de>
11326
11327         PR tree-optimization/69166
11328         * tree-vect-loop.c (vect_is_simple_reduction): Always check
11329         reduction code for commutativity / associativity.
11330
11331 2016-01-27  Martin Jambor  <mjambor@suse.cz>
11332
11333         PR tree-optimization/69355
11334         * tree-sra.c (analyze_access_subtree): Correct hole detection when
11335         total_scalarization fails.
11336
11337 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
11338
11339         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
11340         power9.
11341
11342 2016-01-27  Christian Bruel  <christian.bruel@st.com>
11343
11344         PR target/69245
11345         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
11346         Move arm_reset_previous_fndecl and set_target_option_current_node in
11347         the conditional part.  Call save_restore_target_globals.
11348         * config/arm/arm.c (arm_set_current_function):
11349         Refactor to better support #pragma target and attribute mix.
11350         Call save_restore_target_globals.
11351         * config/arm/arm-protos.h (save_restore_target_globals): New function.
11352
11353 2016-01-27  Martin Liska  <mliska@suse.cz>
11354
11355         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
11356         reference for an HSA kernel and its host function.
11357
11358 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
11359
11360         PR tree-optimization/69399
11361         * wide-int.h (wi::lrshift): For larger precisions, only
11362         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
11363
11364 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
11365
11366         * config/arc/predicates.md (proper_comparison_operator): Reject
11367         constant-constant comparison.
11368
11369 2016-01-26  Tom de Vries  <tom@codesourcery.com>
11370
11371         PR tree-optimization/69110
11372         * tree-data-ref.c (initialize_data_dependence_relation): Handle
11373         DR_NUM_DIMENSIONS == 0.
11374
11375 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
11376             Sebastian Pop  <s.pop@samsung.com>
11377
11378         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
11379         isl_ast_op_cond and isl_ast_op_select.
11380         (gcc_expression_from_isl_expr_op): Same.
11381
11382 2016-01-26  Jason Merrill  <jason@redhat.com>
11383
11384         PR c++/68782
11385         * tree.c (recompute_constructor_flags): Split out from
11386         build_constructor.
11387         (verify_constructor_flags): New.
11388         * tree.h: Declare them.
11389
11390 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
11391
11392         PR rtl-optimization/69217
11393         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
11394         are no TYPE_FIELDS set for the record type.
11395
11396 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
11397
11398         PR target/68662
11399         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
11400         toc_label_name unconditionally.
11401         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
11402         SYMBOL_REF string.  Use toc_label_name instead of constructing
11403         LCTOC1.
11404         (rs6000_elf_declare_function_name): Use toc_label_name instead of
11405         constructing LCTOC1.
11406
11407 2016-01-26  Martin Sebor  <msebor@redhat.com>
11408
11409         PR other/69477
11410         * doc/extend.texi (Common Type Attributes): Move text that talks about
11411         attribute packed from attribute aligned to the section discussing
11412         the former attribute for clarity.
11413
11414 2016-01-26  Richard Henderson  <rth@redhat.com>
11415
11416         PR middle-end/60908
11417         * trans-mem.c (tm_region_init): Mark entry block as visited.
11418
11419 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
11420
11421         PR other/69006
11422         * diagnostic-show-locus.c (layout::print_source_line): Replace
11423         call to pp_newline with call to layout::print_newline.
11424         (layout::print_annotation_line): Likewise.
11425         (layout::move_to_column): Likewise.
11426         (layout::print_any_fixits): After printing any fixits, print a
11427         trailing newline, if necessary.
11428         (layout::print_newline): New method, resetting any colorization
11429         before a newline.
11430         (diagnostic_show_locus): Move the pp_newline to before the
11431         early bailout.  Remove dummy block enclosing the layout instance.
11432         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
11433         of pp_newline_and_flush with pp_flush.
11434         (diagnostic_append_note): Delete use of pp_newline.
11435         (diagnostic_append_note_at_rich_loc): Delete.
11436         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
11437         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
11438         when newline characters are added to the buffer.
11439
11440 2016-01-26  Michael Matz  <matz@suse.de>
11441
11442         * configure.ac (ac_cv_std_swap_in_utility): New test.
11443         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
11444         * configure: Regenerate.
11445         * config.in: Regenerate.
11446
11447 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
11448
11449         * config/arc/arc.md (cstoresi4): Force operand into register.
11450         (arcset<code>): Fix predicate.
11451         (arcsetltu): Likewise.
11452         (arcsetgeu): Likewise.
11453         (arcsethi): Likewise.
11454         (arcsetls): Likewise.
11455
11456 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
11457
11458         PR tree-optimization/69483
11459         * gimple-fold.c (canonicalize_constructor_val): Return NULL
11460         if base has error_mark_node type.
11461
11462 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
11463
11464         PR target/68620
11465         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
11466         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
11467         New helper macros.
11468         (vget_lane_f16): Handle big-endian.
11469         (vgetq_lane_f16): Likewise.
11470         (vset_lane_f16): Likewise.
11471         (vsetq_lane_f16): Likewise.
11472         * config/arm/iterators.md (VQXMOV): Add V8HF.
11473         (VDQ): Add V4HF and V8HF.
11474         (V_reg): Handle V4HF and V8HF.
11475         (Is_float_mode): Likewise.
11476         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
11477         neon_vdup_nv8hf): New patterns.
11478         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
11479         Use VD_LANE iterator.
11480         (neon_vld1_dup<mode>): Use VQ2 iterator.
11481
11482 2016-01-26  Nathan Sidwell  <nathan@acm.org>
11483
11484         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
11485         (set_oacc_fn_attrib): Add IS_KERNEL arg.
11486         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
11487         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
11488         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
11489         (oacc_validate_dims): Add LEVEL arg, don't return level.
11490         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
11491         oacc_validate_dims.
11492         (execute_oacc_device_lower): Adjust, add more dump output.
11493         * tree-ssa-loop.c (gate_oacc_kernels): Use
11494         oacc_fn_attrib_kernels_p.
11495         * tree-parloops.c (create_parallel_loop): Adjust
11496         set_oacc_fn_attrib call.
11497
11498 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
11499
11500         PR lto/69254
11501         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
11502         (append_compiler_options): Handle -fcilkplus.
11503         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
11504
11505 2016-01-26  Nick Clifton  <nickc@redhat.com>
11506
11507         PR target/66655
11508         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
11509         been marked as DECL_ONE_ONLY but we do not the means to make it
11510         so, then do not allow it to bind locally.
11511
11512 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
11513
11514         PR lto/69254
11515         * opts.h (parse_sanitizer_options): New prototype.
11516         * opts.c (sanitizer_opts): New array.
11517         (parse_sanitizer_options): New function.
11518         (common_handle_option): Use parse_sanitizer_options.
11519
11520 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
11521
11522         PR target/68986
11523         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
11524         alignment adjustment to ...
11525         (ix86_update_stack_boundary): Here.  Don't over-align stack for
11526         __tls_get_addr.
11527         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
11528         if __tls_get_addr is called.
11529
11530 2016-01-26  Christian Bruel  <christian.bruel@st.com>
11531
11532         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
11533
11534 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
11535
11536         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
11537
11538 2016-01-26  Richard Biener  <rguenther@suse.de>
11539
11540         PR middle-end/69467
11541         * match.pd: Guard X * CST CMP 0 pattern with single_use.
11542
11543 2016-01-26  Richard Biener  <rguenther@suse.de>
11544
11545         PR tree-optimization/69452
11546         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
11547         (move_computations_dom_walker::before_dom_children): Rename
11548         to ...
11549         (move_computations_worker): This.
11550         (move_computations): Perform an RPO rather than a DOM walk.
11551
11552 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
11553
11554         PR target/69442
11555         * combine.c (combine_instructions): For REG_EQUAL note with
11556         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
11557         to the underlying register.
11558         * doc/rtl.texi (REG_EQUAL): Document the behavior of
11559         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
11560
11561 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
11562
11563         PR target/67896
11564         * config/aarch64/aarch64-builtins.c
11565         (aarch64_init_simd_builtin_types): Do not set structural
11566         equality to __Poly{8,16,64,128}_t types.
11567
11568 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
11569
11570         PR tree-optimization/69400
11571         * wide-int.cc (wi_pack): Take the precision as argument and
11572         perform canonicalization here rather than in the callers.
11573         Use the main loop to handle all full-width HWIs.  Add a
11574         zero HWI if in_len isn't a full result.
11575         (wi::divmod_internal): Update accordingly.
11576         (wi::mul_internal): Likewise.  Simplify.
11577
11578 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
11579             Sebastian Pop  <s.pop@samsung.com>
11580
11581         * graphite-poly.c (apply_poly_transforms): Simplify.
11582         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
11583         (print_isl_map): Same.
11584         (print_isl_union_map): Same.
11585         (print_isl_schedule): New.
11586         (debug_isl_schedule): New.
11587         * graphite-dependences.c (scop_get_reads): Do not call
11588         isl_union_map_add_map that is undocumented isl functionality.
11589         (scop_get_must_writes): Same.
11590         (scop_get_may_writes): Same.
11591         (scop_get_original_schedule): Remove.
11592         (scop_get_dependences): Do not call isl_union_map_compute_flow that
11593         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
11594         (compute_deps): Remove.
11595         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
11596         (debug_schedule_ast): New.
11597         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
11598         set_separate_option.
11599         (graphite_regenerate_ast_isl): Add dump.
11600         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
11601         from scop->transformed_schedule.
11602         (graphite_regenerate_ast_isl): Add more dump.
11603         * graphite-optimize-isl.c (optimize_isl): Set
11604         scop->transformed_schedule.  Check whether schedules are equal.
11605         (apply_poly_transforms): Move here.
11606         * graphite-poly.c (apply_poly_transforms): ... from here.
11607         (free_poly_bb): Static.
11608         (free_scop): Static.
11609         (pbb_number_of_iterations_at_time): Remove.
11610         (print_isl_ast): New.
11611         (debug_isl_ast): New.
11612         (debug_scop_pbb): New.
11613         * graphite-scop-detection.c (print_edge): Move.
11614         (print_sese): Move.
11615         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
11616         (build_scop_scattering): Remove.
11617         (create_pw_aff_from_tree): Assert instead of bailing out.
11618         (add_condition_to_pbb): Remove unused code, do not fail.
11619         (add_conditions_to_domain): Same.
11620         (add_conditions_to_constraints): Remove.
11621         (build_scop_context): New.
11622         (add_iter_domain_dimension): New.
11623         (build_iteration_domains): Initialize pbb->iterators.
11624         Call add_conditions_to_domain.
11625         (nested_in): New.
11626         (loop_at): New.
11627         (index_outermost_in_loop): New.
11628         (index_pbb_in_loop): New.
11629         (outermost_pbb_in): New.
11630         (add_in_sequence): New.
11631         (add_outer_projection): New.
11632         (outer_projection_mupa): New.
11633         (add_loop_schedule): New.
11634         (build_schedule_pbb): New.
11635         (build_schedule_loop): New.
11636         (embed_in_surrounding_loops): New.
11637         (build_schedule_loop_nest): New.
11638         (build_original_schedule): New.
11639         (build_poly_scop): Call build_original_schedule.
11640         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
11641         (free_poly_dr): Remove.
11642         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
11643         (free_poly_bb): Remove.
11644         (debug_loop_vec): Remove.
11645         (print_isl_ast): Declare.
11646         (debug_isl_ast): Declare.
11647         (scop_do_interchange): Remove.
11648         (scop_do_strip_mine): Remove.
11649         (scop_do_block): Remove.
11650         (flatten_all_loops): Remove.
11651         (optimize_isl): Remove.
11652         (pbb_number_of_iterations_at_time): Remove.
11653         (debug_scop_pbb): Declare.
11654         (print_schedule_ast): Declare.
11655         (debug_schedule_ast): Declare.
11656         (struct scop): Remove schedule.  Add original_schedule,
11657         transformed_schedule.
11658         (free_gimple_poly_bb): Remove.
11659         (print_generated_program): Remove.
11660         (debug_generated_program): Remove.
11661         (unify_scattering_dimensions): Remove.
11662         * sese.c (print_edge): ... here.
11663         (print_sese): ... here.
11664         (debug_edge): ... here.
11665         (debug_sese): ... here.
11666         * sese.h (print_edge): Declare.
11667         (print_sese): Declare.
11668         (dump_edge): Declare.
11669         (dump_sese): Declare.
11670
11671 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
11672             Sebastian Pop  <s.pop@samsung.com>
11673
11674         * Makefile.in: Set ISLVER in site.exp.
11675
11676 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
11677
11678         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
11679         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
11680         through DECL_VALUE_EXPR for expansion.
11681
11682 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11683
11684         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
11685         the frame info after reload completed.
11686
11687 2016-01-25  Jeff Law  <law@redhat.com>
11688
11689         PR tree-optimization/69196
11690         PR tree-optimization/68398
11691         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
11692         tree-ssa-threadupdate.c.
11693         (determine_bb_domination_status): Prototype
11694         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
11695         (determine_bb_domination_status): No longer static.
11696         (valid_jump_thread_path): Remove code to detect characteristics
11697         of the jump thread path not associated with correctness.
11698         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
11699         Correct test for thread path length.  Count PHIs for real operands as
11700         statements that need to be copied.  Do not count ASSERT_EXPRs.
11701         Look at all the blocks in the thread path.  Compute and selectively
11702         filter thread paths based on threading through the latch, threading
11703         a multiway branch or crossing a multiway branch.
11704
11705 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11706
11707         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
11708         decl with __attribute__ ((unused)) annotation.
11709
11710 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
11711
11712         PR target/69421
11713         * tree-vect-stmts.c (vectorizable_condition): Check vectype
11714         of operands is compatible with a statement vectype.
11715
11716 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
11717
11718         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
11719         improve wording for mixed storage order support.
11720
11721 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
11722
11723         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
11724         (vcvt_u64_f64): Likewise.
11725         (vcvta_s64_f64): Likewise.
11726         (vcvta_u64_f64): Likewise.
11727         (vcvtm_s64_f64): Likewise.
11728         (vcvtm_u64_f64): Likewise.
11729         (vcvtn_s64_f64): Likewise.
11730         (vcvtn_u64_f64): Likewise.
11731         (vcvtp_s64_f64): Likewise.
11732         (vcvtp_u64_f64): Likewise.
11733
11734 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
11735
11736         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
11737         (arc_init): Check validity mll64 option.
11738         (arc_save_restore): Use double load/store instruction.
11739         (arc_expand_movmem): Likewise.
11740         (arc_split_move): Don't split if we have double load/store
11741         instructions. Returns a boolean.
11742         (arc_process_double_reg_moves): Change function to return boolean
11743         instead of a sequence of instructions.
11744         (arc_dwarf_register_span): New function.
11745         * config/arc/arc-protos.h (arc_split_move): Change prototype.
11746         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
11747         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
11748         (*movdf_insn): Likewise.
11749         * config/arc/arc.opt (mll64): New option.
11750         * config/arc/predicates.md (even_register_operand): New predicate.
11751         * doc/invoke.texi (ARC Options): Add mll64 documentation.
11752
11753 2016-01-25  Richard Biener  <rguenther@suse.de>
11754
11755         PR lto/69393
11756         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
11757         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
11758         DECL_NAMELESS.
11759         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
11760
11761 2016-01-25  Richard Biener  <rguenther@suse.de>
11762
11763         PR tree-optimization/69376
11764         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
11765         flag.
11766         (VN_INFO_ANTI_RANGE_P): New inline.
11767         (VN_INFO_RANGE_TYPE): Likewise.
11768         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
11769         SSA_NAME_ANTI_RANGE_P.
11770         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
11771         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11772         Properly query VN_INFO_RANGE_TYPE.
11773
11774 2016-01-25  Nick Clifton  <nickc@redhat.com>
11775
11776         PR target/66655
11777         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
11778
11779 2016-01-23  Tom de Vries  <tom@codesourcery.com>
11780
11781         PR tree-optimization/69426
11782         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
11783         removed clobber.
11784
11785 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
11786
11787         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
11788         "the the" with "the" in the comments.
11789         * ipa-devirt.c (build_type_inheritance_graph,
11790         update_type_inheritance_graph): Likewise.
11791         * tree.c (build_function_type_list_1): Likewise.
11792         * cfgloopmanip.c (scale_loop_profile): Likewise.
11793         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
11794         * gimple-ssa-split-paths.c
11795         (find_block_to_duplicate_for_splitting_paths): Likewise.
11796         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
11797         * expr.c (convert_move): Likewise.
11798         * var-tracking.c (vt_stack_adjustments): Likewise.
11799         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
11800         * tree-vrp.c (test_for_singularity): Likewise.
11801
11802         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
11803         directly instead of building a temporary tree.
11804
11805         PR bootstrap/69434
11806         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
11807         remove <algorithm> include.
11808
11809 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
11810
11811         PR target/69432
11812         * config/i386/i386.c: Include dojump.h.
11813         (expand_small_movmem_or_setmem,
11814         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
11815         fixes.
11816         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
11817         if dynamic_check != -1.
11818
11819 2016-01-21  Jeff Law  <law@redhat.com>
11820
11821         PR middle-end/69347
11822         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
11823         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
11824         into dominated_by_p.
11825         (cprop_into_successor_phis): Avoid unnecessary tests.
11826
11827 2016-01-22  Richard Henderson  <rth@redhat.com>
11828
11829         PR target/69416
11830         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
11831         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
11832
11833 2016-01-22  Michael Matz  <matz@suse.de>
11834
11835         * system.h (string, algorithm): Include only conditionally.
11836         (new): Include always under C++.
11837         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
11838         * final.c (toplevel): Ditto.
11839         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
11840         * genconditions.c (write_header): Make gencondmd.c define
11841         INCLUDE_STRING.
11842         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
11843
11844         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
11845         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
11846
11847 2016-01-22  Christian Bruel  <christian.bruel@st.com>
11848
11849         PR target/68674
11850         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
11851
11852 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11853
11854         PR target/69403
11855         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
11856         define_insn_and_split.  Ensure operands[1] and operands[0] do not
11857         get assigned the same register.
11858
11859 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
11860
11861         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
11862
11863 2016-01-22  Christian Bruel  <christian.bruel@st.com>
11864
11865         * config/arm/arm-c.c (arm_pragma_target_parse):
11866         Remove warn_builtin_macro_redefined overwrite.
11867
11868 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
11869
11870         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
11871         flag_non_call_exceptions compatibility.
11872
11873 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
11874
11875         PR debug/66668
11876         * dwarf2out.c (add_child_die_after): New function.
11877         (dwarf_qual_info_t): New type.
11878         (dwarf_qual_info): New variable.
11879         (qualified_die_p): New function.
11880         (modified_type_die): For -fdebug-types-section, ensure
11881         canonical order of qualifiers.  Put qualified DIEs adjacent
11882         to the corresponding non-qualified type DIE and search there
11883         for existing qualified DIEs.
11884
11885 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
11886
11887         * doc/extend.texi (scalar_storage_order type attribute): Document
11888         restriction on type punning and aliasing, and remove future tense.
11889
11890 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
11891
11892         PR target/69252
11893         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
11894         first stage.
11895
11896 2016-01-21  Jeff Law  <law@redhat.com>
11897
11898         PR middle-end/69347
11899         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
11900         useless call to record_temporary_equivalences.
11901         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
11902         allocate 10 slots in the bb_path vector and let it grow as needed.
11903         (fsm_find_control_statement_thread_paths): Similarly for the next_path
11904         vector.
11905
11906 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
11907
11908         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
11909         Detangle.
11910         * configure: Regenerate.
11911
11912 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
11913
11914         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
11915         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
11916
11917 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
11918
11919         PR middle-end/66178
11920         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
11921         drop EXPAND_INITIALIZER.
11922         * rtl.h (contains_symbolic_reference_p): Declare.
11923         * rtlanal.c (contains_symbolic_reference_p): New function.
11924         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
11925         a subtraction into a NOT if symbolic constants are involved.
11926
11927 2016-01-21  Anton Blanchard  <anton@samba.org>
11928             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11929
11930         PR target/63354
11931         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
11932         #define.
11933         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
11934         function.
11935
11936 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
11937
11938         * config/microblaze/microblaze.c
11939         (get_branch_target): New.
11940         (insert_wic_for_ilb_runout): New.
11941         (insert_wic): New.
11942         (microblaze_machine_dependent_reorg): New.
11943         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
11944         * config/microblaze/microblaze.md
11945         (UNSPEC_IPREFETCH): Define.
11946         (iprefetch): New pattern
11947         * config/microblaze/microblaze.opt
11948         (mxl-prefetch): New flag.
11949
11950 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
11951
11952         * config/microblaze/microblaze.h
11953         (FIXED_REGISTERS): Update in macro.
11954         (CALL_USED_REGISTERS): Update in macro.
11955
11956 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
11957
11958         PR rtl-optimization/68920
11959         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
11960         moves.
11961
11962 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
11963
11964         PR rtl-optimization/68990
11965         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
11966         pseudo instead of inheritance ones.
11967
11968 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11969             Nick Clifton  <nickc@redhat.com>
11970
11971         PR target/69129
11972         PR target/69012
11973         * config/mips/mips.c (mips_compute_frame_info): Initialise
11974         args_size and hard_frame_pointer_offset fields of the frame
11975         structure before calling mips_global_pointer.
11976
11977 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
11978
11979         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
11980         label reference.
11981         * configure: Regenerate.
11982
11983 2016-01-21  Richard Biener  <rguenther@suse.de>
11984
11985         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
11986
11987 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
11988
11989         * config/s390/s390.c (s390_asm_declare_function_size): Add code
11990         to actually emit the .size directive.
11991
11992 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
11993              Jakub Jelinek  <jakub@redhat.com>
11994
11995         PR target/69187
11996         PR target/65624
11997         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
11998         args array size by one to avoid buffer overflow.
11999
12000 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
12001
12002         * config/s390/s390.md (pool_section_start): Use switch_to_section
12003         to select proper read-only data section instead of hardcoding
12004         .rodata.
12005         (pool_section_end): Use switch_to_section to match the above.
12006
12007 2016-01-21  Richard Biener  <rguenther@suse.de>
12008
12009         PR tree-optimization/69378
12010         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
12011         (set_ssa_val_to): Use it for dominance checks taking into
12012         account not executable edges.
12013
12014 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
12015
12016         PR c++/69355
12017         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
12018         for bitsize instead of GET_MODE_PRECISION (mode).
12019
12020 2016-01-20  Martin Sebor  <msebor@redhat.com>
12021
12022         PR c/52291
12023         * extend.texi (__sync Builtins): Clarify the semantics of
12024         __sync_fetch_and_OP built-ins on pointers.
12025         (__atomic Builtins): Same.
12026
12027 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
12028             Sebastian Pop  <s.pop@samsung.com>
12029
12030         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
12031         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
12032         (is_valid_rename): Same.
12033         (translate_isl_ast_to_gimple::get_rename): Same.
12034         (translate_isl_ast_to_gimple::rename_all_uses): Same.
12035         (translate_isl_ast_to_gimple::rename_uses): Same.
12036         (get_new_name): Check for close_phi nodes.
12037         (copy_loop_phi_args): Use phi_node_kind.
12038         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
12039         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
12040
12041 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
12042             Sebastian Pop  <s.pop@samsung.com>
12043
12044         Revert commit r229783.
12045         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
12046         Remove use of parameter_rename_map.
12047         (copy_def): Remove.
12048         (copy_internal_parameters): Remove.
12049         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
12050         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
12051         (free_sese_info): Do not free parameter_rename_map.
12052         (set_rename): Do not use parameter_rename_map.
12053         (rename_uses): Update call to set_rename.
12054         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
12055         * sese.h (parameter_rename_map_t): Remove.
12056         (struct sese_info_t): Remove field parameter_rename_map.
12057
12058 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
12059             Sebastian Pop  <s.pop@samsung.com>
12060
12061         * graphite-isl-ast-to-gimple.c: Fix comment.
12062         * graphite-scop-detection.c (defined_in_loop_p): New.
12063         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
12064         names defined in loop.
12065
12066 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
12067             Sebastian Pop  <s.pop@samsung.com>
12068
12069         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
12070         Discard unstructured if-then-else regions.
12071
12072 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
12073             Sebastian Pop  <s.pop@samsung.com>
12074
12075         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
12076         (cleanup_loop_iter_dom): Remove.
12077         (build_loop_iteration_domains): Remove.
12078         (build_scop_context): Remove.
12079         (build_scop_iteration_domain): Remove.
12080         (add_loop_constraints): New.
12081         (build_iteration_domains): New.
12082         (build_poly_scop): Call build_iteration_domains.
12083
12084 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
12085             Sebastian Pop  <s.pop@samsung.com>
12086
12087         * graphite-scop-detection.c
12088         (scop_detection::harmful_loop_in_region): Free dom and loops.
12089         (scop_detection::loop_body_is_valid_scop): Free bbs.
12090
12091 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
12092             Sebastian Pop  <s.pop@samsung.com>
12093
12094         * graphite-scop-detection.c (record_loop_in_sese): New.
12095         (gather_bbs::before_dom_children): Call record_loop_in_sese.
12096         (build_scops): Remove call to build_sese_loop_nests.
12097         * sese.c (sese_record_loop): Remove.
12098         (build_sese_loop_nests): Remove.
12099         (new_sese_info): Remove region->loops.
12100         (free_sese_info): Same.
12101         * sese.h (sese_contains_loop): Same.
12102         (build_sese_loop_nests): Remove.
12103         (sese_contains_loop): Remove.
12104
12105 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
12106             Sebastian Pop  <s.pop@samsung.com>
12107
12108         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
12109         loop_is_valid_in_scop.
12110         (scop_detection::harmful_stmt_in_region): Renamed
12111         harmful_loop_in_region.
12112         Call loop_is_valid_in_scop.
12113
12114 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
12115             Sebastian Pop  <s.pop@samsung.com>
12116
12117         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
12118         isl_ast_node_mark.
12119
12120 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
12121             Sebastian Pop  <s.pop@samsung.com>
12122
12123         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
12124         * graphite.h (struct poly_bb): Remove field is_reduction.
12125         (PBB_IS_REDUCTION): Remove.
12126
12127 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
12128             Sebastian Pop  <s.pop@samsung.com>
12129
12130         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
12131         (add_pdr_constraints): Same.
12132         (scop_get_reads): Same.
12133         (scop_get_must_writes): Same.
12134         (scop_get_may_writes): Same.
12135         (scop_get_original_schedule): Same.
12136         (extend_schedule): Same.
12137         (apply_schedule_on_deps): Same.
12138         (carries_deps): Same.
12139         (compute_deps): Same.
12140         (scop_get_dependences): Same.
12141         * graphite-isl-ast-to-gimple.c
12142         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
12143         * graphite-optimize-isl.c (get_schedule_for_band): Same.
12144         (get_schedule_for_band_list): Same.
12145         (get_schedule_map): Same.
12146         (apply_schedule_map_to_scop): Same.
12147         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
12148         (build_loop_iteration_domains): Same.
12149         (add_condition_to_pbb): Same.
12150         (add_param_constraints): Same.
12151         (pdr_add_memory_accesses): Same.
12152         (pdr_add_data_dimensions): Same.
12153
12154 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
12155
12156         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
12157         requirements.
12158
12159 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
12160
12161         * common.opt (feliminate-dwarf2-dups): Replace references to
12162         "DWARF 2" with just "DWARF".
12163         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
12164         * doc/extend.texi: Likewise.
12165         * doc/cpp.texi: Likewise.
12166         * doc/invoke.texi: Likewise.
12167         (Option Summary): Add -gdwarf to list of Debugging Options.
12168         (Debugging Options): Document -gdwarf.
12169         * doc/contrib.texi: Spell "DWARF" like that.
12170
12171 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
12172
12173         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
12174         warning.  Fix up formatting.
12175
12176         PR middle-end/67653
12177         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
12178         attempt to mark memory input operand addressable and
12179         call prepare_gimple_addressable in that case.  Don't adjust
12180         input_location for diagnostics, use error_at instead.
12181
12182 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
12183
12184         * config/rs6000/ppc-auxv.h: New file.
12185         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
12186         (cpu_is): Likewise.
12187         (cpu_supports): Likewise.
12188         * config/rs6000/rs6000.c: include "ppc-auxv.h".
12189         (cpu_is_info): New variable.
12190         (cpu_supports_info): Likewise.
12191         (tcb_verification_symbol): Likewise.
12192         (cpu_builtin_p): Likewise.
12193         (cpu_expand_builtin): New function.
12194         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
12195         (rs6000_init_builtins): Likewise.
12196         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
12197         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
12198         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
12199         * configure: Regenerate.
12200         * config.in: Likewise.
12201         * doc/extend.texi (PowerPC Built-in Functions): Document
12202         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
12203
12204 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
12205
12206         PR target/68609
12207         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
12208         domain check.
12209         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
12210         for V4SFmode.
12211
12212 2016-01-20  Richard Henderson  <rth@redhat.com>
12213
12214         PR bootstrap/69343
12215         PR bootstrap/69339
12216         PR tree-opt/68964
12217         Revert:
12218         * tree.c (tm_define_builtin): New.
12219         (find_tm_vector_type): New.
12220         (build_tm_vector_builtins): New.
12221         (build_common_builtin_nodes): Call it.
12222
12223 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
12224
12225         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
12226         (arm_fp_ok): Likewise.
12227         (arm_fp): Likewise.
12228         (arm_crypto): Likewise.
12229
12230 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
12231             Richard Biener  <rguenther@suse.de>
12232
12233         PR tree-optimization/69328
12234         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
12235         vectors have same number of elements.
12236         (vectorizable_condition): Fix masked version recognition.
12237
12238 2016-01-20  Richard Biener  <rguenther@suse.de>
12239
12240         PR tree-optimization/69345
12241         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
12242         (VN_INFO_PTR_INFO): Likewise.
12243         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
12244         info when it is equal between non-dominating SSA names.
12245         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
12246         Make sure to look at original SSA infos.
12247
12248 2016-01-20  Jeff Law  <law@redhat.com>
12249
12250         PR target/25114
12251         * config/m68k/predicates.md (pow2_m1_operand): New predicate
12252         extracted from ...
12253         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
12254         (pc_or_label_operand): New predicate.
12255         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
12256         tests for small integers that are 2^n - 1.
12257
12258 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
12259
12260         * doc/invoke.texi (Options Summary): Add '.' after @xref.
12261
12262 2016-01-19  Jeff Law  <law@redhat.com>
12263
12264         PR middle-end/69347
12265         * tree-ssa-threadbackwards.c
12266         (fsm_find_control_statement_thread_paths): Do not try to lookup
12267         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
12268
12269 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
12270
12271         * doc/lto.texi: Remove text that says only Gold has linker plugin
12272         support.
12273
12274 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
12275
12276         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
12277         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
12278         the DIE accordingly.
12279         (modified_type_die): Add REVERSE parameter and pass it recursively,
12280         as well as to base_type_die.  Adjust presence check accordingly.
12281         (base_type_for_mode): Adjust call to modified_type_die.
12282         (add_type_attribute): Add REVERSE parameter and pass it to
12283         modified_type_die.
12284         (generic_parameter_die): Adjust call to add_type_attribute.
12285         (add_scalar_info): Likewise.
12286         (add_subscript_info): Likewise.
12287         (gen_array_type_die): Likewise.
12288         (gen_descr_array_type_die): Likewise.
12289         (gen_entry_point_die): Likewise.
12290         (gen_enumeration_type_die): Likewise.
12291         (gen_formal_parameter_die): Likewise.
12292         (gen_subprogram_die): Likewise.
12293         (gen_variable_die ): Likewise.
12294         (gen_const_die): Likewise.
12295         (gen_field_die): Likewise.
12296         (gen_pointer_type_die): Likewise.
12297         (gen_reference_type_die): Likewise.
12298         (gen_ptr_to_mbr_type_die): Likewise.
12299         (gen_inheritance_die): Likewise.
12300         (gen_subroutine_type_die): Likewise.
12301         (gen_typedef_die): Likewise.
12302         (force_type_die): Adjust call to modified_type_die.
12303
12304 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
12305
12306         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
12307         flow throughout the file.  Fix broken link to Objective-C 2.0
12308         documentation.
12309         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
12310         errors.
12311
12312 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
12313
12314         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
12315
12316 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
12317
12318         PR ipa/66223
12319         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
12320         (maybe_record_node): Record cxa_pure_virtual as the only possible
12321         target if there are not ohter candidates.
12322         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
12323
12324 2016-01-19  Richard Biener  <rguenther@suse.de>
12325
12326         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
12327         (get_memory_order): Likewise.
12328
12329 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
12330
12331         * tree-vect-stmts.c (vectorizable_store): Check
12332         rhs vectype.
12333
12334 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
12335
12336         PR jit/68446
12337         * gcc.c (driver::decode_argv): Add call to
12338         init_opts_obstack before init_options_struct.
12339         * opts.c (init_opts_obstack): Remove idempotency.
12340         (init_options_struct): Replace call to init_opts_obstack
12341         with a gcc_assert to verify that it has already been called.
12342         * toplev.c (toplev::main): Add call to init_opts_obstack before
12343         calls to init_options_struct.
12344         (toplev::finalize): Move cleanup of opts_obstack next to
12345         cleanup of save_decoded_options, clearing the latter, and
12346         save_decoded_options_count.
12347
12348 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12349
12350         PR target/69135
12351         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
12352         attribute to unconditional.  Remove %? from output template.
12353
12354 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
12355             Jiong Wang  <jiong.wang@arm.com>
12356
12357         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
12358         generated from different expand order.
12359
12360 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
12361
12362         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
12363         Add support for CCMP costing.
12364
12365 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
12366
12367         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
12368         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
12369         (fccmpe<mode>): Likewise.
12370         (fcmp): Rename to fcmp and globalize pattern.
12371         (fcmpe): Likewise.
12372         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
12373         (aarch64_gen_ccmp_next): Add FP support.
12374
12375 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
12376
12377         * target.def (gen_ccmp_first): Update documentation.
12378         (gen_ccmp_next): Likewise.
12379         * doc/tm.texi (gen_ccmp_first): Update documentation.
12380         (gen_ccmp_next): Likewise.
12381         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
12382         expand_ccmp_expr_1.  Improve comments.
12383         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
12384         (ccmp_ior<mode>): Remove pattern.
12385         (cmp<mode>): Remove expand.
12386         (cmp): Globalize pattern.
12387         (cstorecc4): Use cc_register.
12388         (mov<mode>cc): Remove ccmp_cc_register check.
12389         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
12390         Simplify after removal of CC_DNE/* modes.
12391         (aarch64_ccmp_mode_to_code): Remove.
12392         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
12393         In 'k' case use integer as condition.
12394         (aarch64_nzcv_codes): Remove inverted cases.
12395         (aarch64_code_to_ccmode): Remove.
12396         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
12397         comparison with CC register to be used in folowing CCMP/branch/CSEL.
12398         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
12399         pattern.  Return the comparison with CC register.  Invert conditions
12400         when bitcode is OR.
12401         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
12402         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
12403
12404 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
12405
12406         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
12407         instrumented_version.
12408
12409 2016-01-19  Richard Biener  <rguenther@suse.de>
12410
12411         PR tree-optimization/69336
12412         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
12413         handled components with get_ref_base_and_extent.
12414         (equal_mem_array_ref_p): Adjust.
12415
12416 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
12417
12418         PR debug/65779
12419         * shrink-wrap.c: Include valtrack.h.
12420         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
12421         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
12422         in between insn and where it will be moved to.  Call
12423         dead_debug_insert_temp.
12424         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
12425         first and dead_debug_local_finish at the end.
12426         For uses and defs bitmap, handle all regs in between REGNO and
12427         END_REGNO, not just the first one.
12428
12429 2016-01-19  Richard Biener  <rguenther@suse.de>
12430
12431         PR tree-optimization/69352
12432         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
12433         (equal_mem_array_ref_p): Constrain size and max size properly.
12434         Compare the reverse flag.
12435
12436 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
12437
12438         * ira.c (ira): Update regstat data if we deleted insns.
12439
12440 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
12441
12442         PR rtl-optimization/68955
12443         PR rtl-optimization/64557
12444         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
12445         here.  Fix up formatting.
12446         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
12447
12448 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
12449
12450         PR lto/69133
12451         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
12452         assume that the node has body.
12453         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
12454         check.
12455
12456 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
12457
12458         * lto-streamer-out.c (lto_output): Do not stream instrumentation
12459         thunks.
12460
12461 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
12462
12463         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
12464         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
12465
12466 2016-01-19  Martin Jambor  <mjambor@suse.cz>
12467             Martin Liska  <mliska@suse.cz>
12468             Michael Matz  <matz@suse.de>
12469
12470         * Makefile.in (OBJS): Add new source files.
12471         (GTFILES): Add hsa.c.
12472         * common.opt (disable_hsa): New variable.
12473         (-Whsa): New warning.
12474         * config.in (ENABLE_HSA): New.
12475         * configure.ac: Treat hsa differently from other accelerators.
12476         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
12477         $enable_offloading.
12478         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
12479         * doc/install.texi (Configuration): Document --with-hsa-runtime,
12480         --with-hsa-runtime-include, --with-hsa-runtime-lib and
12481         --with-hsa-kmt-lib.
12482         * doc/invoke.texi (-Whsa): Document.
12483         (hsa-gen-debug-stores): Likewise.
12484         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
12485         to invoke offload compiler for hsa acclerator.
12486         * opts.c (common_handle_option): Determine whether HSA offloading
12487         should be performed.
12488         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
12489         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
12490         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
12491         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
12492         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
12493         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
12494         GF_OMP_FOR_KIND_GRID_LOOP.
12495         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
12496         (pp_gimple_stmt_1): Likewise.
12497         * gimple-walk.c (walk_gimple_stmt): Likewise.
12498         * gimple.c (gimple_build_omp_grid_body): New function.
12499         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
12500         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
12501         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
12502         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
12503         GF_OMP_TEAMS_GRID_PHONY.
12504         (gimple_statement_omp_single_layout): Updated comments.
12505         (gimple_build_omp_grid_body): New function.
12506         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
12507         (gimple_omp_for_grid_phony): New function.
12508         (gimple_omp_for_set_grid_phony): Likewise.
12509         (gimple_omp_parallel_grid_phony): Likewise.
12510         (gimple_omp_parallel_set_grid_phony): Likewise.
12511         (gimple_omp_teams_grid_phony): Likewise.
12512         (gimple_omp_teams_set_grid_phony): Likewise.
12513         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
12514         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
12515         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
12516         (BUILT_IN_GOMP_TARGET): Updated type.
12517         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
12518         (adjust_for_condition): New function.
12519         (get_omp_for_step_from_incr): Likewise.
12520         (extract_omp_for_data): Moved parts to adjust_for_condition and
12521         get_omp_for_step_from_incr.
12522         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
12523         (fixup_child_record_type): Bail out if receiver_decl is NULL.
12524         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
12525         (scan_omp_parallel): Do not create child functions for phony
12526         constructs.
12527         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
12528         (scan_omp_1_op): Checking assert we are not remapping to
12529         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
12530         (parallel_needs_hsa_kernel_p): New function.
12531         (expand_parallel_call): Register apprpriate parallel child
12532         functions as HSA kernels.
12533         (grid_launch_attributes_trees): New type.
12534         (grid_attr_trees): New variable.
12535         (grid_create_kernel_launch_attr_types): New function.
12536         (grid_insert_store_range_dim): Likewise.
12537         (grid_get_kernel_launch_attributes): Likewise.
12538         (get_target_argument_identifier_1): Likewise.
12539         (get_target_argument_identifier): Likewise.
12540         (get_target_argument_value): Likewise.
12541         (push_target_argument_according_to_value): Likewise.
12542         (get_target_arguments): Likewise.
12543         (expand_omp_target): Call get_target_arguments instead of looking
12544         up for teams and thread limit.
12545         (grid_expand_omp_for_loop): New function.
12546         (grid_arg_decl_map): New type.
12547         (grid_remap_kernel_arg_accesses): New function.
12548         (grid_expand_target_kernel_body): New function.
12549         (expand_omp): Call it.
12550         (lower_omp_for): Do not emit phony constructs.
12551         (lower_omp_taskreg): Do not emit phony constructs but create for them
12552         a temporary variable receiver_decl.
12553         (lower_omp_taskreg): Do not emit phony constructs.
12554         (lower_omp_teams): Likewise.
12555         (lower_omp_grid_body): New function.
12556         (lower_omp_1): Call it.
12557         (grid_reg_assignment_to_local_var_p): New function.
12558         (grid_seq_only_contains_local_assignments): Likewise.
12559         (grid_find_single_omp_among_assignments_1): Likewise.
12560         (grid_find_single_omp_among_assignments): Likewise.
12561         (grid_find_ungridifiable_statement): Likewise.
12562         (grid_target_follows_gridifiable_pattern): Likewise.
12563         (grid_remap_prebody_decls): Likewise.
12564         (grid_copy_leading_local_assignments): Likewise.
12565         (grid_process_kernel_body_copy): Likewise.
12566         (grid_attempt_target_gridification): Likewise.
12567         (grid_gridify_all_targets_stmt): Likewise.
12568         (grid_gridify_all_targets): Likewise.
12569         (execute_lower_omp): Call grid_gridify_all_targets.
12570         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
12571         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
12572         (tree_omp_clause): Added union field dimension.
12573         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
12574         * tree.c (omp_clause_num_ops): Added number of arguments of
12575         OMP_CLAUSE__GRIDDIM_.
12576         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
12577         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
12578         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
12579         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
12580         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
12581         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
12582         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
12583         * tree-pass.h (make_pass_gen_hsail): Declare.
12584         (make_pass_ipa_hsa): Likewise.
12585         * ipa-hsa.c: New file.
12586         * lto-section-in.c (lto_section_name): Add hsa section name.
12587         * lto-streamer.h (lto_section_type): Add hsa section.
12588         * timevar.def (TV_IPA_HSA): New.
12589         * hsa-brig-format.h: New file.
12590         * hsa-brig.c: New file.
12591         * hsa-dump.c: Likewise.
12592         * hsa-gen.c: Likewise.
12593         * hsa.c: Likewise.
12594         * hsa.h: Likewise.
12595         * toplev.c (compile_file): Call hsa_output_brig.
12596         * hsa-regalloc.c: New file.
12597
12598 2016-01-18  Jeff Law  <law@redhat.com>
12599
12600         PR tree-optimization/69320
12601         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
12602         ranged object, do nothing if the RHS constant is not [0..1].
12603         (optimize_stmt): Comparing a boolean ranged object against a
12604         constant outside [0..1] results in a compile-time constant.
12605
12606         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
12607         test.
12608
12609 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
12610
12611         * doc/invoke.texi (Invoking GCC): Add new section to menu.
12612         (Option Summary): Update to reflect new section and moved options.
12613         (C++ Dialect Options): Move -fstats to new section.
12614         (Debugging Options): Move all dump, statistics, and other GCC
12615         developer options to new section.  Rewrite section introduction
12616         and re-order remaining options to put the more basic ones first.
12617         (Optimization Options): Move -fira-verbose and -flto-report* to
12618         new section.
12619         (Developer Options): New section incorporating moved options.
12620         * doc/cppopts.texi (-dM): Update cross-reference.
12621
12622 2016-01-18  Richard Henderson  <rth@redhat.com>
12623
12624         PR target/69176
12625         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
12626         operands to pseudo only if CSE is expected.  Split long immediate
12627         operands only after reload, and for the stack pointer.
12628         (*add<GPI>3_pluslong): Remove.
12629         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
12630         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
12631         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
12632         (*add<GPI>3 peepholes): New.
12633         (*add<GPI>3 splitters): New.
12634         * config/aarch64/constraints.md (Upl): New.
12635         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
12636
12637 2016-01-18  Richard Biener  <rguenther@suse.de>
12638
12639         PR tree-optimization/69297
12640         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
12641         stmt at most once.
12642         (vect_bb_vectorization_profitable_p): Clear visited flag again.
12643
12644 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
12645
12646         PR middle-end/68542
12647         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
12648         of mixind vector and scalar types.
12649         (fold_relational_const): Add handling of vector
12650         comparison with boolean result.
12651         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
12652         comparison of vector operands with boolean result for EQ/NE only.
12653         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
12654         (verify_gimple_cond): Likewise.
12655         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
12656         valid type of VAL.
12657
12658 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
12659
12660         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
12661         !TARGET_OCTEON.
12662
12663 2016-01-18  Richard Biener  <rguenther@suse.de>
12664
12665         PR middle-end/69308
12666         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
12667
12668 2016-01-18  Tom de Vries  <tom@codesourcery.com>
12669
12670         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
12671
12672 2016-01-18  Tom de Vries  <tom@codesourcery.com>
12673
12674         * omp-low.c (set_oacc_fn_attrib): Make extern.
12675         * omp-low.h (set_oacc_fn_attrib): Declare.
12676         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
12677         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
12678         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
12679         Add and handle function parameter oacc_kernels_p.
12680         (find_reduc_addr, get_omp_data_i_param): New function.
12681         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
12682         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
12683         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
12684         Calculate dominance info.  Skip loops that are not in a kernels region
12685         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
12686         (pass_parallelize_loops::execute): Call parallelize_loops with
12687         oacc_kernels_p argument.
12688         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
12689         New member function.
12690         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
12691         * passes.def: Add argument to pass_parallelize_loops instantation.
12692
12693 2016-01-18  Tom de Vries  <tom@codesourcery.com>
12694
12695         * tree-parloops.c (pass_parallelize_loops::execute): Allow
12696         pass_parallelize_loops to be run outside the loop pipeline.
12697
12698 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
12699
12700         * tree-scalar-evolution.c (follow_copies_to_constant): New.
12701         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
12702
12703 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
12704
12705         PR target/63679
12706         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
12707         using get_ref_base_and_extent.
12708         (equal_mem_array_ref_p): New.
12709         (hashable_expr_equal_p): Add call to previous.
12710
12711 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
12712
12713         PR target/63679
12714         * tree-sra.c (disqualified_constants, constant_decl_p): New.
12715         (sra_initialize): Allocate disqualified_constants.
12716         (sra_deinitialize): Free disqualified_constants.
12717         (disqualify_candidate): Update disqualified_constants when appropriate.
12718         (create_access): Scan for constant-pool entries as we go along.
12719         (scalarizable_type_p): Add check against type_contains_placeholder_p.
12720         (maybe_add_sra_candidate): Allow constant-pool entries.
12721         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
12722         (initialize_constant_pool_replacements): New.
12723         (sra_modify_assign): Avoid mangling assignments created by previous,
12724         and don't generate writes into constant pool.
12725         (sra_modify_function_body): Call initialize_constant_pool_replacements.
12726
12727 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
12728
12729         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
12730         andnot instruction.
12731         (scalar_chain::convert_op): Likewise.
12732         * config/i386/i386.md (*andndi3_doubleword): New.
12733
12734 2016-01-18  Richard Biener  <rguenther@suse.de>
12735
12736         PR tree-optimization/69170
12737         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
12738         building a vector from scalar results of a pattern stmt.
12739
12740 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
12741
12742         * haifa-sched.c (autopref_multipass_init): Work around
12743         -Wmaybe-uninitialized warning.
12744
12745 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12746
12747         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
12748         against the constant 0.
12749
12750 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12751
12752         PR tree-optimization/68799
12753         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
12754         look up phi candidates in the statement-candidate map.
12755         (phi_add_costs): Likewise.
12756         (record_phi_increments): Likewise.
12757         (phi_incr_cost): Likewise.
12758         (ncd_with_phi): Likewise.
12759         (all_phi_incrs_profitable): Likewise.
12760
12761 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
12762
12763         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
12764         -Wmaybe-uninitialized warning.
12765
12766 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
12767
12768         * doc/invoke.texi (Invoking GCC): Add new section to menu.
12769         (Option Summary): Update to reflect new section and moved options.
12770         (C++ Dialect Options): Move -fvtable-verify and related options.
12771         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
12772         and profiling-related options.
12773         (Optimization Options): Move profile generation options and
12774         -fstack-protector and related options.
12775         (Instrumentation Options): New section incorporating moved options.
12776         (Code Generation Options): Move -finstrument-functions and
12777         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
12778
12779 2016-01-16  Tom de Vries  <tom@codesourcery.com>
12780
12781         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
12782
12783 2016-01-16  Tom de Vries  <tom@codesourcery.com>
12784
12785         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
12786
12787 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
12788
12789         * hash-table.h (hash_table::empty): Turn into an inline wrapper
12790         that checks whether the table is already empty.  Rename the
12791         original implementation to...
12792         (hash_table::empty_slot): ...this new private function.
12793
12794 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
12795
12796         PR diagnostic/68899
12797         * diagnostic-show-locus.c (layout::print_source_line): Move x
12798         offset of line until after call to
12799         get_line_width_without_trailing_whitespace.
12800
12801 2016-01-15  Jeff Law  <law@redhat.com>
12802
12803         PR tree-optimization/69270
12804         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
12805         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
12806         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
12807         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
12808         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
12809         ssa_name_has_boolean_range and constant_boolean_node.
12810
12811 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
12812
12813         PR rtl-optimization/69030
12814         * lra-spills.c (remove_pseudos): Check nrefs and make the function
12815         returning bool.
12816         (spill_pseudos): Delete debug insn for dead pseudo.
12817         (lra_spill): Initiate spill_hard_reg and slots memory separately.
12818
12819 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
12820
12821         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
12822         New.
12823         (TYPES_UNOPUS): Likewise.
12824         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
12825         builtin type, from UNOP to UNOPUS.
12826         (lbtruncuv4sf): Likewise.
12827         (lbtruncuv2df): Likewise.
12828         (lrounduv2sf): Likewise.
12829         (lrounduv4sf): Likewise.
12830         (lrounduv2df): Likewise.
12831         (lroundusf): Likewise.
12832         (lroundusf): Likewise.
12833         (lceiluv2sf): Likewise.
12834         (lceiluv4sf): Likewise.
12835         (lceiluv2df): Likewise.
12836         (lceilusf): Likewise.
12837         (lceiludf): Likewise.
12838         (lflooruv2sf): Likewise.
12839         (lflooruv4sf): Likewise.
12840         (lflooruv2df): Likewise.
12841         (lfloorusf): Likewise.
12842         (lfloorudf): Likewise.
12843         (lfrintnuv2sf): Likewise.
12844         (lfrintnuv4sf): Likewise.
12845         (lfrintnuv2df): Likewise.
12846         (lfrintnusf): Likewise.
12847         (lfrintnudf): Likewise.
12848         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
12849         conversion.
12850         (vcvtq_u32_f32): Likewise.
12851         (vcvtq_u64_f64): Likewise.
12852         (vcvta_u32_f32): Likewise.
12853         (vcvtaq_u32_f32): Likewise.
12854         (vcvtaq_u64_f64): Likewise.
12855         (vcvtm_u32_f32): Likewise.
12856         (vcvtmq_u32_f32): Likewise.
12857         (vcvtmq_u64_f64): Likewise.
12858         (vcvtn_u32_f32): Likwise.
12859         (vcvtnq_u32_f32): Likewise.
12860         (vcvtnq_u64_f64): Likewise.
12861         (vcvtp_u32_f32): Likewise.
12862         (vcvtpq_u32_f32): Likewise.
12863         (vcvtpq_u64_f64): Likewise.
12864         (vcvtmd_u64_f64): Likewise.
12865         (vcvtms_u32_f32): Likewise.
12866         (vcvtad_u64_f64): Likewise.
12867         (vcvtas_u32_f32): Likewise.
12868         (vcvtnd_u64_f64): Likewise.
12869         (vcvtns_u32_f32): Likewise.
12870         (vcvtpd_u64_f64): Likewise.
12871         (vcvtps_u32_f32): Likewise.
12872
12873 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12874
12875         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
12876         CSEL of zero_extended registers.
12877
12878 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12879
12880         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
12881         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
12882
12883 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12884
12885         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
12886         false when argument string is not found in the attributes table
12887         at all.
12888
12889 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
12890
12891         PR target/68609
12892         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
12893         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
12894         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
12895         precision estimate.
12896
12897 2016-01-15  Richard Biener  <rguenther@suse.de>
12898
12899         PR tree-optimization/66856
12900         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
12901         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
12902         (vect_create_new_slp_node): Increment stmt reference count.
12903         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
12904         an SLP tree before swapping operands.
12905         (vect_build_slp_tree): Likewise.
12906         (destroy_bb_vec_info): Free stmt info after SLP instances.
12907         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
12908         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
12909         (STMT_VINFO_NUM_SLP_USES): New macro.
12910
12911 2016-01-15  Richard Biener  <rguenther@suse.de>
12912
12913         PR debug/69137
12914         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
12915         (add_linkage_name): ... here.
12916         (gen_typedef_die): Use add_linkage_name_raw instead of
12917         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
12918         if necessary.
12919
12920 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
12921
12922         * gimplify.c (oacc_default_clause): Decode reference and pointer
12923         types for both kernels and parallel regions.
12924
12925 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
12926
12927         PR middle-end/69246
12928         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
12929
12930 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
12931
12932         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
12933         (convert_scalars_to_vector): Likewise.
12934
12935 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
12936
12937         * doc/extend.texi (Type Traits): Fix grammar.
12938
12939 2016-01-15  Martin Jambor  <mjambor@suse.cz>
12940
12941         * tree-inline.c (remap_decl): Use existing dclarations if
12942         remapping a type and prevent_decl_creation_for_types.
12943         (replace_locals_stmt): Do an initial remapping of non-VLA typed
12944         decls first.  Do real remapping with
12945         prevent_decl_creation_for_types set.
12946         * tree-inline.h (copy_body_data): New field
12947         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
12948         padding.
12949
12950 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
12951
12952         * config/s390/s390.opt (mmvcle): More verbose help text.
12953
12954 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
12955
12956         * config/s390/s390.opt: Add period to -mzvector option text.
12957
12958 2016-01-15  Richard Biener  <rguenther@suse.de>
12959
12960         PR tree-optimization/68961
12961         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
12962         of invariants in stores again.
12963
12964 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
12965
12966         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
12967
12968 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
12969
12970         * config/i386/i386.c (ix86_expand_branch): Don't split
12971         DI mode xor instruction to SI mode.
12972
12973 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
12974
12975         PR ipa/68148
12976         * ipa-icf.c (sem_function::merge): Virtual functions may become
12977         reachable even if they address is not taken and there are no
12978         idrect calls.
12979
12980 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
12981
12982         * lto-streamer-out.c (subtract_estimated_size): New function.
12983         (get_symbol_initial_value): Use it.
12984
12985 2016-01-15  Christian Bruel  <christian.bruel@st.com>
12986
12987         PR target/65837
12988         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
12989         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
12990         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
12991         use add_builtin_function_ext_scope instead of add_builtin_function.
12992         (neon_set_p, neon_crypto_set_p): Remove.
12993         (arm_init_builtins): Always call arm_init_neon_builtins and
12994         arm_init_crypto_builtins.
12995         (arm_expand_builtin): Check that builtins are allowed for the arch.
12996         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
12997         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
12998         arm_init_neon_builtins call.
12999
13000 2016-01-15  Richard Biener  <rguenther@suse.de>
13001
13002         PR tree-optimization/69117
13003         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
13004         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
13005         of the leader conservatively.
13006         (free_scc_vn): Restore original SSA name infos.
13007
13008 2016-01-14  Jeff Law  <law@redhat.com>
13009
13010         PR tree-optimization/69270
13011         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
13012         single bit of precision, verify it's also unsigned.
13013         (record_edge_info): Use constant_boolean_node rather than fold_convert
13014         to convert boolean_true/boolean_false to the right type.
13015
13016 2016-01-14  Richard Henderson  <rth@redhat.com>
13017
13018         PR rtl-opt/69014
13019         * loop-doloop.c (record_reg_sets): New.
13020         (doloop_optimize): Reject the transform if the sequence
13021         clobbers registers live at the end of the loop block.
13022         (doloop_optimize_loops): Enable df_live if needed.
13023
13024 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
13025
13026         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
13027         * config/rs6000/rs6000.c: Likewise.
13028         * config/rs6000/rs6000.h: Likewise.
13029         * config/rs6000/rs6000.md: Likewise.
13030         * doc/extend.texi: Likewsie.
13031
13032 2016-01-14  Jeff Law  <law@redhat.com>
13033
13034         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
13035         typo.
13036
13037 2016-01-14  Richard Henderson  <rth@redhat.com>
13038
13039         PR c/69272
13040         PR tree-opt/68964
13041         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
13042         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
13043         instead of builtin_decl_declared_p to test for declaration.
13044
13045 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
13046
13047         * doc/loop.texi (Loop Analysis and Representation): Document
13048         loop_depth function.
13049
13050 2016-01-14  Tom de Vries  <tom@codesourcery.com>
13051
13052         PR tree-optimization/68773
13053         * omp-low.c (expand_omp_target): Don't set force_output.
13054         * varpool.c (varpool_node::get_create): Same.
13055         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
13056         offload_funcs with force_output.
13057
13058 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
13059
13060         PR debug/69244
13061         * lra-eliminations.c (move_plus_up): Don't change anything if either
13062         the outer or inner subreg mode is not MODE_INT.
13063         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
13064         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
13065
13066 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
13067
13068         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
13069         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
13070         reduc_uplus_@var{m}): Remove.
13071         * expr.c (expand_expr_real_2): Remove expansion path for
13072         reduc_[us](min|max|plus) optabs.
13073         * optabs-tree.c (scalar_reduc_to_vector): Remove.
13074         * optabs-tree.h (scalar_reduc_to_vector): Remove.
13075         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
13076         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
13077         * tree-vect-loop.c (vectorizable_reduction): Remove test for
13078         reduc_[us](min|max|plus) optabs.
13079
13080 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
13081
13082         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
13083         (reduc_plus_scal_v2sf): New.
13084         (reduc_smax_v2sf): Rename to...
13085         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
13086         (reduc_smin_v2sf): Rename to...
13087         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
13088
13089 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
13090
13091         * alias.c (compare_base_symbol_refs): New function.
13092         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
13093         it.
13094
13095 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
13096
13097         PR middle-end/68146
13098         PR tree-optimization/69155
13099         * tree-complex.c: Include cfganal.h.
13100         (phis_to_revisit): New variable.
13101         (extract_component): Add phiarg_p argument.  Assert that returned
13102         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
13103         (update_phi_components): Partly rewrite to use loop over real/imag
13104         components instead of code duplication.  If extract_component returns
13105         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
13106         create_tmp_reg into the PHI node instead, and mention the phi triplet
13107         in phis_to_revisit.
13108         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
13109         in phis_to_revisit at the end.
13110
13111 2016-01-14  Richard Biener  <rguenther@suse.de>
13112
13113         PR tree-optimization/68060
13114         * tree-vect-loop.c (vect_is_simple_reduction): Check the
13115         outer loop reduction is only used in the inner loop before
13116         detecting a double reduction.
13117
13118 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
13119
13120         PR target/68269
13121         * combine.c (expand_field_assignment): Punt if compute_mode is
13122         unsupported scalar mode.
13123
13124 2016-01-14  Richard Biener  <rguenther@suse.de>
13125
13126         PR tree-optimization/66856
13127         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
13128         SLP node only if it built successfully.
13129         (vect_analyze_slp_instance): Adjust.
13130
13131 2016-01-14  Jeff Law  <law@redhat.com>
13132
13133         PR tree-optimization/69270
13134         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
13135         (record_edge_info): Use it.  Convert boolean_{true,false}_node
13136         to the type of op0.
13137
13138 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
13139
13140         PR ipa/66487
13141         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
13142         use block_ultimate_origin
13143         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
13144
13145 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
13146
13147         * doc/invoke.texi (Submodel Options): Rename section to
13148         "Machine-Dependent Options" to better reflect its content.
13149         Rewrite introductory text to remove archaic CPU names.
13150         Update references.
13151
13152 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
13153
13154         * doc/invoke.texi (Code Gen Options): Move section up in file,
13155         before target-specific options.  Update menu and option summary
13156         to reflect the new section ordering.
13157
13158 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
13159
13160         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
13161         (C++ Dialect Options): Add cross-reference to -std option.
13162         * doc/standards.texi (C++ Language): Document C++14 support.
13163
13164 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
13165
13166         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
13167         for pack/unpack functions for __ibm128.
13168         (PACK_IF): Likewise.
13169         (UNPACK_IF): Likewise.
13170
13171         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
13172         support for __ibm128 pack/unpack functions.
13173         (rs6000_invalid_builtin): Likewise.
13174         (rs6000_init_builtins): Likewise.
13175         (rs6000_opt_masks): Likewise.
13176
13177         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
13178         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
13179         functions
13180         (RS6000_BTM_COMMON): Likewise.
13181
13182         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
13183         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
13184         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
13185         128-bit floating point.  Add support for the double values to be
13186         in Altivec registers for TF/IF packing and unpacking, but restrict
13187         TD packing sub-fields to be FPR registers.  Don't allow overlapped
13188         register support for packing.  Allow pack inputs to be memory
13189         locations.  Don't build generator functions for unpack<mode>_dm
13190         and unpack<mode>_nodm.
13191         (unpack<mode>_dm): Likewise.
13192         (unpack<mode>_nodm): Likewise.
13193         (pack<mode>): Likewise.
13194
13195         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
13196         built-in functions to pack/unpack explicit __ibm128 values.
13197         (__builtin_unpack_ibm128): Likewise.
13198
13199         * doc/extend.texi (PowerPC Built-in Functions): Document
13200         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
13201
13202 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
13203
13204         PR c/66208
13205         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
13206         Add new arg loc and pass it down as context.
13207         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
13208         to the location to use for the warning.
13209         (check_function_arguments): New arg loc.  All callers changed.  Pass
13210         it to check_function_nonnull.
13211         * c-common.h (check_function_arguments): Adjust declaration.
13212
13213 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
13214
13215         PR tree-optimization/69156
13216         * gimple.c (validate_type): Removed.
13217         (gimple_builtin_call_types_compatible_p): Use
13218         useless_type_conversion_p instead of validate_type.
13219         * value-prof.c (gimple_stringop_fixed_value): Fold
13220         icall_size to correct type.
13221
13222 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
13223
13224         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
13225         effects.
13226
13227 2016-01-13  Richard Henderson  <rth@redhat.com>
13228
13229         PR tree-opt/68964
13230         * target.def (builtin_tm_load, builtin_tm_store): Remove.
13231         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
13232         (ix86_builtin_tm_store): Remove.
13233         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
13234         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
13235         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
13236         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
13237         * doc/tm.texi: Rebuild.
13238
13239         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
13240         (BUILT_IN_TM_MEMCPY_RTWN): New.
13241         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
13242         fallback from vector to integer helpers.
13243         (build_tm_load): Handle vector types directly, instead of
13244         via target hook.
13245         (build_tm_store): Likewise.
13246         (expand_assign_tm): Prepare for register types not handled by
13247         the above.  Copy them to memory and use memcpy.
13248         * tree.c (tm_define_builtin): New.
13249         (find_tm_vector_type): New.
13250         (build_tm_vector_builtins): New.
13251         (build_common_builtin_nodes): Call it.
13252
13253 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
13254
13255         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
13256         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
13257
13258 2016-01-13  Tom de Vries  <tom@codesourcery.com>
13259
13260         PR tree-optimization/69169
13261         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
13262         handled_struct_type param.
13263         (create_variable_info_for, intra_create_variable_infos): Call
13264         create_variable_info_for_1 with extra arg.
13265
13266 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
13267
13268         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
13269         and "armv8.1-a+crc" entries.
13270
13271 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
13272
13273         PR target/69228
13274         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
13275         Change first operand predicate from register_or_constm1_operand
13276         to register_operand.
13277         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
13278         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
13279         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
13280         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
13281         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
13282         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
13283         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
13284         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
13285         comparison with constm1_rtx from vec_prefetch_gen part.
13286
13287 2016-01-13  Richard Biener  <rguenther@suse.de>
13288
13289         PR tree-optimization/69013
13290         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
13291         Exchange assert for a test.
13292
13293 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13294
13295         PR target/69247
13296         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
13297
13298 2016-01-13  Richard Biener  <rguenther@suse.de>
13299
13300         PR tree-optimization/69242
13301         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
13302         assert with a check.
13303
13304 2016-01-13  Richard Biener  <rguenther@suse.de>
13305
13306         PR tree-optimization/69186
13307         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
13308         Properly guard vect_update_misalignment_for_peel call.
13309
13310 2016-01-12  Jeff Law  <law@redhat.com>
13311
13312         PR tree-optimization/pr67755
13313         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
13314         "need_profile_correction".
13315         (thread_block_1): Initialize new field to false by default.  If we
13316         have multiple thread paths through a common joiner to different
13317         final targets, then set new field to true.
13318         (compute_path_counts): Only do count adjustment when it's really
13319         needed.
13320
13321 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
13322
13323         * doc/invoke.texi (Spec Files): Move section down in file, past
13324         all command-line option descriptions.
13325
13326 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13327
13328         PR middle-end/54809
13329         * doc/gty.texi: Remove documentation of mark_hook.
13330         * gengtype.c (struct write_types_data): Remove code to support
13331         mark_hook attribute.
13332         (walk_type): Likewise.
13333         (write_func_for_structure): Likewise.
13334
13335 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
13336
13337         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
13338         Directory Options, and -specs= to Overall Options.
13339         (Overall Options): Adjust similarly.  Reorder to group related
13340         options together.  Make -specs= cross-reference the spec file details.
13341         (Directory Options): Adjust similarly.
13342
13343 2016-01-12  Jeff Law  <law@redhat.com>
13344
13345         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
13346
13347 2016-01-12  Olivier Hainque  <hainque@adacore.com>
13348
13349         * gcc.c (spec_undefvar_allowed): New global.
13350         (process_command): Set to true when running for --version or --help,
13351         alone or together.
13352         (getenv_spec_function): When the variable is not defined, use the
13353         variable name as the variable value if we're allowed not to issue
13354         a fatal error.
13355
13356 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
13357
13358         PR tree-optimization/68911
13359         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
13360         information computed for expression "init + nit * step".
13361
13362 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
13363
13364         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
13365         about name of GCC executable.  Remove deleted node from menu.
13366         (Directory Options) <-B>: Remove cross-reference to deleted node.
13367         (Target Options): Delete section.
13368
13369 2016-01-12  Christian Bruel  <christian.bruel@st.com>
13370
13371         PR target/69180
13372         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
13373         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
13374
13375 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
13376
13377         PR target/69198
13378         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
13379         aligned_mem is properly set for AVX512-VL floating point masked
13380         stores.
13381
13382         PR target/69175
13383         * ifcvt.c (cond_exec_process_if_block): When removing the last
13384         insn from then_bb, remove also any possible barriers that follow it.
13385
13386 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
13387
13388         PR target/68456
13389         PR target/69226
13390         * config/i386/iamcu.h (SIZE_TYPE): New macro.
13391         (PTRDIFF_TYPE): Likewise.
13392         (WCHAR_TYPE): Likewise.
13393         (WCHAR_TYPE_SIZE): Likewise.
13394         (STDINT_LONG32): Likewise.
13395
13396 2016-01-12  Richard Biener  <rguenther@suse.de>
13397
13398         PR tree-optimization/69053
13399         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
13400         convert initial value for cond reductions.
13401
13402 2016-01-12  Richard Biener  <rguenther@suse.de>
13403
13404         PR tree-optimization/69007
13405         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
13406         widen_sum after dot_prod and sad.
13407
13408 2016-01-12  Richard Biener  <rguenther@suse.de>
13409
13410         PR tree-optimization/69168
13411         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
13412         pattern stmt SLP type.
13413         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
13414         end up unused so cope with that case.
13415
13416 2016-01-12  Richard Biener  <rguenther@suse.de>
13417
13418         PR tree-optimization/69157
13419         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
13420         stmts def type only during analyze phase.
13421         (vectorizable_call): Likewise.
13422         (vectorizable_simd_clone_call): Likewise.
13423         (vectorizable_conversion): Likewise.
13424         (vectorizable_assignment): Likewise.
13425         (vectorizable_shift): Likewise.
13426         (vectorizable_operation): Likewise.
13427         (vectorizable_store): Likewise.
13428         (vectorizable_load): Likewise.
13429
13430 2016-01-12  Richard Biener  <rguenther@suse.de>
13431
13432         PR tree-optimization/69174
13433         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
13434         space.
13435         (vectorizable_load): Properly compute the number of loads needed
13436         for permuted strided SLP loads and do not spuriously assign
13437         to SLP_TREE_VEC_STMTS.
13438
13439 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
13440
13441         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
13442         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
13443         (MD_EXEC_PREFIX): Remove.
13444         (MD_STARTFILE_PREFIX) Removee.
13445         (FILE_NAME_ABSOLUTE_P): Remove.
13446         (CPP_SPEC): Do not read macros from sys/version.h.
13447         (LINK_COMMAND_SPEC): Remove.
13448         (LOCAL_INCLUDE_DIR): Remove.
13449         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
13450         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
13451         (POST_LINK_SPEC): Define to invoke stubify after linker
13452         (LIBSTDCXX): Remove define
13453         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
13454         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
13455         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
13456         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
13457         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
13458         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
13459         (i386_djgpp_asm_named_section): Add propotype of new procedure
13460
13461         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
13462         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
13463         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
13464         in config/i386/djgpp.h).
13465         (STANDARD_STARTFILE_PREFIX_2): Define identical to
13466         STANDARD_STARTFILE_PREFIX_1.
13467         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
13468         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
13469         installation errors.
13470         (MAX_OFILE_ALIGNMENT): Define to 128.
13471         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
13472
13473         * config/i386/djgpp.c: New file. Add implementation of
13474         i386_djgpp_asm_named_section.
13475
13476         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
13477
13478         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
13479         Add rule for building djgpp.o.
13480
13481 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13482
13483         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
13484         (rtx_is_swappable_p): Reductions are swappable.
13485         (insn_is_swappable_p): V2DF reductions are swappable.
13486
13487 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
13488
13489         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
13490         reloads for other unsupported memory operands.
13491
13492 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13493             Jim Wilson  <jim.wilson@linaro.org>
13494
13495         PR target/69194
13496         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
13497         copy_to_mode_reg instead of force_reg.
13498
13499 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
13500
13501         PR target/69225
13502         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
13503         TARGET_80387 is true.
13504
13505 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
13506
13507         PR target/69071
13508         * lra-eliminations.c (move_plus_up): Only move plus up
13509         if subreg of the constant can be simplified into constant
13510         and use the simplified subreg of the constant instead of
13511         the original constant.
13512
13513         * fold-const.c (fold_convertible_p): Don't return true
13514         for conversion of VECTOR_TYPE to same sized integral type.
13515         (fold_convert_loc): Fix up formatting.  Fold conversion of
13516         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
13517         instead of NOP_EXPR.
13518
13519         PR tree-optimization/69214
13520         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
13521         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
13522         Formatting fix.
13523
13524         PR tree-optimization/69207
13525         * tree-vect-slp.c (vect_get_constant_vectors): For
13526         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
13527         fold_convertible_p to vector_type's element type, and always
13528         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
13529
13530 2016-01-11  Richard Biener  <rguenther@suse.de>
13531
13532         PR tree-optimization/69173
13533         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
13534         fixup the cycle if all stmts are in a pattern.
13535
13536 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
13537
13538         PR middle-end/68999
13539         * alias.c (base_alias_check): Move check for addresses with
13540         alignment ANDs before the call for compare_base_decls.
13541         (memrefs_conflict_p): Return -1 for different decls
13542         that went through alignment adjustments.
13543
13544 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13545
13546         PR rtl-optimization/68796
13547         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
13548         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
13549         and QImode comparisons against zero with CC_NZmode.
13550         * config/aarch64/iterators.md (short_mask): New mode_attr.
13551
13552 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
13553
13554         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
13555         (<avx512>_store<mode>_mask): Likewise.
13556
13557 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
13558             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13559
13560         PR rtl-optimization/68841
13561         * ifcvt.c (struct noce_if_info): Add orig_x field.
13562         (bbs_ok_for_cmove_arith): Add to_rename parameter.
13563         Don't record conflicts on to_rename if it's present.
13564         Allow memory destinations in sets.
13565         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
13566         blocks, passing orig_x to the checks.
13567         (noce_process_if_block): Set if_info->orig_x appropriately.
13568
13569 2016-01-11  Tom de Vries  <tom@codesourcery.com>
13570
13571         PR tree-optimization/69069
13572         * tree-parloops.c (create_parallel_loop): Add missing phi args.
13573
13574 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
13575
13576         PR rtl-optimization/68920
13577         * config/i386/i386.c (ix86_option_override_internal): Restrict number
13578         of conditional moves for  RTL if-conversion to 1 for
13579         TARGET_ONE_IF_CONV_INSN.
13580         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
13581         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
13582         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
13583         parameter to restirct number of conditional moves for
13584         RTL if-conversion.
13585         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
13586         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
13587         conditionl moves.
13588
13589 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
13590
13591         PR bootstrap/69123
13592         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
13593         onepart vars.  Fix typo in comment.  Fix reversed condition in
13594         unshare test.
13595         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
13596
13597         PR bootstrap/69123
13598         * var-tracking.c (dump_onepart_variable_differences): New.
13599         (dataflow_set_different): If a detailed dump is requested,
13600         delay early returns and dump differences between onepart
13601         variables present before and after, and added variables.
13602
13603 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
13604
13605         PR target/69010
13606         * expr.c (expand_expr_real_1): For boolean vector constants
13607         with a scalar mode use const_scalar_mask_from_tree.
13608         (const_scalar_mask_from_tree): New.
13609         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
13610         assigned to a mask type to handle constants.
13611
13612 2016-01-11  Martin Jambor  <mjambor@suse.cz>
13613
13614         PR ipa/69044
13615         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
13616         useless parameters if we cannot change function signature.
13617
13618 2016-01-11  Martin Jambor  <mjambor@suse.cz>
13619
13620         PR ipa/66616
13621         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
13622         flag.
13623
13624 2016-01-11  Tom de Vries  <tom@codesourcery.com>
13625
13626         PR tree-optimization/69109
13627         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
13628         latch with phi.
13629
13630 2016-01-11  Tom de Vries  <tom@codesourcery.com>
13631
13632         PR tree-optimization/69108
13633         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
13634         res is not used in a phi.
13635
13636 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
13637
13638         PR 67425
13639         * common.opt (frandom-seed): Fix parameter name.
13640         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
13641
13642 2016-01-11  Tom de Vries  <tom@codesourcery.com>
13643
13644         PR tree-optimization/69058
13645         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
13646         not supported.
13647
13648 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
13649
13650         * config/arc/arc.opt (mdiv-rem): Add period to the end.
13651         (mcode-density): Likewise.
13652
13653 2016-01-10  Tom de Vries  <tom@codesourcery.com>
13654
13655         PR tree-optimization/69062
13656         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
13657         (parallelize_loops): Don't paralelize loop that has phi with address
13658         arg.
13659
13660 2016-01-10  Tom de Vries  <tom@codesourcery.com>
13661
13662         PR tree-optimization/69039
13663         * tree-parloops.c (try_create_reduction_list): Only allow single exit
13664         phi for reduction.
13665
13666 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
13667
13668         PR middle-end/68743
13669         * match.pd: Require target has function_c99_misc before doing
13670         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
13671
13672 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
13673
13674         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
13675         use GMPINC.
13676         * configure: Regenerate.
13677
13678 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
13679
13680         PR middle-end/50865
13681         PR tree-optimization/69097
13682         * fold-const.h (expr_not_equal_to): New prototype.
13683         * fold-const.c: Include stringpool.h and tree-ssanames.h.
13684         (expr_not_equal_to): New function.
13685         * match.pd (X % -Y is the same as X % Y): Don't optimize
13686         unless X is known not to be equal to minimum or Y is known
13687         not to be equal to -1.
13688         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
13689         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
13690         (simplify_stmt_using_ranges): Adjust caller.
13691         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
13692         substitute_and_fold.
13693
13694 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
13695
13696         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
13697         w/o DECL_NAME.
13698
13699 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
13700
13701         PR tree-optimization/69167
13702         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
13703         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
13704         ops[0] comparison.
13705         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
13706
13707 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
13708             Richard Biener  <rguenther@suse.de>
13709
13710         PR tree-optimization/68707
13711         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
13712         instances that can be handled via vect_load_lanes.
13713
13714 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
13715
13716         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
13717         if we can't determine address equivalence.
13718         * alias.c (compare_base_decl): Update for changed return value of
13719         symtab_node::equal_address_to.
13720
13721 2016-01-08  Jason Merrill  <jason@redhat.com>
13722
13723         PR c++/68983
13724         PR c++/67557
13725         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
13726         * expr.c (store_field): Not here.
13727         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
13728         call with TREE_ADDRESSABLE type.
13729         * tree-cfg.c (verify_gimple_call): Adjust.
13730
13731 2016-01-08  Olivier Hainque  <hainque@adacore.com>
13732
13733         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
13734         libc_internal.
13735
13736 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
13737
13738         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
13739         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
13740         (reduc_smin_v2sf): Rename to...
13741         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
13742         (reduc_splus_v2sf): Rename to...
13743         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
13744
13745 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
13746
13747         PR tree-optimization/69162
13748         * gimplify.c (gimplify_va_arg_expr): Encode original type of
13749         valist argument in another argument.
13750         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
13751         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
13752         to determine the va_list type, build a MEM_REF instead of
13753         build_fold_indirect_ref.
13754
13755         PR tree-optimization/69172
13756         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
13757         gimple_build.
13758
13759 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13760
13761         PR tree-optimization/67781
13762         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
13763         and cmpnop in two steps: first the ones not accessed in original
13764         gimple expression in a endian independent way and then the ones not
13765         accessed in the final result in an endian-specific way.
13766
13767 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
13768
13769         PR tree-optimization/69083
13770         * tree-vect-slp.c (vect_get_constant_vectors): For
13771         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
13772         element type.  If op is fold_convertible_p to vector_type's element
13773         type, use NOP_EXPR instead of VCE.
13774
13775 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
13776
13777         PR rtl-optimization/67778
13778         PR rtl-optimization/68634
13779         PR rtl-optimization/68909
13780         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
13781         block from the stack until done with it.  Remove a superfluous
13782         bitmap set.  Remove a superfluous bitmap test.
13783
13784 2016-01-07  Martin Sebor  <msebor@redhat.com>
13785
13786         PR c/68966
13787         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
13788         constraint on the type of arguments.
13789
13790 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
13791
13792         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
13793         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
13794         unaligned_access on the gcc_options set.
13795         * config/arm/arm.c (arm_option_override_internal): Use
13796         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
13797
13798 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
13799
13800         PR target/69140
13801         * config/i386/i386.c (ix86_frame_pointer_required): Enable
13802         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
13803
13804 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
13805
13806         Revert
13807         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
13808
13809         PR target/69140
13810         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
13811         depending on frame_pointer_needed before remaining integer and SSE
13812         registers are saved.
13813
13814 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
13815
13816         PR 1078
13817         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
13818
13819 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
13820
13821         PR target/69171
13822         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
13823         Use the "xBm" constraint.
13824         (float<sseintvecmodelower><mode>2<mask_name><round_name):
13825         Likewise.
13826         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
13827         (sse_cvtsi2ssq<round_name>): Likewise.
13828         (sse_cvtss2si<round_name>): Likewise.
13829         (sse_cvtss2siq<round_name>): Likewise.
13830         (sse2_cvtsi2sdq<round_name>): Likewise.
13831         (sse2_cvtsd2si<round_name>): Likewise.
13832         (sse2_cvtsd2siq<round_name>): Likewise.
13833         * config/i386/subst.md (round_nimm_scalar_predicate): New
13834         predicate.
13835
13836 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
13837
13838         PR middle-end/67639
13839         * varasm.c (make_decl_rtl): Mark invalid register vars as
13840         DECL_EXTERNAL.
13841
13842         PR rtl-optimization/66206
13843         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
13844         All callers changed.
13845
13846 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
13847
13848         PR tree-optimization/69141
13849         * tree-ssa-pre.c: Include langhooks.h.
13850         (eliminate_dom_walker::before_dom_children): Use
13851         lang_hooks.decl_printable_name instead of
13852         cgraph_node::get ()->name ().
13853
13854         PR middle-end/68960
13855         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
13856         it and DECL_ALIGN too.
13857
13858 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
13859
13860         * config/mips/mips-ftypes.def: Sort to lexicographical order.
13861
13862 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
13863
13864         PR target/69140
13865         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
13866         depending on frame_pointer_needed before remaining integer and SSE
13867         registers are saved.
13868
13869 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13870
13871         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
13872         mode iterator with VSX_M2.
13873         (*p9_vecstore_<mode>): Likewise.
13874         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
13875         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
13876         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
13877         (define_split for VSX_LE128 stores): Likewise.
13878         (define_peephole2 for TImode LE swaps): Likewise.
13879         (define_split for VSX_LE128 post-reload stores): Likewise.
13880
13881 2016-01-06  Marek Polacek  <polacek@redhat.com>
13882
13883         PR sanitizer/69099
13884         * convert.c (convert_to_integer_1): Adjust call to
13885         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
13886         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
13887         EXPR instead of ARG.
13888         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
13889
13890 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
13891
13892         PR 1078
13893         * doc/extend.texi (RL78 Variable Attributes): New section.
13894
13895 2016-01-05  Marek Polacek  <polacek@redhat.com>
13896
13897         PR c/69104
13898         * builtins.c (get_memmodel): Use expansion point location rather than
13899         the input location.  Call warning_at rather than warning.
13900         (expand_builtin_atomic_compare_exchange): Likewise.
13901         (expand_builtin_atomic_load): Likewise.
13902         (expand_builtin_atomic_store): Likewise.
13903         (expand_builtin_atomic_clear): Likewise.
13904
13905 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
13906
13907         PR target/68991
13908         * config/i386/i386.c (ix86_expand_vector_logical_operator):
13909         Replace nonimmediate_operand with vector_operand.
13910         * config/i386/predicates.md (vector_operand): New predicate.
13911         (general_vector_operand): Replace nonimmediate_operand with
13912         vector_operand.
13913         * config/i386/sse.md: Replace nonimmediate_operand with
13914         vector_operand and m constraint with Bm constraint on SSE
13915         patterns with 16-byte memory operand.
13916         * config/i386/subst.md (round_nimm_predicate): Replace
13917         nonimmediate_operand with vector_operand.
13918         (round_saeonly_nimm_predicate): Likewise.
13919         (round_saeonly_nimm_scalar_predicate): New.
13920
13921 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
13922
13923         PR target/68991
13924         * config/i386/constraints.md (Bm): New constraint.
13925         * config/i386/predicates.md (vector_memory_operand): New
13926         predicate.
13927         * config/i386/sse.md: Replace xm with xBm in plusminus and
13928         any_logic patterns.
13929
13930 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
13931
13932         PR 1078
13933         * doc/extend.texi (V850 Function Attributes): New section.
13934         (V850 Variable Attributes): New section.
13935
13936 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
13937
13938         PR 1078
13939         * doc/extend.texi (MicroBlaze Function Attributes): Document
13940         interrupt_handler and fast_interrupt attributes.
13941
13942 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
13943
13944         PR other/60465
13945         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
13946         for local symbolic operands.
13947         * config/ia64/predicates.md (local_symbolic_operand64): New
13948         predicate.
13949
13950 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13951
13952         PR rtl-optimization/68651
13953         * combine.c (combine_simplify_rtx): Canonicalize x + x into
13954         x << 1.
13955
13956 2016-01-05  Nathan Sidwell  <nathan@acm.org>
13957
13958         * alias.c (compare_base_decls): Use symtab_node::get.
13959
13960 2016-01-05  Nick Clifton  <nickc@redhat.com>
13961
13962         PR target/68770
13963         * ira-costs.c (copy_cost): Initialise the t_icode field of the
13964         secondary_reload_info structure.
13965
13966         PR target/66655
13967         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
13968         decls if weak support is available.
13969
13970 2016-01-04  Martin Sebor  <msebor@redhat.com>
13971
13972         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
13973
13974 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
13975
13976         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
13977         OPTION_MASK_P9_DFORM.
13978
13979         * config/rs6000/constraints.md (wo constraint): New constraint for
13980         ISA 3.0 (power9).
13981
13982         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
13983         for wo constraint.
13984         (rs6000_init_hard_regno_mode_ok): Likewise.
13985
13986         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
13987         wo constraint.
13988
13989         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
13990         expanders not to have constraints.  Add support for ISA 3.0 xxperm
13991         instruction.  Add support for fusing xxlor with xxperm.
13992         (altivec_vperm_<mode>_internal): Likewise.
13993         (altivec_vperm_v8hiv16qi): Likewise.
13994         (altivec_vperm_<mode>v16q): Likewise.
13995         (altivec_vperm_<mode>_uns): Likewise.
13996         (vperm_v8hiv4si): Likewise.
13997         (vperm_v16qiv8hi): Likewise.
13998
13999         * doc/md.texi (RS/6000 constraints): Document wo constraint.
14000
14001 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
14002
14003         Update copyright years.
14004
14005         * gcc.c (process_command): Update copyright notice dates.
14006         * gcov-dump.c (print_version): Ditto.
14007         * gcov.c (print_version): Ditto.
14008         * gcov-tool.c (print_version): Ditto.
14009         * gengtype.c (create_file): Ditto.
14010         * doc/cpp.texi: Bump @copying's copyright year.
14011         * doc/cppinternals.texi: Ditto.
14012         * doc/gcc.texi: Ditto.
14013         * doc/gccint.texi: Ditto.
14014         * doc/gcov.texi: Ditto.
14015         * doc/install.texi: Ditto.
14016         * doc/invoke.texi: Ditto.
14017
14018 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14019
14020         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
14021         modes larger than TImode as TImode if NEON is not enabled.
14022
14023 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14024
14025         PR target/69100
14026         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
14027         mode for %f0-%f31 only if TARGET_FPU.
14028
14029 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
14030
14031         PR target/69072
14032         * config/sparc/sparc.c (scan_record_type): Take into account subfields
14033         to compute the PACKED_P predicate.
14034         (function_arg_record_value): Minor tweaks.
14035
14036 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14037
14038         * doc/install.texi (--with-multilib-list): Describe the meaning of the
14039         option for arm*-*-* targets.
14040
14041 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
14042
14043         * doc/extend.texi (Common Function Attributes): Move docs for
14044         MSP430-specific attributes to....
14045         (MSP430 Function Attributes): ...here.  Delete the redundant
14046         entries and copy-edit the remaining text.
14047         (MSP430 Variable Attributes): Use uniform format for index
14048         entries and add a cross-reference to the corresponding function
14049         attribute docs.
14050
14051 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
14052
14053         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
14054         -finite-math typo.
14055         (x86 Options): Likewise.
14056
14057 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
14058
14059         PR 1078
14060
14061         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
14062         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
14063         to corresponding attribute.
14064
14065 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
14066
14067         * doc/extend.texi (Common Function Attributes) <noplt>: Move
14068         to correct alphabetization of table.  Copy-edit and correct
14069         markup.
14070         <stack_protect>: Likewise.
14071         <target_clones>: Likewise.
14072         <simd>: Likewise.
14073         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
14074         Correct punctuation.
14075         (Code Gen Options) <-fno-plt>: Copy-edit.
14076
14077 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14078
14079         PR target/68917
14080         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
14081         SI values.  Explicitly convert SI to DI and vice-versa.
14082
14083 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
14084
14085         PR tree-optimization/69070
14086         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
14087         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
14088
14089         PR sanitizer/69055
14090         * ubsan.c (ubsan_instrument_float_cast): Call
14091         initialize_sanitizer_builtins.
14092
14093         PR target/69015
14094         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
14095 \f
14096 Copyright (C) 2016 Free Software Foundation, Inc.
14097
14098 Copying and distribution of this file, with or without modification,
14099 are permitted in any medium without royalty provided the copyright
14100 notice and this notice are preserved.