cfg.c (check_bb_profile): Do not report mismatched profiles when only edges out of...
[gcc.git] / gcc / ChangeLog
1 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
2
3 * cfg.c (check_bb_profile): Do not report mismatched profiles when
4 only edges out of BB are EH edges.
5
6 2016-06-04 Martin Sebor <msebor@redhat.com>
7 Marcin Baczyński <marbacz@gmail.com>
8
9 PR c/48116
10 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
11 a void expression in a void function.
12
13 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
14
15 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
16 aux; dump reasons of decisions.
17 (should_duplicate_loop_header_p): Likewise.
18 (do_while_loop_p): Likewise.
19 (ch_base::copy_headers): Dump asi num insns duplicated.
20
21 2016-06-04 Jakub Jelinek <jakub@redhat.com>
22
23 PR tree-optimization/71405
24 * tree-ssa.c (execute_update_addresses_taken): For clobber with
25 incompatible type, build a new clobber with the right type instead
26 of building a VIEW_CONVERT_EXPR around it.
27
28 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
29
30 PR tree-optimization/52171
31 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
32 by_pieces_ninsns instead of move_by_pieces_ninsns.
33
34 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
35
36 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
37 for reg+reg addressing mode.
38
39 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
40
41 * rs6000-c.c (c/c-tree.h): Add #include.
42 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
43 in C++ when found in the base position of vec_ld or vec_st.
44
45 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
46
47 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
48 use of profile unless profile status is PROFILE_READ.
49 * profile.c (compute_branch_probabilities): Set profile status
50 only after reporting predictor hitrates.
51
52 2016-06-03 Joseph Myers <joseph@codesourcery.com>
53
54 PR target/71276
55 PR target/71277
56 * common.opt (ffp-int-builtin-inexact): New option.
57 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
58 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
59 (ceil@var{m}2): Document dependence on this option.
60 * ipa-inline-transform.c (inline_call): Handle
61 flag_fp_int_builtin_inexact.
62 * ipa-inline.c (can_inline_edge_p): Likewise.
63 * config/i386/i386.md (rintxf2): Do not test
64 flag_unsafe_math_optimizations.
65 (rint<mode>2_frndint): New define_insn.
66 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
67 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
68 for 387 instead of extending and truncating.
69 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
70 !flag_trapping_math instead of flag_unsafe_math_optimizations.
71 Change to frndint<mode>2_<rounding>.
72 (frndintxf2_<rounding>_i387): Likewise. Change to
73 frndint<mode>2_<rounding>_i387.
74 (<rounding_insn>xf2): Likewise.
75 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
76 !flag_trapping_math instead of flag_unsafe_math_optimizations for
77 x87. Test TARGET_ROUND || !flag_trapping_math ||
78 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
79 SSE. Use ROUND_NO_EXC in constant operand of
80 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
81 for 387 instead of extending and truncating.
82
83 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
84 Julia Koval <julia.koval@intel.com>
85
86 PR target/66960
87 PR target/67630
88 PR target/67634
89 PR target/67841
90 PR target/68037
91 PR target/68618
92 PR target/68661
93 PR target/69575
94 PR target/69596
95 PR target/69734
96 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
97 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
98 all registers, except for function return registers if there are
99 no caller-saved registers.
100 (ix86_set_func_type): New function.
101 (ix86_set_current_function): Call ix86_set_func_type to set
102 no_caller_saved_registers and func_type. Call reinit_regs if
103 caller-saved registers are changed. Don't allow MPX, SSE, MMX
104 nor x87 instructions in interrupt handler nor function with
105 no_caller_saved_registers attribute.
106 (ix86_function_ok_for_sibcall): Return false if there are no
107 caller-saved registers.
108 (type_natural_mode): Don't warn ABI change for MMX in interrupt
109 handler.
110 (ix86_function_arg_advance): Skip for callee in interrupt
111 handler.
112 (ix86_function_arg): Return special arguments in interrupt
113 handler.
114 (ix86_promote_function_mode): Promote pointer to word_mode only
115 for normal functions.
116 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
117 interrupt handler.
118 (ix86_epilogue_uses): New function.
119 (ix86_hard_regno_scratch_ok): Likewise.
120 (ix86_save_reg): Preserve all registers in interrupt handler
121 after reload. Preserve all registers, except for function
122 return registers, if there are no caller-saved registers after
123 reload.
124 (find_drap_reg): Always use callee-saved register if there are
125 no caller-saved registers.
126 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
127 for interrupt handler.
128 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
129 Emit cld instruction if stringops are used in interrupt handler
130 or interrupt handler isn't a leaf function.
131 (ix86_expand_epilogue): Generate interrupt return for interrupt
132 handler and pop the 'ERROR_CODE' off the stack before interrupt
133 return in exception handler.
134 (ix86_expand_call): Disallow calling interrupt handler directly.
135 If there are no caller-saved registers, mark all registers that
136 are clobbered by the call which returns as clobbered.
137 (ix86_handle_no_caller_saved_registers_attribute): New function.
138 (ix86_handle_interrupt_attribute): Likewise.
139 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
140 attributes.
141 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
142 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
143 accumulation in interrupt function if stack may be realigned to
144 avoid DRAP.
145 (EPILOGUE_USES): New.
146 (function_type): New enum.
147 (machine_function): Add func_type and no_caller_saved_registers.
148 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
149 (interrupt_return): New pattern.
150 * doc/extend.texi: Document x86 interrupt and
151 no_caller_saved_registers attributes.
152
153 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
154
155 PR tree-optimization/52171
156 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
157 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
158 Look for constant strings. Move some code to emit_block_cmp_hints
159 and use it.
160 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
161 * defaults.h (COMPARE_MAX_PIECES): New macro.
162 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
163 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
164 (clear_by_pieces_1): Don't declare. Move definition before use.
165 (can_do_by_pieces): New static function.
166 (can_move_by_pieces): Use it. Return bool.
167 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
168 OP. All callers changed. Handle COMPARE_BY_PIECES.
169 (class pieces_addr); New.
170 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
171 pieces_addr::adjust, pieces_addr::increment_address,
172 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
173 functions for it.
174 (class op_by_pieces_d): New.
175 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
176 functions for it.
177 (class move_by_pieces_d, class compare_by_pieces_d,
178 class store_by_pieces_d): New subclasses of op_by_pieces_d.
179 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
180 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
181 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
182 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
183 compare_by_pieces_d::finish_mode): New member functions.
184 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
185 functions.
186 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
187 (emit_block_cmp_hints): New function.
188 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
189 use the newly defined classes.
190 * expr.h (by_pieces_constfn): New typedef.
191 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
192 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
193 (move_by_pieces_ninsns): Don't declare.
194 (can_move_by_pieces): Change return value to bool.
195 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
196 (compare_by_pieces_branch_ratio): New hook.
197 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
198 (by_pieces_ninsns): Declare.
199 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
200 COMPARE_BY_PIECES.
201 (default_compare_by_pieces_branch_ratio): New function.
202 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
203 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
204 * doc/tm.texi: Regenerate.
205 * tree-ssa-strlen.c: Include "builtins.h".
206 (handle_builtin_memcmp): New static function.
207 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
208 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
209
210 2016-06-03 Alan Hayward <alan.hayward@arm.com>
211
212 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
213 relevant stmts which are simple and invariant.
214 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
215 instead of simple and invariant
216
217 2016-06-03 Alan Hayward <alan.hayward@arm.com>
218
219 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
220 (vectorizable_reduction): Check for new relevant state.
221 (vectorizable_live_operation): vectorize live stmts using
222 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
223 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
224 (vect_stmt_relevant_p): Check for stmts which are only used live.
225 (process_use): Use of a stmt does not inherit it's live value.
226 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
227 (vect_analyze_stmt): Check for new relevant state.
228 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
229 outside the loop, but not inside it.
230
231 2016-06-03 Alan Hayward <alan.hayward@arm.com>
232
233 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New
234 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New
235 (vect_get_vec_def_for_operand): Split out code.
236
237 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
238
239 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
240
241 2016-06-03 Alan Hayward <alan.hayward@arm.com>
242
243 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
244
245 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
246
247 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
248
249 2016-06-03 Jakub Jelinek <jakub@redhat.com>
250
251 PR middle-end/71387
252 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
253 to noreturn e->callee->decl that has void return type and void
254 arguments, adjust gimple_call_fntype and remove lhs even if it had
255 previously addressable type.
256
257 2016-06-02 Jeff Law <law@redhat.com>
258
259 PR tree-optimization/71328
260 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
261 error when checking for a jump back onto the copied path.
262
263 2016-06-02 David Malcolm <dmalcolm@redhat.com>
264
265 * config/microblaze/microblaze.c (get_branch_target): Add return
266 NULL_RTX for the non-CALL_P case.
267 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
268 (insert_wic): Remove unused local "j".
269
270 2016-06-02 Martin Liska <mliska@suse.cz>
271
272 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
273
274 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
275 Julia Koval <julia.koval@intel.com>
276
277 * function.c (assign_parm_setup_stack): Force source into a
278 register if needed.
279 * target.def (function_incoming_arg): Update documentation to
280 allow arbitrary address computation based on hard register.
281 * doc/tm.texi: Regenerated.
282
283 2016-06-02 Martin Liska <mliska@suse.cz>
284
285 * predict.c (combine_predictions_for_bb): Fix first match in
286 cases where a first predictor contains more than one occurence
287 in list of predictors. Take the best value in such case.
288
289 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
290
291 PR rtl-optimization/71295
292 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
293 offset would go over the size of the inner mode reject it.
294
295 2016-06-02 Jakub Jelinek <jakub@redhat.com>
296
297 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
298 x=x,x and v=v,m instead of x=x,m.
299
300 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
301 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
302 alternative to v=rm,C.
303
304 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
305 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
306 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
307 instead of vex for the last two above mentioned alternatives.
308
309 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
310
311 PR target/70830
312 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
313
314 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
315
316 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
317
318 2016-06-01 David Malcolm <dmalcolm@redhat.com>
319
320 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
321 from int to unsigned.
322
323 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
324
325 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
326 alternatives, eliminating preferred register class. Add support
327 for the MTVSRDD instruction in ISA 3.0.
328 (vsx_splat_v4si_internal): Use splat_input_operand instead of
329 reg_or_indexed_operand.
330 (vsx_splat_v4sf_internal): Likewise.
331
332 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
333
334 PR target/71186
335 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
336 for loading up all 0's or all 1's.
337
338 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
339
340 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
341
342 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
343
344 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
345 extension.
346 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
347 * gcc.c (set_source_date_epoch_envvar): New function, sets
348 the SOURCE_DATE_EPOCH environment variable to the current time.
349
350 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
351
352 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
353 the factor for live Phi nodes.
354
355 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
356
357 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
358 * tree-parloops.c (parallelize_loops): likewise.
359 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
360 tree_unswitch_outer_loop): likewise.
361
362 2016-06-01 Jakub Jelinek <jakub@redhat.com>
363
364 PR middle-end/71371
365 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
366 around creation of the temporary.
367
368 2016-06-01 Richard Biener <rguenther@suse.de>
369
370 PR tree-optimization/71366
371 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
372 (unloop_loops): Move removing edges here ...
373 (try_unroll_loop_completely): ... from here.
374 (try_peel_loop): ... and here.
375 (tree_unroll_loops_completely_1): Track parent loops via
376 bitmap of header BBs.
377 (tree_unroll_loops_completely): Adjust for that.
378
379 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
380
381 * config/rs6000/altivec.h (vec_slv): New macro.
382 (vec_srv): New macro.
383 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
384 (UNSPEC_VSRV): New value.
385 (vslv): New insn.
386 (vsrv): New insn.
387 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
388 (vsrv): New builtin definition.
389 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
390 define argument types for new builtin.
391 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
392 new builtin.
393 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
394 functions.
395
396 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
397 Jocelyn Mayer <l_indien@magic.fr>
398
399 PR target/67310
400 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
401 detect processor family for signature_CENTAUR_ebx.
402 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
403 signature_CENTAUR_ebx.
404 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
405 <default>: Pass x86-64 for has_longmode.
406
407 2016-06-01 Nathan Sidwell <nathan@acm.org>
408
409 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
410 undefined weak.
411
412 2016-06-01 Richard Biener <rguenther@suse.de>
413
414 PR tree-optimization/71261
415 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
416 of stmts successfully put in the bool pattern. Remove
417 single-use restriction.
418 (adjust_bool_pattern_cast): Add cast at the use site via the
419 pattern def sequence.
420 (adjust_bool_pattern): Remove recursion, maintain a hash-map
421 of patterned defs. Use the pattern def seqence instead of
422 multiple independent patterns.
423 (sort_after_uid): New qsort compare function.
424 (adjust_bool_stmts): New function to process stmts in the bool
425 pattern in IL order.
426 (vect_recog_bool_pattern): Adjust.
427 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
428 (ifcvt_walk_pattern_tree): Likewise.
429 (stmt_is_root_of_bool_pattern): Likewise.
430 (ifcvt_repair_bool_pattern): Likewise.
431 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
432
433 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
434
435 * loop-unroll.c (decide_unroll_constant_iterations,
436 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
437 likely upper bounds.
438 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
439
440 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
441
442 * tree-core.h (enum omp_clause_code): Remove
443 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
444
445 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
446
447 * config/arm/sync.md (arm_store_exclusive<mode>):
448 Use 'H' output modifier on operands[2] rather than creating a new
449 entry in out-of-bounds memory of the operands array.
450 (arm_store_release_exclusivedi): Likewise.
451
452 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
453
454 * config/arm/arm.c (arm_fusion_enabled_p): New function.
455 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
456 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
457 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
458
459 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
460
461 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
462 into account live statements for mask producers.
463
464 2016-06-01 Richard Biener <rguenther@suse.de>
465
466 PR tree-optimization/71311
467 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
468 restrict to non-INTEGER_CST @0.
469
470 2016-06-01 Richard Biener <rguenther@suse.de>
471
472 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
473 (relational patterns): Use :c to avoid pattern duplications.
474
475 2016-06-01 Richard Biener <rguenther@suse.de>
476
477 * genmatch.c (comparison_code_p): New predicate.
478 (swap_tree_comparison): New function.
479 (commutate): Add for_vec parameter to append new for entries.
480 Support commutating relational operators by swapping it alongside
481 operands.
482 (lower_commutative): Adjust.
483 (dt_simplify::gen): Do not pass artificial operators to gen
484 functions.
485 (decision_tree::gen): Do not add artificial operators as parameters.
486 (parser::parse_expr): Verify operator commutativity when :c is
487 applied. Allow :C to override this.
488 * match.pd: Adjust patterns to use :C instead of :c where required.
489
490 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
491
492 PR tree-optimization/71077
493 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
494 the combining step, use boolean_false_node and boolean_true_node
495 as the designated false/true return values.
496
497 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
498
499 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
500 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
501 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
502 PRED_LOOP_EXIT.
503
504 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
505
506 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
507 of flags impliying the register renaming.
508 * toplev.c (process_options): Do not imply flag_rename_registers with
509 loop peeling.
510
511 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
512
513 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
514 default implementation.
515
516 2016-05-31 Nathan Sidwell <nathan@acm.org>
517
518 * dwarf2out.c (cur_line_info_table): Add GTY marker.
519
520 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
521
522 * config/sh/constraints.md (b): Remove constraint.
523 * config/sh/predicates.md (arith_reg_operand): Remove
524 TARGET_REGISTER_P.
525 * config/sh/sh-modes.def (PDI): Remove.
526 * config/sh/sh.c (sh_target_reg_class,
527 sh_optimize_target_register_callee_saved): Remove functions.
528 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
529 (sh_expand_epilogue): Update comment.
530 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
531 sh_secondary_reload): Remove TARGET_REGS related code.
532 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
533 TARGET_REGISTER_P): Remove macros.
534 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
535 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
536 TR1_REG, TR2_REG): Remove constants.
537 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
538
539 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
540
541 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
542 define_expand patterns.
543 (adddi3_compact): Rename to adddi3.
544 (subdi3_compact): Rename to subdi3.
545 (*negdi2): Rename to negdi2.
546 (*abs<mode>2): Rename to abs<mode>2.
547
548 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
549
550 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
551 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
552 (atomic_sub_fetchsi): ... this new pattern.
553 (mvtc): Add CC_REG clobber.
554
555 2016-05-31 Marek Polacek <polacek@redhat.com>
556
557 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
558
559 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
560
561 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
562 aarch64_fusion_enabled_p to check for fusion capabilities.
563
564 2016-05-31 Richard Biener <rguenther@suse.de>
565
566 PR tree-optimization/71352
567 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
568 minus one and a negate.
569
570 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
571
572 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
573 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
574 Delete prototype.
575 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
576 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
577 Remove use of aarch64_simd_attr_length_move, set length attribute
578 directly.
579 (*aarch64_be_movoi): Likewise.
580 (*aarch64_be_movci): Likewise.
581 (*aarch64_be_movxi): Likewise.
582
583 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
584
585 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
586 It no longer does that.
587 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
588
589 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
590
591 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
592 attribute __unused__.
593
594 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
595
596 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
597 * config/arm/arm.c (arm_arch_thumb1): Define.
598 (arm_option_override): Initialize arm_arch_thumb1.
599 * config/arm/arm.h (arm_arch_thumb1): Declare.
600 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
601 support Thumb-1 ISA.
602
603 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
604
605 PR target/71346
606 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
607 `Yv' for scalar operand.
608
609 2016-05-31 Tom de Vries <tom@codesourcery.com>
610
611 PR tree-optimization/69068
612 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
613 phis with more than two args.
614
615 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
616
617 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
618 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
619 target.
620
621 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
622
623 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
624 tune_64.
625 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
626 support on SPARC.
627 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
628 cpu_32, cpu_64, tune_32 and tune_64.
629 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
630
631 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
632
633 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
634
635 2016-05-30 Andi Kleen <ak@linux.intel.com>
636
637 * auto-profile.c (read_profile): Replace asserts with errors
638 when file does not exist.
639 * gcov-io.c (gcov_read_words): Dito.
640
641 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
642
643 * tree-cfg.c (print_loop): Print likely upper bounds.
644
645 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
646
647 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
648 * opts.c (default_options): Enable peel loops at -O3.
649 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
650 (try_peel_loop): Do not re-peel already peeled loops;
651 use likely upper bounds; fix profile updating.
652 (pass_complete_unroll::execute): Initialize peeled_loops.
653
654 2016-05-30 Martin Liska <mliska@suse.cz>
655
656 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
657 computed costs by frequency of BB they belong to.
658 (get_scaled_computation_cost_at): New function.
659
660 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
661 Marc Glisse <marc.glisse@inria.fr>
662
663 PR tree-optimization/71289
664 * match.pd (-1 / B < A, A > -1 / B): New transformations.
665
666 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
667
668 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
669
670 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
671
672 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
673 for peeled copies; avoid underflow when updating estimates; correctly
674 scale loop profile.
675
676 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
677
678 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
679 r236875. Corrected oe3 to oe2 as obvious.
680
681 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
682
683 PR middle-end/71269
684 PR middle-end/71252
685 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
686 that inserted stmt will not dominate stmts that defines its operand.
687 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
688 (rewrite_expr_tree_parallel): Likewise.
689
690 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
691
692 PR middle-end/71252
693 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
694 all fields including stmt_to_insert are swapped.
695
696 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
697
698 * predict.h (force_edge_cold): Declare.
699 * predict.c (force_edge_cold): New function.
700 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
701 updating.
702 (canonicalize_loop_induction_variables): Fix formating.
703
704 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
705
706 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
707 (visium_expand_copysign): Use gen_int_mode directly.
708 (visium_compute_frame_size): Minor tweaks.
709
710 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
711
712 * tree-vect-loop.c (vect_analyze_loop_2): Use
713 likely_max_stmt_executions_int.
714
715 2016-05-30 Tom de Vries <tom@codesourcery.com>
716
717 PR tree-optimization/69067
718 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
719
720 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
721
722 PR target/71245
723 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
724 New peepholes to remove unneeded fild/fistp pairs.
725 (define_peephole2 atomic_loaddi_fpu): Ditto.
726
727 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
728
729 * predict.c (maybe_hot_frequency_p): Avoid division.
730
731 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
732
733 * doc/install.texi: Use https for shop.fsf.org.
734
735 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
736
737 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
738 likely_max_stmt_executions_int.
739
740 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
741
742 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
743 likely_max_stmt_executions_int.
744
745 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
746
747 * profile.c (compute_branch_probabilities): Do not report hitrates
748 here.
749 (branch_prob): Report hitrates here.
750 * predict.c (gimple_predict_edge): Do not assert profile status;
751 fix formatting issues.
752
753 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
754
755 * predict.c (edge_predicted_by_p): New function.
756 (predict_paths_for_bb): Do not put multiple predictions of the same type
757 on one edge.
758
759 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
760
761 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
762 commit.
763
764 2016-05-28 Alan Modra <amodra@gmail.com>
765
766 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
767
768 2016-05-28 Alan Modra <amodra@gmail.com>
769
770 PR rtl-optimization/71275
771 * ira.c (ira): Free dominance info.
772
773 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
774
775 * doc/sourcebuild.texi: New address for upstream Go repository.
776
777 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
778
779 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
780 (TARGET_ARM_V7M): Likewise.
781
782 2016-05-26 Jeff Law <law@redhat.com>
783
784 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
785 (thread_across_edge): Remove calls to find_jump_threads_backwards.
786 * passes.def: Add jump threading passes before DOM/VRP.
787 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
788 argument to a basic block from an edge. Remove tests which are
789 handled elsewhere.
790 (pass_data_thread_jumps, class pass_thread_jumps): New.
791 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
792 (make_pass_thread_jumps): Likewise.
793 * tree-pass.h (make_pass_thread_jumps): Declare.
794
795 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
796
797 * config/visium/visium-protos.h (split_double_move): Rename into...
798 (visium_split_double_move): ...this.
799 (visium_split_double_add): Declare.
800 * config/visium/visium.c (split_double_move): Rename into...
801 (visium_split_double_move): ...this.
802 (visium_split_double_add): New function.
803 (visium_expand_copysign): Renumber operands for consistency.
804 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
805 (DFmode move splitter): Likewise.
806 (*addi3_insn): Split by means of visium_split_double_add.
807 (*adddi3_insn_flags): Delete.
808 (*plus_plus_sltu<subst_arith>): New insn.
809 (*subdi3_insn): Split by means of visium_split_double_add.
810 (subdi3_insn_flags): Delete.
811 (*minus_minus_sltu<subst_arith>): New insn.
812 (*negdi2_insn): Split by means of visium_split_double_add.
813 (*negdi2_insn_flags): Delete.
814
815 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
816
817 * configure.ac: Treat a --with-headers option without argument
818 the same as the default (i.e. consult sys-include directory).
819 * configure: Regenerate.
820
821 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
822
823 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
824 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
825 prototype.
826 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
827 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
828
829 2016-05-27 Jiong Wang <jiong.wang@arm.com>
830
831 PR target/63596
832 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
833 tree-stdarg analysis results.
834 (aarch64_setup_incoming_varargs): Likewise.
835
836 2016-05-27 Jiong Wang <jiong.wang@arm.com>
837
838 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
839 va_list_gpr_counter_field and va_list_fpr_counter_field.
840
841 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
842
843 PR67609
844 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
845 * config/aarch64/aarch64.c
846 (aarch64_cannot_change_mode_class): Remove function.
847 * config/aarch64/aarch64-protos.h
848 (aarch64_cannot_change_mode_class): Remove.
849
850 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
851
852 * cfgloop.c (record_niter_bound): Record likely upper bounds.
853 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
854 get_likely_max_loop_iterations_int): New.
855 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
856 any_likely_upper_bound.
857 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
858 Declare.
859 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
860 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
861 upper bound.
862 (unroll_loop_constant_iterations): Likewise.
863 (unroll_loop_runtime_iterations): Likewise.
864 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
865 * lto-streamer-out.c (output_cfg): Likewise.
866 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
867 bounds.
868 (canonicalize_loop_induction_variables): Dump likely upper bounds.
869 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
870 (likely_max_loop_iterations): New.
871 (likely_max_loop_iterations_int): New.
872 (likely_max_stmt_executions): New.
873 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
874 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
875 likely_max_stmt_executions): Declare.
876
877 2016-05-27 Marek Polacek <polacek@redhat.com>
878
879 PR middle-end/71308
880 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
881
882 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
883
884 * config/s390/s390.md (2x risbg splitters): Use
885 reg_overlap_mentioned_p instead of rtx_equal_p.
886
887 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
888
889 * combine.c (make_compound_operation): Take known zero bits into
890 account when checking for possible zero_extend.
891
892 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
893
894 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
895 Use const_int_operand for operand 2 predicate. Simplify expand code
896 as a result.
897
898 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
899
900 PR middle-end/71279
901 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
902 into comparison.
903
904 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
905
906 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
907 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
908 that returns CC_SESWPmode and CC_ZESWPmode.
909 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
910 and CC_SESWPmode.
911 (aarch64_rtx_costs): Likewise.
912
913 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
914
915 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
916 for ISA 3.0 min/max support.
917 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
918 conditional move support.
919 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
920 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
921 available.
922 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
923 conditional moves where the comparison type is different from move
924 type.
925 (fp_minmax): New code iterator for smin/smax.
926 (minmax): New code attributes for min/max.
927 (SMINMAX): Likewise.
928 (smax<mode>3): Combine min, max insns into one insn using the
929 fp_minmax code iterator. Add support for ISA 3.0 min/max
930 instructions that don't need -ffast-math.
931 (s<minmax><mode>3): Likewise.
932 (smax<mode>3_vsx): Likewise.
933 (smin<mode>3): Likewise.
934 (s<minmax><mode>3_vsx): Likewise.
935 (smin<mode>3_vsx): Likewise.
936 (pre-VSX min/max splitters): Likewise.
937 (s<minmax><mode>3_fpr): Likewise.
938 (movsfcc): Rewrite floating point conditional moves to combine
939 SFmode/DFmode into a single insn.
940 (mov<mode>cc): Likewise.
941 (movdfcc): Likewise.
942 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
943 SFDF2 iterators to handle all combinations.
944 (fseldfsf4): Likewise.
945 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
946 (fseldfdf4): Likewise.
947 (fselsfdf4): Likewise.
948 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
949 comparison instructions that set a 0/-1 mask, and use it for
950 floating point conditional move via XXSEL.
951 (fpmask<mode>): Likewise.
952 (xxsel<mode>): Likewise.
953 * config/rs6000/predicates.md (min_max_operator): Delete, no
954 longer used.
955 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
956 instructions that generate a 0/-1 mask for use with XXSEL.
957 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
958 say whether floating point min/max is available, either through
959 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
960 (TARGET_MINMAX_DF): Likewise.
961
962 2016-05-27 Alan Modra <amodra@gmail.com>
963
964 PR rtl-optimization/71275
965 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
966 for update_equiv_regs and combine_and_move_insns.
967
968 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
969
970 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
971 if_then_else or cond RTXes to calculate attribute value.
972 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
973 <attr "length_immediate>: Ditto.
974 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
975 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
976 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
977 <attr "type">: Ditto.
978 <attr "prefix_data16">: Ditto.
979 <attr "prefix_extra">: Ditto.
980 <attr "length_immediate">: Ditto.
981 <attr "prefix">: Ditto.
982 (vec_set<mode>_0) <attr "isa">: Ditto.
983 <attr "prefix_extra">: Ditto.
984 <attr "length_immediate">: Ditto.
985 <attr "prefix">: Ditto.
986 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
987 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
988 (sse2_storelpd) <attr "prefix_data16">: Ditto.
989 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
990 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
991 <attr "length_immediate">: Ditto.
992 <attr "prefix">: Ditto.
993 (sse2_movsd) <attr "length_immediate">: Ditto.
994 <attr "prefix">: Ditto.
995 (vec_concatv2df) <attr "isa">: Ditto.
996 <attr "prefix">: Ditto.
997 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
998 (*vec_extractv2di_1) <attr "isa">: Ditto.
999 <attr "type">: Ditto.
1000 <attr "length_immediate">: Ditto.
1001 <attr "prefix_rex">: Ditto.
1002 <attr "prefix_extra">: Ditto.
1003 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
1004 <attr "prefix_extra">: Ditto.
1005 <attr "length_immediate">: Ditto.
1006 (vec_concatv2di) <attr "isa">: Ditto.
1007 <attr "prefix_extra">: Ditto.
1008 <attr "length_immediate">: Ditto.
1009 <attr "prefix">: Ditto.
1010
1011 2016-05-26 Martin Liska <mliska@suse.cz>
1012
1013 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
1014 function.
1015 (operator+): Likewise.
1016 (operator-): Likewise.
1017 (comp_cost::operator+=): Likewise.
1018 (comp_cost::operator-=): Likewise.
1019 (comp_cost::operator/=): Likewise.
1020 (comp_cost::operator*=): Likewise.
1021 (operator<): Likewise.
1022 (operator==): Likewise.
1023 (operator<=): Likewise.
1024 (new_cost): Remove.
1025 (infinite_cost_p): Likewise.
1026 (add_costs): Likewise.
1027 (sub_costs): Likewise.
1028 (compare_costs): Likewise.
1029 (set_group_iv_cost): Use the newly introduced functions.
1030 (get_address_cost): Likewise.
1031 (get_shiftadd_cost): Likewise.
1032 (force_expr_to_var_cost): Likewise.
1033 (split_address_cost): Likewise.
1034 (ptr_difference_cost): Likewise.
1035 (difference_cost): Likewise.
1036 (get_computation_cost_at): Likewise.
1037 (determine_group_iv_cost_generic): Likewise.
1038 (determine_group_iv_cost_address): Likewise.
1039 (determine_group_iv_cost_cond): Likewise.
1040 (autoinc_possible_for_pair): Likewise.
1041 (determine_group_iv_costs): Likewise.
1042 (cheaper_cost_pair): Likewise.
1043 (iv_ca_recount_cost): Likewise.
1044 (iv_ca_set_no_cp): Likewise.
1045 (iv_ca_set_cp): Likewise.
1046 (iv_ca_cost): Likewise.
1047 (iv_ca_new): Likewise.
1048 (iv_ca_dump): Likewise.
1049 (iv_ca_narrow): Likewise.
1050 (iv_ca_prune): Likewise.
1051 (iv_ca_replace): Likewise.
1052 (try_add_cand_for): Likewise.
1053 (try_improve_iv_set): Likewise.
1054 (find_optimal_iv_set): Likewise.
1055
1056 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
1057
1058 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
1059 that internal functions will clobber all caller-saved registers.
1060
1061 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
1062
1063 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
1064 Return a better case_values_threshold when optimizing.
1065
1066 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
1067
1068 * config/aarch64/aarch64-simd.md (aarch64_combinez):
1069 Add ? to integer variant.
1070 (aarch64_combinez_be): Likewise.
1071
1072 2016-05-26 Jakub Jelinek <jakub@redhat.com>
1073
1074 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
1075 instead of x constraint.
1076 (vcvtps2ph256<mask_name>): Likewise.
1077
1078 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
1079 alternative. Formatting fix.
1080
1081 * config/i386/sse.md
1082 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
1083 to ...
1084 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
1085 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
1086 maybe_evex prefix instead of vex.
1087 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
1088 EXT_REX_SSE_REG_P (op0) case in the splitter.
1089
1090 2016-05-25 Jeff Law <law@redhat.com>
1091
1092 PR tree-optimization/71272
1093 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
1094 Update comments. Add test for empty path.
1095
1096 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
1097
1098 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
1099 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
1100 special case builtin.
1101 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
1102 code for ALTIVEC_BUILTIN_VEC_CMPNE.
1103 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
1104 for __builtin_vec_cmpne.
1105
1106 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
1107
1108 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
1109 redundant test and bail out if the type of the new operand is not
1110 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
1111
1112 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
1113
1114 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
1115 (x_ix86_target_flags_explicit): Remove.
1116 * config/i386/i386.c (ix86_function_specific_save): Do not copy
1117 x_ix86_target_flags_explicit.
1118 (ix86_function_specific_restore): Ditto.
1119
1120 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
1121 H.J. Lu <hongjiu.lu@intel.com>
1122
1123 PR target/70738
1124 * common/config/i386/i386-common.c
1125 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
1126 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
1127 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
1128 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
1129 (-mgeneral-regs-only): Add new option.
1130 * config/i386/i386.c (ix86_option_override_internal): Don't enable
1131 x87 instructions if only general registers are allowed.
1132 (ix86_target_string): Add ix86_flags argument. Handle additional
1133 flags options through ix86_flags argument. Update all callers.
1134 * doc/invoke.texi: Document -mgeneral-regs-only.
1135
1136 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1137
1138 PR rtl-optimization/66940
1139 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
1140 decrementing desired_val will not overflow before performing these
1141 operations.
1142
1143 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
1144
1145 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
1146 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
1147 * config/i386/i386.c (enum ix86_builtins): Add
1148 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
1149 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
1150 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
1151 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
1152 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
1153 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
1154 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
1155 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
1156 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
1157 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
1158 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
1159 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
1160 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
1161 __builtin_ia32_cvtps2dq512_mask.
1162 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
1163 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
1164 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
1165 * config/i386/sse.md
1166 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
1167 Rename to ...
1168 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
1169 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
1170 to ...
1171 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
1172 (avx512f_vec_pack_sfix_v8df): New define_expand.
1173 (avx512f_roundpd512): Rename to ...
1174 (avx512f_round<castmode>512): ... this. Change iterator.
1175 (avx512f_roundps512_sfix): New define_expand.
1176 (round<mode>2_sfix): Change iterator.
1177
1178 2016-05-25 Nick Clifton <nickc@redhat.com>
1179
1180 * config/msp430/msp430.c (msp430_attr): Produce an error if a
1181 static interrupt handler is detected.
1182 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
1183 default linker script.
1184 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
1185 the low part of a symbolic pointer.
1186
1187 2016-05-25 Richard Biener <rguenther@suse.de>
1188
1189 PR tree-optimization/71261
1190 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
1191 interesting stmt instead of immediate uses when looking
1192 for the use operand to replace.
1193
1194 2016-05-25 Martin Liska <mliska@suse.cz>
1195
1196 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
1197
1198 2016-05-25 Richard Biener <rguenther@suse.de>
1199
1200 PR tree-optimization/71264
1201 * tree-vect-stmts.c (vect_init_vector): Properly deal with
1202 vector type val.
1203
1204 2016-05-25 Martin Liska <mliska@suse.cz>
1205
1206 PR tree-optimization/71239
1207 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
1208 if DECL_SIZE is NULL.
1209
1210 2016-05-25 Richard Biener <rguenther@suse.de>
1211
1212 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
1213 * tree-if-conv.c (pass_data_if_conversion): Use it.
1214
1215 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
1216
1217 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
1218 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
1219 * varpool.c (varpool_node::get_availability): Likewise.
1220
1221 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
1222
1223 * config/rs6000/altivec.md (VNEG iterator): New iterator for
1224 VNEGW/VNEGD instructions.
1225 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
1226 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
1227 support for ISA 3.0 VNEGW/VNEGD instructions.
1228
1229 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
1230
1231 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
1232 pointers inside OACC_DATA regions.
1233 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
1234 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
1235 (gimplify_adjust_omp_clauses): Fix typo in comment.
1236
1237 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
1238
1239 * config/rs6000/altivec.md (VParity): New mode iterator for vector
1240 parity built-in functions.
1241 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
1242 zeros.
1243 (p9v_parity<mode>2): Likewise.
1244 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
1245 parity.
1246 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
1247 (parity<mode>2): ISA 3.0 expander for vector parity.
1248 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
1249 power9 built-ins.
1250 (BU_P9_64BIT_MISC_0): Likewise.
1251 (BU_P9_MISC_0): Likewise.
1252 (BU_P9V_AV_1): Likewise.
1253 (BU_P9V_AV_2): Likewise.
1254 (BU_P9V_AV_3): Likewise.
1255 (BU_P9V_AV_P): Likewise.
1256 (BU_P9V_VSX_1): Likewise.
1257 (BU_P9V_OVERLOAD_1): Likewise.
1258 (BU_P9V_OVERLOAD_2): Likewise.
1259 (BU_P9V_OVERLOAD_3): Likewise.
1260 (VCTZB): Add vector count trailing zeros support.
1261 (VCTZH): Likewise.
1262 (VCTZW): Likewise.
1263 (VCTZD): Likewise.
1264 (VPRTYBD): Add vector parity support.
1265 (VPRTYBQ): Likewise.
1266 (VPRTYBW): Likewise.
1267 (VCTZ): Add overloaded vector count trailing zeros support.
1268 (VPRTYB): Add overloaded vector parity support.
1269 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1270 overloaded vector count trailing zeros and parity instructions.
1271 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
1272 vector parity support.
1273 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
1274 trailing zeros support.
1275 (vec_cntlz): Likewise.
1276 (vec_vctzb): Likewise.
1277 (vec_vctzd): Likewise.
1278 (vec_vctzh): Likewise.
1279 (vec_vctzw): Likewise.
1280 (vec_vprtyb): Add ISA 3.0 vector parity support.
1281 (vec_vprtybd): Likewise.
1282 (vec_vprtybw): Likewise.
1283 (vec_vprtybq): Likewise.
1284 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1285 the ISA 3.0 vector count trailing zeros and vector parity built-in
1286 functions.
1287
1288 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
1289
1290 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
1291 when there is stmt_to_insert.
1292
1293 2016-05-24 Martin Sebor <msebor@redhat.com>
1294
1295 PR c++/71147
1296 * tree.h (complete_or_array_type_p): New inline function.
1297
1298 2016-05-24 Jakub Jelinek <jakub@redhat.com>
1299
1300 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
1301 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
1302 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
1303
1304 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
1305 Limit 1st alternative to noavx isa, split 2nd alternative into one
1306 noavx and one avx alternative, use *x and Bm in the former and
1307 x and m in the latter.
1308
1309 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
1310 of sse4 for the first alternative, drop %v from the template
1311 and d operand modifier. Split second alternative into one sse4_noavx
1312 and one avx alternative, use *x instead of *v in the former and v
1313 instead of *v in the latter.
1314 (*sse4_1_extractps): Use noavx isa instead of * for the first
1315 alternative, drop %v from the template. Split second alternative into
1316 one noavx and one avx alternative, use *x instead of *v in the
1317 former and v instead of *v in the latter.
1318 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
1319 with noavx and the last one with avx.
1320 (sse4_1_phminposuw): Guard first alternative with noavx isa,
1321 split the second one into one noavx and one avx alternative,
1322 use *x and Bm in the former and x and m in the latter one.
1323 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
1324 alternatives.
1325
1326 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
1327 first two alternatives to noavx, use *x instead of *v in the second
1328 one, add avx alternative without *.
1329 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
1330 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
1331 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
1332
1333 2016-05-24 Jeff Law <law@redhat.com>
1334
1335 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
1336 New function, extracted from...
1337 (fsm_find_control_statement_thread_paths): Here. Use the new function.
1338 Allow simple copies and constant initializations in the SSA chain.
1339
1340 2016-05-24 Marek Polacek <polacek@redhat.com>
1341
1342 PR c/71249
1343 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
1344 scope.
1345
1346 2016-05-24 Jakub Jelinek <jakub@redhat.com>
1347
1348 PR c++/71257
1349 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
1350 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
1351 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
1352 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
1353 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
1354
1355 2016-05-24 Richard Biener <rguenther@suse.de>
1356
1357 PR tree-optimization/71240
1358 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
1359 has integral type.
1360
1361 2016-05-24 Richard Biener <rguenther@suse.de>
1362
1363 PR tree-optimization/71230
1364 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
1365
1366 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
1367
1368 * tree-vectorizer.h (vectorizable_comparison): Delete.
1369 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
1370 PURE_SLP_STMT check.
1371 * tree-vect-stmts.c (vectorizable_call): Likewise.
1372 (vectorizable_simd_clone_call): Likewise.
1373 (vectorizable_conversion): Likewise.
1374 (vectorizable_assignment): Likewise.
1375 (vectorizable_shift): Likewise.
1376 (vectorizable_operation): Likewise.
1377 (vectorizable_load): Likewise.
1378 (vectorizable_condition): Likewise.
1379 (vectorizable_store): Likewise. Assert that we don't have
1380 hybrid SLP.
1381 (vectorizable_comparison): Make static. Remove redundant
1382 PURE_SLP_STMT check.
1383 (vect_transform_stmt): Assert that we always have an slp_node
1384 if PURE_SLP_STMT.
1385
1386 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1387
1388 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
1389 operands[2] against 1 with comparison against CONST1_RTX.
1390 (<shift>di3_neon): Likewise.
1391 * config/arm/predicates.md (const0_operand): Replace with comparison
1392 against CONST0_RTX.
1393
1394 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1395
1396 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
1397 operands[2] against 1 with comparison against CONST1_RTX.
1398 (ashrdi3): Likewise.
1399 (lshrdi3): Likewise.
1400 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
1401 UINTVAL.
1402 (ashrsi3): Likewise.
1403 (lshrsi3): Likewise.
1404 (rotrsi3): Likewise.
1405 (define_split above *compareqi_eq0): Likewise.
1406 (define_split above "prologue"): Likewise.
1407 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
1408 * config/arm/predicates.md (shift_operator): Likewise.
1409 (shift_nomul_operator): Likewise.
1410 (sat_shift_operator): Likewise.
1411 (thumb1_cmp_operand): Likewise.
1412 (const_neon_scalar_shift_amount_operand): Replace manual range
1413 check with IN_RANGE.
1414 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
1415 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
1416
1417 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1418
1419 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
1420 with HOST_WIDE_INT_1.
1421 (insv): Likewise.
1422 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
1423 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
1424 (arm_canonicalize_comparison): Likewise.
1425 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
1426 HOST_WIDE_INT_1.
1427 (thumb1_size_rtx_costs): Likewise.
1428 (vfp_const_double_index): Replace cast of 1 to unsigned
1429 HOST_WIDE_INT with HOST_WIDE_INT_1U.
1430 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
1431 HOST_WIDE_INT_1.
1432 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
1433 HOST_WIDE_INT with HOST_WIDE_INT_1U.
1434 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
1435 HOST_WIDE_INT with HOST_WIDE_INT_1.
1436
1437 2016-05-24 Marek Polacek <polacek@redhat.com>
1438
1439 * tree-cfg.h (should_remove_lhs_p): New predicate.
1440 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
1441 * gimplify.c (gimplify_modify_expr): Likewise.
1442 * tree-cfg.c (verify_gimple_call): Likewise.
1443 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
1444 * gimple-fold.c: Include "tree-cfg.h".
1445 (gimple_fold_call): Use should_remove_lhs_p.
1446
1447 2016-05-24 Richard Biener <rguenther@suse.de>
1448
1449 PR tree-optimization/71253
1450 * cfganal.h (control_dependences): Make robust against edge
1451 and BB removal.
1452 (control_dependences::control_dependences): Remove edge_list argument.
1453 (control_dependences::get_edge): Remove.
1454 (control_dependences::get_edge_src): Add.
1455 (control_dependences::get_edge_dest): Likewise.
1456 (control_dependences::m_el): Make a vector of edge src/dest index.
1457 * cfganal.c (control_dependences::find_control_dependence): Adjust.
1458 (control_dependences::control_dependences): Likewise.
1459 (control_dependences::~control_dependence): Likewise.
1460 (control_dependences::get_edge): Remove.
1461 (control_dependences::get_edge_src): Add.
1462 (control_dependences::get_edge_dest): Likewise.
1463 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
1464 get_edge_src.
1465 (perform_tree_ssa_dce): Adjust.
1466 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
1467 get_edge_src.
1468 (pass_loop_distribution::execute): Adjust. Do loop destroying
1469 conditional on changed.
1470
1471 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1472
1473 PR target/69857
1474 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
1475 return. Reindent transformation comment and mention the ARM state
1476 behavior.
1477
1478 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
1479
1480 PR middle-end/71252
1481 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
1482 after build_and_add_sum creates new use stmt.
1483
1484 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
1485
1486 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
1487 load_lanes/grouped_load classification comes first. Don't check
1488 whether the vectorization factor is a multiple of the group size
1489 for load_lanes.
1490
1491 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
1492
1493 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
1494 GROUP_GAP for single-element interleaving.
1495 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
1496 variable.
1497
1498 2016-05-24 Richard Biener <rguenther@suse.de>
1499
1500 PR middle-end/70434
1501 PR c/69504
1502 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
1503 bases which are accessed with non-invariant indices.
1504 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
1505 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
1506
1507 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
1508
1509 PR middle-end/71170
1510 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
1511 (add_to_ops_vec): Add stmt_to_insert.
1512 (add_repeat_to_ops_vec): Init stmt_to_insert.
1513 (insert_stmt_before_use): New.
1514 (transform_add_to_multiply): Remove mult_stmt insertion and add it
1515 to ops vector.
1516 (get_ops): Init stmt_to_insert.
1517 (maybe_optimize_range_tests): Likewise.
1518 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
1519 (rewrite_expr_tree_parallel): Likewise.
1520 (reassociate_bb): Likewise.
1521
1522 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1523
1524 PR target/71201
1525 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
1526 ISA 3.0 xxperm fusion alternative.
1527 (altivec_vperm_v8hiv16qi): Likewise.
1528 (altivec_vperm_<mode>_uns_internal): Likewise.
1529 (vperm_v8hiv4si): Likewise.
1530 (vperm_v16qiv8hi): Likewise.
1531
1532 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1533 Kelvin Nilsen <kelvin@gcc.gnu.org>
1534
1535 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
1536 vpermr/xxpermr on ISA 3.0.
1537 (altivec_expand_vec_perm_le): Likewise.
1538 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
1539 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
1540 ISA 3.0.
1541
1542 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
1543
1544 * config/i386/i386.h (IS_STACK_MODE): Enable for
1545 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
1546 SSE_FLOAT_MODE_P macros.
1547 * config/i386/i386.c (ix86_preferred_reload_class): Use
1548 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
1549 Cleanup regclass processing for CONST_DOUBLE_P.
1550 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
1551 (ix86_rtx_costs): Remove redundant TARGET_80387 check
1552 with IS_STACK_MODE macro.
1553 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
1554 with TARGET_SSE2.
1555 (*movdf_internal): Use IS_STACK_MODE macro.
1556 (*movsf_internal): Ditto.
1557
1558 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
1559
1560 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
1561 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
1562
1563 2016-05-23 Jeff Law <law@redhat.com>
1564
1565 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
1566 extracted from ...
1567 (fsm_find_control_statement_thread_paths): Call it.
1568
1569 2016-05-23 Martin Jambor <mjambor@suse.cz>
1570
1571 PR ipa/71234
1572 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
1573 from_global_constant if t is not NULL.
1574
1575 2016-05-23 Marek Polacek <polacek@redhat.com>
1576
1577 PR c/49859
1578 * common.opt (Wswitch-unreachable): New option.
1579 * doc/invoke.texi: Document -Wswitch-unreachable.
1580 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
1581 warning.
1582
1583 2016-05-23 Bin Cheng <bin.cheng@arm.com>
1584
1585 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
1586 TMR_INDEX is non-NULL.
1587
1588 2016-05-23 Richard Biener <rguenther@suse.de>
1589
1590 PR tree-optimization/71230
1591 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
1592 (try_special_add_to_ops): ... here. Always test for single-use.
1593
1594 2016-05-23 Martin Jambor <mjambor@suse.cz>
1595
1596 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
1597 default block if a PHI node in the original one would be resized.
1598
1599 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
1600
1601 PR tree-optimization/58135
1602 * tree-vect-slp.c: When group size is not multiple
1603 of vector size, allow splitting of store group at
1604 vector boundary.
1605
1606 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
1607
1608 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
1609
1610 2016-05-22 Jakub Jelinek <jakub@redhat.com>
1611
1612 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
1613 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
1614 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
1615 of 64x2.
1616
1617 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
1618 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
1619 v constraint instead of x and vinserti32x4 insn.
1620
1621 * config/i386/sse.md (i128vldq): New mode iterator.
1622 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
1623 avx512dq and avx512vl alternatives.
1624
1625 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
1626 constraint, use maybe_evex prefix instead of vex.
1627 (vec_dupv4sf): Use v constraint instead of x for output
1628 operand except for noavx alternative, use Yv constraint
1629 instead of x for input. Use maybe_evex prefix instead of vex.
1630 (*vec_dupv4si): Likewise.
1631 (*vec_dupv2di): Likewise.
1632
1633 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
1634
1635 PR middle-end/40921
1636 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
1637 (linearize_expr_tree): Call try_special_add_to_ops.
1638 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
1639
1640 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1641
1642 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
1643 to computed stack_usage.
1644
1645 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
1646
1647 PR target/71103
1648 * config/avr/avr.md (define_expand "mov<mode>"): If the source
1649 operand is subreg (symbol_ref) then move the symbol ref to register.
1650
1651 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
1652
1653 * tree.c (array_at_struct_end_p): Look through MEM_REF.
1654
1655 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
1656
1657 PR middle-end/71179
1658 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
1659 VECTOR type.
1660
1661 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
1662
1663 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
1664 ranges by calling get_single_symbol and tidy up. Look more closely
1665 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
1666
1667 2016-05-20 Jeff Law <law@redhat.com>
1668
1669 * bitmap.c (bitmap_find_bit): Remove useless test.
1670
1671 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
1672
1673 * function.c (thread_prologue_and_epilogue_insns): Commit the
1674 insertion of the epilogue.
1675
1676 2016-05-20 Martin Jambor <mjambor@suse.cz>
1677
1678 PR tree-optimization/70884
1679 * tree-sra.c (initialize_constant_pool_replacements): Do not check
1680 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
1681 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
1682 of constant pool data as a reason for scalarization.
1683
1684 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
1685
1686 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
1687 for naked functions.
1688 (thumb1_expand_prologue): Likewise.
1689
1690 2016-05-20 Nathan Sidwell <nathan@acm.org>
1691
1692 * config/nvptx/nptx.c (nvptx_option_override): Only set
1693 flag_toplevel_reorder, if not explicitly specified. Set
1694 flag_no_common, unless explicitly specified.
1695
1696 2016-05-20 David Malcolm <dmalcolm@redhat.com>
1697
1698 * calls.c (can_implement_as_sibling_call_p): Mark param
1699 reg_parm_stack_space with ATTRIBUTE_UNUSED.
1700
1701 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
1702
1703 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
1704 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
1705 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
1706 constants.
1707 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
1708 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
1709 and CASE_CONST_ANY.
1710
1711 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
1712
1713 * config/nvptx/nvptx.md (sincossf3): New pattern.
1714
1715 2016-05-20 David Malcolm <dmalcolm@redhat.com>
1716
1717 * calls.c (maybe_complain_about_tail_call): New function.
1718 (initialize_argument_information): Call
1719 maybe_complain_about_tail_call when clearing *may_tailcall.
1720 (can_implement_as_sibling_call_p): Call
1721 maybe_complain_about_tail_call when returning false.
1722 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
1723 ensure try_tail_call is set. Call maybe_complain_about_tail_call
1724 if tail-call optimization fails.
1725 * cfgexpand.c (expand_call_stmt): Initialize
1726 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
1727 * gimple-pretty-print.c (dump_gimple_call): Dump
1728 gimple_call_must_tail_p.
1729 * gimple.c (gimple_build_call_from_tree): Call
1730 gimple_call_set_must_tail with the value of
1731 CALL_EXPR_MUST_TAIL_CALL.
1732 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
1733 (gimple_call_set_must_tail): New function.
1734 (gimple_call_must_tail_p): New function.
1735 * print-tree.c (print_node): Update printing of TREE_STATIC
1736 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
1737 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
1738 trailing comment listing applicable flags.
1739 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
1740
1741 2016-05-20 David Malcolm <dmalcolm@redhat.com>
1742
1743 * calls.c (expand_call): Move "Rest of purposes for tail call
1744 optimizations to fail" to...
1745 (can_implement_as_sibling_call_p): ...this new function, and
1746 split into multiple "if" statements.
1747
1748 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
1749
1750 * cfgloop.h (expected_loop_iterations_unbounded,
1751 expected_loop_iterations): Unconstify.
1752 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
1753 profile with known upper bound; return 3 when profile is absent.
1754 (expected_loop_iterations): Update.
1755
1756 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
1757
1758 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
1759 and get_max_loop_iterations_int.
1760
1761 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
1762
1763 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
1764 realistic upper bounds here.
1765
1766 2016-05-20 Jakub Jelinek <jakub@redhat.com>
1767
1768 PR c++/71210
1769 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
1770 calls if the LHS is variable length or has addressable type.
1771 If targets[0]->decl is a noreturn call with void return type and
1772 zero arguments, adjust fntype and remove lhs in that case.
1773
1774 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
1775
1776 PR tree-optimization/71079
1777 PR tree-optimization/71206
1778 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
1779
1780 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1781
1782 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
1783 (get_vec_alignment_for_array_decl): Likewise.
1784 (get_vec_alignment_for_record_decl): Likewise.
1785 (increase_alignment::execute): Move code to find alignment to
1786 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
1787 (type_align_map): New hash_map.
1788
1789 2016-05-20 Richard Guenther <rguenther@suse.de>
1790
1791 PR tree-optimization/29756
1792 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
1793 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
1794 * fold-const.c (operand_equal_p): Likewise.
1795 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
1796 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
1797 * tree-inline.c (estimate_operator_cost): Likewise.
1798 * tree-pretty-print.c (dump_generic_node): Likewise.
1799 * tree-ssa-operands.c (get_expr_operands): Likewise.
1800 * cfgexpand.c (expand_debug_expr): Likewise.
1801 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
1802 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
1803 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
1804 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
1805 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
1806 (execute_update_addresses_taken): Do it.
1807
1808 2016-05-20 Richard Biener <rguenther@suse.de>
1809
1810 PR tree-optimization/71185
1811 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
1812 register operations.
1813
1814 2016-05-20 Richard Biener <rguenther@suse.de>
1815
1816 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
1817 gimple_seq_add_seq_without_update.
1818 (release_bb_predicate): Assert we have no operands to free.
1819 (if_convertible_loop_p_1): Calculate post dominators later.
1820 Do not free BB predicates here.
1821 (combine_blocks): Do not recompute BB predicates.
1822 (version_loop_for_if_conversion): Save BB predicates around
1823 loop versioning.
1824
1825 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
1826
1827 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
1828 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
1829 code. Ignore sibcalls on EDGE_IGNORE edges.
1830 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
1831 on edges for sibcalls that run without prologue. The rest of the
1832 function is combined from...
1833 (fix_fake_fallthrough_edge): ... this, and ...
1834 (try_shrink_wrapping): ... a part of this. Remove the bb_with
1835 function argument, make it a local variable.
1836
1837 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
1838
1839 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
1840 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
1841 for 32-bit mode and SEH for 64-bit.
1842 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
1843 TARGET_64BIT_DEFAULT.
1844
1845 2016-05-19 Ryan Burn <contact@rnburn.com>
1846
1847 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
1848 * gengtype.c (open_base_files): Add cilk.h to ifiles.
1849
1850 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
1851
1852 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
1853 force pending loads from memory.
1854
1855 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
1856
1857 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
1858 (UNSPEC_DARN_32): New unspec constant.
1859 (UNSPEC_DARN_RAW): New unspec constant.
1860 (darn_32): New instruction.
1861 (darn_raw): New instruction.
1862 (darn): New instruction.
1863 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
1864 support and documentation for this macro.
1865 (BU_P9_MISC_1): New macro definition.
1866 (BU_P9_64BIT_MISC_0): New macro definition.
1867 (BU_P9_MISC_0): New macro definition.
1868 (darn_32): New builtin definition.
1869 (darn_raw): New builtin definition.
1870 (darn): New builtin definition.
1871 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
1872 RS6000_BUILTIN_0 directives to surround each occurrence of
1873 #include "rs6000-builtin.def".
1874 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
1875 RS6000_BTM_64BIT flags to the returned mask, depending on
1876 configuration.
1877 (def_builtin): Correct an error in the assignments made to the
1878 debugging variable attr_string.
1879 (rs6000_expand_builtin): Add support for no-operand built-in
1880 functions.
1881 (builtin_function_type): Remove fatal_error assertion that is no
1882 longer valid.
1883 (rs6000_common_init_builtins): Add support for no-operand built-in
1884 functions.
1885 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
1886 definition.
1887 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
1888 definition.
1889 (RS6000_BTM_64BIT): New macro definition.
1890 * doc/extend.texi: Document __builtin_darn (void),
1891 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
1892 functions.
1893
1894 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
1895
1896 * tree-vect-loop.c (vect_analyze_loop_2): Use also
1897 max_loop_iterations_int.
1898
1899 2016-05-19 Marek Polacek <polacek@redhat.com>
1900
1901 PR tree-optimization/71031
1902 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
1903 condition and adjust the code a bit.
1904
1905 2016-05-19 Martin Liska <mliska@suse.cz>
1906
1907 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
1908 auto_vec instead of vec.
1909
1910 2016-05-19 Martin Liska <mliska@suse.cz>
1911
1912 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
1913
1914 2016-05-19 Martin Liska <mliska@suse.cz>
1915
1916 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
1917
1918 2016-05-19 Martin Liska <mliska@suse.cz>
1919
1920 * ipa-pure-const.c (set_function_state): Remove an existing
1921 funct_state.
1922 (remove_node_data): Do not free it as it's released
1923 in set_function_state.
1924
1925 2016-05-19 Martin Liska <mliska@suse.cz>
1926
1927 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
1928 bitmap.
1929
1930 2016-05-19 Martin Liska <mliska@suse.cz>
1931
1932 * omp-simd-clone.c (simd_clone_adjust): Release vector.
1933
1934 2016-05-19 Martin Liska <mliska@suse.cz>
1935
1936 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
1937 an auto_vec instead of re-creating it.
1938
1939 2016-05-19 Martin Liska <mliska@suse.cz>
1940
1941 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
1942 auto_vec instead of vec.
1943
1944 2016-05-19 Martin Liska <mliska@suse.cz>
1945
1946 * lto-section-in.c (lto_get_section_data): Call
1947 lto_check_version with additional argument.
1948 * lto-streamer.c (lto_check_version): Add new argument.
1949 * lto-streamer.h (lto_check_version): Likewise.
1950
1951 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1952
1953 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
1954 Don't add cost of inner memory when handling sign-extended loads.
1955
1956 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
1957
1958 PR rtl-optimization/71148
1959 * cse.c (cse_main): Free dominance info.
1960 (rest_of_handle_cse): Don't free dominance info.
1961 (rest_of_handle_cse2): Likewise.
1962 (rest_of_handle_cse_after_global_opts): Likewise.
1963
1964 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1965
1966 PR target/71056
1967 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
1968 NULL_TREE early if NEON is not available. Remove now redundant check
1969 in ARM_CHECK_BUILTIN_MODE.
1970
1971 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
1972
1973 PR sanitizer/64354
1974 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
1975 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
1976 * doc/cpp.texi: Document new macros.
1977
1978 2016-05-19 Bin Cheng <bin.cheng@arm.com>
1979
1980 PR tree-optimization/69848
1981 * tree-vect-loop.c (vectorizable_reduction): Don't factor
1982 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
1983
1984 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
1985
1986 * function.c (thread_prologue_and_epilogue_insn): Move the
1987 "goto epilogue_done" one block later.
1988
1989 2016-05-19 Richard Biener <rguenther@suse.de>
1990
1991 PR tree-optimization/70729
1992 * passes.def: Move LIM pass before PRE. Remove no longer
1993 required copyprop and move first DCE out of the loop pipeline.
1994
1995 2016-05-18 David Malcolm <dmalcolm@redhat.com>
1996
1997 PR driver/69265
1998 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
1999 (OBJS-libcommon-target): ...here.
2000 * opts-common.c: Include spellcheck.h.
2001 (cmdline_handle_error): Build a vec of valid options and use it
2002 to suggest provide hints for misspelled arguments.
2003
2004 2016-05-18 Jakub Jelinek <jakub@redhat.com>
2005
2006 PR c++/71100
2007 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
2008 lhs if it has TREE_ADDRESSABLE type.
2009
2010 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
2011
2012 PR target/71145
2013 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
2014 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
2015
2016 2016-05-18 Martin Jambor <mjambor@suse.cz>
2017
2018 PR ipa/69708
2019 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
2020 input for NOP_EXPR pass-through functions.
2021 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
2022 aggregate global constant VAR_DECLs in constant jump functions.
2023
2024 2016-05-18 Martin Jambor <mjambor@suse.cz>
2025
2026 PR ipa/69708
2027 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
2028 from TREE_READONLY parameters.
2029
2030 2016-05-18 Martin Jambor <mjambor@suse.cz>
2031
2032 PR ipa/69708
2033 * cgraph.h (cgraph_indirect_call_info): New field
2034 guaranteed_unmodified.
2035 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
2036 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
2037 appropriate.
2038 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
2039 pass the parameter value to ipa_find_agg_cst_for_param.
2040 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
2041 guaranteed_unmodified, store AA results there instead of bailing out
2042 if present.
2043 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
2044 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
2045 (find_constructor_constant_at_offset): New function.
2046 (ipa_find_agg_cst_from_init): Likewise.
2047 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
2048 static initializers of contants, report back through a new paameter
2049 from_global_constant if that was the case.
2050 (try_make_edge_direct_simple_call): Also pass parameter value to
2051 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
2052 appropriate.
2053 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
2054 (ipa_read_indirect_edge_info): Likewise.
2055 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
2056 (ipa_load_from_parm_agg): Likewise.
2057
2058 2016-05-18 Jiong Wang <jiong.wang@arm.com>
2059
2060 PR rtl-optimization/71150
2061 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
2062 check.
2063
2064 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
2065
2066 PR target/70915
2067 * config/rs6000/constraints.md (wE constraint): New constraint
2068 for a vector constant that can be loaded with XXSPLTIB.
2069 (wM constraint): New constraint for a vector constant of a 1's.
2070 (wS constraint): New constraint for a vector constant that can be
2071 loaded with XXSPLTIB and a vector sign extend instruction.
2072 * config/rs6000/predicates.md (xxspltib_constant_split): New
2073 predicates for wE/wS constraints.
2074 (xxspltib_constant_nosplit): Likewise.
2075 (easy_vector_constant): Add support for constants that can be
2076 loaded via XXSPLTIB.
2077 (all_ones_constant): New predicate for vector constant with all
2078 1's set.
2079 (splat_input_operand): Add support for ISA 3.0 word splat operations.
2080 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
2081 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
2082 instruction and possibly with a sign extension.
2083 (output_vec_const_move): Add support for XXSPLTIB. If we are
2084 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
2085 instead of XXLXOR/XXLORC.
2086 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
2087 operations.
2088 (rs6000_legitimize_reload_address): Likewise.
2089 (rs6000_output_move_128bit): Use output_vec_const_move to emit
2090 constants.
2091 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
2092 combine VSX_M and VSX_M2 into one iterator.
2093 (VSX_M2): Likewise.
2094 (VSINT_84): New iterators for loading constants with XXSPLTIB.
2095 (VSINT_842): Likewise.
2096 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
2097 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
2098 XXSPLTIB instruction.
2099 (xxspltib_<mode>_nosplit): Likewise.
2100 (xxspltib_<mode>_split): New insn to load up constants with
2101 XXSPLTIB and a sign extend instruction.
2102 (vsx_mov<mode>): Replace single move that handled all vector types
2103 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
2104 moves (when -mvsx-timode is in effect) into the main vector
2105 moves. Eliminate separate moves for <VSr> <VSa>, where the
2106 preferred register class (<VSr>) is listed first, and the
2107 secondary register class (<VSa>) is listed second with a '?' to
2108 discourage use. Prefer loading 0/-1 in any VSX register for ISA
2109 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
2110 that if the register was involved in a slow operation, the
2111 clear/set operation does not wait for the slow operation to
2112 finish. Adjust the length attributes for 32-bit mode. Use
2113 rs6000_output_move_128bit and drop the use of the string
2114 instructions for 32-bit movti when -mvsx-timode is in effect. Use
2115 spacing so that the alternatives and attributes don't generate
2116 long lines, and put things in columns, so that it is easier to
2117 match up the operands and attributes with the insn alternatives.
2118 (vsx_mov<mode>_64bit): Likewise.
2119 (vsx_mov<mode>_32bit): Likewise.
2120 (vsx_movti_64bit): Fold movti into normal vector moves.
2121 (vsx_movti_32bit): Likewise.
2122 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
2123 splat instructions.
2124 (vsx_splat_v4si_internal): Likewise.
2125 (vsx_splat_v4sf_internal): Likewise.
2126 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
2127 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
2128 extend vector elements.
2129 (vsx_sign_extend_hi_<mode>): Likewise.
2130 (vsx_sign_extend_si_v2di): Likewise.
2131 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
2132 declaration.
2133 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
2134 constraints. Add trailing period to wL documentation.
2135
2136 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
2137
2138 PR middle-end/71020
2139 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
2140 * tree-dfa.c (replace_abnormal_ssa_names): New function.
2141 * tree-call-cdce.c: Include tree-dfa.h.
2142 (can_guard_call_p): New function, extracted from...
2143 (can_use_internal_fn): ...here.
2144 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
2145 and return void.
2146 (shrink_wrap_one_built_in_call): Likewise.
2147 (use_internal_fn): Likewise.
2148 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
2149 and return void. Call replace_abnormal_ssa_names.
2150 (pass_call_cdce::execute): Check can_guard_call_p during the
2151 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
2152 will always change something.
2153
2154 2016-05-18 Martin Jambor <mjambor@suse.cz>
2155
2156 PR ipa/70646
2157 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
2158 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
2159
2160 2016-05-18 Martin Jambor <mjambor@suse.cz>
2161
2162 PR ipa/70646
2163 * ipa-inline.h (condition): New field size.
2164 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
2165 for comaprison and store it into the new condition.
2166 (evaluate_conditions_for_known_args): Use condition size to check
2167 access sizes for all but CHANGED conditions.
2168 (unmodified_parm_1): New parameter size_p, store access size into it.
2169 (unmodified_parm): Likewise.
2170 (unmodified_parm_or_parm_agg_item): Likewise.
2171 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
2172 (set_cond_stmt_execution_predicate): Extract access sizes and store
2173 them to conditions.
2174 (set_switch_stmt_execution_predicate): Likewise.
2175 (will_be_nonconstant_expr_predicate): Likewise.
2176 (will_be_nonconstant_predicate): Likewise.
2177 (inline_read_section): Stream condition size.
2178 (inline_write_summary): Likewise.
2179
2180 2016-05-18 Richard Biener <rguenther@suse.de>
2181
2182 * tree-ssa-loop-im.c (determine_max_movement): Properly add
2183 condition cost to PHI cost instead of total_cost.
2184
2185 2016-05-18 Martin Liska <mliska@suse.cz>
2186
2187 PR fortran/70856
2188 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
2189 merged variables.
2190
2191 2016-05-18 Richard Biener <rguenther@suse.de>
2192
2193 * lto-streamer.h (LTO_major_version): Bump to 6.
2194
2195 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
2196
2197 * function.c (make_split_prologue_seq, make_prologue_seq,
2198 make_epilogue_seq): New functions, factored out from...
2199 (thread_prologue_and_epilogue_insns): Here.
2200
2201 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
2202
2203 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
2204 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
2205 of before. Add a comment.
2206
2207 2016-05-18 Bin Cheng <bin.cheng@arm.com>
2208
2209 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
2210 expression pointer, not pointer to the pointer.
2211
2212 2016-05-18 Jakub Jelinek <jakub@redhat.com>
2213
2214 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
2215 (avx2_pbroadcast<mode>): Add another alternative with v instead
2216 of x constraints in it, using <pbroadcast_evex_isa> isa.
2217 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
2218
2219 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
2220 constraint x instead of v in second alternative, add avx512bw
2221 alternative.
2222
2223 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
2224 constraint x instead of v in second alternative, add avx512bw
2225 alternative.
2226
2227 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
2228 constraint x instead of v in second alternative, add avx512bw
2229 alternative.
2230
2231 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
2232 avx512bw alternative.
2233
2234 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
2235
2236 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
2237 array to 128 chars.
2238 (define_insn "*andnottf3"): Ditto.
2239 (define_insn "*<code><mode>3"/any_logic): Ditto.
2240 (define_insn "*<code>tf3"/any_logic): Ditto.
2241 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
2242 operand to block AVX-512VL insn variant emit when it is not enabled.
2243
2244 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
2245
2246 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
2247 constraint fot SF mode.
2248
2249 2016-05-18 Petr Murzin <petr.murzin@intel.com>
2250 Kirill Yukhin <kirill.yukhin@intel.com>
2251
2252 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
2253 modifiers.
2254 (define_insn "rsqrt14<mode>"): Ditto.
2255 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
2256 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
2257 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
2258 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
2259 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
2260 Ditto.
2261 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
2262 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
2263 * config/i386/i386.c (ix86_print_operand): Expand check for size
2264 override codes for Intel syntax.
2265
2266 2016-05-18 Richard Biener <rguenther@suse.de>
2267
2268 PR tree-optimization/71168
2269 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
2270 initialization earlier.
2271
2272 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
2273
2274 * config/aarch64/aarch64-simd.md
2275 (aarch64_reduc_plus_internal<mode>): Rename to...
2276 (reduc_plus_scal): ...This, and remove previous implementation.
2277
2278 2016-05-18 Richard Biener <rguenther@suse.de>
2279
2280 * passes.def: Put late dse and cd_dce in canonical order.
2281
2282 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
2283
2284 * ipa-inline-transform.c (preserve_function_body_p): Look for
2285 first non-thunk clone.
2286 (save_function_body): Save into first non-thunk.
2287 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
2288 up call stmt id.
2289 (lto_output_node): Inline thunks don't need body in every
2290 partition.
2291 * lto-streamer-in.c: Do not fixup thunk clones.
2292 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
2293 thunks.
2294 * tree-inline.c (copy_bb): Be prepared for target node to be new after
2295 folding suceeds.
2296
2297 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
2298
2299 PR middle-end/63586
2300 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
2301 (reassociate_bb): Call transform_add_to_multiply.
2302
2303 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
2304
2305 * config/aarch64/aarch64.c (all_extensions): Removed unused
2306 static variable.
2307
2308 2016-05-17 Nathan Sidwell <nathan@acm.org>
2309
2310 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
2311 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
2312
2313 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
2314
2315 PR tree-optimization/54579
2316 PR middle-end/55299
2317 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
2318
2319 2016-05-17 Marek Polacek <polacek@redhat.com>
2320
2321 PR ipa/71146
2322 * tree-inline.c (expand_call_inline): Call
2323 maybe_remove_unused_call_args.
2324
2325 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
2326
2327 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
2328 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
2329 * doc/md.texi (fmin@var{m}3): Likewise.
2330
2331 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
2332
2333 * match.pd (X & C): New transformation.
2334
2335 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
2336
2337 * match.pd (~X & Y): New transformation.
2338
2339 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
2340
2341 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
2342 information for new SSA_NAME.
2343 (simplify_conversion_using_ranges): Get range through get_range_info
2344 instead of get_value_range.
2345
2346 2016-05-17 Jiong Wang <jiong.wang@arm.com>
2347
2348 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
2349 Remove inline assembly.
2350 (vmvn_s16): Likewise.
2351 (vmvn_s32): Likewise.
2352 (vmvn_u8): Likewise.
2353 (vmvn_u16): Likewise.
2354 (vmvn_u32): Likewise.
2355 (vmvnq_s8): Likewise.
2356 (vmvnq_s16): Likewise.
2357 (vmvnq_s32): Likewise.
2358 (vmvnq_u8): Likewise.
2359 (vmvnq_u16): Likewise.
2360 (vmvnq_u32): Likewise.
2361 (vmvn_p8): Likewise.
2362 (vmvnq_p16): Likewise.
2363
2364 2016-05-17 Jiong Wang <jiong.wang@arm.com>
2365
2366 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
2367 Use builtin.
2368 (vmul_n_s16): Likewise.
2369 (vmul_n_s32): Likewise.
2370 (vmul_n_u16): Likewise.
2371 (vmul_n_u32): Likewise.
2372 (vmulq_n_f32): Likewise.
2373 (vmulq_n_f64): Likewise.
2374 (vmulq_n_s16): Likewise.
2375 (vmulq_n_s32): Likewise.
2376 (vmulq_n_u16): Likewise.
2377 (vmulq_n_u32): Likewise.
2378
2379 2016-05-17 Jiong Wang <jiong.wang@arm.com>
2380
2381 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
2382 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
2383
2384 2016-05-17 Jiong Wang <jiong.wang@arm.com>
2385
2386 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
2387 to *aarch64_fma4_elt_from_dup<mode>.
2388 (*aarch64_fnma4_elt_to_128df): Rename to
2389 *aarch64_fnma4_elt_from_dup<mode>.
2390 * config/aarch64/arm_neon.h (vfma_n_f64): New.
2391 (vfms_n_f32): Likewise.
2392 (vfms_n_f64): Likewise.
2393 (vfmsq_n_f32): Likewise.
2394 (vfmsq_n_f64): Likewise.
2395
2396 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
2397
2398 * wide-int.h: Change fixed_wide_int_storage from class to struct.
2399
2400 2016-05-17 Richard Biener <rguenther@suse.de>
2401
2402 PR tree-optimization/71132
2403 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
2404 Only add control dependences for blocks in the loop.
2405 (build_rdg): Adjust.
2406 (generate_code_for_partition): Return whether loop should
2407 be destroyed and delay that.
2408 (distribute_loop): Likewise.
2409 (pass_loop_distribution::execute): Record loops to be destroyed
2410 and perform delayed destroying of loops.
2411
2412 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2413
2414 PR target/70809
2415 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
2416
2417 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
2418
2419 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
2420
2421 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
2422
2423 PR target/71114
2424 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
2425 insertion point for instructions generated by validize_mem.
2426
2427 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
2428
2429 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
2430 in brackets.
2431
2432 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
2433
2434 * config/aarch64/aarch64.c
2435 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
2436 rather than a macro.
2437
2438 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
2439
2440 * doc/invoke.texi (AArch64 Options): Various updates.
2441
2442 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
2443
2444 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
2445 into instrumentation thunks.
2446 * cif-code.def (CIF_CHKP): New.
2447
2448 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
2449
2450 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
2451
2452 2016-05-16 Martin Jambor <mjambor@suse.cz>
2453
2454 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
2455 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
2456
2457 2016-05-16 Marek Polacek <polacek@redhat.com>
2458
2459 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
2460 commentary.
2461
2462 2016-05-16 Martin Jambor <mjambor@suse.cz>
2463
2464 PR hsa/70857
2465 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
2466 the outlined kernel function.
2467
2468 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
2469
2470 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
2471 (ISA_HAS_DLSA): Ditto.
2472
2473 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
2474
2475 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
2476
2477 2016-05-16 Nathan Sidwell <nathan@acm.org>
2478
2479 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
2480 (nvptx_name_replacement): Restore. Add comment.
2481 (write_fn_proto, write_fn_proto_from_insn,
2482 nvptx_output_call_insn): Restore
2483 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
2484
2485 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
2486
2487 * config/aarch64/aarch64.md
2488 (add<mode>3_compareC_cconly_imm): Remove use of %w.
2489 (add<mode>3_compareC_imm): Likewise.
2490 (<optab>si3_uxtw): Split into register and immediate variants.
2491 (andsi3_compare0_uxtw): Likewise.
2492 (and<mode>3_compare0): Likewise.
2493 (and<mode>3nr_compare0): Likewise.
2494 (stack_protect_test_<mode>): Don't use %x for memory operands.
2495
2496 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
2497
2498 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
2499
2500 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
2501
2502 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
2503 Split integer shifts into shift_reg and bfm.
2504 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
2505 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
2506 (ror<mode>3_insn): Likewise.
2507 (<optab>si3_insn_uxtw): Likewise.
2508 (<optab><mode>3_insn): Change to rotate_imm.
2509 (extr<mode>5_insn_alt): Likewise.
2510 (extrsi5_insn_uxtw): Likewise.
2511 (extrsi5_insn_uxtw_alt): Likewise.
2512
2513 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
2514
2515 * doc/tm.texi: Regenerate.
2516 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
2517 (TARGET_INVALID_RETURN_TYPE): Remove.
2518 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
2519 TARGET_INVALID_RETURN_TYPE.
2520 * target.def (invalid_parameter_type): Remove.
2521 (invalid_return_type): Remove.
2522
2523 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
2524
2525 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
2526 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
2527 calls from thunk.
2528 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
2529 gimple body.
2530 (preserve_function_body_p): No need to preserve function body
2531 * cif-codes.def (CIF_THUNK): Remove.
2532 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
2533
2534 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
2535
2536 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
2537
2538 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
2539
2540 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
2541 for thunks.
2542
2543 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
2544
2545 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
2546 (inline_small_functions): Do not look for function symbol when
2547 resetting caches.
2548
2549 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
2550
2551 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
2552 of inline thunks
2553
2554 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
2555 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2556 Jiong Wang <jiong.wang@arm.com>
2557
2558 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
2559 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
2560 Define __ARM_FP16_ARGS when appropriate.
2561 * config/arm/arm.c (arm_invalid_parameter_type): Remove
2562 declaration.
2563 (arm_invalid_return_type): Likewise.
2564 (TARGET_INVALID_PARAMETER_TYPE): Remove.
2565 (TARGET_INVALID_RETURN_TYPE): Remove.
2566 (aapcs_vfp_sub_candidate): Allow HFmode.
2567 (aapcs_vfp_allocate): Add comment. Support HFmode.
2568 (aapcs_vfp_allocate_return_reg): Likewise.
2569 (struct aapcs_cp_arg_layout): Slightly reword comments for
2570 is_return_candidate and allocate_return_reg.
2571 (output_mov_vfp): Update assert.
2572 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
2573 condition.
2574 (arm_invalid_parameter_type): Remove.
2575 (amr_invalid_return_type): Remove.
2576 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
2577 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
2578 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
2579
2580 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
2581
2582 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
2583 * config/aarch64/arch64-protos.h
2584 (aarch64_legitimize_reload_address): Remove.
2585 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
2586 Remove.
2587
2588 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
2589
2590 * configure.ac: Add ACX_NONCANONICAL_HOST.
2591 * configure: Regenerate.
2592 * Makefile.in: Set host_noncanonical.
2593
2594 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
2595
2596 PR target/71097
2597 * config/i386/i386.md (*movtf_internal): Before register allocation,
2598 do not allow FP constants for CM_MEDIUM memory model, allow only
2599 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
2600 (*movxf_internal): Ditto.
2601 (*movdf_internal): Ditto.
2602 (*movsf_internal): Ditto.
2603
2604 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
2605
2606 PR rtl-optimization/67483
2607 * combine.c (make_compound_operation): Don't call extract_left_shift
2608 with negative shift amounts.
2609
2610 2016-05-13 Jakub Jelinek <jakub@redhat.com>
2611
2612 PR bootstrap/71071
2613 * fold-const.c (fold_checksum_tree): Allow modification
2614 of TYPE_ALIAS_SET during folding.
2615
2616 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
2617 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
2618 (ix86_split_to_parts): Likewise. Fix up formatting.
2619
2620 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
2621
2622 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
2623 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
2624 printf format.
2625
2626 2016-05-13 Nathan Sidwell <nathan@acm.org>
2627
2628 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
2629 (nvptx_name_replacement): Delete.
2630 (write_fn_proto, write_fn_proto_from_insn,
2631 nvptx_output_call_insn): Remove nvptx_name_replacement call.
2632 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
2633 * langhooks.c (add_builtin_funcction_common): Call
2634 targetm.mangle_decl_assembler_name.
2635
2636 * config/nvptx/nvptx.c (write_fn_proto): Handle
2637 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
2638
2639 2016-05-13 Martin Liska <mliska@suse.cz>
2640
2641 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
2642 and PRIu64 in printf format.
2643
2644 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2645
2646 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
2647 comment.
2648
2649 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2650
2651 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
2652 Change --param max-completely-peeled-times to
2653 --param max-completely-peel-times in dump file printing.
2654
2655 2016-05-13 Richard Biener <rguenther@suse.de>
2656
2657 PR tree-optimization/42587
2658 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
2659 (find_bswap_or_nop_1): Likewise.
2660 (bswap_replace): Likewise.
2661
2662 2016-05-13 Martin Liska <mliska@suse.cz>
2663
2664 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
2665 Initialize a variable with default value.
2666
2667 2016-05-13 Martin Liska <mliska@suse.cz>
2668
2669 * doc/invoke.texi: Enhance explanation of error recovery
2670 of sanitizers.
2671
2672 2016-05-13 Martin Liska <mliska@suse.cz>
2673
2674 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
2675 (struct cost_pair): Change inv_expr_id (int) to inv_expr
2676 (iv_inv_expr_ent *).
2677 (struct iv_inv_expr_ent): Comment struct fields.
2678 (sort_iv_inv_expr_ent): New function.
2679 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
2680 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
2681 a hash_map between iv_inv_expr_ent and number of usages.
2682 (niter_for_exit): Fix coding style.
2683 (tree_ssa_iv_optimize_init): Use renamed variable.
2684 (determine_base_object): Fix coding style.
2685 (alloc_iv): Likewise.
2686 (find_interesting_uses_outside): Likewise.
2687 (add_candidate_1): Likewise.
2688 (add_standard_iv_candidates): Likewise.
2689 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
2690 (prepare_decl_rtl): Fix coding style.
2691 (get_address_cost): Likewise.
2692 (get_shiftadd_cost): Likewise.
2693 (force_expr_to_var_cost): Likewise.
2694 (compare_aff_trees): Likewise.
2695 (get_expr_id): Restructure the function.
2696 (get_loop_invariant_expr_id): Renamed to
2697 get_loop_invariant_expr.
2698 (get_computation_cost_at): Replace usage of inv_expr_id with
2699 inv_expr.
2700 (get_computation_cost): Likewise.
2701 (determine_group_iv_cost_generic): Likewise.
2702 (determine_group_iv_cost_address): Likewise.
2703 (iv_period): Fix coding style.
2704 (iv_elimination_compare_lt): Likewise.
2705 (may_eliminate_iv): Likewise.
2706 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
2707 inv_expr.
2708 (determine_group_iv_costs): Dump invariant expressions.
2709 (iv_ca_recount_cost): Use the newly added hash_map.
2710 (iv_ca_set_remove_invariants): Fix coding style.
2711 (iv_ca_set_add_invariants): Fix coding style.
2712 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
2713 invariants.
2714 (iv_ca_set_cp): Likewise.
2715 (iv_ca_new): Initialize the newly added hash_map and remove
2716 initialization of fields.
2717 (iv_ca_free): Delete the hash_map.
2718 (iv_ca_dump): Dump invariant expressions.
2719 (iv_ca_extend): Fix coding style.
2720 (try_add_cand_for): Likewise.
2721 (create_new_ivs): Dump information about # of avg iterations and
2722 # of used invariant expressions.
2723 (rewrite_use_compare): Fix coding style.
2724 (free_loop_data): Set default value for max_inv_expr_id.
2725
2726 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
2727
2728 * cse.c (rest_of_handle_cse): Use cleanup_cfg
2729 returned value cse_cfg_altered computation.
2730 (rest_of_handle_cse2): Likewise.
2731 (rest_of_handle_cse_after_global_opts): Likewise.
2732
2733 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2734
2735 PR target/53440
2736 * config/arm/arm.c (arm32_output_mi_thunk): New.
2737 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
2738 to split Thumb1 vs TARGET_32BIT functionality.
2739 (arm_thumb1_mi_thunk): New.
2740
2741 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2742
2743 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
2744 to true.
2745
2746 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2747
2748 PR target/71080
2749 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
2750
2751 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
2752
2753 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
2754 (expand_builtin_trap): Emit a regular call.
2755 (set_builtin_user_assembler_name): Remove obsolete cases.
2756 * dse.c (scan_insn): Adjust.
2757 * except.c: Include calls.h.
2758 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
2759 emit a regular call to setjmp.
2760 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
2761 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
2762 (emit_block_move_via_libcall): Delete.
2763 (block_move_fn): Delete.
2764 (init_block_move_fn): Likewise.
2765 (emit_block_move_libcall_fn): Likewise.
2766 (emit_block_op_via_libcall): New function.
2767 (set_storage_via_libcall): Tidy up and use memset builtin.
2768 (block_clear_fn): Delete.
2769 (init_block_clear_fn): Likewise.
2770 (clear_storage_libcall_fn): Likewise.
2771 (expand_assignment): Call emit_block_move_via_libcall.
2772 Do not include gt-expr.h.
2773 * expr.h (emit_block_op_via_libcall): Declare.
2774 (emit_block_copy_via_libcall): New inline function.
2775 (emit_block_move_via_libcall): Likewise.
2776 (emit_block_comp_via_libcall): Likewise.
2777 (block_clear_fn): Delete.
2778 (init_block_move_fn): Likewise.
2779 (init_block_clear_fn): Likewise.
2780 (emit_block_move_via_libcall): Likewise.
2781 (set_storage_via_libcall): Add default parameter value.
2782 * libfuncs.h (enum libfunc_index): Remove obsolete values.
2783 (abort_libfunc): Delete.
2784 (memcpy_libfunc): Likewise.
2785 (memmove_libfunc): Likewise.
2786 (memcmp_libfunc): Likewise.
2787 (memset_libfunc): Likewise.
2788 (setbits_libfunc): Likewise.
2789 (setjmp_libfunc): Likewise.
2790 (longjmp_libfunc): Likewise.
2791 (profile_function_entry_libfunc): Likewise.
2792 (profile_function_exit_libfunc): Likewise.
2793 (gcov_flush_libfunc): Likewise.
2794 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
2795 and DECL_VISIBILITY on the declaration.
2796 (init_optabs): Do not initialize obsolete libfuncs.
2797 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
2798 * tree-core.h (ECF_RET1): Define.
2799 (ECF_TM_PURE): Adjust.
2800 (ECF_TM_BUILTIN): Likewise.
2801 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
2802 (build_common_builtin_nodes): Initialize abort builtin.
2803 Add ECF_RET1 on memcpy, memmove and memset builtins.
2804 Pass final flags for alloca and alloca_with_align builtins.
2805 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
2806 obsolete builtins.
2807 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
2808 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
2809 set_storage_via_libcall and call emit_block_copy_via_libcall.
2810
2811 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
2812
2813 * config/i386/i386.md (*call_got_x32): Change operand 0 to
2814 DImode before it is passed to ix86_output_call_operand.
2815 (*call_value_got_x32): Ditto for operand 1.
2816
2817 2016-05-12 Jiong Wang <jiong.wang@arm.com>
2818
2819 PR rtl-optimization/70904
2820 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
2821 reload for wide mode.
2822
2823 2016-05-12 Marek Polacek <polacek@redhat.com>
2824
2825 PR c/70756
2826 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
2827 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
2828 * langhooks.h (incomplete_type_error): Likewise.
2829 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
2830 parameter, pass it down to incomplete_type_error.
2831 * tree.h (size_in_bytes): New inline overload.
2832 (size_in_bytes_loc): Renamed from size_in_bytes.
2833
2834 2016-05-12 Richard Biener <rguenther@suse.de>
2835
2836 PR tree-optimization/71059
2837 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
2838 nary before looking up or entering the expression into the VN
2839 hashes.
2840 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
2841 Make sure to re-use NARYs without result as inserted by
2842 phi-translation.
2843
2844 2016-05-12 Richard Biener <rguenther@suse.de>
2845
2846 PR tree-optimization/71062
2847 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
2848 field.
2849 * tree-ssa-structalias.c (set_uids_in_ptset): Set
2850 vars_contains_restrict if the var is a restrict tag.
2851 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
2852 do not disambiguate pointers against it.
2853 (dump_points_to_solution): Re-structure and adjust for new
2854 vars_contains_restrict flag.
2855 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
2856
2857 2016-05-12 Martin Liska <mliska@suse.cz>
2858
2859 * doc/invoke.texi: Explain connection between
2860 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
2861
2862 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
2863
2864 PR tree-optimization/71006
2865 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
2866 consider COND_EXPR as a mask producer.
2867
2868 2016-05-12 Marek Polacek <polacek@redhat.com>
2869
2870 PR driver/71063
2871 * opts.c (common_handle_option): Detect missing argument for --help^.
2872
2873 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2874
2875 PR target/70830
2876 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
2877 when popping the PC and within an interrupt handler routine.
2878 Add missing tab to output of "ldmfd".
2879 (output_return_instruction): Output LDMFD with SP update rather
2880 than POP when returning from interrupt handler.
2881
2882 2016-05-12 Jakub Jelinek <jakub@redhat.com>
2883
2884 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
2885 TARGET_64BIT && TARGET_AVX512DQ.
2886 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
2887 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
2888 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
2889 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
2890 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
2891 (*vec_extractv4si_zext): Add avx512dq alternative.
2892 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
2893 use v instead of x constraint in other alternatives where possible.
2894
2895 * config/i386/sse.md (sse2_loadld): Use v instead of x
2896 constraint in alternatives 0,1,4.
2897
2898 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
2899 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
2900 v constraints instead of x and <pinsr_evex_isa> isa attribute.
2901
2902 PR target/71019
2903 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
2904 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
2905 is not emitted unless TARGET_AVX512BW.
2906 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
2907 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
2908 for the result operand.
2909
2910 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
2911 constraint instead of x in avx alternatives. Use maybe_evex instead
2912 of vex prefix.
2913
2914 * config/i386/constraints.md (Yv): New constraint.
2915 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
2916 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
2917 * config/i386/i386.md (avx512fvecmode): New mode attr.
2918 (*pushtf): Use v constraint instead of x.
2919 (*movtf_internal): Likewise. For TARGET_AVX512VL and
2920 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
2921 (*absneg<mode>2): Use Yv constraint instead of x constraint.
2922 (*absnegtf2_sse): Likewise.
2923 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
2924 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
2925 avx512f alternatives.
2926 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
2927
2928 2016-05-12 Richard Biener <rguenther@suse.de>
2929
2930 PR tree-optimization/71060
2931 * tree-data-ref.c (initialize_data_dependence_relation): Do not
2932 require exact match of DR_BASE_OBJECT but only matching address and
2933 type.
2934
2935 2016-05-12 Richard Biener <rguenther@suse.de>
2936
2937 PR tree-optimization/70986
2938 * cfganal.c: Include cfgloop.h.
2939 (dfs_find_deadend): Prefer to take edges exiting loops.
2940
2941 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2942
2943 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
2944 compile and run time.
2945
2946 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
2947
2948 PR c/43651
2949 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
2950
2951 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
2952
2953 * config/i386/i386.c (legitimize_pic_address): Use
2954 copy_to_suggested_reg instead of gen_movsi.
2955
2956 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
2957
2958 * config/rs6000/predicates.md (quad_memory_operand): Move most of
2959 the code into quad_address_p and call it to share code with
2960 vsx_quad_dform_memory_operand.
2961 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
2962 d-form support.
2963 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
2964 bit instead of being a separate word. Split -mpower9-dform into
2965 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
2966 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
2967 for the register class supporting 128-bit quad word memory offsets.
2968 (mode_supports_vsx_dform_quad): Helper function to return if the
2969 register class uses quad word memory offsets.
2970 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
2971 (rs6000_debug_reg_global): Always print if we are using LRA or not.
2972 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
2973 instructions are enabled, set up the appropriate addr_masks for
2974 128-bit types.
2975 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
2976 -mpower9-dform-scalar, instead of -mpower9-dform.
2977 (rs6000_option_override_internal): Split -mpower9-dform into two
2978 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
2979 -mpower9-dform switch sets or clears both. If we are not using
2980 the LRA register allocator, do not enable -mpower9-dform-vector by
2981 default. If we are using LRA, enable -mpower9-dform-vector and
2982 -mvsx-timode if it is appropriate. Issue a warning if either
2983 -mpower9-dform-vector or -mvsx-timode are explicitly used without
2984 enabling LRA.
2985 (quad_address_offset_p): New helper function to return if the
2986 offset is legal for quad word memory instructions.
2987 (quad_address_p): New function to determin if GPR or vector
2988 register quad word memory addresses are legal.
2989 (mem_operand_gpr): Validate quad word address offsets.
2990 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
2991 d-form (register + offset) instructions.
2992 (offsettable_ok_by_alignment): Likewise.
2993 (rs6000_legitimate_offset_address_p): Likewise.
2994 (legitimate_lo_sum_address_p): Likewise.
2995 (rs6000_legitimize_address): Likewise.
2996 (rs6000_legitimize_reload_address): Add more debug statements for
2997 -mdebug=addr.
2998 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
2999 d-form instructions.
3000 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
3001 d-form instructions. Distinguish different cases in debug
3002 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
3003 d-form instructions.
3004 (rs6000_preferred_reload_class): Likewise.
3005 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
3006 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
3007 of the ISA 2.06 indexed memory instructions.
3008 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
3009 use them to save/restore the saved vector registers instead of
3010 using Altivec instructions.
3011 (rs6000_emit_epilogue): Likewise.
3012 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
3013 (rs6000_opt_masks): Split -mpower9-dform into
3014 -mpower9-dform-scalar and -mpower9-dform-vector.
3015 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
3016 was not selected.
3017 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
3018 ISA 3.0 vector indexed memory instructions, and fold the code into
3019 the normal mov<mode> patterns.
3020 (p9_vecstore_<mode>): Likewise.
3021 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
3022 instructions.
3023 (vsx_movti_64bit): Likewise.
3024 (vsx_movti_32bit): Likewise.
3025 * config/rs6000/constraints.md (wO constraint): New constraint for
3026 ISA 3.0 vector d-form support.
3027 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
3028 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
3029 include -mpower9-dform-vector until we switch over to LRA.
3030 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
3031 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
3032 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
3033 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
3034 for -mpower9-dform and -mlra.
3035 * doc/md.texi (wO constraint): Document wO constraint.
3036
3037 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
3038
3039 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
3040 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
3041 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
3042 Move handling of non-insn arguments inline into the sole user:
3043 (output_trans_func): ...here.
3044 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
3045 in emitted function prototype.
3046 (output_internal_insn_latency_func): Ditto. Simplify.
3047 (output_internal_maximal_insn_latency_func): Ditto. Delete
3048 always-unused argument.
3049 (output_insn_latency_func): Ditto.
3050 (output_maximal_insn_latency_func): Ditto.
3051
3052 2016-05-11 Richard Biener <rguenther@suse.de>
3053
3054 PR tree-optimization/71055
3055 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
3056 sth with precision not equal to access size verify we don't chop
3057 off bits.
3058
3059 2016-05-11 Richard Biener <rguenther@suse.de>
3060
3061 PR debug/71057
3062 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
3063 (dwarf2out_finish): Move retry_incomplete_types call ...
3064 (dwarf2out_early_finish): ... here.
3065
3066 2016-05-11 Richard Biener <rguenther@suse.de>
3067
3068 PR middle-end/71002
3069 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
3070 if the langhook insists on it.
3071 * fold-const.c (make_bit_field_ref): Add arg for the original
3072 reference and preserve its alias-set.
3073 (decode_field_reference): Take exp by reference and adjust it
3074 to the original memory reference.
3075 (optimize_bit_field_compare): Adjust callers.
3076 (fold_truth_andor_1): Likewise.
3077 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
3078
3079 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
3080
3081 PR middle-end/70807
3082 * cfgrtl.h (delete_insn_and_edges): Now return bool.
3083 * cfgrtl.c (delete_insn_and_edges): Likewise.
3084 * config/i386/i386.c (convert_scalars_to_vector): Remove
3085 redundant code.
3086 * cse.c (cse_insn): Compute cse_cfg_altered.
3087 (delete_trivially_dead_insns): Likewise.
3088 (cse_cc_succs): Likewise.
3089 (rest_of_handle_cse): Free dominance info if required.
3090 (rest_of_handle_cse2): Likewise.
3091 (rest_of_handle_cse_after_global_opts): Likewise.
3092
3093 2016-05-11 Alan Modra <amodra@gmail.com>
3094
3095 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
3096 abi_v4_pass_in_fpr): New functions.
3097 (rs6000_function_arg_boundary): Exclude complex IBM long double
3098 from 64-bit alignment when ABI_V4.
3099 (rs6000_function_arg, rs6000_function_arg_advance_1,
3100 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
3101
3102 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
3103
3104 PR rtl-optimization/71028
3105 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
3106 jump with just a return in the fallthrough block if the branch
3107 block contains just a return as well.
3108
3109 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
3110
3111 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
3112 * match.pd ((X & Y) ^ Y): ... this.
3113 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
3114 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
3115
3116 2016-05-10 David Malcolm <dmalcolm@redhat.com>
3117
3118 * read-md.c (require_char_ws): New function.
3119 (read_string): Simplify using require_char_ws.
3120 (handle_constants): Likewise.
3121 (handle_enum): Likewise.
3122 (handle_file): Likewise.
3123 * read-md.h (require_char_ws): New declaration.
3124 * read-rtl.c (read_conditions): Simplify using require_char_ws.
3125 (read_mapping): Likewise.
3126 (read_rtx_code): Likewise.
3127 (read_nested_rtx): Likewise.
3128
3129 2016-05-10 James Norris <jnorris@codesourcery.com>
3130
3131 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
3132 if offloading is enabled and -fopenacc or -fopenmp is specified.
3133 (CRTOFFLOADEND): Likewise.
3134 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
3135 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
3136
3137 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
3138
3139 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
3140 gotoff_operand code paths. Use copy_to_suggested_regs and
3141 expand_simple_binop where appropriate. Cleanup.
3142
3143 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
3144
3145 PR target/70799
3146 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
3147 integer constants.
3148 (dimode_scalar_chain::vector_const_cost): New.
3149 (dimode_scalar_chain::compute_convert_gain): Handle constants.
3150 (dimode_scalar_chain::convert_op): Likewise.
3151 (dimode_scalar_chain::convert_insn): Likewise.
3152
3153 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
3154
3155 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
3156 unary operation, not a binary one.
3157
3158 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
3159
3160 PR middle-end/70877
3161 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
3162 calls with type casted fndecl.
3163
3164 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
3165
3166 PR tree-optimization/70786
3167 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
3168 * calls.c (initialize_argument_information): Bind bounds
3169 with corresponding args passed by reference.
3170
3171 2016-05-10 Jakub Jelinek <jakub@redhat.com>
3172
3173 PR target/70927
3174 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
3175 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
3176 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
3177 accordingly.
3178
3179 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3180
3181 PR target/70963
3182 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
3183 code for a zero scale factor.
3184 (vsx_xvcvdpuxds_scale): Likewise.
3185
3186 2016-05-10 David Malcolm <dmalcolm@redhat.com>
3187
3188 * diagnostic-show-locus.c (layout::layout): Call show_ruler
3189 if show_ruler_p was set on the context.
3190 (layout::show_ruler): New method.
3191 * diagnostic.h (struct diagnostic_context): Add field
3192 "show_ruler_p".
3193
3194 2016-05-10 Richard Biener <rguenther@suse.de>
3195
3196 PR tree-optimization/71039
3197 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
3198 (chk_uses): New function.
3199 (propagate_with_phi): Verify we can safely replicate the lhs of an
3200 aggregate assignment on all incoming edges.
3201
3202 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
3203
3204 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
3205 Forward declare.
3206 (rx_atomic_sequence): New class.
3207 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
3208 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
3209 non-inline.
3210 (rx_atomic_sequence::rx_atomic_sequence,
3211 rx_atomic_sequence::~rx_atomic_sequence): New functions.
3212 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
3213 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
3214 CTRLREG_INTB): New constants.
3215 (FETCHOP): New code iterator.
3216 (fethcop_name, fetchop_name2): New iterator code attributes.
3217 (QIHI): New mode iterator.
3218 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
3219 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
3220 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
3221
3222 2016-05-10 Martin Liska <mliska@suse.cz>
3223
3224 * tree-inline.c (remap_dependence_clique): Do not remap
3225 debugging statements.
3226
3227 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3228
3229 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
3230 ("*fixuns_truncdfdi2_z13")
3231 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
3232 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
3233 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
3234
3235 2016-05-10 Richard Biener <rguenther@suse.de>
3236
3237 PR tree-optimization/70497
3238 PR tree-optimization/28367
3239 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
3240 split out from ...
3241 (visit_reference_op_load): ... here.
3242 (vn_reference_lookup_3): Use it to handle subreg-like accesses
3243 with simplified BIT_FIELD_REFs.
3244 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
3245 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
3246 correctly.
3247
3248 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
3249
3250 * dwarf2out.c (add_abstract_origin_attribute): Adjust
3251 documentation comment. For BLOCK nodes, add a
3252 DW_AT_abstract_origin attribute that points to the DIE generated
3253 for the origin BLOCK.
3254 (gen_lexical_block_die): Call add_abstract_origin_attribute for
3255 blocks from inlined functions.
3256
3257 2016-05-10 Alan Modra <amodra@gmail.com>
3258
3259 PR target/70947
3260 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
3261 regrename modifying insns saving lr before __morestack call.
3262 * config/rs6000/rs6000.md (split_stack_return): Similarly for
3263 insns restoring lr after __morestack call.
3264
3265 2016-05-09 Jakub Jelinek <jakub@redhat.com>
3266
3267 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
3268 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
3269 expanders.
3270 * config/i386/sse.md (vec_interleave_high<mode>,
3271 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
3272 <avx512>_vpermt2var<mode>3_maskz): Likewise.
3273
3274 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
3275
3276 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
3277 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
3278 parallel reassociation for power8 and forward.
3279
3280 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
3281
3282 * config/i386/i386.md (absneg splitters with general regs): Use
3283 general_reg_operand predicate.
3284 (btsq peephole2): Use x86_64_immediate_operand to check if new
3285 value is suitable for immediate operand. Generate emitted insn
3286 using RTL expressions.
3287 (btcq peephole2): Ditto.
3288 (btrq peephole2): Ditto. Generate correct immediate operand
3289 for AND masking.
3290
3291 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
3292
3293 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
3294 bitpos.
3295
3296 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
3297
3298 * tree-affine.c (wide_int_constant_multiple_p): Add missing
3299 pointer dereference.
3300
3301 2016-05-09 Richard Biener <rguenther@suse.de>
3302
3303 PR tree-optimization/70985
3304 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
3305 op0 isn't a gimple register.
3306
3307 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
3308
3309 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
3310 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
3311 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
3312 (i6400_fpu_mult): New cpu units.
3313 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
3314 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
3315 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
3316 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
3317 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
3318 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
3319 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
3320 (i6400_msa_long_float4, i6400_msa_long_float5)
3321 (i6400_msa_long_float8, i6400_msa_fdiv_df)
3322 (i6400_msa_fdiv_sf): New reservations.
3323 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
3324 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
3325 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
3326 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
3327 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
3328 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
3329 (msa_short_cmp, msa_short_float2, msa_short_logic3)
3330 (msa_short_store4, msa_long_load, msa_short_store)
3331 (msa_long_logic, msa_long_float2, msa_long_float4)
3332 (msa_long_float5, msa_long_float8, msa_long_mult)
3333 (msa_long_fdiv, msa_long_div): New reservations.
3334
3335 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
3336 Sameera Deshpande <sameera.deshpande@imgtec.com>
3337 Matthew Fortune <matthew.fortune@imgtec.com>
3338 Graham Stott <graham.stott@imgtec.com>
3339 Chao-ying Fu <chao-ying.fu@imgtec.com>
3340
3341 * config.gcc: Add MSA header file for mips*-*-* target.
3342 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
3343 (Ubv8i, Urv8): New constraints.
3344 * config/mips/mips-ftypes.def: Add function types for MSA
3345 builtins.
3346 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
3347 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
3348 * config/mips/mips-msa.md: New file.
3349 * config/mips/mips-protos.h
3350 (mips_split_128bit_const_insns): New prototype.
3351 (mips_msa_idiv_insns): Likewise.
3352 (mips_split_128bit_move): Likewise.
3353 (mips_split_128bit_move_p): Likewise.
3354 (mips_split_msa_copy_d): Likewise.
3355 (mips_split_msa_insert_d): Likewise.
3356 (mips_split_msa_fill_d): Likewise.
3357 (mips_expand_msa_branch): Likewise.
3358 (mips_const_vector_same_val_p): Likewise.
3359 (mips_const_vector_same_bytes_p): Likewise.
3360 (mips_const_vector_same_int_p): Likewise.
3361 (mips_const_vector_shuffle_set_p): Likewise.
3362 (mips_const_vector_bitimm_set_p): Likewise.
3363 (mips_const_vector_bitimm_clr_p): Likewise.
3364 (mips_msa_vec_parallel_const_half): Likewise.
3365 (mips_msa_output_division): Likewise.
3366 (mips_ldst_scaled_shift): Likewise.
3367 (mips_expand_vec_cond_expr): Likewise.
3368 * config/mips/mips.c (enum mips_builtin_type): Add
3369 MIPS_BUILTIN_MSA_TEST_BRANCH.
3370 (mips_gen_const_int_vector_shuffle): New prototype.
3371 (mips_const_vector_bitimm_set_p): New function.
3372 (mips_const_vector_bitimm_clr_p): Likewise.
3373 (mips_const_vector_same_val_p): Likewise.
3374 (mips_const_vector_same_bytes_p): Likewise.
3375 (mips_const_vector_same_int_p): Likewise.
3376 (mips_const_vector_shuffle_set_p): Likewise.
3377 (mips_symbol_insns): Forbid loading symbols via immediate for
3378 MSA.
3379 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
3380 stores.
3381 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
3382 MSA.
3383 (mips_lx_address_p): Add support load indexed address for MSA.
3384 (mips_address_insns): Add calculation of instructions needed for
3385 stores and loads for MSA.
3386 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
3387 CONST_VECTOR for MSA and let it fall through.
3388 (mips_ldst_scaled_shift): New function.
3389 (mips_subword_at_byte): Likewise.
3390 (mips_msa_idiv_insns): Likewise.
3391 (mips_legitimize_move): Validate MSA moves.
3392 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
3393 calculation of costs for MSA division.
3394 (mips_split_move_p): Check if MSA moves need splitting.
3395 (mips_split_move): Split MSA moves if necessary.
3396 (mips_split_128bit_move_p): New function.
3397 (mips_split_128bit_move): Likewise.
3398 (mips_split_msa_copy_d): Likewise.
3399 (mips_split_msa_insert_d): Likewise.
3400 (mips_split_msa_fill_d): Likewise.
3401 (mips_output_move): Handle MSA moves.
3402 (mips_expand_msa_branch): New function.
3403 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
3404 Reinstate 'y' modifier.
3405 (mips_file_start): Add MSA .gnu_attribute.
3406 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
3407 FPRs.
3408 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
3409 (mips_class_max_nregs): Add register size for MSA supported mode.
3410 (mips_cannot_change_mode_class): Allow conversion between MSA
3411 vector modes and TImode.
3412 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
3413 instruction.
3414 (mips_secondary_reload_class): Force MSA loads/stores via memory.
3415 (mips_preferred_simd_mode): Add preffered modes for MSA.
3416 (mips_vector_mode_supported_p): Add MSA supported modes.
3417 (mips_autovectorize_vector_sizes): New function.
3418 (mips_msa_output_division): Likewise.
3419 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
3420 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
3421 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
3422 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
3423 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
3424 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
3425 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
3426 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
3427 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
3428 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
3429 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
3430 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
3431 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
3432 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
3433 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
3434 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
3435 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
3436 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
3437 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
3438 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
3439 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
3440 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
3441 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
3442 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
3443 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
3444 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
3445 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
3446 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
3447 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
3448 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
3449 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
3450 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
3451 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
3452 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
3453 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
3454 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
3455 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
3456 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
3457 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
3458 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
3459 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
3460 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
3461 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
3462 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
3463 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
3464 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
3465 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
3466 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
3467 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
3468 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
3469 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
3470 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
3471 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
3472 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
3473 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
3474 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
3475 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
3476 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
3477 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
3478 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
3479 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
3480 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
3481 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
3482 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
3483 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
3484 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
3485 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
3486 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
3487 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
3488 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
3489 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
3490 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
3491 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
3492 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
3493 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
3494 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
3495 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
3496 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
3497 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
3498 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
3499 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
3500 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
3501 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
3502 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
3503 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
3504 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
3505 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
3506 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
3507 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
3508 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
3509 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
3510 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
3511 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
3512 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
3513 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
3514 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
3515 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
3516 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
3517 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
3518 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
3519 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
3520 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
3521 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
3522 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
3523 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
3524 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
3525 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
3526 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
3527 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
3528 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
3529 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
3530 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
3531 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
3532 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
3533 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
3534 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
3535 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
3536 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
3537 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
3538 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
3539 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
3540 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
3541 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
3542 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
3543 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
3544 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
3545 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
3546 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
3547 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
3548 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
3549 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
3550 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
3551 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
3552 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
3553 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
3554 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
3555 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
3556 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
3557 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
3558 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
3559 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
3560 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
3561 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
3562 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
3563 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
3564 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
3565 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
3566 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
3567 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
3568 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
3569 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
3570 move_v builtins.
3571 (mips_get_builtin_decl_index): New array.
3572 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
3573 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
3574 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
3575 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
3576 (mips_init_builtins): Initialize mips_get_builtin_decl_index
3577 array.
3578 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
3579 hook.
3580 (mips_expand_builtin_insn): Prepare operands for
3581 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
3582 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
3583 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
3584 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
3585 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
3586 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
3587 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
3588 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
3589 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
3590 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
3591 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
3592 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
3593 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
3594 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
3595 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
3596 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
3597 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
3598 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
3599 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
3600 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
3601 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
3602 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
3603 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
3604 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
3605 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
3606 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
3607 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
3608 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
3609 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
3610 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
3611 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
3612 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
3613 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
3614 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
3615 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
3616 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
3617 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
3618 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
3619 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
3620 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
3621 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
3622 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
3623 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
3624 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
3625 These are set implicitly and an error is reported if overridden.
3626 (mips_expand_builtin_msa_test_branch): New function.
3627 (mips_expand_msa_shuffle): Likewise.
3628 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
3629 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
3630 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
3631 (mips_expand_vec_unpack): Add support for MSA.
3632 (mips_expand_vector_init): Likewise.
3633 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
3634 instead of const0_rtx.
3635 (mips_msa_vec_parallel_const_half): New function.
3636 (mips_gen_const_int_vector): Likewise.
3637 (mips_gen_const_int_vector_shuffle): Likewise.
3638 (mips_expand_msa_cmp): Likewise.
3639 (mips_expand_vec_cond_expr): Likewise.
3640 * config/mips/mips.h
3641 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
3642 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
3643 specified.
3644 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
3645 (ISA_HAS_MSA): New macro.
3646 (UNITS_PER_MSA_REG): Likewise.
3647 (BITS_PER_MSA_REG): Likewise.
3648 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
3649 (MSA_REG_FIRST): New macro.
3650 (MSA_REG_LAST): Likewise.
3651 (MSA_REG_NUM): Likewise.
3652 (MSA_REG_P): Likewise.
3653 (MSA_REG_RTX_P): Likewise.
3654 (MSA_SUPPORTED_MODE_P): Likewise.
3655 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
3656 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
3657 * config/mips/mips.md: Include mips-msa.md.
3658 (alu_type): Add simd_add.
3659 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
3660 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
3661 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
3662 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
3663 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
3664 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
3665 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
3666 simd_move, simd_load, simd_store. Choose "multi" for moves
3667 for "qword_mode".
3668 (qword_mode): New attribute.
3669 (insn_count): Add instruction count for quad moves.
3670 Increase the count for MIPS SIMD division.
3671 (UNITMODE): Add UNITMODEs for vector types.
3672 (addsub): New code iterator.
3673 * config/mips/mips.opt (mmsa): New option.
3674 * config/mips/msa.h: New file.
3675 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
3676 specified.
3677 * config/mips/mti-linux.h: Likewise.
3678 * config/mips/predicates.md
3679 (const_msa_branch_operand): New constraint.
3680 (const_uimm3_operand): Likewise.
3681 (const_uimm4_operand): Likewise.
3682 (const_uimm5_operand): Likewise.
3683 (const_uimm8_operand): Likewise.
3684 (const_imm5_operand): Likewise.
3685 (aq10b_operand): Likewise.
3686 (aq10h_operand): Likewise.
3687 (aq10w_operand): Likewise.
3688 (aq10d_operand): Likewise.
3689 (const_m1_operand): Likewise.
3690 (reg_or_m1_operand): Likewise.
3691 (const_exp_2_operand): Likewise.
3692 (const_exp_4_operand): Likewise.
3693 (const_exp_8_operand): Likewise.
3694 (const_exp_16_operand): Likewise.
3695 (const_vector_same_val_operand): Likewise.
3696 (const_vector_same_simm5_operand): Likewise.
3697 (const_vector_same_uimm5_operand): Likewise.
3698 (const_vector_same_uimm6_operand): Likewise.
3699 (const_vector_same_uimm8_operand): Likewise.
3700 (par_const_vector_shf_set_operand): Likewise.
3701 (reg_or_vector_same_val_operand): Likewise.
3702 (reg_or_vector_same_simm5_operand): Likewise.
3703 (reg_or_vector_same_uimm6_operand): Likewise.
3704 * doc/extend.texi (MIPS SIMD Architecture Functions): New
3705 section.
3706 * doc/invoke.texi (-mmsa): Document new option.
3707
3708 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3709
3710 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
3711 * configure: Regenerate.
3712 * config.in: Regenerate.
3713 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
3714 on -fvtable-verify.
3715 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
3716 (ENDFILE_VTV_SPEC): Define.
3717
3718 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
3719
3720 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
3721 registers in all interrupt handlers if necessary.
3722 (rl78_option_override): Add warning.
3723 (MUST_SAVE_MDUC_REGISTERS): New macro.
3724 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
3725 * config/rl78/rl78.c (check_mduc_usage): New function.
3726 (mduc_regs): New structure to hold MDUC register data.
3727 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
3728 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
3729 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
3730 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
3731 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
3732 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
3733
3734 2016-05-09 Bin Cheng <bin.cheng@arm.com>
3735
3736 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
3737 (tree-ssa-loop-niter.h): Ditto.
3738 (idx_within_array_bound, ref_within_array_bound): New functions.
3739 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
3740 Factor out check on writable base object to ...
3741 (base_object_writable): ... here.
3742
3743 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3744
3745 * config/arm/arm.md (probe_stack): Add modes to set source
3746 and destination.
3747
3748 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
3749
3750 * regrename.c (base_reg_class_for_rename): New static function.
3751 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
3752
3753 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
3754
3755 * cgraph.c (thunk_adjust): Export.
3756 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
3757 * cgraphunit.c (thunk_adjust): Export.
3758 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
3759 thunks.
3760 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
3761 inlinable.
3762 * tree-inline.c (expand_call_inline): Expand thunks inline.
3763
3764 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
3765
3766 PR target/70998
3767 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
3768 (*sse2_vd_cvtss2sd): Ditto.
3769 * config/i386/i386.md
3770 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
3771 Generate *sse2_vd_cvtsd2ss pattern.
3772 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
3773 Generate *sse2_vd_cvtss2sd pattern.
3774
3775 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
3776
3777 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
3778 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
3779 users.
3780
3781 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
3782
3783 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
3784 * config/sh/sh.c: Define and declare variables on first use throughout
3785 the file.
3786 (current_function_interrupt): Change to bool type.
3787 (frame_insn): Rename to emit_frame_insn and update users.
3788 (push_regs): Use bool for 'interrupt_handler' argument.
3789 (save_schedule_s): Remove.
3790 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
3791 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
3792 targetm.asm_out.unaligned_op.di.
3793 (gen_far_branch): Remove redundant forward declaration.
3794 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
3795 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
3796 (sh_set_return_address, sh_function_ok_for_sibcall,
3797 scavenge_reg): Update comments.
3798 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
3799 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
3800 (sh_attr_renesas_p): Remove unnecessary parentheses.
3801 (branch_dest): Simplify.
3802 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
3803 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
3804 (CUMULATIVE_ARGS): Change macro to typedef.
3805 (current_function_interrupt): Change to bool type.
3806 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
3807 Surround with __cplusplus ifdef.
3808 (sh_compare_op0, sh_compare_op1): Remove.
3809 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
3810
3811 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
3812
3813 * config/arm/arm.md: (arch): Add neon.
3814 (arch_enabled): Return yes for arch neon when TARGET_NEON.
3815 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
3816 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
3817 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
3818 attributes for alt renumbering. Mark alt 3 as non-predicable.
3819 (thumb2_movdf_vfp): Likewise.
3820
3821 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
3822
3823 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
3824 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
3825 (*andqi_1): Add preferred_for_speed attribute to disparage
3826 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
3827 (*<code>qi_1): Ditto.
3828 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
3829 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
3830 (*ashlqi3_1): Ditto.
3831 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
3832 Add preferred_for_size attribute to disparage alternative 0 and
3833 preferred_for_speed attribute to disparage alternative 1 for
3834 TARGET_PARTIAL_REG_STALL targets.
3835
3836 2016-05-07 Tom de Vries <tom@codesourcery.com>
3837
3838 PR tree-optimization/70956
3839 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
3840 def.
3841
3842 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
3843
3844 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
3845 * config/sh/sh.c (sh_cbranch_distance): Implement it.
3846 * config/sh/sh.md (branch_zero): Remove define_attr.
3847 (define_delay): Disable delay slot if branch distance is one insn.
3848
3849 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
3850
3851 * config/i386/i386.md (LEAMODE): New mode attribute.
3852 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
3853 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
3854 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
3855 operand 2 predicate.
3856 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
3857 (*lea<mode>_general_3): Ditto.
3858 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
3859
3860 2016-05-06 Jakub Jelinek <jakub@redhat.com>
3861
3862 * genmddump.c (main): Convert argv from char ** to const char **.
3863
3864 2016-05-06 David Malcolm <dmalcolm@redhat.com>
3865
3866 * coretypes.h (OVERRIDE): New macro.
3867 (FINAL): New macro.
3868
3869 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
3870
3871 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
3872 allow coalescing if the types are compatible.
3873
3874 2016-05-06 David Malcolm <dmalcolm@redhat.com>
3875
3876 * pass_manager.h (pass_manager::register_pass_name): New method.
3877 (pass_manager::get_pass_by_name): New method.
3878 (pass_manager::create_pass_tab): New method.
3879 (pass_manager::m_name_to_pass_map): New field.
3880 * passes.c (name_to_pass_map): Delete global in favor of field
3881 "m_name_to_pass_map" of pass_manager.
3882 (register_pass_name): Rename from a function to...
3883 (pass_manager::register_pass_name): ...this method, updating
3884 for renaming of global "name_to_pass_map" to field
3885 "m_name_to_pass_map".
3886 (create_pass_tab): Rename from a function to...
3887 (pass_manager::create_pass_tab): ...this method, updating
3888 for renaming of global "name_to_pass_map" to field.
3889 (get_pass_by_name): Rename from a function to...
3890 (pass_manager::get_pass_by_name): ...this method.
3891 (enable_disable_pass): Convert use of get_pass_by_name to
3892 a method call, locating the pass_manager singleton.
3893
3894 2016-05-06 David Malcolm <dmalcolm@redhat.com>
3895
3896 * genattr-common.c (main): Convert argv from char ** to const char **.
3897 * genattr.c (main): Likewise.
3898 * genattrtab.c (main): Likewise.
3899 * genautomata.c (initiate_automaton_gen): Likewise.
3900 (main): Likewise.
3901 * gencodes.c (main): Likewise.
3902 * genconditions.c (main): Likewise.
3903 * genconfig.c (main): Likewise.
3904 * genconstants.c (main): Likewise.
3905 * genemit.c (main): Likewise.
3906 * genenums.c (main): Likewise.
3907 * genextract.c (main): Likewise.
3908 * genflags.c (main): Likewise.
3909 * genmddeps.c (main): Likewise.
3910 * genopinit.c (main): Likewise.
3911 * genoutput.c (main): Likewise.
3912 * genpeep.c (main): Likewise.
3913 * genpreds.c (main): Likewise.
3914 * genrecog.c (main): Likewise.
3915 * gensupport.c (init_rtx_reader_args_cb): Likewise.
3916 (init_rtx_reader_args): Likewise.
3917 * gensupport.h (init_rtx_reader_args_cb): Likewise.
3918 (init_rtx_reader_args): Likewise.
3919 * gentarget-def.c (main): Likewise.
3920 * read-md.c (read_md_files): Likewise.
3921 * read-md.h (read_md_files): Likewise.
3922
3923 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
3924
3925 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
3926 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
3927 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
3928 Remove unused predicate.
3929 (register_and_not_fp_reg_operand): Ditto.
3930
3931 2016-05-06 Martin Liska <mliska@suse.cz>
3932
3933 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
3934 instead of vec as the vector is local to the function.
3935
3936 2016-05-06 Jakub Jelinek <jakub@redhat.com>
3937
3938 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
3939 avx512bw alternative.
3940
3941 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
3942 before the ashr<mode>3 pattern.
3943
3944 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
3945 v instead of x in vex or maybe_vex alternatives, use
3946 maybe_evex instead of vex in prefix.
3947
3948 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
3949 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
3950 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
3951 in vex or maybe_vex alternatives, use maybe_evex instead of vex
3952 in prefix.
3953
3954 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
3955 v instead of x in vex or maybe_vex alternatives, use
3956 maybe_evex instead of vex in prefix.
3957
3958 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
3959 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
3960 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
3961 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
3962 alternatives, use maybe_evex instead of vex in prefix.
3963
3964 * config/i386/sse.md (vec_interleave_lowv4sf,
3965 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
3966 v instead of x in vex or maybe_vex alternatives, use
3967 maybe_evex instead of vex in prefix.
3968
3969 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
3970 v instead of x in vex or maybe_vex alternatives, use
3971 maybe_evex instead of vex in prefix.
3972
3973 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
3974 v constraint instead of x.
3975
3976 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
3977
3978 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
3979 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
3980 equality first.
3981
3982 2016-05-06 Richard Biener <rguenther@suse.de>
3983
3984 PR tree-optimization/70948
3985 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3986 Properly clobber all fields of va_list for __builtin_va_start.
3987
3988 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
3989
3990 PR debug/70935
3991 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
3992 loop latch destination.
3993
3994 2016-05-06 Martin Liska <mliska@suse.cz>
3995
3996 * tree-ssa-uninit.c: Apply manual changes
3997 to the GNU coding style.
3998 (prune_uninit_phi_opnds): Rename from
3999 prune_uninit_phi_opnds_in_unrealizable_paths.
4000
4001 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4002
4003 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
4004 mspace): Remove deprecated options.
4005 * doc/invoke.texi (SH options): Remove -mspace.
4006
4007 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4008
4009 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
4010
4011 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4012
4013 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
4014 corresponding combine split pattern.
4015
4016 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4017
4018 PR target/58219
4019 * config/sh/predicates.md (long_displacement_mem_operand): New.
4020 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
4021 Add movi20, movi20s alternatives. Adjust length attribute for
4022 alternatives.
4023 (movsi_ie): Allow for any FPU. Adjust length attribute for
4024 alternatives.
4025 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
4026 attribute for alternatives.
4027 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
4028 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
4029 length attribute for alternatives.
4030
4031 2016-05-06 Richard Biener <rguenther@suse.de>
4032
4033 PR tree-optimization/70960
4034 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
4035
4036 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4037
4038 PR target/52933
4039 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
4040 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
4041
4042 2016-05-06 Marek Polacek <polacek@redhat.com>
4043
4044 PR sanitizer/70875
4045 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
4046
4047 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
4048
4049 PR target/54089
4050 * config/sh/sh.md (*rotcr): Add another variant.
4051
4052 2016-05-06 Richard Biener <rguenther@suse.de>
4053
4054 PR middle-end/70931
4055 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
4056
4057 2016-05-06 Richard Biener <rguenther@suse.de>
4058
4059 PR middle-end/70941
4060 * fold-const.c (split_tree): Always convert to the original type
4061 before negating.
4062
4063 2016-05-06 Richard Biener <rguenther@suse.de>
4064
4065 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
4066 (fwprop_addr): Likewise.
4067
4068 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
4069
4070 PR target/70873
4071 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
4072 New prototype.
4073 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
4074 * config/i386/i386.md (push mem splitter): Use find_constant_src in
4075 the splitter condition.
4076 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
4077 the splitter condition.
4078 (FP float_extend load splitter): Ditto.
4079
4080 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
4081
4082 * config/i386/i386.md (peehole2 patterns): Change true_regnum
4083 to REGNO in all peephole2 patterns.
4084 (post-reload splitters): Change true_regnum to REGNO in
4085 post-reload splitters.
4086 (zero_extend splitters): Use general_reg_operand and
4087 nonimmediate_gr_operand predicates.
4088
4089 2016-05-05 Jakub Jelinek <jakub@redhat.com>
4090
4091 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
4092 v constraint instead of x.
4093
4094 2016-05-05 Alan Modra <amodra@gmail.com>
4095
4096 PR target/68662
4097 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
4098 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
4099 TARGET_NO_FP_IN_TOC for -mrelocatable.
4100 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
4101 TARGET_RELOCATABLE test.
4102 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
4103 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
4104 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
4105 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
4106 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
4107 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
4108 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
4109 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
4110 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
4111 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
4112 Likewise.
4113 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
4114 (rs6000_stack_info): Likewise.
4115 (rs6000_elf_asm_out_constructor): Likewise.
4116 (rs6000_elf_asm_out_destructor): Likewise.
4117 (rs6000_elf_declare_function_name): Likewise.
4118 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
4119 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
4120 Don't define.
4121
4122 2016-05-05 Alan Modra <amodra@gmail.com>
4123
4124 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
4125
4126 2016-05-05 Alan Modra <amodra@gmail.com>
4127
4128 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
4129 out-of-line gpr restore for one or two regs if that would add
4130 a save of lr.
4131
4132 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
4133
4134 PR target/70873
4135 * config/i386/i386.md
4136 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
4137 Change to post-epilogue_completed late splitter. Use sse_reg_operand
4138 as operand 0 predicate.
4139 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
4140 Ditto.
4141 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
4142 Ditto. Emit the pattern using RTX.
4143
4144 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
4145 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
4146 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
4147 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
4148 Ditto.
4149 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
4150 sse_reg_operand as operand 0 predicate.
4151
4152 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
4153 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
4154 instead of gen_rtx_REG.
4155 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
4156 Ditto.
4157
4158 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
4159
4160 * function.c (emit_use_return_register_into_block): Delete.
4161 (gen_return_pattern): Delete.
4162 (emit_return_into_block): Delete.
4163 (active_insn_between): Delete.
4164 (convert_jumps_to_returns): Delete.
4165 (emit_return_for_exit): Delete.
4166 (thread_prologue_and_epilogue_insns): Delete all code dealing with
4167 simple_return for shrink-wrapped blocks.
4168 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
4169 end of blocks that need one.
4170 (get_unconverted_simple_return): Delete.
4171 (convert_to_simple_return): Delete.
4172 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
4173 (convert_to_simple_return): Ditto.
4174
4175 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
4176
4177 * cfgcleanup.c (bb_is_just_return): New function.
4178 (try_optimize_cfg): Simplify jumps to return, branches to return,
4179 and branches around return.
4180
4181 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
4182
4183 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
4184 branch to a return.
4185
4186 2016-05-04 Jakub Jelinek <jakub@redhat.com>
4187
4188 PR c++/70906
4189 PR c++/70933
4190 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
4191 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
4192 assert flags & OEP_HASH_CHECK, instead of asserting it
4193 never happens. Handle TARGET_EXPR.
4194 * fold-const.c (operand_equal_p): For hash verification,
4195 or in OEP_HASH_CHECK into flags.
4196
4197 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
4198
4199 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
4200 comment.
4201 (compute_samebase_partition_bases): Fix typo.
4202
4203 2016-05-04 Jakub Jelinek <jakub@redhat.com>
4204
4205 * config/i386/sse.md (vec_interleave_highv8sf,
4206 vec_interleave_lowv8sf, vec_interleave_highv4df,
4207 vec_interleave_lowv4df): Remove constraints from expanders.
4208
4209 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
4210
4211 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
4212
4213 * tree-inline.c (expand_call_inline): Fix path dealing with
4214 making lhs of call statement undefined.
4215
4216 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
4217
4218 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
4219 Check availability on NODE, too.
4220 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
4221 (cgraph_node::call_for_symbol_and_aliases): Likewise.
4222 (varpool_node::call_for_symbol_and_aliase): Likewise.
4223 * ipa-pure-const.c (add_new_function): Analyze all bodies.
4224 (propagate_pure_const): Propagate across interposable functions, too.
4225 (skip_function_for_local_pure_const): Do not skip interposable bodies
4226 with aliases.
4227 (pass_local_pure_const::execute): Update.
4228
4229 2016-05-04 Marek Polacek <polacek@redhat.com>
4230
4231 * doc/invoke.texi: Document -Wdangling-else.
4232
4233 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
4234
4235 * config.gcc: Error out when conflicting multilib is detected. Do not
4236 loop over multilibs since no combination is legal.
4237
4238 2016-05-04 Alan Modra <amodra@gmail.com>
4239
4240 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
4241 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
4242 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
4243 Align .toc.
4244
4245 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
4246
4247 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
4248 Clean up p5600 comments.
4249
4250 2016-05-04 Richard Biener <rguenther@suse.de>
4251
4252 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
4253 constructor simplifications.
4254 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
4255
4256 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
4257
4258 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
4259 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
4260 result.set_rtx is null instead of aborting.
4261 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
4262 Always enable.
4263 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
4264 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
4265 *mov<mode>_store_postinc): New patterns.
4266
4267 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
4268
4269 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
4270 as commutative. Check both conversions are NOP.
4271 ((A & B) OP (C & B)): Remove.
4272
4273 2016-05-04 Alan Modra <amodra@gmail.com>
4274
4275 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
4276
4277 2016-05-04 Alan Modra <amodra@gmail.com>
4278
4279 PR target/70866
4280 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
4281 when cr2,3,4 are all fixed regs.
4282
4283 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
4284
4285 PR rtl-optimization/57193
4286 * opts.c (default_options_table): Revert OPT_frename_registers change.
4287 * doc/invoke.texi (-frename-registers, -O2): Likewise.
4288
4289 2016-05-03 Martin Sebor <msebor@redhat.com>
4290
4291 PR c++/66561
4292 * builtins.c (fold_builtin_FILE): New function.
4293 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
4294 (fold_builtin_0): Call them.
4295 * gimplify.c (gimplify_call_expr): Remove the handling of
4296 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
4297
4298 PR c++/66561
4299 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
4300 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
4301 constants.
4302
4303 PR c++/66639
4304 * doc/extend.texi (Function Names as Strings): Update __func__,
4305 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
4306 constants.
4307
4308 2016-05-03 Jakub Jelinek <jakub@redhat.com>
4309 Richard Biener <rguenther@suse.de>
4310
4311 PR tree-optimization/70916
4312 * tree-if-conv.c: Include cfganal.h.
4313 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
4314 and remove_fake_exit_edges around the optimization pass.
4315
4316 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
4317
4318 * cgraph.c (symbol_table::create_edge): Set inline_failed.
4319 (cgraph_edge::make_direct): Likewise.
4320 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
4321 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
4322 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
4323 (CIF_THUNK): New code.
4324 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
4325 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
4326 (compute_inline_parameters): Set inline_failed for thunks.
4327 (inline_analyze_function): Cleanup.
4328 * ipa-inline.c (can_inline_edge_p): Do not deal with
4329 call_stmt_cannot_inline_p.
4330 (can_early_inline_edge_p): Likewise.
4331 (early_inliner): Initialize inline_failed.
4332 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
4333
4334 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
4335
4336 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
4337 from nonimm_ssenomem_operand.
4338 (nonimm_ssenomem_operand): New predicate.
4339 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
4340 as operand 0 predicate.
4341 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
4342 Disable unsupported alternatives using "enabled" attribute.
4343 Use register_ssemem_operand as operand 0 predicate.
4344 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
4345
4346 2016-05-03 Marek Polacek <polacek@redhat.com>
4347
4348 PR c/70859
4349 * input.c (expansion_point_location): New function.
4350 * input.h (expansion_point_location): Declare.
4351
4352 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
4353
4354 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
4355 occurence with frame_offset_ ones.
4356
4357 2016-05-03 Alan Modra <amodra@gmail.com>
4358
4359 PR rtl-optimization/70890
4360 * ira.c (combine_and_move_insns): When moving def_insn, remove
4361 equivs on use_insn.
4362
4363 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
4364
4365 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
4366 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
4367 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
4368 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
4369
4370 2016-05-03 Alan Modra <amodra@gmail.com>
4371
4372 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
4373 for SAVE_MULTIPLE/STORE_MULTIPLE.
4374
4375 2016-05-03 Jakub Jelinek <jakub@redhat.com>
4376
4377 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
4378 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
4379
4380 2016-05-03 Richard Biener <rguenther@suse.de>
4381
4382 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
4383 default true.
4384 (gimplify_arg): Likewise.
4385 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
4386 re-writing the result to a decl if required.
4387 (internal_get_tmp_var): Add allow_ssa parameter
4388 and override into_ssa with it.
4389 (get_formal_tmp_var): Adjust.
4390 (get_initialized_tmp_var): Add allow_ssa parameter.
4391 (gimplify_arg): Add allow_ssa parameter and avoid generating
4392 SSA names for the result false.
4393 (gimplify_call_expr): If the call may return twice do not
4394 gimplify parameters into SSA.
4395 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
4396 (gimplify_modify_expr): Adjust assert. For noreturn calls
4397 with a SSA name LHS adjust its def.
4398 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
4399 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
4400 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
4401 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
4402 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
4403 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
4404 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
4405 (optimize_target_teams): Do not allow SSA names for clause operands.
4406 (gimplify_expr): Likewise for where we mark the result addressable.
4407 * passes.def (pass_init_datastructures): Remove.
4408 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
4409 (rewrite_stmt): Likewise.
4410 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
4411 (replace_locals_op): Replace SSA names.
4412 (copy_gimple_seq_and_replace_locals): Init src_cfun.
4413 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
4414 * cgraph.c (release_function_body): Free CFG annotations only
4415 when we have a CFG. Simplify.
4416 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
4417 force_gimple_operand instead of get_initialized_tmp_var.
4418 * tree-pass.h (make_pass_init_datastructures): Remove.
4419 * tree-ssa.c (execute_init_datastructures): Remove.
4420 (pass_data_init_datastructures): Likewise.
4421 (class pass_init_datastructures): Likewise.
4422 (make_pass_init_datastructures): Likewise.
4423 * omp-low.c (create_omp_child_function): Init SSA data structures.
4424 (grid_expand_target_grid_body): Likewise.
4425 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
4426 name before adding it to names_to_release.
4427 (remove_bb): Always release SSA defs.
4428 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
4429 before dereferencing it.
4430 * cgraphunit.c (init_lowered_empty_function): Always
4431 int SSA data structures.
4432 * tree-ssanames.c (release_defs): Remove assert that we are in
4433 SSA form.
4434 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
4435
4436 2016-05-03 Jakub Jelinek <jakub@redhat.com>
4437 Uros Bizjak <ubizjak@gmail.com>
4438
4439 PR rtl-optimization/70467
4440 * config/i386/predicates.md (x86_64_hilo_int_operand,
4441 x86_64_hilo_general_operand): New predicates.
4442 * config/i386/constraints.md (Wd): New constraint.
4443 * config/i386/i386.md (mode attr di): Use Wd instead of e.
4444 (general_hilo_operand): New mode attr.
4445 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
4446 instead of <general_operand>.
4447 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
4448 x86_64_hilo_general_operand instead of <general_operand>.
4449
4450 2016-05-03 Jakub Jelinek <jakub@redhat.com>
4451
4452 PR tree-optimization/70916
4453 * tree-if-conv.c (constant_or_ssa_name): Removed.
4454 (fold_build_cond_expr): Use is_gimple_val instead of
4455 constant_or_ssa_name.
4456
4457 PR tree-optimization/70916
4458 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
4459 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
4460
4461 PR target/49244
4462 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
4463 (optimize_atomic_bit_test_and): New function.
4464 (pass_fold_builtins::execute): Use it.
4465 * optabs.def (atomic_bit_test_and_set_optab,
4466 atomic_bit_test_and_complement_optab,
4467 atomic_bit_test_and_reset_optab): New optabs.
4468 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
4469 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
4470 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
4471 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
4472 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
4473 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
4474 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
4475 * doc/md.texi (atomic_bit_test_and_set@var{mode},
4476 atomic_bit_test_and_complement@var{mode},
4477 atomic_bit_test_and_reset@var{mode}): Document.
4478 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
4479 atomic_bit_test_and_complement<mode>,
4480 atomic_bit_test_and_reset<mode>): New expanders.
4481 (atomic_bit_test_and_set<mode>_1,
4482 atomic_bit_test_and_complement<mode>_1,
4483 atomic_bit_test_and_reset<mode>_1): New insns.
4484
4485 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
4486
4487 PR rtl-optimization/70687
4488 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
4489 instead of unsigned HOST_WIDE_INT.
4490
4491 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
4492
4493 PR rtl-optimization/44281
4494 * hard-reg-set.h (struct target_hard_regs): New field
4495 x_fixed_nonglobal_reg_set.
4496 (fixed_nonglobal_reg_set): New macro.
4497 * reginfo.c (init_reg_sets_1): Initialize it.
4498 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
4499 of fixed_reg_set.
4500 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
4501
4502 2016-05-03 Bin Cheng <bin.cheng@arm.com>
4503
4504 PR tree-optimization/56541
4505 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
4506 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
4507 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
4508 (any_complicated_phi): new static variable.
4509 (aggressive_if_conv): delete.
4510 (if_convertible_phi_p): support phis with more than two arguments.
4511 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
4512 critical pred edges.
4513 (ifcvt_split_critical_edges): support phis with more than two
4514 arguments by checking new parameter. only split critical edges
4515 if needed.
4516 (tree_if_conversion): handle simd pragma marked loop using new
4517 local variable aggressive_if_conv. check any_complicated_phi.
4518
4519 2016-05-03 Bin Cheng <bin.cheng@arm.com>
4520
4521 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
4522 before using it.
4523
4524 2016-05-03 Bin Cheng <bin.cheng@arm.com>
4525
4526 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
4527 cbase.
4528
4529 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
4530
4531 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
4532 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
4533 define_insn_and_split.
4534 (mulsi3_i): New define_insn_and_split.
4535 (mulsi3_call): Convert to define_insn.
4536 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
4537 Remove constraints.
4538
4539 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
4540
4541 * machmode.h (mode_complex): Add support to give the complex mode
4542 for a given mode.
4543 (GET_MODE_COMPLEX_MODE): Likewise.
4544 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
4545 stored by build_complex_type and gfc_build_complex_type instead of
4546 trying to figure out the appropriate mode based on the size. Raise
4547 an assertion error, if the type was not set.
4548 * genmodes.c (struct mode_data): Add field for the complex type of
4549 the given type.
4550 (blank_mode): Likewise.
4551 (make_complex_modes): Remember the complex mode created in the
4552 base type.
4553 (emit_mode_complex): Write out the mode_complex array to map a
4554 type mode to the complex version.
4555 (emit_insn_modes_c): Likewise.
4556 * tree.c (build_complex_type): Set the complex type to use before
4557 calling layout_type.
4558 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
4559 support for __float128 complex datatypes.
4560 (rs6000_hard_regno_mode_ok): Likewise.
4561 (rs6000_setup_reg_addr_masks): Likewise.
4562 (rs6000_complex_function_value): Likewise.
4563 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
4564 __float128 and __ibm128 complex.
4565 (FLOAT128_IBM_P): Likewise.
4566 (ALTIVEC_ARG_MAX_RETURN): Likewise.
4567 * doc/extend.texi (Additional Floating Types): Document that
4568 -mfloat128 must be used to enable __float128. Document complex
4569 __float128 and __ibm128 support.
4570
4571 2016-05-02 Jakub Jelinek <jakub@redhat.com>
4572
4573 PR target/49244
4574 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
4575 char/short arguments promoted to int because of promote_prototypes.
4576
4577 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
4578
4579 * config/i386/predicates.md (register_ssemem_operand): New predicate.
4580 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
4581 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
4582 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
4583 alternatives using "enabled" attribute. Use register_ssemem_operand
4584 as operand 1 predicate.
4585 (*cmpi<unord>xf_i387): Split XFmode pattern from
4586 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
4587 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
4588 *absneg<mode>2_i387. Disable unsupported alternatives using
4589 "enabled" attribute.
4590 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
4591
4592 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
4593
4594 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
4595 marker.
4596 (oacc_loop_process): Check mask for loop termination.
4597
4598 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
4599
4600 * cif-code.def (CIF_THUNK): Add.
4601 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
4602 accidental change.
4603
4604 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
4605
4606 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
4607 (dump_inline_summary): Dump it.
4608 (fp_expression_p): New predicate.
4609 (estimate_function_body_sizes): Use it.
4610 (inline_merge_summary): Merge fp_expressions.
4611 (inline_read_section): Read fp_expressions.
4612 (inline_write_summary): Write fp_expressions.
4613 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
4614 codegen boundary if either caller or callee is !fp_expressions.
4615 * ipa-inline.h (inline_summary): Add fp_expressions.
4616 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
4617 to fp_expressions be sure the fp generation flags are updated.
4618
4619 2016-05-02 Jakub Jelinek <jakub@redhat.com>
4620
4621 PR rtl-optimization/70467
4622 * cse.c (cse_insn): Handle no-op MEM moves after folding.
4623
4624 PR rtl-optimization/70467
4625 * ipa-pure-const.c (check_call): Handle internal calls even in
4626 ipa mode like in local mode.
4627
4628 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
4629
4630 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
4631
4632 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
4633
4634 * match.pd (X u< X, X u> X): New transformations.
4635
4636 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
4637
4638 * flag-types.h (enum warn_strict_overflow_code): Move ...
4639 * coretypes.h: ... here.
4640 * fold-const.h (fold_overflow_warning): Declare.
4641 * fold-const.c (fold_overflow_warning): Make non-static.
4642 (fold_comparison): Move the transformation of X +- C1 CMP C2
4643 into X CMP C2 -+ C1 ...
4644 * match.pd: ... here.
4645 * gimple-fold.c (fold_stmt_1): Protect with
4646 fold_defer_overflow_warnings.
4647
4648 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
4649
4650 * omp-low.c (struct oacc_loop): Add 'inner' field.
4651 (new_oacc_loop_raw): Initialize it to zero.
4652 (oacc_loop_fixed_partitions): Initialize it.
4653 (oacc_loop_auto_partitions): Partition outermost loop to outermost
4654 available partitioning.
4655
4656 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
4657
4658 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
4659 register_operand.
4660 (umulsidi3): Likewise.
4661 (indirect_jump): Fix jump instruction assembly patterns.
4662
4663 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
4664
4665 PR target/70860
4666 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
4667 (nvptx_function_value): Assert non-NULL cfun.
4668
4669 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
4670
4671 PR rtl-optimization/70886
4672 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
4673
4674 * cselib.h (rtx_equal_for_cselib_1): Declare.
4675 (rtx_equal_for_cselib_p: New inline function.
4676 * cselib.c (rtx_equal_for_cselib_p): Delete.
4677 (rtx_equal_for_cselib_1): Make public.
4678
4679 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
4680
4681 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
4682 (register_mixssei387nonimm_operand): Remove predicate.
4683 * config/i386/i386.md (*fop_<mode>_comm): Merge from
4684 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
4685 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
4686 for TARGET_MIX_SSE_I387 alternatives.
4687 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
4688 Disable unsupported alternatives using "enabled" attribute. Use
4689 nonimm_ssenomem_operand as operand 1 predicate. Also check
4690 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
4691
4692 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
4693
4694 * tree.c (cst_and_fits_in_hwi): Simplify.
4695
4696 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
4697
4698 * tree.h (wi::to_wide): New function.
4699 * expr.c (expand_expr_real_1): Use wi::to_wide.
4700 * fold-const.c (int_const_binop_1): Likewise.
4701 (extract_muldiv_1): Likewise.
4702
4703 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
4704
4705 * wide-int.h: Update offset_int and widest_int documentation.
4706 (WI_SIGNED_SHIFT_RESULT): New macro.
4707 (wi::binary_shift): Define signed_shift_result_type for
4708 shifts on offset_int- and widest_int-like types.
4709 (generic_wide_int): Support <<= and >>= if << and >> are supported.
4710 * tree.h (int_bit_position): Use shift operators instead of wi::
4711 shifts.
4712 * alias.c (adjust_offset_for_component_ref): Likewise.
4713 * expr.c (get_inner_reference): Likewise.
4714 * fold-const.c (fold_comparison): Likewise.
4715 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
4716 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
4717 * tree-dfa.c (get_ref_base_and_extent): Likewise.
4718 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
4719 (stmt_kills_ref_p): Likewise.
4720 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
4721 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
4722 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
4723 (ao_ref_init_from_vn_reference): Likewise.
4724
4725 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
4726
4727 * wide-int.h: Update offset_int and widest_int documentation.
4728 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
4729 (wi::binary_traits): Allow ordered comparisons between offset_int and
4730 offset_int, between widest_int and widest_int, and between either
4731 of these types and basic C types.
4732 (operator <, <=, >, >=): Define for the same combinations.
4733 * tree.h (tree_int_cst_lt): Use comparison operators instead
4734 of wi:: comparisons.
4735 (tree_int_cst_le): Likewise.
4736 * gimple-fold.c (fold_array_ctor_reference): Likewise.
4737 (fold_nonarray_ctor_reference): Likewise.
4738 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
4739 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
4740 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
4741 * tree-sra.c (completely_scalarize): Likewise.
4742 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
4743 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
4744 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
4745 (check_for_binary_op_overflow): Likewise.
4746 (search_for_addr_array): Likewise.
4747 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
4748
4749 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
4750
4751 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
4752 (arc_save_restore): Likewise.
4753 (arc_dwarf_register_span): Likewise.
4754 (arc_output_pic_addr_const): Initialize suffix variable.
4755
4756 2016-05-02 Martin Liska <mliska@suse.cz>
4757
4758 * symbol-summary.h (function_summary::function_summary):
4759 Remove checking assert for all cgraph nodes.
4760 (function_summary::get): Check summary_uid.
4761 (symtab_insertion): Check summary_uid.
4762
4763 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
4764
4765 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
4766 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
4767 bmaskn instruction.
4768 (arc_dwarf_register_span): Remove enum keyword.
4769 (compact_memory_operand_p): New function.
4770 * config/arc/arc.h (reg_class): Add code density register classes.
4771 (REG_CLASS_NAMES): Likewise.
4772 (REG_CLASS_CONTENTS): Likewise.
4773 * config/arc/arc.md (*movqi_insn): Add code density instructions.
4774 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
4775 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
4776 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
4777 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
4778 constraints.
4779 (h, Rcd, Rsd, Rzd): New register constraints.
4780 (T): Use compact_memory_operand_p function.
4781 * config/arc/predicates.md (compact_load_memory_operand): Remove.
4782
4783 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
4784
4785 * config/sh/sh.md (*negnegt, *movtt): Remove.
4786
4787 2016-05-02 Marek Polacek <polacek@redhat.com>
4788 Tom de Vries <tom@codesourcery.com>
4789
4790 PR tree-optimization/70700
4791 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
4792 bigger than FIRST_REF_NODE.
4793
4794 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
4795
4796 PR target/52898
4797 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
4798 TARGET_CMPEQDI_T.
4799 (prepare_cbranch_operands): Don't use scratch register. Assume that
4800 function is used when pseudos can be created.
4801 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
4802 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
4803 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
4804 define_expand. Allow it only when pseudos can be created.
4805 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
4806
4807 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
4808
4809 * config/i386/constraints.md (BC): Only allow -1 operands.
4810 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
4811 Add "enabled" attribute. Update XI mode attribute calculation.
4812 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
4813 (*movoi_internal_avx): Update XI mode attribute calculation.
4814 (*movti_internal): Ditto.
4815
4816 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
4817
4818 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
4819 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
4820
4821 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
4822
4823 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
4824 statement on instruction code. Remove trailing spaces.
4825 (altivec_expand_stv_builtin): Likewise.
4826
4827 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
4828
4829 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
4830 (TARGET_FPU_DOUBLE): Simplify.
4831 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
4832 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
4833 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
4834 with 'TARGET_FPU_DOUBLE'.
4835 * config/sh/sh.md: Likewise.
4836
4837 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
4838
4839 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
4840 SH_DIV_STR_FOR_SIZE): Remove.
4841 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
4842 SH_DIV_STR_FOR_SIZE): Remove.
4843
4844 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
4845
4846 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
4847 logical_reg_operand): Delete.
4848 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
4849 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
4850 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
4851 match_operand and match_test.
4852 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
4853 variables on their first use. Return bool values.
4854 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
4855 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
4856 arith_reg_operand for input operand. Remove empty constraints.
4857 (xorsi3): Delete.
4858 (*xorsi3_compact): Rename to xorsi3.
4859 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
4860 (*zero_extend<mode>si2_disp_mem): Update comment.
4861 (mov_nop): Delete.
4862
4863 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
4864
4865 * config/sh/t-sh: Remove SH5 support.
4866 * config.gcc: Likewise.
4867 * configure: Likewise.
4868
4869 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4870
4871 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
4872
4873 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
4874
4875 * config/sh/sh.c (register_sh_passes, sh_option_override,
4876 sh_print_operand, prepare_move_operands,
4877 sh_can_follow_jump): Remove TARGET_SH1 checks.
4878 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
4879 PROMOTE_MODE): Likewise.
4880 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
4881 movdi): Likewise.
4882
4883 2016-04-30 Alan Modra <amodra@gmail.com>
4884
4885 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
4886 restoring when fixed_reg_p, but allow out-of-line or stmw save.
4887 Check for user regs later to avoid unnecessary looping over regs.
4888 Merge user reg check with non-saved reg check. Don't force
4889 inline VR restore when static chain used.
4890 (rs6000_frame_related): Omit eh_frame info for user regs when
4891 saving.
4892 (fixed_regs_p): Delete.
4893
4894 2016-04-30 Alan Modra <amodra@gmail.com>
4895
4896 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
4897 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
4898 Update all uses.
4899
4900 2016-04-30 Alan Modra <amodra@gmail.com>
4901
4902 PR target/69645
4903 * config/rs6000/rs6000.c (fixed_reg_p): New function.
4904 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
4905 Update all uses.
4906
4907 2016-04-30 Alan Modra <amodra@gmail.com>
4908
4909 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
4910 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
4911 flag_pic test for Darwin.
4912
4913 2016-04-30 Alan Modra <amodra@gmail.com>
4914
4915 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
4916 throw_calls_crossed.
4917 (REG_FREQ_CALLS_CROSSED): Delete.
4918 (REG_N_THROWING_CALLS_CROSSED): Delete.
4919 * regstat.c (regstat_bb_compute_ri): Don't calculate
4920 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
4921 (dump_reg_info): Don't print call cross frequency.
4922 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
4923 and REG_N_THROWING_CALLS_CROSSED.
4924
4925 2016-04-30 Alan Modra <amodra@gmail.com>
4926
4927 * regs.h (struct reg_info_t): Delete live_length.
4928 (REG_LIVE_LENGTH): Delete macro.
4929 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
4930 local_live, local_processed and local_live_last_luid params.
4931 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
4932 Formatting fixes.
4933 (regstat_compute_ri): Adjust for above. Don't set
4934 REG_LIVE_LENGTH.
4935 (dump_reg_info): Don't print live length.
4936 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
4937 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
4938 Localize loop_depth var.
4939
4940 2016-04-30 Alan Modra <amodra@gmail.com>
4941
4942 * ira.c (enum valid_equiv): New.
4943 (validate_equiv_mem): Return enum.
4944 (update_equiv_mem): Create replacement in more cases.
4945 (add_store_equivs): Update validate_equiv_mem call.
4946
4947 2016-04-30 Alan Modra <amodra@gmail.com>
4948
4949 * ira.c (combine_and_move_insns): Rather than scanning insns,
4950 use DF infrastucture to find use and def insns.
4951
4952 2016-04-30 Alan Modra <amodra@gmail.com>
4953
4954 ira.c (combine_and_move_insns): Move invariant conditions..
4955 (ira.c): ..to here. Call combine_and_move_insns before
4956 add_store_equivs. Call grow_reg_equivs later. Allocate
4957 req_equiv later using max_reg_num() rather than global max_regno.
4958 (contains_replace_regs): Delete.
4959 (add_store_equivs): Remove contains_replace_regs test.
4960
4961 2016-04-30 Alan Modra <amodra@gmail.com>
4962
4963 * ira.c (struct equiv_mem_data): New.
4964 (equiv_mem, equiv_mem_modified): Delete static vars.
4965 (validate_equiv_mem_from_store): Use "data" param to communicate..
4966 (validate_equiv_mem): ..from here.
4967
4968 2016-04-30 Alan Modra <amodra@gmail.com>
4969
4970 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
4971 split out from..
4972 (update_reg_equivs): ..here. Move allocation and freeing of
4973 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
4974 end_alias_analysis to..
4975 (ira): ..here.
4976
4977 2016-04-30 Alan Modra <amodra@gmail.com>
4978
4979 * ira.c (pdx_subregs): Delete.
4980 (struct equivalence): Add pdx_subregs field.
4981 (set_paradoxical_subreg): Remove pdx_subregs param. Update
4982 pdx_subregs access.
4983 (update_equiv_regs): Don't create or free pdx_subregs. Update
4984 pdx_subregs access.
4985
4986 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4987
4988 * config/rs6000/altivec.h: Change definitions of vec_xl and
4989 vec_xst.
4990 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
4991 (LD_ELEMREV_V2DI): New.
4992 (LD_ELEMREV_V4SF): New.
4993 (LD_ELEMREV_V4SI): New.
4994 (LD_ELEMREV_V8HI): New.
4995 (LD_ELEMREV_V16QI): New.
4996 (ST_ELEMREV_V2DF): New.
4997 (ST_ELEMREV_V2DI): New.
4998 (ST_ELEMREV_V4SF): New.
4999 (ST_ELEMREV_V4SI): New.
5000 (ST_ELEMREV_V8HI): New.
5001 (ST_ELEMREV_V16QI): New.
5002 (XL): New.
5003 (XST): New.
5004 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5005 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
5006 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
5007 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
5008 (altivec_expand_builtin): Add handling for
5009 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
5010 (rs6000_invalid_builtin): Add error-checking for
5011 RS6000_BTM_P9_VECTOR.
5012 (altivec_init_builtins): Define builtins used to implement vec_xl
5013 and vec_xst.
5014 (rs6000_builtin_mask_names): Define power9-vector.
5015 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
5016 (RS6000_BTM_P9_VECTOR): Define.
5017 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
5018 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
5019 (vsx_ld_elemrev_v2df): Likewise.
5020 (vsx_ld_elemrev_v4sf): Likewise.
5021 (vsx_ld_elemrev_v4si): Likewise.
5022 (vsx_ld_elemrev_v8hi): Likewise.
5023 (vsx_ld_elemrev_v16qi): Likewise.
5024 (vsx_st_elemrev_v2df): Likewise.
5025 (vsx_st_elemrev_v2di): Likewise.
5026 (vsx_st_elemrev_v4sf): Likewise.
5027 (vsx_st_elemrev_v4si): Likewise.
5028 (vsx_st_elemrev_v8hi): Likewise.
5029 (vsx_st_elemrev_v16qi): Likewise.
5030 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
5031 grammar.
5032
5033 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
5034
5035 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
5036 out into ...
5037 (simplify_control_stmt_condition_1): ... here. Recurse into
5038 BIT_AND_EXPRs and BIT_IOR_EXPRs.
5039
5040 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
5041
5042 PR target/69810
5043 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
5044 (zero_extendqi<mode>2_dot): Revert earlier conversion from
5045 define_insn_and_split to define_insn.
5046 (zero_extendqi<mode>2_dot2): Same.
5047 (extendqi<mode>2_dot): Same.
5048 (extendqi<mode>2_dot2): Same.
5049
5050 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
5051
5052 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
5053 (probe_stack): New expander.
5054 (probe_stack_<mode>): New insn pattern.
5055
5056 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
5057
5058 * config/i386/i386.md
5059 (operations with memory inputs setting flags peephole2):
5060 Remove uneeded REG_P checks. Cleanup pattern generation.
5061
5062 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
5063
5064 * tree-vect-loop.c (vect_transform_loop): Fix
5065 nb_iterations_upper_bound computation for vectorized loop.
5066
5067 2016-04-29 Marek Polacek <polacek@redhat.com>
5068 Jakub Jelinek <jakub@redhat.com>
5069
5070 PR sanitizer/70342
5071 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
5072 TARGET_EXPR_SLOT as a base.
5073
5074 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
5075
5076 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
5077 with 'rCm2' constraints to limit possible immediate size.
5078 (*load_zeroextendqisi_update): Likewise.
5079 (*load_signextendqisi_update): Likewise.
5080 (*loadhi_update): Likewise.
5081 (*load_zeroextendhisi_update): Likewise.
5082 (*load_signextendhisi_update): Likewise.
5083 (*loadsi_update): Likewise.
5084 (*loadsf_update): Likewise.
5085
5086 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
5087
5088 * config/i386/predicates.md (constm1_operand): Fix comparison.
5089
5090 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
5091
5092 * testsuite/gcc.target/arc/ieee_eq.c: New test.
5093
5094 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
5095
5096 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
5097 remaining SH5 related settings.
5098 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
5099 shmedia_prepare_call_address): Delete.
5100 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
5101 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
5102 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
5103 UNSUPPORTED_SH2A): Remove m5 checks.
5104 (sh_divide_strategy_e): Remove SH5 division strategies.
5105 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
5106 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
5107
5108 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
5109
5110 * config/s390/s390.c (s390_rtx_costs): Update documentation.
5111
5112 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5113
5114 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
5115 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
5116 Change lder to ldr.
5117 * config/s390/vector.md ("mov<mode>"): Likewise.
5118
5119 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
5120
5121 * config/s390/constraints.md ("U", "W"): Invoke
5122 s390_mem_constraint with "ZR" and "ZT".
5123 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
5124 addresses when using LRA. Accept also short displacements for S
5125 and T constraints. Do not check for long displacement target for
5126 S and T constraints.
5127 (s390_mem_constraint): Remove handling of U and W constraints.
5128 * config/s390/s390.md (various patterns): Remove the short
5129 displacement constraints (Q and R) if a long displacement
5130 constraint is present. Add longdisp as required CPU capability.
5131 * config/s390/vector.md: Likewise.
5132 * config/s390/vx-builtins.md: Likewise.
5133
5134 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5135
5136 PR target/60040
5137 * reload1.c (reload): Call finish_spills before
5138 restarting reload loop. Skip select_reload_regs
5139 if update_eliminables_and_spill returns true.
5140
5141 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
5142
5143 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
5144 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
5145 (umulhisi3_imm): Update predicates and constraint letters.
5146 (umulhisi3_reg): Declare instruction as commutative.
5147 * config/arc/constraints.md (J12, J16): New constraints.
5148 * config/arc/predicates.md (short_unsigned_const_operand): New
5149 predicate.
5150 (arc_short_operand): Likewise.
5151 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
5152
5153 2016-04-29 Richard Biener <rguenther@suse.de>
5154
5155 PR tree-optimization/13962
5156 PR tree-optimization/65686
5157 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
5158 * tree-ssa-alias.c (ptrs_compare_unequal): New function
5159 using PTA to compare pointers.
5160 * match.pd: Add pattern for pointer equality compare simplification
5161 using ptrs_compare_unequal.
5162
5163 2016-04-29 Richard Biener <rguenther@suse.de>
5164
5165 * stor-layout.c (layout_type): Do not build a pointer-to-element
5166 type for arrays.
5167
5168 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
5169
5170 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
5171 Use SWI mode iterator. Use general_reg_operand predicate.
5172 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
5173 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
5174 predicates.
5175
5176 2016-04-29 Jakub Jelinek <jakub@redhat.com>
5177
5178 PR middle-end/70843
5179 * fold-const.c (operand_equal_p): Don't verify hash value equality
5180 if arg0 == arg1.
5181 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
5182 and OMP_CLAUSE.
5183
5184 2016-04-28 Jakub Jelinek <jakub@redhat.com>
5185
5186 PR target/70858
5187 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
5188 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
5189 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
5190 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
5191 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
5192
5193 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
5194
5195 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
5196 to info. Don't initialize separate fields to 0. Clean up
5197 formatting a bit.
5198
5199 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
5200
5201 * config/i386/i386.md (peephole2s for operations with memory inputs):
5202 Use SWI mode iterator.
5203 (peephole2s for operations with memory outputs): Ditto.
5204 Do not check for stack checking probe.
5205
5206 (probe_stack): Remove expander.
5207
5208 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
5209 Andrew Burgess <andrew.burgess@embecosm.com>
5210
5211 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
5212 operands as 32-bits.
5213
5214 2016-04-28 Jason Merrill <jason@redhat.com>
5215
5216 * gdbinit.in: Skip line-map.h.
5217
5218 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
5219 Andrew Burgess <andrew.burgess@embecosm.com>
5220
5221 * config/arc/arc.c (arc_conditional_register_usage): Take
5222 TARGET_RRQ_CLASS into account.
5223 (arc_print_operand): Support printing 'p' and 's' operands.
5224 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
5225 as 0.
5226 (TARGET_RRQ_CLASS): Define.
5227 (IS_POWEROF2_OR_0_P): Define.
5228 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
5229 alternatives.
5230 (*tst_movb): New define_insn.
5231 (*tst): Avoid recognition if it could prevent '*tst_movb'
5232 combination; replace c/CnL with c/Chs alternative.
5233 (*tst_bitfield_tst): New define_insn.
5234 (*tst_bitfield_asr): New define_insn.
5235 (*tst_bitfield): New define_insn.
5236 (andsi3_i): Add Rrq variant.
5237 (extzv): New define_expand.
5238 (insv): New define_expand.
5239 (*insv_i): New define_insn.
5240 (*movb): New define_insn.
5241 (*movb_signed): New define_insn.
5242 (*movb_high): New define_insn.
5243 (*movb_high_signed): New define_insn.
5244 (*movb_high_signed + 1): New define_split pattern.
5245 (*mrgb): New define_insn.
5246 (*mrgb + 1): New define_peephole2 pattern.
5247 (*mrgb + 2): New define_peephole2 pattern.
5248 * config/arc/arc.opt (mbitops): New option for nps400, uses
5249 TARGET_NPS_BITOPS_DEFAULT.
5250 * config/arc/constraints.md (q): Make register class conditional.
5251 (Rrq): New register constraint.
5252 (Chs): New constraint.
5253 (Clo): New constraint.
5254 (Chi): New constraint.
5255 (Cbf): New constraint.
5256 (Cbn): New constraint.
5257 (C18): New constraint.
5258 (Cbi): New constraint.
5259
5260 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
5261
5262 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
5263 dst->popcount.
5264 (bitmap_intersection_of_preds): Ditto.
5265 (bitmap_union_of_succs): Ditto.
5266 (bitmap_union_of_preds): Ditto.
5267 * sbitmap.c (do_popcount): Delete.
5268 (BITMAP_DEBUGGING): Delete.
5269 (sbitmap_verify_popcount): Delete.
5270 (sbitmap_alloc): Don't initialize the popcount field.
5271 (sbitmap_alloc_with_popcount): Delete.
5272 (sbitmap_resize): Don't resize the popcount array.
5273 (sbitmap_vector_alloc): Don't initialize the popcount field.
5274 (bitmap_copy): Don't copy the popcount array.
5275 (bitmap_clear): Don't clear the popcount array.
5276 (bitmap_clear): Delete the popcount array handling.
5277 (bitmap_ior_and_compl): Delete the popcount assert.
5278 (bitmap_not): Ditto.
5279 (bitmap_and_compl): Ditto.
5280 (bitmap_and): Delete the popcount array handling.
5281 (bitmap_xor): Ditto.
5282 (bitmap_ior): Ditto.
5283 (bitmap_or_and): Delete the popcount assert.
5284 (bitmap_and_or): Ditto.
5285 (popcount_table): Delete.
5286 (sbitmap_elt_popcount): Delete.
5287 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
5288 (bitmap_set_bit): Delete the popcount assert.
5289 (bitmap_clear_bit): Ditto.
5290 (sbitmap_free): Don't free the popcount array.
5291 (sbitmap_alloc_with_popcount): Delete declaration.
5292 (sbitmap_popcount): Ditto.
5293
5294 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
5295 Andrew Burgess <andrew.burgess@embecosm.com>
5296
5297 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
5298 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
5299 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
5300 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
5301 * config/arc/arc.opt (mcmem): New option.
5302 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
5303 supply length for r/m alternative.
5304 (*extendqisi2_ac): Likewise.
5305 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
5306 r/Uex alternative.
5307 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
5308 (movhi_insn): Likewise.
5309 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
5310 (*zero_extendqihi2_i): Add r/Ucm alternative.
5311 (*zero_extendqisi2_ac): Likewise.
5312 (*zero_extendhisi2_i): Likewise.
5313 * config/arc/constraints.md (Uex): New memory constraint.
5314 (Ucm): New define_constraint.
5315 * config/arc/predicates.md (long_immediate_loadstore_operand):
5316 Return 0 for MEM with cmem_address address.
5317 (cmem_address_0): New predicates.
5318 (cmem_address_1): Likewise.
5319 (cmem_address_2): Likewise.
5320 (cmem_address): Likewise.
5321
5322 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
5323
5324 * config/rs6000/rs6000.c (machine_function): Rename
5325 insn_chain_scanned_p to spe_insn_chain_scanned_p.
5326 (rs6000_stack_info): Adjust.
5327
5328 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
5329 Andrew Burgess <andrew.burgess@embecosm.com>
5330
5331 * config/arc/constraints.md (Usd): Convert to define_constraint.
5332 (Us<): Likewise.
5333 (Us>): Likewise.
5334
5335 2016-04-28 Jakub Jelinek <jakub@redhat.com>
5336
5337 PR target/70821
5338 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
5339 Add new peephole2 where the first insn is *mov<mode>_or instead of
5340 *mov<mode>_internal.
5341
5342 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
5343
5344 * tracer.c (bb_seen): Make static.
5345
5346 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
5347
5348 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
5349 support, setup defaults.
5350 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
5351 * config/arc/arc.c (arc_init): Add NPS400 support.
5352 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
5353 (TARGET_ARC700): NPS400 is also an ARC700.
5354 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
5355
5356 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
5357
5358 PR target/70668
5359 * config/nds32/nds32.md (casesi): Don't access the operands array
5360 out of bounds.
5361
5362 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
5363
5364 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
5365 (or $-1,reg peephole2): Ditto.
5366 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
5367
5368 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
5369
5370 * doc/extend.texi (Common Function Attributes) [optimize]:
5371 Discourage use of the optimize attribute.
5372
5373 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
5374
5375 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
5376 special case builtin.
5377 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
5378 ALTIVEC_BUILTIN_VEC_ADDE.
5379 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
5380 support for ALTIVEC_BUILTIN_VEC_ADDE.
5381 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
5382 for __builtin_vec_adde.
5383
5384 2016-04-28 Jakub Jelinek <jakub@redhat.com>
5385
5386 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
5387 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
5388
5389 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5390
5391 PR testsuite/70595
5392 * doc/sourcebuild.texi (Effective-Target Keywords, Other
5393 attributes): Document cilkplus_runtime.
5394
5395 2016-04-28 Martin Jambor <mjambor@suse.cz>
5396
5397 * tree-cfg.c (verify_expr): Verify that local declarations belong to
5398 this function. Call verify_expr on MEM_REFs and bases of other
5399 handled_components.
5400
5401 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5402
5403 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
5404 for WORD_REGISTER_OPERATIONS to runtime check.
5405
5406 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
5407
5408 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
5409
5410 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
5411
5412 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
5413 big-endian compilation.
5414 * config/arc/arc.md (addf3): Likewise.
5415 (subdf3): Likewise.
5416 (muldf3): Likewise.
5417
5418 2016-04-28 Richard Biener <rguenther@suse.de>
5419
5420 PR tree-optimization/70840
5421 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
5422 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
5423 Mark x * pow(x,c) -> pow(x,c+1) commutative.
5424 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
5425
5426 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5427
5428 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
5429 and explain why in a comment.
5430
5431 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
5432
5433 * config/arc/arc.md (cpu_facility): Add fpx variant.
5434 (subdf3): Prohibit use reverse sub when assist operations option
5435 is enabled.
5436 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
5437 instructions only when FPX is enabled.
5438 * testsuite/gcc.target/arc/trsub.c: New test.
5439
5440 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
5441
5442 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
5443 mult_operator when calculating "type" attribute.
5444 (*fop_<mode>_1_i387): Ditto.
5445 (*fop_xf_1_i387): Ditto.
5446 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
5447 Use std::swap to swap operands. Use RTL expressions to generate
5448 converted pattern.
5449
5450 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
5451 Joern Rennecke <joern.rennecke@embecosm.com>
5452
5453 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
5454 declaration.
5455 (emit_pic_move): Remove.
5456 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
5457 * config/arc/arc.c (emit_pic_move): Removed.
5458 (TARGET_HAVE_TLS): Define.
5459 (arc_conditional_register_usage): Test for arc_tp_regno.
5460 (arc_print_operand, arc_print_operand_address): Handle TLS
5461 unspecs.
5462 (arc_needs_pcl_p): New function.
5463 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
5464 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
5465 (arc_raw_symbolic_reference_mentioned_p): Likewise.
5466 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
5467 (arc_legitimize_tls_address): Likewise.
5468 (DTPOFF_ZERO_SYM): Define.
5469 (arc_legitimize_pic_address): Make it static, handle TLS cases.
5470 (arc_output_pic_addr_const): Print TLS unspecs.
5471 (prepare_pic_move): New function, replaces emit_pic_move.
5472 (arc_legitimate_constant_p): Handle TLS unspecs.
5473 (arc_legitimate_address_p): Likewise.
5474 (arc_rewrite_small_data_p): Use assert for TLS constants.
5475 (prepare_move_operands): Use prepare_pic_move.
5476 (arc_legitimize_address): Legitimize tls addresses.
5477 (arc_epilogue_uses): Check for arc_tp_regno.
5478 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
5479 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
5480 Define.
5481 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
5482 Likewise.
5483 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
5484 %(arc_tls_extra_start_spec).
5485 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
5486 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
5487 (EH_USES): Define.
5488 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
5489 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
5490 (UNSPEC_TLS_OFF): Add.
5491 (R10_REG): Define.
5492 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
5493 (get_thread_pointersi): New patterns.
5494 * config/arc/arc.opt (mtp-regno): New option.
5495 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
5496 (move_dest_operand): Likewise.
5497 * configure: Regenerate.
5498 * configure.ac: Add arc*-*-* case to test for tls.
5499 * doc/invoke.texi (ARC options): Document mtp-regno.
5500
5501 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
5502
5503 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
5504 the new ARC HS SIMD instructions.
5505 (arc_preferred_simd_mode): New function.
5506 (arc_autovectorize_vector_sizes): Likewise.
5507 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
5508 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
5509 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
5510 (arc_init_builtins): Add new SIMD builtin types.
5511 (arc_split_move): Handle 64 bit vector moves.
5512 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
5513 (TARGET_PLUS_QMACW): Define.
5514 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
5515 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
5516 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
5517 (VSUBADD4H): New builtins.
5518 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
5519 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
5520
5521 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
5522 Matthias Klose <doko@debian.org>
5523
5524 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
5525
5526 2016-04-28 Richard Biener <rguenther@suse.de>
5527
5528 PR middle-end/70777
5529 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
5530 canonicalization.
5531
5532 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
5533
5534 * common/config/sh/sh-common.c: Remove SH5 support.
5535 * config/sh/constraints.md: Likewise.
5536 * config/sh/config/sh/elf.h: Likewise.
5537 * config/sh/linux.h: Likewise.
5538 * config/sh/netbsd-elf.h: Likewise.
5539 * config/sh/predicates.md: Likewise.
5540 * config/sh/sh-c.c: Likewise.
5541 * config/sh/sh-protos.h: Likewise.
5542 * config/sh/sh.c: Likewise.
5543 * config/sh/sh.h: Likewise.
5544 * config/sh/sh.md: Likewise.
5545 * config/sh/sh.opt: Likewise.
5546 * config/sh/sync.md: Likewise.
5547 * config/sh/sh64.h: Delete.
5548 * config/sh/shmedia.h: Likewise.
5549 * config/sh/shmedia.md: Likewise.
5550 * config/sh/sshmedia.h: Likewise.
5551 * config/sh/t-netbsd-sh5-64: Likewise.
5552 * config/sh/t-sh64: Likewise.
5553 * config/sh/ushmedia.h: Likewise.
5554
5555 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
5556
5557 * config/i386/i386.md (sign_extend to memory peephole2s): Use
5558 general_reg_operand instead of register_operand predicate.
5559
5560 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5561
5562 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
5563
5564 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
5565
5566 * match.pd (A - B > A, A + B < A): New transformations.
5567
5568 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
5569
5570 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
5571 which defaults to true. Emit an outer pair of parentheses only if
5572 EMIT_PARENS. When continuing a chain of && or || (or & or |),
5573 don't emit parentheses for the right-hand operand.
5574
5575 2016-04-27 Jeff Law <law@redhat.com>
5576
5577 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
5578
5579 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5580
5581 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
5582 (altivec_lvx_<mode>_internal): Document.
5583 (altivec_lvx_<mode>_2op): New define_insn.
5584 (altivec_lvx_<mode>_1op): Likewise.
5585 (altivec_lvx_<mode>_2op_si): Likewise.
5586 (altivec_lvx_<mode>_1op_si): Likewise.
5587 (altivec_stvx_<mode>): Remove.
5588 (altivec_stvx_<mode>_internal): Document.
5589 (altivec_stvx_<mode>_2op): New define_insn.
5590 (altivec_stvx_<mode>_1op): Likewise.
5591 (altivec_stvx_<mode>_2op_si): Likewise.
5592 (altivec_stvx_<mode>_1op_si): Likewise.
5593 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5594 Expand vec_ld and vec_st during parsing.
5595 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
5596 changes.
5597 (altivec_expand_stvx_be): Likewise.
5598 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
5599 address-masking behavior in RTL.
5600 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
5601 address-masking behavior in RTL.
5602 (altivec_expand_builtin): Change builtin code arguments for calls
5603 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
5604 (insn_is_swappable_p): Avoid incorrect swap optimization in the
5605 presence of lvx/stvx patterns.
5606 (alignment_with_canonical_addr): New function.
5607 (alignment_mask): Likewise.
5608 (find_alignment_op): Likewise.
5609 (recombine_lvx_pattern): Likewise.
5610 (recombine_stvx_pattern): Likewise.
5611 (recombine_lvx_stvx_patterns): Likewise.
5612 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
5613 stvx patterns from expand.
5614 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
5615 expansions.
5616 (vector_altivec_store_<mode>): Likewise.
5617
5618 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
5619
5620 * config/aarch64/aarch64.md
5621 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
5622 remove the "fp" attributes.
5623 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
5624 add the "simd" attributes.
5625 (*movdf_aarch64): Likewise.
5626 (*movtf_aarch64): Remove the "fp" attributes.
5627 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
5628 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
5629
5630 2016-04-27 David Malcolm <dmalcolm@redhat.com>
5631
5632 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
5633 rtx to rtx_code_label *.
5634 * rtl.h (maybe_set_first_label_num): Likewise.
5635
5636 2016-04-27 David Malcolm <dmalcolm@redhat.com>
5637
5638 * df-core.c (df_add_problem): Make the problem param be const.
5639 (df_remove_problem): Make local "problem" be const.
5640 * df-problems.c (problem_RD): Make const.
5641 (problem_LR): Likewise.
5642 (problem_LIVE): Likewise.
5643 (problem_MIR): Likewise.
5644 (problem_CHAIN): Likewise.
5645 (problem_WORD_LR): Likewise.
5646 (problem_NOTE): Likewise.
5647 (problem_MD): Likewise.
5648 * df-scan.c (problem_SCAN): Likewise.
5649 * df.h (struct df_problem): Make field "dependent_problem" be
5650 const.
5651 (struct dataflow): Likewise for field "problem".
5652 (df_add_problem): Make param const.
5653
5654 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
5655
5656 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
5657 inter-unit moves to/from vector registers are enabled. Do not disable
5658 for TARGET_MMX.
5659
5660 2016-04-27 David Malcolm <dmalcolm@redhat.com>
5661
5662 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
5663 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
5664 #define to...
5665 (enum df_problem_id): ...this new enum.
5666 (struct df_problem): Convert field "id" from "int" to
5667 enum df_problem_id.
5668
5669 2016-04-27 David Malcolm <dmalcolm@redhat.com>
5670
5671 * rtl.def: Update comment for "things in the instruction chain" to
5672 reflect the removal of the leading "i" field for INSN_UID in
5673 r210360. Fix bogus apostrophe.
5674
5675 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
5676
5677 * config/i386/i386.md
5678 (lea arith with mem operand + setcc peephole2): Set operator mode.
5679
5680 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
5681
5682 PR target/70155
5683 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
5684 (dimode_scalar_to_vector_candidate_p): This.
5685 (timode_scalar_to_vector_candidate_p): New function.
5686 (scalar_to_vector_candidate_p): Likewise.
5687 (timode_check_non_convertible_regs): Likewise.
5688 (timode_remove_non_convertible_regs): Likewise.
5689 (remove_non_convertible_regs): Likewise.
5690 (remove_non_convertible_regs): Renamed to ...
5691 (dimode_remove_non_convertible_regs): This.
5692 (scalar_chain::~scalar_chain): Make it virtual.
5693 (scalar_chain::compute_convert_gain): Make it pure virtual.
5694 (scalar_chain::mark_dual_mode_def): Likewise.
5695 (scalar_chain::convert_insn): Likewise.
5696 (scalar_chain::convert_registers): Likewise.
5697 (scalar_chain::add_to_queue): Make it protected.
5698 (scalar_chain::emit_conversion_insns): Likewise.
5699 (scalar_chain::replace_with_subreg): Likewise.
5700 (scalar_chain::replace_with_subreg_in_insn): Likewise.
5701 (scalar_chain::convert_op): Likewise.
5702 (scalar_chain::convert_reg): Likewise.
5703 (scalar_chain::make_vector_copies): Likewise.
5704 (scalar_chain::convert_registers): New pure virtual function.
5705 (class dimode_scalar_chain): New class.
5706 (class timode_scalar_chain): Likewise.
5707 (scalar_chain::mark_dual_mode_def): Renamed to ...
5708 (dimode_scalar_chain::mark_dual_mode_def): This.
5709 (timode_scalar_chain::mark_dual_mode_def): New function.
5710 (timode_scalar_chain::convert_insn): Likewise.
5711 (dimode_scalar_chain::convert_registers): Likewise.
5712 (scalar_chain::compute_convert_gain): Renamed to ...
5713 (dimode_scalar_chain::compute_convert_gain): This.
5714 (scalar_chain::replace_with_subreg): Renamed to ...
5715 (dimode_scalar_chain::replace_with_subreg): This.
5716 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
5717 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
5718 (scalar_chain::make_vector_copies): Renamed to ...
5719 (dimode_scalar_chain::make_vector_copies): This.
5720 (scalar_chain::convert_reg): Renamed to ...
5721 (dimode_scalar_chain::convert_reg ): This.
5722 (scalar_chain::convert_op): Renamed to ...
5723 (dimode_scalar_chain::convert_op): This.
5724 (scalar_chain::convert_insn): Renamed to ...
5725 (dimode_scalar_chain::convert_insn): This.
5726 (scalar_chain::convert): Call convert_registers.
5727 (convert_scalars_to_vector): Change to scalar_chain pointer to
5728 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
5729 in 32-bit mode. Delete scalar_chain pointer. Call
5730 free_dominance_info in 64-bit mode.
5731 (pass_stv::gate): Remove TARGET_64BIT check.
5732 (ix86_option_override): Put the 64-bit STV pass before the CSE
5733 pass.
5734
5735 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
5736
5737 * dwarf2out.h (struct dw_loc_descr_node): Remove the
5738 dw_loc_frame_offset field.
5739 * dwarf2out.c (new_loc_descr): Likewise.
5740 (resolve_args_picking_1): Turn the VISITED hash set into a
5741 FRAME_OFFSET hash map. Use it to associate a frame offset to
5742 visited nodes. Remove uses of the CHECKING_P macro.
5743 (resolve_args_picking): Update call to resolve_args_picking_1.
5744
5745 2016-04-27 Martin Liska <mliska@suse.cz>
5746
5747 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
5748 (free_loop_data): Release vuses of groups.
5749
5750 2016-04-27 Bin Cheng <bin.cheng@arm.com>
5751
5752 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
5753 instead of redundant use_id and boolean have_use_for.
5754 (struct iv_use): Change sub_id into group_id. Remove field next.
5755 Move fields: related_cands, n_map_members, cost_map and selected
5756 to ...
5757 (struct iv_group): ... here. New structure.
5758 (struct iv_common_cand): Use structure declaration directly.
5759 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
5760 (MAX_CONSIDERED_USES): Rename macro to ...
5761 (MAX_CONSIDERED_GROUPS): ... here.
5762 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
5763 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
5764 (dump_uses): Rename to ...
5765 (dump_groups): ... here. Update all uses.
5766 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
5767 (find_induction_variables): Refactor format of dump information.
5768 (record_sub_use): Delete.
5769 (record_use): Update all uses.
5770 (record_group): New function.
5771 (record_group_use, find_interesting_uses_op): Call above functions.
5772 Update all uses.
5773 (find_interesting_uses_cond): Ditto.
5774 (group_compare_offset): New function.
5775 (split_all_small_groups): Rename to ...
5776 (split_small_address_groups_p): ... here. Update all uses.
5777 (split_address_groups): Update all uses.
5778 (find_interesting_uses): Refactor format of dump information.
5779 (add_candidate_1): Update all uses. Remove redundant check on iv,
5780 base and step.
5781 (add_candidate, record_common_cand): Remove redundant assert.
5782 (add_iv_candidate_for_biv): Update use.
5783 (add_iv_candidate_derived_from_uses): Update all uses.
5784 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
5785 (alloc_use_cost_map): Ditto.
5786 (set_use_iv_cost, get_use_iv_cost): Rename to ...
5787 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
5788 (determine_use_iv_cost_generic): Ditto.
5789 (determine_group_iv_cost_generic): Ditto.
5790 (determine_use_iv_cost_address): Ditto.
5791 (determine_group_iv_cost_address): Ditto.
5792 (determine_use_iv_cost_condition): Ditto.
5793 (determine_group_iv_cost_cond): Ditto.
5794 (determine_use_iv_cost): Ditto.
5795 (determine_group_iv_cost): Ditto.
5796 (set_autoinc_for_original_candidates): Update all uses.
5797 (find_iv_candidates): Update all uses. Refactor dump information.
5798 (determine_use_iv_costs): Ditto.
5799 (determine_iv_costs): Ditto.
5800 (iv_ca_cand_for_use): Rename to ...
5801 (iv_ca_cand_for_group): ... here. Update all uses.
5802 (iv_ca_add_use, iv_ca_add_group): Ditto.
5803 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
5804 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
5805 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
5806 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
5807 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
5808 (create_new_iv, adjust_iv_update_pos): Ditto.
5809 (rewrite_use_address): Delete.
5810 (rewrite_use_address_1): Rename to ...
5811 (rewrite_use_address): ... here.
5812 (rewrite_use_compare): Update all uses.
5813 (rewrite_use): Delete.
5814 (rewrite_uses): Rename to ...
5815 (rewrite_groups): ... here. Update all uses.
5816 (remove_unused_ivs, free_loop_data): Update all uses.
5817 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
5818
5819 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5820
5821 * rtlanal.c (nonzero_bits1): Convert preprocessor check
5822 for WORD_REGISTER_OPERATIONS to runtime check.
5823
5824 2016-04-27 Richard Biener <rguenther@suse.de>
5825
5826 PR ipa/70760
5827 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
5828 aggregate_value_p to determine if a function result is
5829 returned by reference.
5830 (ipa_pta_execute): Functions having their address taken are
5831 not automatically nonlocal.
5832
5833 2016-04-27 Jakub Jelinek <jakub@redhat.com>
5834
5835 PR sanitizer/70683
5836 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
5837 * fold-const.c (operand_equal_p): If flag_checking and
5838 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
5839 and if it returns non-zero, assert iterative_hash_expr on both
5840 args is the same.
5841
5842 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
5843
5844 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
5845
5846 2016-04-27 Nick Clifton <nickc@redhat.com>
5847
5848 PR middle-end/49889
5849 * varasm.c (merge_weak): Generate an error if an attempt is made
5850 to convert a non-weak static function into a weak, public function.
5851
5852 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5853
5854 * params.def (MAX_PARTITION_SIZE): New param.
5855 * doc/invoke.texi: Document lto-max-partition.
5856
5857 2016-04-27 Richard Biener <rguenther@suse.de>
5858
5859 PR ipa/70785
5860 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
5861 function cummulating used_from_other_partition, externally_visible
5862 and force_output from aliases.
5863 (refered_from_nonlocal_var): Likewise.
5864 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
5865 node flags properly.
5866
5867 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
5868
5869 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
5870 (-Wmemset-elt-size): New item.
5871
5872 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
5873
5874 PR ada/70759
5875 * stor-layout.h (internal_reference_types): Delete.
5876 * stor-layout.c (reference_types_internal): Likewise.
5877 (internal_reference_types): Likewise.
5878 (layout_type) <REFERENCE_TYPE>: Adjust.
5879
5880 2016-04-27 Jakub Jelinek <jakub@redhat.com>
5881
5882 PR sanitizer/70683
5883 * tree.h (inchash::add_expr): Add FLAGS argument.
5884 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
5885 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
5886 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
5887 Formatting fix. Adjust recursive calls. For tcc_comparison,
5888 if swap_tree_comparison (code) is smaller than code, hash that
5889 and arguments in the other order. Hash CONVERT_EXPR the same
5890 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
5891 of ADDR_EXPR of decl as the decl itself. Add or remove
5892 OEP_ADDRESS_OF from recursive flags as needed. For
5893 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
5894 operands commutatively and only the third one normally.
5895 For internal CALL_EXPR hash in CALL_EXPR_IFN.
5896
5897 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
5898
5899 * config/rtems.h (LIB_SPEC): Add -latomic.
5900
5901 2016-04-27 Joel Sherrill <joel@rtems.org>
5902
5903 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
5904 xilink.ld and flags not relevant to RTEMS.
5905
5906 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
5907
5908 * toplev.c (backend_init_target): Avoid calling init_reload when using
5909 LRA.
5910
5911 2016-04-26 Jakub Jelinek <jakub@redhat.com>
5912
5913 * reorg.c (try_merge_delay_insns): Declare i and j inside the
5914 for loops rather than one for the whole function.
5915
5916 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
5917
5918 * match.pd (X + CST CMP X): New transformation.
5919
5920 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
5921
5922 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
5923 * fold-const.c (fold_binary_loc): Remove 2 transformations
5924 superseded by match.pd.
5925 * match.pd (x+x -> x*2): Generalize to integers.
5926
5927 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
5928
5929 * config/i386/i386.md (operation on memory peephole): Duplicate an
5930 existing peephole and adapt it to match lea rather than an operation
5931 that clobbers CC.
5932
5933 PR rtl-optimization/57193
5934 * opts.c (default_options_table): Add OPT_frename_registers at -O2
5935 and above.
5936 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
5937
5938 2016-04-26 Bin Cheng <bin.cheng@arm.com>
5939
5940 * tree-if-conv.c (any_pred_load_store): New static variable.
5941 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
5942 any_pred_load_store instead of and_mask_load_store.
5943 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
5944 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
5945 (combine_blocks, tree_if_conversion): Ditto.
5946
5947 2016-04-26 Bin Cheng <bin.cheng@arm.com>
5948
5949 PR tree-optimization/70771
5950 PR tree-optimization/70775
5951 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
5952 virtual PHI nodes. Delete parameter.
5953 (if_convertible_loop_p_1): Delete argument to above function.
5954 (predicate_all_scalar_phis): Delete code handling single-argument
5955 PHIs.
5956 (tree_if_conversion): Mark and update virtual SSA.
5957
5958 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5959
5960 PR target/61821
5961 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
5962 (x86_elf_aligned_common): Rename to ...
5963 (x86_elf_aligned_decl_common): ... this.
5964 Add decl arg. Switch to .lbss for largecomm object. Use
5965 LARGECOMM_SECTION_ASM_OP.
5966 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
5967 renaming.
5968 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
5969 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
5970 Pass new decl arg.
5971 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
5972 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
5973
5974 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5975
5976 PR target/59407
5977 * config/i386/i386.c (SECTION_LARGE): Define.
5978 (x86_64_elf_select_section): Set it for large data/bss sections.
5979 Only clear SECTION_WRITE for .lrodata.
5980 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
5981 data/bss sections.
5982 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
5983 * varasm.c (default_elf_asm_named_section): Grow flagchars.
5984 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
5985 SECTION_MACH_DEP.
5986 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
5987 * doc/tm.texi: Regenerate.
5988
5989 2016-04-26 Jakub Jelinek <jakub@redhat.com>
5990
5991 PR bootstrap/70704
5992 * configure.ac (--enable-checking): Document extra flag, for
5993 non-release builds default to --enable-checking=yes,extra.
5994 If misc checking and extra checking, define CHECKING_P to 2 instead
5995 of 1.
5996 * common.opt (fchecking=): Add.
5997 * doc/invoke.texi (-fchecking=): Document.
5998 * doc/install.texi: Document --enable-checking changes.
5999 * configure: Regenerated.
6000 * config.in: Regenerated.
6001
6002 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
6003
6004 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
6005 attribute instead of which_alternative.
6006 * config/i386/sse.md (*mov<mode>_internal): Ditto.
6007 Use EXT_REX_SSE_REG_P where appropriate.
6008
6009 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
6010
6011 * config/i386/predicates.md (const0_operand): Do not match
6012 const_wide_int code.
6013 (const1_operand): Ditto.
6014
6015 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
6016
6017 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
6018 for SSE constm1 operands and TARGET_AVX512VL.
6019 (*movti_internal): Ditto.
6020 (*mov<mode>_or): Use constm1_operand predicate.
6021 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
6022 for SSE vector_all_ones operands and TARGET_AVX512VL.
6023 * config/i386/predicates.md (constm1_operand): New predicate.
6024 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
6025 emission of constant -1 load.
6026
6027 2016-04-25 Jason Merrill <jason@redhat.com>
6028
6029 * gdbinit.in: Skip is-a.h.
6030
6031 * attribs.c (register_scoped_attributes): Fix logic.
6032 * attribs.h: Declare register_scoped_attributes.
6033
6034 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6035
6036 * config/rs6000/rs6000-builtin.def: Correct pasto error for
6037 stxvd2x and stxvw4x built-in functions.
6038
6039 2016-04-25 DJ Delorie <dj@redhat.com>
6040
6041 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
6042 (ashrhi3): Likewise.
6043 (lshrhi3): Likewise.
6044
6045 2016-04-25 Richard Biener <rguenther@suse.de>
6046
6047 PR tree-optimization/70780
6048 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
6049 wasn't visited yet.
6050 (compute_antic): Mark blocks with abnormal preds as visited as
6051 they have a final empty antic-in solution already.
6052
6053 2016-04-25 Michael Collison <michael.collison@linaro.org>
6054
6055 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
6056
6057 2016-04-25 Michael Collison <michael.collison@linaro.org>
6058
6059 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
6060 mode is VQI to improve mixed mode vectorization.
6061 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
6062 define_insn to match low half of signed vaddw.
6063 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
6064 define_insn to match high half of signed vaddw.
6065 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
6066 define_insn to match low half of unsigned vaddw.
6067 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
6068 define_insn to match high half of unsigned vaddw.
6069 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
6070 (arm_simd_check_vect_par_cnst_half_p): Likewise.
6071 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
6072 for new function.
6073 (arm_simd_check_vect_par_cnst_half_p): Likewise.
6074 * config/arm/predicates.md (vect_par_constant_high): Support
6075 big endian and simplify by calling
6076 arm_simd_check_vect_par_cnst_half
6077 (vect_par_constant_low): Likewise.
6078
6079 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
6080
6081 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
6082 predicate for operand 2.
6083
6084 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
6085 H.J. Lu <hongjiu.lu@intel.com>
6086
6087 * config/i386/i386-protos.h (standard_sse_constant_p): Add
6088 machine_mode argument.
6089 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
6090 constm1_rtx operands. For VOIDmode constants, get mode from
6091 pred_mode. Check mode size if the mode is supported by ABI.
6092 (standard_sse_constant_opcode): Do not use standard_constant_p.
6093 Strictly check ABI support for all-ones operands.
6094 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
6095 immediates. Update calls to standard_sse_constant_p.
6096 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
6097 (ix86_rtx_costs): Ditto.
6098 * config/i386/i386.md (*movxi_internal_avx512f): Use
6099 nonimmediate_or_sse_const_operand instead of vector_move_operand.
6100 Use (v,BC) alternative instead of (v,C). Use register_operand
6101 checks instead of MEM_P.
6102 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
6103 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
6104 isa attribute. Use register_operand checks instead of MEM_P.
6105 (*movti_internal): Use nonimmediate_or_sse_const_operand for
6106 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
6107 alternative and corresponding sse2 isa attribute.
6108 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
6109 to standard_sse_constant_p.
6110 (FP constant splitters): Ditto.
6111 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
6112 (C): Ditto.
6113 * config/i386/predicates.md (constm1_operand): Remove.
6114 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
6115 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
6116 vector_all_ones_operand instead of constm1_operand.
6117
6118 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6119
6120 * print-rtl.c (print_rtx_insn_vec): New function.
6121 * print-rtl.h: New prototype.
6122 * store-motion.c (struct st_expr): Make avail_stores a vector.
6123 (st_expr_entry): Adjust.
6124 (free_st_expr_entry): Likewise.
6125 (print_store_motion_mems): Likewise.
6126 (find_moveable_store): Likewise.
6127 (compute_store_table): Likewise.
6128 (delete_store): Likewise.
6129 (build_store_vectors): Likewise.
6130
6131 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6132
6133 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
6134
6135 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6136
6137 * vec.h (vec_safe_contains): New function.
6138 (vec::contains): Likewise.
6139 (vec::begin): Likewise.
6140 (vec::end): Likewise.
6141
6142 2016-04-23 Jakub Jelinek <jakub@redhat.com>
6143
6144 PR sanitizer/70712
6145 * cfgexpand.c (expand_stack_vars): Fix typo.
6146
6147 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
6148
6149 * system.h (list, map, set, vector): Include conditionally.
6150 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
6151 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
6152 * ipa-icf.c (INCLUDE_LIST): Define.
6153 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
6154 * config/sh/sh.c (INCLUDE_VECTOR): Define.
6155 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
6156 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
6157 * cp/logic.cc (INCLUDE_LIST): Define.
6158 * fortran/trans-common.c (INCLUDE_MAP): Define.
6159
6160 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
6161
6162 * auto-profile.c: Remove <string.h> include.
6163 * ipa-icf-gimple.c: Remove <list> include.
6164 * diagnostic.c: Remove <new> include.
6165 * genmatch.c: Likewise.
6166 * pretty-print.c: Likewise.
6167 * toplev.c: Likewise
6168 * c/c-objc-common.c: Likewise.
6169 * cp/error.c: Likewise.
6170 * fortran/error.c: Likewise.
6171
6172 2016-04-22 Richard Biener <rguenther@suse.de>
6173
6174 * lto-streamer-in.c (input_ssa_names): Do not allocate
6175 GIMPLE_NOP for all SSA names.
6176 * lto-streamer-out.c (output_ssa_names): Do not output
6177 SSA names that should have been released.
6178
6179 2016-04-22 Richard Biener <rguenther@suse.de>
6180
6181 PR tree-optimization/70740
6182 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
6183 VDEF.
6184
6185 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
6186
6187 PR target/70750
6188 * config/i386/predicates.md (call_insn_operand): Replace
6189 sibcall_memory_operand with memory_operand.
6190
6191 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
6192
6193 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
6194 has_single_use() tests.
6195 (register_edge_assert_for_1): Likewise.
6196 (find_assert_locations_1): Check the liveness bitmap instead of
6197 checking has_single_use().
6198
6199 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
6200
6201 PR target/70728
6202 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
6203 Extract AVX-512BW constraint from AVX.
6204
6205 2016-04-21 Richard Biener <rguenther@suse.de>
6206
6207 PR tree-optimization/70725
6208 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
6209 for phi_convertible_by_degenerating_args.
6210 (predicate_all_scalar_phis): Handle single-argument PHIs.
6211
6212 2016-04-21 Richard Biener <rguenther@suse.de>
6213
6214 PR middle-end/70747
6215 * fold-const.c (fold_comparison): Return properly typed
6216 constant boolean.
6217
6218 2016-04-21 Bin Cheng <bin.cheng@arm.com>
6219
6220 PR tree-optimization/70715
6221 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
6222 after expanding BASE using expand_simple_operations.
6223
6224 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
6225
6226 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
6227 New transformations.
6228
6229 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
6230
6231 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
6232
6233 2016-04-20 Jan Hubicka <jh@suse.cz>
6234
6235 * ipa-inline.c (can_inline_edge_p): Pass caller info to
6236 ultiimate_alias_target.
6237 (update_callee_keys): Likewise.
6238 (lookup_recursive_calls): Likewise.
6239 (speculation_useful_p): Likewise.
6240
6241 2016-04-20 Jan Hubicka <jh@suse.cz>
6242
6243 PR ipa/70018
6244 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
6245 (set_nothrow_flag_1): ... this; handle interposition correctly;
6246 recurse on aliases and thunks.
6247 (cgraph_node::set_nothrow_flag): New.
6248 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
6249 functions compiled with non-call exceptions that binds to current
6250 def.
6251 (propagate_nothrow): Be safe WRT interposition.
6252 * cgraph.h (set_nothrow_flag): Update prototype.
6253
6254 2016-04-18 Jan Hubicka <jh@suse.cz>
6255
6256 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
6257 max_loop_iterations_int.
6258 (tree_unswitch_outer_loop): Likewise.
6259
6260 2016-04-20 Bin Cheng <bin.cheng@arm.com>
6261
6262 PR tree-optimization/69489
6263 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
6264 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
6265 Revise dump message.
6266 (if_convertible_bb_p): Remove check on edge count of basic block's
6267 predecessors.
6268
6269 2016-04-20 Bin Cheng <bin.cheng@arm.com>
6270
6271 PR tree-optimization/56625
6272 PR tree-optimization/69489
6273 * tree-data-ref.h (DR_INNERMOST): New macro.
6274 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
6275 hashing struct innermost_loop_behavior.
6276 (ref_DR_map): Remove.
6277 (innermost_DR_map): New map.
6278 (baseref_DR_map): Revise comment.
6279 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
6280 to innermost_DR_map accroding to its innermost loop behavior.
6281 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
6282 to its innermost loop behavior.
6283 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
6284 Add initialization for innermost_DR_map. Record memory reference
6285 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
6286 have innermost loop behavior.
6287 (if_convertible_loop_p): Remove release for ref_DR_map. Release
6288 innermost_DR_map.
6289
6290 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
6291
6292 * config/i386/i386.md (*lea<mode>_general_1): Rename from
6293 *lea_general_1. Use explicit SWI12 mode interator.
6294 (*lea<mode>_general_2): Rename from *lea_general_2.
6295 Use explicit SWI12 mode interator.
6296 (*lea<mode>_general_3): Rename from *lea_general_3.
6297 Use explicit SWI12 mode interator.
6298 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
6299 Use explicit SWI12 mode interator.
6300 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
6301 Use explicit SWI48 mode interator.
6302
6303 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
6304
6305 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
6306 Short-cut unaligned load and store cases. Handle all integer
6307 vector modes.
6308 (ix86_expand_vector_move_misalign): Short-cut unaligned load
6309 and store cases. Call ix86_avx256_split_vector_move_misalign
6310 directly without checking mode class.
6311
6312 2016-04-20 Andrew Pinski <apinski@cavium.com>
6313 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6314
6315 PR target/64971
6316 * config/aarch64/aarch64.md (sibcall): Force call
6317 address to be DImode for ILP32.
6318 (sibcall_value): Likewise.
6319
6320 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
6321
6322 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
6323
6324 2016-04-20 Richard Biener <rguenther@suse.de>
6325
6326 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
6327 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
6328 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
6329 (maybe_push_res_to_seq): Adjust.
6330 * gimple-fold.c (maybe_build_generic_op): Likewise.
6331
6332 2016-04-20 Marek Polacek <polacek@redhat.com>
6333
6334 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
6335 rather than true.
6336
6337 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
6338
6339 * config/i386/sse.md (vec_unpacks_lo_hi): Always
6340 use kmovw to support AVX512F target.
6341
6342 2016-04-20 Bin Cheng <bin.cheng@arm.com>
6343
6344 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
6345
6346 2016-04-20 Marek Polacek <polacek@redhat.com>
6347
6348 PR tree-optimization/70725
6349 * tree-if-conv.c (is_false_predicate): New function.
6350 (predicate_mem_writes): Use it.
6351
6352 2016-04-20 Richard Biener <rguenther@suse.de>
6353
6354 PR tree-optimization/70726
6355 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
6356 shift amounts from a pattern stmt operand.
6357
6358 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6359
6360 PR target/70674
6361 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
6362 stack_restore_from_fpr pattern when restoring r15.
6363 (s390_optimize_prologue): Strip away the memory barrier in the
6364 parallel when trying to get rid of restore insns.
6365 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
6366 definition for loading the stack pointer from an FPR. Compared to
6367 the normal move insn this pattern includes a full memory barrier.
6368
6369 2016-04-19 Jakub Jelinek <jakub@redhat.com>
6370
6371 PR middle-end/70680
6372 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
6373 implicitly linear or lastprivate iterator on the outer context.
6374
6375 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
6376
6377 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
6378 alignment check.
6379 * config/i386/i386.md (ssememalign): Removed.
6380 * config/i386/sse.md: Remove ssememalign attribute from patterns.
6381
6382 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
6383
6384 PR target/69201
6385 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
6386 const short * to __builtin_ia32_loaddquhi512_mask.
6387 (_mm512_maskz_loadu_epi16): Likewise.
6388 (_mm512_mask_storeu_epi16): Pass short * to
6389 __builtin_ia32_storedquhi512_mask.
6390 (_mm512_mask_loadu_epi8): Pass const char * to
6391 __builtin_ia32_loaddquqi512_mask.
6392 (_mm512_maskz_loadu_epi8): Likewise.
6393 (_mm512_mask_storeu_epi8): Pass char * to
6394 __builtin_ia32_storedquqi512_mask.
6395 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
6396 const double * to __builtin_ia32_loadupd512_mask.
6397 (_mm512_mask_loadu_pd): Likewise.
6398 (_mm512_maskz_loadu_pd): Likewise.
6399 (_mm512_storeu_pd): Pass double * to
6400 __builtin_ia32_storeupd512_mask.
6401 (_mm512_mask_storeu_pd): Likewise.
6402 (_mm512_loadu_ps): Pass const float * to
6403 __builtin_ia32_loadups512_mask.
6404 (_mm512_mask_loadu_ps): Likewise.
6405 (_mm512_maskz_loadu_ps): Likewise.
6406 (_mm512_storeu_ps): Pass float * to
6407 __builtin_ia32_storeups512_mask.
6408 (_mm512_mask_storeu_ps): Likewise.
6409 (_mm512_mask_loadu_epi64): Pass const long long * to
6410 __builtin_ia32_loaddqudi512_mask.
6411 (_mm512_maskz_loadu_epi64): Likewise.
6412 (_mm512_mask_storeu_epi64): Pass long long *
6413 to __builtin_ia32_storedqudi512_mask.
6414 (_mm512_loadu_si512): Pass const int * to
6415 __builtin_ia32_loaddqusi512_mask.
6416 (_mm512_mask_loadu_epi32): Likewise.
6417 (_mm512_maskz_loadu_epi32): Likewise.
6418 (_mm512_storeu_si512): Pass int * to
6419 __builtin_ia32_storedqusi512_mask.
6420 (_mm512_mask_storeu_epi32): Likewise.
6421 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
6422 char * to __builtin_ia32_storedquqi256_mask.
6423 (_mm_mask_storeu_epi8): Likewise.
6424 (_mm256_mask_loadu_epi16): Pass const short * to
6425 __builtin_ia32_loaddquhi256_mask.
6426 (_mm256_maskz_loadu_epi16): Likewise.
6427 (_mm_mask_loadu_epi16): Pass const short * to
6428 __builtin_ia32_loaddquhi128_mask.
6429 (_mm_maskz_loadu_epi16): Likewise.
6430 (_mm256_mask_loadu_epi8): Pass const char * to
6431 __builtin_ia32_loaddquqi256_mask.
6432 (_mm256_maskz_loadu_epi8): Likewise.
6433 (_mm_mask_loadu_epi8): Pass const char * to
6434 __builtin_ia32_loaddquqi128_mask.
6435 (_mm_maskz_loadu_epi8): Likewise.
6436 (_mm256_mask_storeu_epi16): Pass short * to.
6437 __builtin_ia32_storedquhi256_mask.
6438 (_mm_mask_storeu_epi16): Pass short * to.
6439 __builtin_ia32_storedquhi128_mask.
6440 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
6441 const double * to __builtin_ia32_loadupd256_mask.
6442 (_mm256_maskz_loadu_pd): Likewise.
6443 (_mm_mask_loadu_pd): Pass onst double * to
6444 __builtin_ia32_loadupd128_mask.
6445 (_mm_maskz_loadu_pd): Likewise.
6446 (_mm256_mask_storeu_pd): Pass double * to
6447 __builtin_ia32_storeupd256_mask.
6448 (_mm_mask_storeu_pd): Pass double * to
6449 __builtin_ia32_storeupd128_mask.
6450 (_mm256_mask_loadu_ps): Pass const float * to
6451 __builtin_ia32_loadups256_mask.
6452 (_mm256_maskz_loadu_ps): Likewise.
6453 (_mm_mask_loadu_ps): Pass const float * to
6454 __builtin_ia32_loadups128_mask.
6455 (_mm_maskz_loadu_ps): Likewise.
6456 (_mm256_mask_storeu_ps): Pass float * to
6457 __builtin_ia32_storeups256_mask.
6458 (_mm_mask_storeu_ps): ass float * to
6459 __builtin_ia32_storeups128_mask.
6460 (_mm256_mask_loadu_epi64): Pass const long long * to
6461 __builtin_ia32_loaddqudi256_mask.
6462 (_mm256_maskz_loadu_epi64): Likewise.
6463 (_mm_mask_loadu_epi64): Pass const long long * to
6464 __builtin_ia32_loaddqudi128_mask.
6465 (_mm_maskz_loadu_epi64): Likewise.
6466 (_mm256_mask_storeu_epi64): Pass long long * to
6467 __builtin_ia32_storedqudi256_mask.
6468 (_mm_mask_storeu_epi64): Pass long long * to
6469 __builtin_ia32_storedqudi128_mask.
6470 (_mm256_mask_loadu_epi32): Pass const int * to
6471 __builtin_ia32_loaddqusi256_mask.
6472 (_mm256_maskz_loadu_epi32): Likewise.
6473 (_mm_mask_loadu_epi32): Pass const int * to
6474 __builtin_ia32_loaddqusi128_mask.
6475 (_mm_maskz_loadu_epi32): Likewise.
6476 (_mm256_mask_storeu_epi32): Pass int * to
6477 __builtin_ia32_storedqusi256_mask.
6478 (_mm_mask_storeu_epi32): Pass int * to
6479 __builtin_ia32_storedqusi128_mask.
6480 * config/i386/i386-builtin-types.def (PCSHORT): New.
6481 (PINT64): Likewise.
6482 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
6483 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
6484 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
6485 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
6486 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
6487 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
6488 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
6489 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
6490 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
6491 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
6492 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
6493 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
6494 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
6495 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
6496 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
6497 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
6498 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
6499 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
6500 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
6501 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
6502 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
6503 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
6504 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
6505 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
6506 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
6507 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
6508 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
6509 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
6510 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
6511 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
6512 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
6513 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
6514 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
6515 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
6516 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
6517 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
6518 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
6519 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
6520 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
6521 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
6522 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
6523 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
6524 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
6525 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
6526 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
6527 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
6528 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
6529 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
6530 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
6531 use UNSPEC_STOREU.
6532 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
6533 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
6534 load nor store.
6535 (ix86_expand_vector_move_misalign): Likewise.
6536 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
6537 to scalar function prototype for unaligned load/store builtins.
6538 (ix86_expand_special_args_builtin): Updated.
6539 * config/i386/sse.md (UNSPEC_LOADU): Removed.
6540 (UNSPEC_STOREU): Likewise.
6541 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
6542 (VI_ULOADSTORE_F_AVX512VL): Likewise.
6543 (ssescalarsize): Handle V4TI, V2TI and V1TI.
6544 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
6545 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
6546 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
6547 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
6548 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
6549 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
6550 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
6551 (<avx512>_storedqu<mode>_mask): Likewise.
6552 (*sse4_2_pcmpestr_unaligned): Likewise.
6553 (*sse4_2_pcmpistr_unaligned): Likewise.
6554 (*mov<mode>_internal): Renamed to ...
6555 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
6556 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
6557 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
6558 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
6559
6560 2016-04-19 Richard Biener <rguenther@suse.de>
6561
6562 PR tree-optimization/70171
6563 * tree-ssa-phiprop.c: Include stor-layout.h.
6564 (phiprop_insert_phi): Handle the aggregate copy case.
6565 (propagate_with_phi): Likewise.
6566
6567 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
6568
6569 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
6570 instead of simplify_gen_subreg (... , 0).
6571 (ix86_delegitimize_address): Ditto.
6572 (ix86_split_divmod): Ditto.
6573 (ix86_split_copysign_const): Ditto.
6574 (ix86_split_copysign_var): Ditto.
6575 (ix86_expand_args_builtin): Ditto.
6576 (ix86_expand_round_builtin): Ditto.
6577 (ix86_expand_special_args_builtin): Ditto.
6578 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
6579 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
6580 (udivmodqi4): Ditto.
6581 (absneg splitters): Ditto.
6582 (*jcc_bt<mode>_1): Ditto.
6583
6584 2016-04-19 Richard Biener <rguenther@suse.de>
6585
6586 PR tree-optimization/70724
6587 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
6588 restoring out from ...
6589 (free_scc_vn): ... here.
6590 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
6591 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
6592 tail merging.
6593 (pass_fre::execute): Restore SSA info.
6594
6595 2016-04-19 Richard Biener <rguenther@suse.de>
6596
6597 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
6598 * gimple-walk.c (walk_gimple_op): Initialize it.
6599 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
6600 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
6601 remapping SSA names of defs.
6602 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
6603 adjustment.
6604
6605 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
6606
6607 PR middle-end/70689
6608 * lra-constraints.c (equiv_substition_p): New.
6609 (process_alt_operands): Use it.
6610 (swap_operands): Swap it.
6611 (curr_insn_transform): Update it.
6612
6613 2016-04-18 Michael Matz <matz@suse.de>
6614
6615 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
6616 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
6617 * tree-core.h (tree_type_common.align): Use bit-field.
6618 (tree_type_common.spare): New.
6619 (tree_decl_common.off_align): Make smaller.
6620 (tree_decl_common.align): Use bit-field.
6621
6622 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
6623 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
6624 (scan_sharing_clauses): Ditto.
6625 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
6626 (omp_finish_file): Ditto.
6627 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
6628 (layout_decl): Ditto.
6629 (relayout_decl): Ditto.
6630 (finalize_record_size): Use SET_TYPE_ALIGN.
6631 (finalize_type_size): Ditto.
6632 (finish_builtin_struct): Ditto.
6633 (layout_type): Ditto.
6634 (initialize_sizetypes): Ditto.
6635 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
6636 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
6637 (lookup_field_for_decl): Use SET_DECL_ALIGN.
6638 (get_chain_field): Ditto.
6639 (get_trampoline_type): Ditto.
6640 (get_nl_goto_field): Ditto.
6641 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
6642 SET_DECL_ALIGN.
6643 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
6644 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
6645 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
6646 (build_qualified_type): Use SET_TYPE_ALIGN.
6647 (build_aligned_type, build_range_type_1): Ditto.
6648 (build_atomic_base): Ditto.
6649 (build_common_tree_nodes): Ditto.
6650 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
6651 (expand_one_stack_var_at): Ditto.
6652 * coverage.c (build_var): Use SET_DECL_ALIGN.
6653 * except.c (init_eh): Ditto.
6654 * function.c (assign_parm_setup_block): Ditto.
6655 * symtab.c (increase_alignment_1): Ditto.
6656 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
6657 * tree-vect-stmts.c (ensure_base_align): Ditto.
6658 * varasm.c (align_variable): Ditto.
6659 (assemble_variable): Ditto.
6660 (build_constant_desc): Ditto.
6661 (output_constant_def_contents): Ditto.
6662
6663 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
6664 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
6665 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
6666 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
6667 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
6668
6669 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
6670
6671 PR target/70708
6672 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
6673 replace %vmovsd with "%vmovq".
6674 (vec_concatv2df): Likewise.
6675
6676 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
6677
6678 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
6679 (*vec_extractv2si_0): Ditto.
6680 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
6681 (zero_extended_scalar_load_operand splitters): Ditto.
6682 (vec_extract splitters): Ditto.
6683 (*vec_extractv4si_0_zext): Ditto.
6684 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
6685 and lowpart_subreg.
6686 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
6687 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
6688 (*sse4_1_extractps): Use lowpart_subreg.
6689 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
6690
6691 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6692
6693 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
6694 gld requirements.
6695 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
6696 Mention Solaris 11 packaging changes.
6697 Update gas and gld requirements.
6698 Remove reference to pre-Solaris 10 bug.
6699 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
6700 systems and bugs.
6701 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
6702 with cc.
6703
6704 2016-04-17 Jan Hubicka <jh@suse.cz>
6705
6706 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
6707 max_loop_iterations_int.
6708
6709 2016-04-18 Richard Biener <rguenther@suse.de>
6710
6711 PR tree-optimization/43434
6712 * tree-ssa-structalias.c (struct vls_data): New.
6713 (visit_loadstore): Handle all pointer-based accesses.
6714 (compute_dependence_clique): Compute a bitmap of restrict tags
6715 assigned bases and pass it to visit_loadstore.
6716
6717 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
6718
6719 PR target/70711
6720 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
6721 armv8.1-a and armv8.1-a+crc.
6722
6723 2016-04-18 Richard Biener <rguenther@suse.de>
6724
6725 PR tree-optimization/70701
6726 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
6727 references after translating through a memcpy.
6728
6729 2016-04-18 Richard Biener <rguenther@suse.de>
6730
6731 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
6732 (compute_antic): ... here. For partial antic use regular
6733 postorder and scrap iteration.
6734 (compute_partial_antic_aux): Remove unused return value.
6735 (init_pre): Do not allocate postorder.
6736 (fini_pre): Do not free postorder.
6737
6738 2016-04-18 Richard Biener <rguenther@suse.de>
6739
6740 PR middle-end/37870
6741 * expmed.c (extract_bit_field_1): Remove broken case
6742 using a wider MODE_INT mode.
6743
6744 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
6745
6746 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
6747 unless compiling with at least GCC-4.8.
6748
6749 2016-04-17 Jan Hubicka <jh@suse.cz>
6750
6751 PR bootstrap/70706
6752 * graphite.c (graphite_finalize): Update call to
6753 tree_estimate_probability.
6754 * predict.h (tree_estimate_probability): Update prototype.
6755
6756 2016-04-17 Jan Hubicka <jh@suse.cz>
6757
6758 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
6759 (tree_estimate_probability): Likewise.
6760 (pass_profile::execute): Update.
6761 (report_predictor_hitrates): New function.
6762 * profile.c (compute_branch_probabilities): Use it.
6763 * predict.h (report_predictor_hitrates): Declare.
6764
6765 2016-04-17 Jan Hubicka <jh@suse.cz>
6766
6767 PR ipa/70018
6768 * cgraph.h (cgraph_node::set_const_flag,
6769 cgraph_node::set_pure_flag): Update prototype to return bool;
6770 update comment.
6771 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
6772 of interposable symbol are interposable, too.
6773 (cgraph_set_const_flag_1): Rename to ...
6774 (set_const_flag_1): ... this one; change to self recursive function
6775 instead of call_for_symbol_thunks_and_aliases. Handle correctly
6776 clearnig the flag in all variants and also virtual thunks of const
6777 functions are pure; track if any change was done.
6778 (cgraph_node::set_const_flag): Update.
6779 (struct set_pure_flag_info): New struct.
6780 (cgraph_set_pure_flag_1): Rename to ...
6781 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
6782 rather than pointer encoded flags; track if any changes was done;
6783 handle correctly clearning flag and setting flag of aliases already
6784 declared const.
6785 (cgraph_node::set_pure_flag): Update.
6786 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
6787
6788 2016-04-17 Tom de Vries <tom@codesourcery.com>
6789
6790 PR other/70433
6791 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
6792 backslash in label.
6793
6794 2016-04-17 Tom de Vries <tom@codesourcery.com>
6795
6796 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
6797 '{}<> ' as escape-for-record.
6798
6799 2016-04-17 Tom de Vries <tom@codesourcery.com>
6800
6801 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
6802 structure.
6803
6804 2016-04-17 Tom de Vries <tom@codesourcery.com>
6805
6806 PR other/70185
6807 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
6808 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
6809 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
6810 * passes.c (finish_optimization_passes): Only call
6811 finish_graph_dump_file if dfi->graph_dump_initialized.
6812 (execute_function_dump, pass_init_dump_file): Use
6813 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
6814
6815 2016-04-17 Tom de Vries <tom@codesourcery.com>
6816
6817 PR tree-optimization/70256
6818 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
6819 (debug_varmap): New function.
6820
6821 2016-04-17 Tom de Vries <tom@codesourcery.com>
6822
6823 PR other/70183
6824 * passes.c (pass_manager::register_pass): Propagate pflags.
6825
6826 2016-04-17 Tom de Vries <tom@codesourcery.com>
6827
6828 PR other/68875
6829 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
6830 * passes.c (pass_manager::pass_manager): Declare and init p_start in
6831 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
6832 check if it's equal to p_start.
6833 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
6834
6835 2016-04-15 Jan Hubicka <jh@suse.cz>
6836
6837 PR ipa/70018
6838 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
6839 function does not bind to current def.
6840 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
6841 handle conservatively calls to functions that does not need to bind
6842 to current def.
6843 (check_call): Update call of worse_state.
6844 (ignore_edge_for_nothrow): Update.
6845 (ignore_edge_for_pure_const): Likewise.
6846 (propagate_pure_const): Update calls to worse_state.
6847 (skip_function_for_local_pure_const): Reformat comments.
6848
6849 2016-04-15 Jan Hubicka <jh@suse.cz>
6850
6851 PR ipa/70018
6852 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
6853 (cgraph_node::function_symbol): Likewise.
6854 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
6855 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
6856 (symtab_node::ultimate_alias_target): Add REF parameter.
6857 (symtab_node::binds_to_current_def_p): Declare.
6858 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
6859 (cgraph_node::function_symbol): Likewise.
6860 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
6861 (cgraph_node::get_availability): Likewise.
6862 (cgraph_edge::binds_to_current_def_p): New inline function.
6863 (varpool_node::get_availability): Add REF parameter.
6864 (varpool_node::ultimate_alias_target): Likewise.
6865 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
6866 (symtab_node::binds_to_current_def_p): Likewise.
6867 * varpool.c (varpool_node::get_availability): Likewise.
6868
6869 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
6870
6871 PR target/70662
6872 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
6873 Fix mode size check.
6874
6875 2016-04-15 Jakub Jelinek <jakub@redhat.com>
6876
6877 * BASE-VER: Set to 7.0.0.
6878
6879 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
6880
6881 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
6882
6883 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6884
6885 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
6886 architecture revisions.
6887
6888 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
6889
6890 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
6891 * config/i386/i386.c (ix86_using_red_zone): No longer static.
6892 * config/i386/i386.md (stack decrement to push peepholes): Guard
6893 with !x86_using_red_zone ().
6894
6895 2016-04-15 Jakub Jelinek <jakub@redhat.com>
6896
6897 PR c++/70675
6898 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
6899 to dump_generic_node.
6900 (NIY): Pass also flags to do_niy.
6901
6902 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
6903
6904 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
6905 (simd_clone_vector_of_formal_parm_types)
6906 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
6907 (simd_clone_mangle, simd_clone_create)
6908 (simd_clone_adjust_return_type, create_tmp_simd_array)
6909 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
6910 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
6911 (ipa_simd_modify_function_body, simd_clone_linear_addend)
6912 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
6913 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
6914 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
6915 * omp-simd-clone.c: ... this new file.
6916 (simd_clone_vector_of_formal_parm_types): Make it static.
6917 * Makefile.in (OBJS): Add omp-simd-clone.o.
6918
6919 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
6920
6921 PR target/70662
6922 * config/i386/sse.md: Use proper memory operand modifiers.
6923
6924
6925 2016-04-15 Richard Biener <rguenther@suse.de>
6926 Alan Modra <amodra@gmail.com>
6927
6928 PR tree-optimization/70130
6929 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
6930 when alignment stays not the same and no not use the realign
6931 scheme then.
6932
6933 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
6934
6935 PR target/70669
6936 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
6937 direct move handlers for KFmode. Change TFmode handlers test from
6938 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
6939
6940 2016-04-14 Jakub Jelinek <jakub@redhat.com>
6941
6942 PR c++/70594
6943 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
6944 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
6945 (inlined_polymorphic_ctor_dtor_block_p): Use it.
6946 * tree-ssa-live.c (remove_unused_scope_block_p): When
6947 in_ctor_dtor_block, avoid discarding not just BLOCKs with
6948 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
6949 block_ultimate_origin is FUNCTION_DECL.
6950 (remove_unused_locals): If current_function_decl is
6951 polymorphic_ctor_dtor_p, pass initial true to
6952 remove_unused_scope_block_p' is_ctor_dtor_block.
6953
6954 2016-04-14 Martin Sebor <msebor@redhat.com>
6955
6956 PR c++/69517
6957 PR c++/70019
6958 PR c++/70588
6959 * doc/extend.texi (Variable Length): Revert.
6960
6961 2016-04-14 Marek Polacek <polacek@redhat.com>
6962 Jan Hubicka <hubicka@ucw.cz>
6963
6964 PR c++/70029
6965 * tree.c (verify_type): Disable the canonical type of main variant
6966 check.
6967
6968 2016-04-14 Jason Merrill <jason@redhat.com>
6969
6970 * cfgexpand.c, expr.c: Revert previous change.
6971
6972 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
6973
6974 PR middle-end/70643
6975 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
6976 when building a mem ref for the incoming reduction variable.
6977
6978 2016-04-14 Richard Biener <rguenther@suse.de>
6979
6980 PR tree-optimization/70614
6981 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
6982 loop if the evolution dropped to chrec_dont_know.
6983 (interpret_condition_phi): Likewise.
6984
6985 2016-04-14 Richard Biener <rguenther@suse.de>
6986
6987 PR tree-optimization/70623
6988 * tree-ssa-pre.c (changed_blocks): Make global ...
6989 (compute_antic): ... local here. Move and fix worklist
6990 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
6991 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
6992 worklist handling, dump when ANTIC_IN changed.
6993 (compute_partial_antic_aux): Remove worklist handling.
6994 (init_pre): Do not compute post dominators. Add a comment about
6995 the CFG order chosen.
6996 (fini_pre): Do not free post dominators.
6997
6998 2016-04-13 Martin Sebor <msebor@redhat.com>
6999
7000 PR c++/69517
7001 PR c++/70019
7002 PR c++/70588
7003 * doc/extend.texi (Variable Length): Document C++ specifics.
7004
7005 2016-04-13 Jakub Jelinek <jakub@redhat.com>
7006
7007 PR c++/70641
7008 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
7009 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
7010 eh edges have been purged.
7011
7012 PR c++/70594
7013 * tree-sra.c (create_access_replacement,
7014 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
7015 gets fancy name.
7016 * tree-pretty-print.c (dump_fancy_name): New function.
7017 (dump_decl_name, dump_generic_node): Use it.
7018
7019 2016-04-13 Jason Merrill <jason@redhat.com>
7020
7021 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
7022 * expr.c (expand_expr_real_1): Likewise.
7023
7024 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
7025
7026 * config/i386/i386.md (kunpckhi): Swap operands.
7027 (kunpcksi): Likewise.
7028 (kunpckdi): Likewise.
7029 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
7030 (vec_pack_trunc_<mode>): Likewise.
7031
7032 2016-04-13 Jakub Jelinek <jakub@redhat.com>
7033
7034 PR debug/70628
7035 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
7036
7037 PR middle-end/70633
7038 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
7039 gimplification turns some element into non-constant.
7040
7041 PR debug/70628
7042 * rtl.h (convert_memory_address_addr_space_1): New prototype.
7043 * explow.c (convert_memory_address_addr_space_1): No longer static,
7044 add NO_EMIT argument and don't call convert_modes if true, pass
7045 it down recursively, remove break after return.
7046 (convert_memory_address_addr_space): Adjust caller.
7047 * simplify-rtx.c (simplify_unary_operation_1): Call
7048 convert_memory_address_addr_space_1 instead of convert_memory_address,
7049 if it returns NULL, don't simplify.
7050
7051 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
7052
7053 PR target/70630
7054 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
7055
7056 2016-04-12 Jakub Jelinek <jakub@redhat.com>
7057
7058 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
7059 Bump the upper SIMDLEN limits, so that if the return type or
7060 characteristic type if the return type is void can be passed in
7061 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
7062 allowed.
7063
7064 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
7065
7066 PR target/70640
7067 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
7068 Do not use "=" constraint on an input constraint.
7069 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
7070 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
7071 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
7072 generates (neg (abs ...)) instead of (abs ...).
7073
7074 2016-04-12 Jakub Jelinek <jakub@redhat.com>
7075
7076 PR rtl-optimization/70596
7077 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
7078 just invalidate LRA data and reset them. Adjust dump wording.
7079
7080 2016-04-12 Martin Liska <mliska@suse.cz>
7081
7082 Revert
7083 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
7084
7085 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
7086 estimates here.
7087 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
7088 max_loop_iterations_int.
7089 (tree_unswitch_outer_loop): Likewise.
7090 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
7091 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
7092
7093 2016-04-12 Tom de Vries <tom@codesourcery.com>
7094
7095 PR tree-optimization/68756
7096 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
7097 instead of new_name.
7098
7099 2016-04-12 Jakub Jelinek <jakub@redhat.com>
7100
7101 PR tree-optimization/70602
7102 * tree-sra.c (generate_subtree_copies): Don't write anything into
7103 constant pool decls.
7104
7105 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
7106 regardless whether there are depend clauses or not.
7107
7108 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7109
7110 PR target/70381
7111 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
7112 target attribute and pragma from changing the -mfloat128
7113 and -mfloat128-hardware options.
7114
7115 * doc/extend.texi (Additional Floating Types): Document PowerPC
7116 __float128 restrictions.
7117
7118 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
7119
7120 PR target/70133
7121 * config/aarch64/driver-aarch64.c
7122 (aarch64_get_extension_string_for_isa_flags): New.
7123 (arch_extension): Rename to...
7124 (aarch64_arch_extension): ...This.
7125 (ext_to_feat_string): Rename to...
7126 (aarch64_extensions): ...This.
7127 (aarch64_core_data): Keep track of architecture extension flags.
7128 (cpu_data): Rename to...
7129 (aarch64_cpu_data): ...This.
7130 (aarch64_arch_driver_info): Keep track of architecture extension
7131 flags.
7132 (get_arch_name_from_id): Rename to...
7133 (get_arch_from_id): ...This, change return type.
7134 (host_detect_local_cpu): Update and reformat for renames, handle
7135 extensions through common infrastructure.
7136
7137 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
7138
7139 PR target/70133
7140 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
7141 track of a canonical flag name.
7142 (all_extensions): Likewise.
7143 (arch_to_arch_name): Also track extension flags enabled by the arch.
7144 (all_architectures): Likewise.
7145 (aarch64_parse_extension): Move to here.
7146 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
7147 rework.
7148 (aarch64_rewrite_selected_cpu): Update for above change.
7149 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
7150 are handled, such that the single explicit value enabled by an
7151 extension is kept seperate from the implicit values it also enables.
7152 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
7153 to here.
7154 (aarch64_parse_extension): New.
7155 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
7156 here to config/aarch64/aarch64-protos.h.
7157 (aarch64_parse_extension): Move from here to
7158 common/config/aarch64/aarch64-common.c.
7159 (aarch64_option_print): Update.
7160 (aarch64_declare_function_name): Likewise.
7161 (aarch64_start_file): Likewise.
7162 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
7163 the canonical flag for extensions.
7164 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
7165 flags.
7166
7167 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
7168
7169 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
7170 AARCH64_FL_CRC.
7171
7172 2016-04-09 Tom de Vries <tom@codesourcery.com>
7173
7174 PR tree-optimization/68953
7175 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
7176 first to last subscript.
7177
7178 2016-04-09 Jakub Jelinek <jakub@redhat.com>
7179
7180 PR tree-optimization/70586
7181 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
7182 for any calls.
7183
7184 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
7185
7186 PR lto/70289
7187 PR ipa/70348
7188 PR tree-optimization/70373
7189 PR middle-end/70533
7190 PR middle-end/70534
7191 PR middle-end/70535
7192 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
7193 clauses for acc parallel reductions as necessary. Error on those
7194 that are private.
7195 * omp-low.c (scan_sharing_clauses): Don't install variables which
7196 are used in acc parallel reductions.
7197 (lower_rec_input_clauses): Remove dead code.
7198 (lower_oacc_reductions): Add support for reference reductions.
7199 (lower_reduction_clauses): Remove dead code.
7200 (lower_omp_target): Don't remap variables appearing in acc parallel
7201 reductions.
7202 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
7203
7204 2016-04-08 Jakub Jelinek <jakub@redhat.com>
7205
7206 PR middle-end/70593
7207 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
7208 with multiple SSA_NAME defs, force the outputs other than first
7209 to be live before calling live_track_process_def on each output.
7210
7211 PR rtl-optimization/70574
7212 * fwprop.c (forward_propagate_and_simplify): Don't add
7213 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
7214 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
7215 paradoxical subregs within *loc.
7216
7217 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
7218
7219 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
7220 -ftree-parallelize-loops={0,1}.
7221 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
7222 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
7223 * config/ia64/hpux.h (LIB_SPEC): Likewise.
7224 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
7225 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
7226
7227 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
7228
7229 PR sanitizer/70541
7230 * asan.c (instrument_derefs): If we get unknown location, extract it
7231 with EXPR_LOCATION.
7232 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
7233
7234 2016-04-08 Tom de Vries <tom@codesourcery.com>
7235
7236 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
7237 implicit firstprivate clause.
7238
7239 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7240
7241 PR target/70566
7242 * config/arm/thumb2.md (tst + branch-> lsls + branch
7243 peephole below *orsi_not_shiftsi_si): Require that condition
7244 register is dead after the peephole.
7245 (second peephole after the above): Likewise.
7246
7247 2016-04-08 Alan Modra <amodra@gmail.com>
7248
7249 PR target/70117
7250 * builtins.c (fold_builtin_classify): For IBM extended precision,
7251 look at just the high-order double to test for NaN.
7252 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
7253 test just the high double for Inf but both doubles for subnormal
7254 limit.
7255
7256 2016-04-07 Jakub Jelinek <jakub@redhat.com>
7257
7258 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
7259 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
7260 node->simdclone->mask_mode != VOIDmode masks.
7261 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
7262 earlier, use it instead of node->simdclone.
7263 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
7264 Set clonei->mask_mode.
7265
7266 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
7267
7268 PR c/70436
7269 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
7270 Pass it through to cp_parser_already_scoped_statement.
7271 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
7272 it through to cp_parser_statement.
7273 (cp_parser_statement): Pass IF_P through to
7274 cp_parser_iteration_statement.
7275 (cp_parser_pragma): Adjust call to
7276 cp_parser_iteration_statement.
7277
7278 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
7279
7280 PR c/70436
7281 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
7282 resolve a future -Wparentheses warning.
7283 * omp-low.c (scan_sharing_clauses): Likewise.
7284 * tree-parloops.c (eliminate_local_variables): Likewise.
7285
7286 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
7287
7288 PR rtl-optimization/70398
7289 * lra-constraints.c (process_address_1): Check zero scale and code
7290 for reloading with zero scale.
7291
7292 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
7293
7294 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
7295 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
7296
7297 2016-04-06 Jakub Jelinek <jakub@redhat.com>
7298
7299 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
7300 Add support for AVX512F clones, include them by default for
7301 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
7302 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
7303 up to 128.
7304
7305 PR middle-end/70550
7306 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
7307 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
7308 firstprivate clauses.
7309 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
7310 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
7311 (lower_omp_target): Set TREE_NO_WARNING for
7312 non-addressable possibly uninitialized vars which are copied into
7313 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
7314
7315 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
7316
7317 * config/pa/predicates.md (integer_store_memory_operand): Accept
7318 REG+D operands with a large offset when reload_in_progress is true.
7319 (floating_point_store_memory_operand): Likewise.
7320
7321 2016-04-05 Jakub Jelinek <jakub@redhat.com>
7322
7323 PR c++/70336
7324 * match.pd (nested int casts): Limit to GIMPLE.
7325
7326 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
7327
7328 PR ipa/66223
7329 * ipa-devirt.c (maybe_record_node): Fix comment; use
7330 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
7331
7332 2016-04-05 Jakub Jelinek <jakub@redhat.com>
7333
7334 PR rtl-optimization/70542
7335 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
7336 if there are any uses other than insn or debug insns.
7337
7338 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
7339 Jakub Jelinek <jakub@redhat.com>
7340
7341 PR tree-optimization/70509
7342 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
7343 Shift HOST_WIDE_INT_1U instead of 1.
7344
7345 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
7346
7347 PR tree-optimization/70509
7348 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
7349 of the vector base type for index.
7350
7351 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
7352
7353 PR target/70510
7354 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
7355
7356 2016-04-05 Richard Biener <rguenther@suse.de>
7357
7358 PR tree-optimization/70526
7359 * tree-sra.c (build_ref_for_offset): Use prev_base to
7360 extract the alias pointer type.
7361
7362 2016-04-05 Richard Biener <rguenther@suse.de>
7363
7364 * dse.c (struct store_info): Remove alias_set member.
7365 (struct read_info_type): Likewise.
7366 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
7367 spill_deleted, clear_alias_set_lookup): Remove.
7368 (get_group_info): Remove dead base == NULL_RTX case.
7369 (dse_step0): Remove initialization of removed variables.
7370 (delete_dead_store_insn): Reomve alias set dumping.
7371 (free_read_records): Remove alias_set handling.
7372 (canon_address): Remove alias_set_out parameter.
7373 (record_store): Remove spill_alias_set, it's always zero.
7374 (check_mem_read_rtx): Likewise.
7375 (dse_step2): Rename from ...
7376 (dse_step2_nospill): ... this. Adjust.
7377 (scan_stores): Rename from ...
7378 (scan_stores_nospill): ... this.
7379 (scan_reads): Rename from ...
7380 (scan_reads_nospill): ... this.
7381 (scan_stores_spill, scan_reads_spill): Remove.
7382 (dse_step3_scan): Remove for_spills argument which is always false.
7383 (dse_step3): Likewise.
7384 (dse_step5): Rename from ...
7385 (dse_step5_nospill): ... this. Remove alias_set handling.
7386 (rest_of_handle_dse): Adjust.
7387
7388 2016-04-05 Jakub Jelinek <jakub@redhat.com>
7389
7390 PR target/70525
7391 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
7392 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
7393 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
7394 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
7395
7396 2016-04-05 Richard Biener <rguenther@suse.de>
7397
7398 PR middle-end/70499
7399 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
7400 non-register type temporaries into SSA.
7401
7402 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
7403
7404 PR ipa/66223
7405 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
7406 calls when sanitizing.
7407 (possible_polymorphic_call_target_p): Fix formatting.
7408
7409 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7410 Jakub Jelinek <jakub@redhat.com>
7411
7412 PR middle-end/70457
7413 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
7414 to ensure a call statement is compatible with a built-in's
7415 prototype.
7416 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
7417 Likewise.
7418
7419 2016-04-04 Richard Biener <rguenther@suse.de>
7420
7421 PR rtl-optimization/70484
7422 * rtl.h (canon_output_dependence): Declare.
7423 * alias.c (canon_output_dependence): New function.
7424 * dse.c (record_store): Use canon_output_dependence rather
7425 than canon_true_dependence.
7426
7427 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
7428
7429 PR ipa/68881
7430 * cgraph.h (symtab_node::copy_visibility_from): New function.
7431 * symtab.c (symtab_node::copy_visibility_from): New function.
7432 * ipa-visibility.c (optimize_weakref): New function.
7433 (function_and_variable_visibility): Use it.
7434
7435 2016-04-04 Martin Liska <mliska@suse.cz>
7436
7437 PR hsa/70402
7438 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
7439 value that is really in range handled by SBR instruction.
7440 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
7441 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
7442 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
7443
7444 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
7445
7446 PR target/70416
7447 PR target/67391
7448 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
7449 set, but not for SP_REG operands.
7450
7451 2016-04-02 Martin Sebor <msebor@redhat.com>
7452
7453 PR c++/67376
7454 * fold-const.c (maybe_nonzero_address): New function.
7455 (fold_comparison): Call it. Fold equality and relational
7456 expressions involving null pointers.
7457 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
7458
7459 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
7460
7461 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
7462 the "Y" constraint (scalar FP 0.0 immediate).
7463
7464 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
7465 Add the "const_double" to the list of operand constraints.
7466
7467 2016-04-01 Jakub Jelinek <jakub@redhat.com>
7468
7469 PR rtl-optimization/70467
7470 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
7471 If low word of the last operand is 0, just emit addition/subtraction
7472 for the high word.
7473
7474 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7475
7476 PR target/70404
7477 * config/s390/s390.c (s390_expand_insv): Check for everything
7478 constant instead of just VOIDmode stuff.
7479
7480 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7481
7482 PR target/70496
7483 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
7484
7485 2016-04-01 Nathan Sidwell <nathan@acm.org>
7486
7487 * tree.def (TRY_CATCH_EXPR): Correct documentation.
7488
7489 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
7490
7491 PR rtl-optimization/70461
7492 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
7493 is necessary.
7494
7495 2016-03-31 Martin Liska <mliska@suse.cz>
7496
7497 PR hsa/70399
7498 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
7499 a tree value or an immediate integer value to a buffer
7500 that is eventually copied to a BRIG section.
7501 (emit_immediate_operand): Call the function here.
7502 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
7503 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
7504 of class' fields that are removed.
7505 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
7506 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
7507 m_brig_repr_size fields.
7508
7509 2016-03-31 Martin Liska <mliska@suse.cz>
7510
7511 PR hsa/70391
7512 * hsa-gen.c (hsa_function_representation::update_dominance): New
7513 function.
7514 (convert_addr_to_flat_segment): Likewise.
7515 (gen_hsa_memory_set): New alignment argument.
7516 (gen_hsa_ctor_assignment): Likewise.
7517 (gen_hsa_insns_for_single_assignment): Provide alignment
7518 to gen_hsa_ctor_assignment.
7519 (gen_hsa_insns_for_direct_call): Add new argument.
7520 (expand_lhs_of_string_op): New function.
7521 (expand_string_operation_builtin): Likewise.
7522 (expand_memory_copy): New function.
7523 (expand_memory_set): New function.
7524 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
7525 (convert_switch_statements): Change signature.
7526 (generate_hsa): Use a return value of the function.
7527 (pass_gen_hsail::execute): Do not call
7528 convert_switch_statements here.
7529 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
7530 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
7531 (hsa_function_representation::update_dominance): New function.
7532
7533 2016-03-31 Martin Liska <mliska@suse.cz>
7534
7535 PR hsa/70391
7536 * hsa-brig.c (emit_directive_variable): Emit alignment
7537 according to hsa_symbol::m_align.
7538 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
7539 (dump_hsa_symbol): Dump alignment of HSA symbols.
7540 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
7541 (gen_hsa_addr_with_align): New function.
7542 (hsa_bitmemref_alignment): Use newly added function.
7543 (gen_hsa_insns_for_load): Likewise.
7544 (gen_hsa_insns_for_store): Likewise.
7545 (gen_hsa_memory_copy): New argument added.
7546 (gen_hsa_insns_for_single_assignment): Respect
7547 alignment for assignments processed via gen_hsa_memory_copy.
7548 (gen_hsa_insns_for_direct_call): Likewise.
7549 (gen_hsa_insns_for_return): Likewise.
7550 (gen_function_def_parameters): Set default alignment.
7551 * hsa.c (hsa_object_alignment): New function.
7552 (hsa_byte_alignment): Pasted function.
7553 * hsa.h (hsa_symbol::m_align): New field.
7554
7555 2016-03-31 Bin Cheng <bin.cheng@arm.com>
7556
7557 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
7558 scratch field for goto case.
7559
7560 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
7561
7562 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
7563
7564 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
7565
7566 PR target/70442
7567 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
7568 (scalar_chain::convert_insn): Call convert_op for reg
7569 moves to handle undefined registers.
7570
7571 2016-03-31 Nathan Sidwell <nathan@acm.org>
7572
7573 PR c++/70393
7574 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
7575 Assert we don't want to move backwards.
7576
7577 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
7578
7579 PR target/70453
7580 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
7581
7582 2016-03-31 Jakub Jelinek <jakub@redhat.com>
7583
7584 PR rtl-optimization/70460
7585 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
7586 with operand from REG_LABEL_OPERAND, instead substitute
7587 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
7588 Don't do anything for REG_NON_LOCAL_GOTO jumps.
7589
7590 2016-03-31 Martin Liska <mliska@suse.cz>
7591
7592 * passes.c (execute_one_pass): Do not call
7593 todo_after for a discarded function.
7594
7595 2016-03-31 Bin Cheng <bin.cheng@arm.com>
7596
7597 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
7598 (no_cost, infinite_cost): Initialize the new field.
7599 (get_computation_cost_at): Record setup cost.
7600 (determine_use_iv_cost_address): Skip cost computation for sub
7601 uses if we can estimate it without losing accuracy.
7602
7603 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
7604
7605 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
7606 estimates here.
7607 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
7608 max_loop_iterations_int.
7609 (tree_unswitch_outer_loop): Likewise.
7610 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
7611 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
7612
7613 2016-03-30 Richard Biener <rguenther@suse.de>
7614
7615 PR middle-end/70450
7616 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
7617
7618 2016-03-30 Jakub Jelinek <jakub@redhat.com>
7619
7620 PR target/70421
7621 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
7622 in gen_blendm expander.
7623
7624 2016-03-30 Nick Clifton <nickc@redhat.com>
7625
7626 PR target/62254
7627 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
7628 case where we are already provided with an SImode SUBREG.
7629
7630 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
7631
7632 PR target/70439
7633 * config/i386/i386.c (ix86_expand_epilogue): Properly check
7634 conflict between DRAP register and __builtin_eh_return.
7635
7636 2016-03-30 Michael Matz <matz@suse.de>
7637 Richard Biener <rguenther@suse.de>
7638
7639 PR ipa/12392
7640 * ipa-polymorphic-call.c (struct type_change_info): Change
7641 speculative to an unsigned allowing to limit the work we do.
7642 (csftc_abort_walking_p): New inline function..
7643 (check_stmt_for_type_change): Limit the number of may-defs
7644 skipped for speculative devirtualization to
7645 max-speculative-devirt-maydefs.
7646 * params.def (max-speculative-devirt-maydefs): New param.
7647 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
7648
7649 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
7650
7651 PR target/63890
7652 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
7653 and TARGET_MACHO.
7654
7655 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
7656
7657 PR tree-optimization/59124
7658 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
7659 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
7660
7661 2016-03-29 Jeff Law <law@redhat.com>
7662
7663 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
7664
7665 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7666
7667 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
7668 to HOST_WIDE_INT.
7669
7670 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
7671
7672 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
7673 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
7674 gcrt0.o if linking dynamically.
7675
7676 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7677
7678 PR ipa/70283
7679 * ipa-devirt.c (methods_equal_p): New function.
7680 (compare_virtual_tables): Use it.
7681 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
7682 * cgraphclones.c (clone_function_name_1): Use
7683 symbol_table::symbol_suffix_separator.
7684 * coverage.c (build_var): Likewise.
7685 * symtab.c (symbol_table::symbol_suffix_separator): New.
7686
7687 2016-03-29 Jakub Jelinek <jakub@redhat.com>
7688
7689 PR rtl-optimization/70429
7690 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
7691 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
7692 mode != result_mode.
7693
7694 PR c++/70353
7695 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
7696
7697 PR tree-optimization/70405
7698 * ssa-iterators.h (num_imm_uses): Add missing braces.
7699
7700 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
7701
7702 PR rtl-optimization/68695
7703 * ira-color.c (allocno_copy_cost_saving): New.
7704 (improve_allocation): Use it.
7705
7706 2016-03-29 Richard Henderson <rth@redhat.com>
7707
7708 PR middle-end/70355
7709 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
7710
7711 2016-03-29 Richard Biener <rguenther@suse.de>
7712
7713 PR middle-end/70424
7714 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
7715 use alignment returned by get_pointer_alignment_1 if it is
7716 bigger than BITS_PER_UNIT.
7717 * builtins.c (get_pointer_alignment_1): Do not return true
7718 for alignment extracted from SSA info.
7719
7720 2016-03-28 James Bowman <james.bowman@ftdichip.com>
7721
7722 * config/ft32/ft32.opt (mnodiv): New.
7723 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
7724 * doc/invoke.texi (FT32 Options -mnodiv): New.
7725
7726 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
7727
7728 PR target/70406
7729 * config/i386/i386.md (define_split, andn): Fix modes.
7730
7731 2016-03-26 Richard Biener <rguenther@suse.de>
7732 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7733
7734 PR ipa/70366
7735 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
7736 instead of
7737 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
7738 as 2nd argument to cl_optimization_restore().
7739
7740 2016-03-25 Richard Henderson <rth@redhat.com>
7741
7742 PR target/70120
7743 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
7744 * config/aarch64/aarch64-protos.h: Declare it.
7745 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
7746
7747 2016-03-25 Alan Modra <amodra@gmail.com>
7748
7749 PR target/70052
7750 * config/rs6000/constraints.md (j): Simplify.
7751 * config/rs6000/predicates.md (easy_fp_constant): Exclude
7752 decimal float 0.D.
7753 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
7754 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
7755 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
7756 in all constraint alternatives.
7757 (movtd_64bit_nodm): Delete "j" constraint alternative.
7758
7759 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
7760
7761 * tree-ssa-propagate.c: Enhance docs for
7762 SSA_PROP_NOT_INTERESTING.
7763
7764 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
7765
7766 * doc/extend.texi: Fix typo in documentation to pure attribute.
7767
7768 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
7769
7770 PR target/70319
7771 * config/pa/pa.md (bswapdi2): Use a scratch register.
7772
7773 2016-03-24 Richard Henderson <rth@redhat.com>
7774
7775 PR middle-end/69845
7776 * fold-const.c (extract_muldiv_1): Correct test for multiplication
7777 overflow.
7778
7779 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
7780
7781 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
7782 using ix86_expand_binary_operator instead of gen_andsi3.
7783
7784 2016-03-24 Richard Biener <rguenther@suse.de>
7785
7786 PR tree-optimization/70396
7787 * tree-vect-stmts.c (vectorizable_comparison): Use
7788 get_vectype_for_scalar_type.
7789
7790 2016-03-24 Richard Biener <rguenther@suse.de>
7791
7792 PR middle-end/70370
7793 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
7794 with register bases.
7795
7796 2016-03-24 Richard Biener <rguenther@suse.de>
7797
7798 PR tree-optimization/70372
7799 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
7800 build_all_ones_cst to also handle vector types correctly.
7801
7802 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
7803
7804 PR target/70381
7805 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
7806 -mfloat128 here.
7807
7808 2016-03-23 Marek Polacek <polacek@redhat.com>
7809
7810 PR c++/69884
7811 * doc/invoke.texi: Document -Wignored-attributes.
7812
7813 2016-03-23 Bin Cheng <bin.cheng@arm.com>
7814
7815 PR tree-optimization/69042
7816 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
7817 parameter from 30 to 40.
7818
7819 2016-03-23 Bin Cheng <bin.cheng@arm.com>
7820
7821 PR tree-optimization/69042
7822 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
7823 for use with constant offset stripped in base.
7824
7825 2016-03-23 Richard Biener <rguenther@suse.de>
7826
7827 PR middle-end/70251
7828 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
7829 mode compatibility check.
7830 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
7831
7832 2016-03-23 Jeff Law <law@redhat.com>
7833
7834 PR tree-optimization/64058
7835 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
7836 CONFLICT_COUNT.
7837 (struct ssa_conflicts): Move up earlier in the file.
7838 (conflicts_, var_map_): New static variables.
7839 (initialize_conflict_count): New function to initialize the
7840 CONFLICT_COUNT field for each conflict pair.
7841 (compare_pairs): Lazily initialize the conflict count and use it
7842 as the first tie-breaker.
7843 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
7844 and wipe conflicts_ and map_ around the call to qsort. Remove
7845 special case for 2 coalesce pairs.
7846 * bitmap.c (bitmap_count_unique_bits): New function.
7847 (bitmap_count_bits_in_word): New function, extracted from
7848 bitmap_count_bits.
7849 (bitmap_count_bits): Use bitmap_count_bits_in_word.
7850 * bitmap.h (bitmap_count_unique_bits): Declare it.
7851
7852 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
7853
7854 PR target/69917
7855 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
7856 transparent alias chain for decl assembler name.
7857 * config/sol2.c (solaris_assemble_visibility): Likewise.
7858
7859 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7860
7861 * config/arm/arm1020e.md (1020call_op): Reduce reservation
7862 duration.
7863 (v10_fdivs): Likewise.
7864 (v10_fdivd): Likewise.
7865
7866 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7867
7868 PR driver/70132
7869 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
7870 to not call fclose twice on file.
7871
7872 2016-03-23 Jakub Jelinek <jakub@redhat.com>
7873
7874 PR tree-optimization/70354
7875 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
7876 oprnd0 is wider than oprnd1 and there is a cast from the wider
7877 type to oprnd1, mask it with the mask of the narrower type.
7878
7879 PR target/70321
7880 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
7881 Optimize TARGET_STV splitters, if high or low word of last argument
7882 is 0 or -1.
7883
7884 2016-03-22 Jeff Law <law@redhat.com>
7885
7886 PR target/70232
7887 tree-ssa-threadbackward.c
7888 (fsm_find_control_statement_thread_paths): Correctly distinguish
7889 between old style jump threads vs FSM jump threads.
7890
7891 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
7892
7893 PR target/70302
7894 * config/i386/i386.c (scalar_chain::convert_op): Support
7895 uninitialized register usage case.
7896
7897 2016-03-22 Richard Biener <rguenther@suse.de>
7898
7899 PR middle-end/70251
7900 * genmatch.c (gen_transform): Adjust last parameter to a three-state
7901 int...
7902 (capture::gen_transform): ... to change behavior when substituting
7903 a condition into cond or not-cond expr context.
7904 (dt_simplify::gen_1): Adjust.
7905 * gimple-match-head.c: Include gimplify.h for unshare_expr.
7906 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
7907 last change and instead change to
7908 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
7909 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
7910
7911 2016-03-22 Anthony Green <green@moxielogic.com>
7912
7913 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
7914 issue for moxiebox targets.
7915 (CC1PLUS_SPEC): Ditto.
7916
7917 2016-03-22 Richard Biener <rguenther@suse.de>
7918
7919 PR middle-end/70333
7920 * fold-const.c (extract_muldiv_1): Properly perform multiplication
7921 in the wide type.
7922
7923 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
7924
7925 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
7926
7927 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
7928
7929 PR target/70325
7930 * config/i386/i386.c (def_builtin): Handle
7931 OPTION_MASK_ISA_AVX512VL to be and-ed with other
7932 bits.
7933 (const struct builtin_description bdesc_special_args[]):
7934 Remove duplicate ISA bits.
7935
7936 2016-03-22 Jakub Jelinek <jakub@redhat.com>
7937
7938 PR target/70329
7939 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
7940 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
7941 in a way that works also for AVX512BW.
7942
7943 PR target/70300
7944 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
7945 instead of source if operands[1] is xmm16 and above and
7946 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
7947 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
7948
7949 PR c++/70295
7950 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
7951 on assign if (*from_p) is a comparison, set it to
7952 TREE_NO_WARNING (*from_p).
7953
7954 2016-03-21 Jakub Jelinek <jakub@redhat.com>
7955
7956 PR middle-end/70326
7957 * lra.c (restore_scratches): Ignore deleted insns.
7958
7959 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
7960 Jakub Jelinek <jakub@redhat.com>
7961
7962 PR tree-optimization/70317
7963 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
7964 to HONOR_NANS.
7965
7966 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
7967
7968 PR target/70327
7969 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
7970 of ix86_expand_move.
7971 (movoi): Ditto.
7972 (movti): Use general_operand for operand 1 predicate.
7973
7974 2016-03-21 Martin Liska <mliska@suse.cz>
7975
7976 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
7977 insns.
7978 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
7979
7980 2016-03-21 Martin Liska <mliska@suse.cz>
7981
7982 PR ipa/70306
7983 * ipa-icf.c (sem_function::parse): Skip static
7984 constructors and destructors.
7985
7986 2016-03-21 Jakub Jelinek <jakub@redhat.com>
7987
7988 PR target/70296
7989 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
7990 function-like macro, peek following token(s) if it is followed
7991 by CPP_OPEN_PAREN token with optional padding in between, and
7992 if not, don't treat it like a macro.
7993
7994 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
7995 Alexander Monakov <amonakov@ispras.ru>
7996
7997 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
7998 for the stabs debug format.
7999
8000 2016-03-21 Richard Biener <rguenther@suse.de>
8001
8002 PR tree-optimization/70310
8003 * tree-vect-generic.c (expand_vector_condition): Fold the built
8004 condition.
8005
8006 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
8007
8008 PR target/70293
8009 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
8010 Block third alternative for AVX-512VL target,
8011
8012 2016-03-21 Martin Liska <mliska@suse.cz>
8013
8014 PR hsa/70234
8015 * hsa-brig.c (emit_function_directives): Mark unemitted
8016 global variables for emission.
8017 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
8018 (get_symbol_for_decl): Likewise.
8019 * hsa.h (struct hsa_symbol): New flag.
8020
8021 2016-03-21 Richard Biener <rguenther@suse.de>
8022
8023 PR tree-optimization/70288
8024 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
8025 we do not estimate unsimplified all-constant conditionals or
8026 switches as optimized away.
8027
8028 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
8029
8030 PR rtl-optimization/69102
8031 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
8032 when we have a readonly dependency context.
8033
8034 2016-03-18 Jeff Law <law@redhat.com>
8035
8036 PR rtl-optimization/70263
8037 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
8038 (update_equiv_regs): When trying to move a store to after the insn
8039 that sets the source of the store, make sure the store occurs after
8040 the insn that sets the source of the store. When successful note
8041 the REG_EQUIV note created in the dump file.
8042
8043 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
8044 Bernd Schmidt <bschmidt@redhat.com>
8045
8046 * doc/extend.texi: Document more potential problems with basic asms.
8047
8048 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
8049
8050 PR rtl-optimization/70278
8051 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
8052 VOIDmode.
8053
8054 2016-03-18 Jason Merrill <jason@redhat.com>
8055
8056 * calls.c (load_register_parameters): Fix zero size sibcall logic.
8057
8058 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
8059
8060 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
8061 values to 128b regs.
8062
8063 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
8064
8065 PR tree-optimization/70252
8066 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
8067 boolean vector has a proper number of elements.
8068 (supportable_narrowing_operation): Likewise.
8069
8070 2016-03-18 Tom de Vries <tom@codesourcery.com>
8071
8072 PR ipa/70269
8073 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
8074
8075 2016-03-18 Jakub Jelinek <jakub@redhat.com>
8076
8077 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
8078 instead of replace_rtx for DEBUG_INSNs.
8079
8080 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
8081
8082 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
8083 load type reservations.
8084
8085 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
8086
8087 PR target/70188
8088 * config/pa/constraints.md: Revert 2015-02-13 change. Use
8089 define_constraint for "Q" and "T" constraints.
8090
8091 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
8092
8093 Tweak the pipeline model for Exynos M1
8094
8095 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
8096 model.
8097
8098 2016-03-17 David Malcolm <dmalcolm@redhat.com>
8099
8100 PR c/70264
8101 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
8102 where one or both locations aren't within a line_map.
8103
8104 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
8105
8106 PR driver/70192
8107 * opts.c (finish_options): Don't set flag_pie to the default if
8108 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
8109 if it is -1.
8110
8111 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
8112
8113 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
8114 true as ALL_REGS argument to replace_rtx.
8115
8116 2016-03-17 Richard Biener <rguenther@suse.de>
8117
8118 PR debug/70271
8119 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
8120 last.
8121
8122 2016-03-17 Jakub Jelinek <jakub@redhat.com>
8123
8124 PR target/70245
8125 * rtl.h (replace_rtx): Add ALL_REGS argument.
8126 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
8127 equality and assert mode is the same, instead of just rtx pointer
8128 equality.
8129 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
8130 true as ALL_REGS argument to replace_rtx.
8131
8132 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
8133
8134 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
8135 for boolean vector with vector mode only.
8136 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
8137
8138 2016-03-17 Nick Clifton <nickc@redhat.com>
8139
8140 PR target/70162
8141 * config/rx/rx.c (rx_print_integer): Print negative constants in
8142 decimal.
8143
8144 2016-03-17 Jakub Jelinek <jakub@redhat.com>
8145
8146 PR target/70261
8147 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
8148
8149 2016-03-16 Richard Henderson <rth@redhat.com>
8150 Richard Biener <rguenth@suse.de>
8151
8152 PR middle-end/70240
8153 PR middle-end/68215
8154 PR tree-opt/68714
8155 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
8156 first operand as is_gimple_condexpr.
8157
8158 PR middle-end/70240
8159 PR middle-end/68215
8160 Revert r231575
8161 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
8162 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
8163 Do not gimplify the result.
8164 (do_unop): Adjust call to tree_vec_extract.
8165 (do_binop): Likewise.
8166 (do_compare): Likewise.
8167 (do_plus_minus): Likewise.
8168 (do_negate): Likewise.
8169 (expand_vector_condition): Likewise.
8170 (do_cond): Likewise.
8171
8172 2016-03-16 Richard Henderson <rth@redhat.com>
8173
8174 PR target/70048
8175 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
8176 (aarch64_classify_address): Use it.
8177 (aarch64_legitimize_address): Force all subexpressions of PLUS
8178 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
8179
8180 2016-03-16 Jakub Jelinek <jakub@redhat.com>
8181 Richard Biener <rguenth@suse.de>
8182
8183 PR target/70245
8184 * rtlanal.c (replace_rtx): For REG, if from is a REG,
8185 return to even if only REGNO is equal, and assert
8186 mode is the same.
8187
8188 2016-03-11 Jeff Law <law@redhat.com>
8189
8190 PR rtl-optimization/70224
8191 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
8192
8193 2016-03-16 Richard Henderson <rth@redhat.com>
8194
8195 PR middle-end/70199
8196 * function.h (struct function): Add has_forced_label_in_static.
8197 * gimplify.c (force_labels_r): Set it.
8198 * lto-streamer-in.c (input_struct_function_base): Read it.
8199 * lto-streamer-out.c (output_struct_function_base): Write it.
8200 * tree-inline.c (has_label_address_in_static_1): Remove.
8201 (copy_forbidden): Remove fndecl parameter; test
8202 has_forced_label_in_static.
8203 (inline_forbidden_p): Update call to copy_forbidden.
8204 (tree_versionable_function_p): Likewise.
8205 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
8206 (chkp_versioning): Likewise.
8207 * tree-inline.h (copy_forbidden): Update decl.
8208
8209 2016-03-16 Marek Polacek <polacek@redhat.com>
8210
8211 PR c/70093
8212 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
8213 function being thunked if the result type doesn't have fixed size.
8214 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
8215 doesn't have fixed size.
8216
8217 2016-03-16 Bin Cheng <bin.cheng@arm.com>
8218
8219 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
8220 reporting malformed loop nest.
8221
8222 2016-03-16 Tom de Vries <tom@codesourcery.com>
8223
8224 PR lto/70187
8225 * ipa-devirt.c (possible_polymorphic_call_targets): Move
8226 nodes.length () == 1 test to before first nodes[0] access.
8227
8228 2016-03-16 Tom de Vries <tom@codesourcery.com>
8229
8230 PR tree-optimization/68715
8231 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
8232 single_pred_p test.
8233
8234 2016-03-16 Tom de Vries <tom@codesourcery.com>
8235
8236 PR tree-optimization/68809
8237 * graphite-scop-detection.c (same_close_phi_node): Test if result types
8238 are the same.
8239
8240 2016-03-16 Carlos O'Donell <carlos@redhat.com>
8241 Sandra Loosemore <sandra@codesourcery.com>
8242
8243 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
8244 on leaf attribute. Mention ELF interposition problems.
8245
8246 2016-03-16 Alan Modra <amodra@gmail.com>
8247
8248 PR rtl-optimization/69195
8249 PR rtl-optimization/47992
8250 * ira.c (indirect_jump_optimize): Ignore artificial defs.
8251 Add comments.
8252
8253 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
8254
8255 PR bootstrap/69513
8256 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
8257
8258 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
8259
8260 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
8261
8262 2016-03-15 Jakub Jelinek <jakub@redhat.com>
8263
8264 PR rtl-optimization/70222
8265 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
8266 optimization if mode is different from result_mode, queue up masking
8267 of the result in outer_op. Formatting fix.
8268
8269 PR middle-end/70239
8270 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
8271 of safe_grow.
8272
8273 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
8274
8275 PR rtl-optimization/69032
8276 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
8277 looping backwards over basic block insns.
8278
8279 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
8280
8281 PR target/66660
8282 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
8283 to non-speculative when propagating trap bits.
8284
8285 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
8286
8287 PR rtl-optimization/63384
8288 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
8289 DEBUG_INSN_P insns.
8290
8291 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
8292
8293 PR target/64411
8294 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
8295 factored out from ...
8296 (sched_analyze_insn): ... here.
8297 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
8298 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
8299 get_implicit_reg_pending_clobbers in it.
8300 (setup_id_reg_sets): Use setup_id_implicit_regs.
8301 (deps_init_id): Ditto.
8302
8303 2016-03-15 Tom de Vries <tom@codesourcery.com>
8304
8305 PR ipa/70161
8306 * cgraph.c (cgraph_node::get_body): Save, reset and restore
8307 dump_file_name.
8308 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
8309 execute_function_dump.
8310 (execute_one_pass): Don't dump function if it will be dumped after ipa
8311 transform.
8312
8313 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
8314
8315 * genrecog.c (match_pattern_2): If pred is NULL don't call
8316 safe_predicate_mode on it.
8317
8318 2016-03-14 Jakub Jelinek <jakub@redhat.com>
8319
8320 PR middle-end/70219
8321 * lra-constraints.c (delete_move_and_clobber): Change assertion
8322 to also allow dregno == 0.
8323
8324 2016-03-14 Richard Henderson <rth@redhat.com>
8325
8326 PR tree-opt/68714
8327 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
8328 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
8329 (reassociate_bb): Use optimize_vec_cond_expr; avoid
8330 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
8331 on vectors.
8332
8333 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
8334
8335 PR target/70083
8336 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
8337 regs.
8338 (lra_create_live_ranges_1): initialize hard register biggest_mode to
8339 VOIDmode.
8340 * lra-constraints.c (split_reg): For hard regs, try to find the
8341 biggest single-register mode used in the function.
8342
8343 2016-03-14 Richard Biener <rguenther@suse.de>
8344
8345 PR tree-optimization/56365
8346 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
8347 constants to compare against.
8348
8349 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
8350
8351 PR target/70098
8352 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
8353 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
8354 (define_split for the GPR case): Use int_reg_operand instead of
8355 gpc_reg_operand for the output.
8356
8357 2016-03-14 Tom de Vries <tom@codesourcery.com>
8358
8359 PR tree-optimization/70045
8360 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
8361 create_empty_if_region_on_edge argument.
8362
8363 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
8364
8365 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
8366 (STACK_CHECK_PROTECT): Likewise.
8367 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
8368 (STACK_CHECK_PROTECT): Likewise.
8369 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
8370 (STACK_CHECK_PROTECT): Likewise.
8371 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
8372 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
8373 (STACK_CHECK_PROTECT): Likewise.
8374
8375 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
8376
8377 PR rtl-optimization/69307
8378 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
8379 registers in modes that span more than one register.
8380
8381 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
8382
8383 PR target/69614
8384 * lra-constraints.c (delete_move_and_clobber): New.
8385 (remove_inheritance_pseudos): Use it.
8386
8387 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
8388
8389 PR ada/70017
8390 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
8391 the libcall is LCT_THROW.
8392 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
8393 for the checking routine.
8394
8395 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
8396
8397 PR target/70131
8398 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
8399 optimization if we have direct move.
8400 (roundu32<mode>2_fprs): Likewise.
8401
8402 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
8403
8404 PR target/70123
8405 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
8406 be rematerialized.
8407 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
8408 Arguments swapped. All callers changed. Take reg_renumber into
8409 account, and Calculate and compare register ranges for hard regs.
8410
8411 2016-03-11 Jeff Law <law@redhat.com>
8412
8413 PR tree-optimization/70190
8414 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8415 Handle cases where we can not extract the taken edge, even though we
8416 found a constant value.
8417
8418 PR tree-optimization/64058
8419 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
8420 (num_coalesce_pairs): Move up earlier in file.
8421 (find_coalesce_pair): Initialize the INDEX field for each pair
8422 discovered.
8423 (compare_pairs): No longer sort on the elements in each pair.
8424 Instead break ties with the index of the coalesce pair.
8425
8426 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8427
8428 PR target/70002
8429 * config/aarch64/aarch64-protos.h
8430 (aarch64_save_restore_target_globals): New prototype.
8431 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
8432 Call the above when popping pragma.
8433 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
8434 New function.
8435 (aarch64_set_current_function): Rewrite using the above.
8436
8437 2016-03-11 Jakub Jelinek <jakub@redhat.com>
8438
8439 PR tree-optimization/70177
8440 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
8441 (extract_ops_from_tree): ... this. In the 2 argument
8442 overload remove _1 suffix.
8443 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
8444 (extract_ops_from_tree): ... this.
8445 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
8446 Adjust callers.
8447 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
8448 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
8449 extract_ops_from_tree instead of 2 operand one.
8450
8451 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
8452
8453 PR tree-optimization/70013
8454 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
8455 for constant-pool entries.
8456
8457 2016-03-11 Jakub Jelinek <jakub@redhat.com>
8458
8459 PR rtl-optimization/70174
8460 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
8461 followed by gen_lowpart on force_reg instead of just gen_lowpart.
8462
8463 PR tree-optimization/70169
8464 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
8465 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
8466 for unknown codes.
8467
8468 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
8469 Jakub Jelinek <jakub@redhat.com>
8470
8471 PR target/70160
8472 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
8473 of uninitialized values.
8474
8475 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8476
8477 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
8478 define_expand.
8479 ("*trunctddd2"): New pattern definition.
8480 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
8481 TD->DD truncation.
8482
8483 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8484
8485 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
8486 definitions for BFP and DFP rounding modes.
8487 ("fixuns_truncdddi2", "fixuns_trunctddi2")
8488 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
8489 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
8490 ("fix_trunctf<mode>2"): Use the new constants instead of magic
8491 numbers.
8492
8493 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8494
8495 * config/s390/constraints.md: Adjust comment.
8496 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
8497 s390_decompose_addrstyle_without_index.
8498 * config/s390/predicates.md (shift_count_or_setmem_operand):
8499 Rename to setmem_operand.
8500 * config/s390/s390-protos.h
8501 (s390_decompose_shift_count): Rename to
8502 s390_decompose_addrstyle_without_index.
8503 * config/s390/s390.c (s390_decompose_shift_count)
8504 (s390_mem_constraint, print_shift_count_operand)
8505 (print_operand_address, print_operand): Rename
8506 s390_decompose_shift_count to
8507 s390_decompose_addrstyle_without_index and rename
8508 print_shift_count_operand to print_addrstyle_operand troughout the
8509 file.
8510 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
8511 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
8512 Rename shift_count_or_setmem_operand to setmem_operand.
8513 * config/s390/vx-builtins.md ("vec_insert<mode>")
8514 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
8515 nonmemory_operand.
8516
8517 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8518
8519 PR target/70168
8520 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
8521 Handle overlapping retval and newval.
8522
8523 2016-03-10 Nick Clifton <nickc@redhat.com>
8524
8525 PR target/7044
8526 * config/aarch64/aarch64.c
8527 (aarch64_override_options_after_change_1): When forcing
8528 flag_omit_frame_pointer to be true, use a special value that can
8529 be detected if this function is called again, thus preventing
8530 flag_omit_leaf_frame_pointer from being forced to be false.
8531
8532 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8533
8534 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
8535 Set x_flag_omit_leaf_frame_pointer when handling
8536 -momit-leaf-frame-pointer.
8537
8538 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
8539
8540 PR lto/69589
8541 * cgraph.c (cgraph_node::dump): Dump split_part and
8542 indirect_call_target.
8543 * cgraph.h (cgraph_node): Add indirect_call_target flag.
8544 * ipa.c (has_addr_references_p): Cleanup.
8545 (is_indirect_call_target_p): New.
8546 (walk_polymorphic_call_targets): Do not mark virtuals that may be
8547 called indirectly as local.
8548 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
8549
8550 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
8551
8552 PR ipa/69630
8553 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
8554 on cxa_pure_virtual.
8555
8556 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
8557
8558 PR lto/69589
8559 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
8560
8561 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
8562
8563 PR lto/69589
8564 * tree.c (need_assembler_name_p): Only record main variant type names.
8565
8566 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
8567
8568 PR target/70113.
8569 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
8570 Always define to 0 or 1.
8571 (TARGET_FIX_ERR_A53_843419): New macro.
8572 * config/aarch64/aarch64-elf-raw.h
8573 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
8574 * config/aarch64/aarch64-linux.h: Likewise.
8575 * config/aarch64/aarch64.c
8576 (aarch64_override_options_after_change_1): Do not default
8577 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
8578 843419 is on.
8579 (aarch64_attributes): Handle fix-cortex-a53-843419.
8580 (aarch64_can_inline_p): Likewise.
8581 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
8582
8583 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
8584 Jakub Jelinek <jakub@redhat.com>
8585
8586 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
8587 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
8588 DECL_COMMONS if flag_unconstrained_commons is set.
8589 * tree-dfa.c (get_ref_base_and_extent): Likewise.
8590 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
8591 (funconstrained-commons): Document.
8592
8593 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
8594
8595 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
8596 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
8597
8598 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
8599
8600 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
8601 has a proper number of elements.
8602
8603 2016-03-10 Alan Modra <amodra@gmail.com>
8604
8605 PR rtl-optimization/69195
8606 PR rtl-optimization/47992
8607 * ira.c (recorded_label_ref): Delete.
8608 (update_equiv_regs): Return void.
8609 (indirect_jump_optimize): New function.
8610 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
8611 before regstat_compute_ri. Don't rebuild_jump_labels here.
8612 Delete update_regstat.
8613
8614 2016-03-10 Richard Biener <rguenther@suse.de>
8615
8616 PR tree-optimization/70128
8617 * tree-ssa-structalias.c (set_uids_in_ptset): Set
8618 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
8619
8620 2016-03-09 Jakub Jelinek <jakub@redhat.com>
8621
8622 PR tree-optimization/70152
8623 * tree-sra.c (replace_removed_params_ssa_names): Copy over
8624 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
8625
8626 PR target/70086
8627 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
8628 instead of gen_sse2_loadlpd.
8629 * config/i386/sse.md (*vec_concatv2df): Rename to...
8630 (vec_concatv2df): ... this.
8631
8632 PR tree-optimization/70127
8633 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
8634
8635 2016-03-09 David Malcolm <dmalcolm@redhat.com>
8636
8637 PR c/68473
8638 PR c++/70105
8639 * diagnostic-show-locus.c (compatible_locations_p): New function.
8640 (layout::layout): Sanitize ranges using compatible_locations_p.
8641
8642 2016-03-09 David Malcolm <dmalcolm@redhat.com>
8643
8644 PR c/68473
8645 PR c++/70105
8646 * diagnostic-show-locus.c (layout_range::layout_range): Replace
8647 location_range param with three const expanded_locations * and a
8648 bool.
8649 (layout::layout): Replace call to
8650 rich_location::lazily_expand_location with get_expanded_location.
8651 Extract the range and perform location expansion here, passing
8652 the results to the layout_range ctor.
8653 * diagnostic.c (source_range::debug): Delete.
8654 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
8655 of rich_location::get_expanded_location.
8656 * gcc-rich-location.c (get_range_for_expr): Delete.
8657 (gcc_rich_location::add_expr): Reimplement to avoid the
8658 rich_location::add_range overload that took a location_range,
8659 passing a location_t instead.
8660
8661 2016-03-09 Richard Biener <rguenther@suse.de>
8662 Jakub Jelinek <jakub@redhat.com>
8663
8664 PR tree-optimization/70138
8665 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
8666 Also skip vect_double_reduction_def.
8667
8668 2016-03-09 Jakub Jelinek <jakub@redhat.com>
8669
8670 PR target/70049
8671 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
8672 if the operand is "m".
8673
8674 2016-03-09 Nathan Sidwell <nathan@acm.org>
8675
8676 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
8677
8678 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
8679
8680 * config/i386/i386.c (processor_target_table): Fix cost table
8681 intialization order for znver1.
8682
8683 2016-03-08 Jakub Jelinek <jakub@redhat.com>
8684
8685 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
8686 - becuase -> because.
8687 * ipa-reference.c (ignore_module_statics): Likewise.
8688 * cgraph.c (cgraph_node::get_body): Likewise.
8689 * ipa-inline.c (early_inliner): Likewise.
8690 * ipa-devirt.c (types_same_for_odr): Likewise.
8691 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
8692 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
8693
8694 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8695
8696 * tree-ssa-math-opts.c: Fix typo in comment.
8697
8698 2016-03-08 Jakub Jelinek <jakub@redhat.com>
8699
8700 PR target/70110
8701 * config/i386/i386.c (scalar_chain::make_vector_copies,
8702 scalar_chain::convert_reg): Call end_sequence in between
8703 get_insns and emit_conversion_insns rather than after both
8704 calls.
8705
8706 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
8707
8708 PR target/70064
8709 * config/i386/i386.h (machine_function): Add
8710 pc_thunk_call_expanded flag.
8711 (ix86_pc_thunk_call_expanded): New define.
8712 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
8713 (*set_got): Rename insn pattern from set_got.
8714 (*set_got_labelled): Rename inst pattern from set_got_labelled.
8715 * config/i386/i386.c (ix86_compute_frame_layout): Use
8716 ix86_pc_thunk_call_expanded to prevent red-zone.
8717
8718 2016-03-07 Martin Jambor <mjambor@suse.cz>
8719
8720 * hsa.h (hsa_get_ctor_statements): Declare.
8721 (hsa_get_dtor_statements): Likewise.
8722 (hsa_get_kernel_dispatch_type): Likewise.
8723 * hsa.c (hsa_get_ctor_statements): New function.
8724 (hsa_get_dtor_statements): Likewise.
8725 (hsa_get_kernel_dispatch_type): Likewise.
8726 * hsa-brig.c (hsa_cdtor_statements): Removed.
8727 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
8728 hsa_get_dtor_statements.
8729 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
8730 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
8731
8732 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
8733
8734 * config/arm/arm-cores.def (cortex-r8): New.
8735 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
8736 * config/arm/arm-tune.md: Likewise.
8737 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
8738
8739 2016-03-07 Martin Sebor <msebor@redhat.com>
8740
8741 PR rtl-optimization/19705
8742 * doc/invoke.texi (Options That Control Optimization): Clarify
8743 -fno-branch-count-reg.
8744
8745 2016-02-26 Richard Biener <rguenther@suse.de>
8746 Jeff Law <law@redhat.com>
8747
8748 PR tree-optimization/69740
8749 * cfghooks.c (remove_edge): Request loop fixups if we delete
8750 an edge that might turn an irreducible loop into a natural
8751 loop.
8752 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
8753 Move after definition of loops_state_clear.
8754
8755 2016-03-07 Bin Cheng <bin.cheng@arm.com>
8756
8757 PR rtl-optimization/69052
8758 * rtlanal.c (commutative_operand_precedence): Set higher precedence
8759 to CONST_WIDE_INT.
8760
8761 2016-03-07 Tom de Vries <tom@codesourcery.com>
8762
8763 PR tree-optimization/70116
8764 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
8765 is_tm_ending stmts and ubsan/asan internal functions.
8766 (find_duplicate): Use it. Don't test is_tm_ending here.
8767
8768 2016-03-07 Richard Biener <rguenther@suse.de>
8769
8770 PR tree-optimization/70115
8771 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
8772 (propagate_constants_for_unrolling): Use replace_uses_by.
8773
8774 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
8775
8776 PR middle-end/69916
8777 * omp-low.c (struct oacc_loop): Add ifns.
8778 (new_oacc_loop_raw): Initialize it.
8779 (finish_oacc_loop): Clear mask & flags if no ifns.
8780 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
8781 (oacc_loop_xform_loop): Add ifns arg & adjust.
8782 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
8783
8784 2016-03-07 Richard Henderson <rth@redhat.com>
8785
8786 PR rtl-opt/70061
8787 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
8788 (insert_value_copy_on_edge): Likewise.
8789
8790 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8791
8792 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
8793
8794 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8795
8796 PR target/62281
8797 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
8798
8799 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
8800
8801 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
8802
8803 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
8804
8805 Fix sseimul type attribute.
8806 * config/i386/znver1.md
8807 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
8808 znver1_sseimul_avx256_load) : Fix the type attribute.
8809 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
8810 pipe usage and latency.
8811
8812 2016-03-05 Jakub Jelinek <jakub@redhat.com>
8813
8814 PR c++/70084
8815 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
8816 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
8817 to the right type.
8818
8819 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
8820
8821 PR c/69973
8822 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
8823
8824 PR rtl-optimization/69941
8825 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
8826 the reg share its mode.
8827
8828 2016-03-04 Jeff Law <law@redhat.com>
8829
8830 PR tree-optimization/69196
8831 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8832 If the both SSA_NAMEs are anonymous, then consider them unassociated
8833 and include the PHI in the statement count.
8834
8835 2016-03-05 Tom de Vries <tom@codesourcery.com>
8836
8837 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
8838 construct in oacc routine. Check for oacc region in oacc routine.
8839
8840 2016-03-04 Jakub Jelinek <jakub@redhat.com>
8841
8842 PR target/70062
8843 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
8844 2016-02-22 changes, instead don't recurse if RECUR is already true.
8845 Don't change *dynamic_check if RECUR. Adjust recursive caller
8846 to pass true to the new argument.
8847 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
8848
8849 PR target/70059
8850 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
8851 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
8852 fixes.
8853 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
8854
8855 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
8856
8857 PR rtl-optimization/57676
8858 * lra-assigns.c (lra_assign): Guard test for maximum iterations
8859 with flag_checking.
8860
8861 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
8862
8863 * tree-vect-patterns.c (search_type_for_mask): Handle
8864 comparison of booleans.
8865
8866 2016-03-04 Jakub Jelinek <jakub@redhat.com>
8867
8868 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
8869 Fix @xref usage.
8870
8871 PR debug/69947
8872 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
8873 all other ops that have dw_val_class_die_ref operands,
8874 and DW_OP_GNU_entry_value.
8875
8876 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8877
8878 PR rtl-optimization/69904
8879 * config/arm/arm.c (arm_cannot_copy_insn_p):
8880 Return true for load-exclusive instructions.
8881
8882 2016-03-03 Jakub Jelinek <jakub@redhat.com>
8883
8884 PR target/70021
8885 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
8886 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
8887 the pattern no matter if it is used just by non-pattern, pattern
8888 or mix thereof.
8889 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
8890 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
8891 oprnd1 def_stmt is in pattern, don't look through it.
8892
8893 2016-03-03 Marek Polacek <polacek@redhat.com>
8894
8895 PR middle-end/70050
8896 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
8897
8898 2016-03-03 Martin Liska <mliska@suse.cz>
8899
8900 PR tree-optimization/70043
8901 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
8902 previous statement if we see a debug statement.
8903
8904 2016-03-03 Richard Biener <rguenther@suse.de>
8905
8906 PR tree-optimization/55936
8907 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
8908 parameter and guard unsafe equivalence use.
8909 (vrp_evaluate_conditional_warnv_with_ops): Always use
8910 safe equivalences but not via the quadratic compare_names
8911 helper.
8912
8913 2016-03-03 Michael Collison <michael.collison@linaro.org>
8914
8915 PR target/70014
8916 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
8917 for operand 1 to s_register_operand. Change predicate for operand
8918 2 to arm_not_immediate_operand.
8919
8920 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
8921
8922 * doc/tm.texi: Regenerated.
8923
8924 2016-03-02 Richard Henderson <rth@redhat.com>
8925
8926 PR rtl-opt/67145
8927 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
8928 simplification when all args are positive non-fixed registers.
8929
8930 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8931
8932 * target.def (lra_p): Specify that new ports should use LRA.
8933
8934 2016-03-02 Jakub Jelinek <jakub@redhat.com>
8935
8936 PR libgomp/69555
8937 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
8938 gimplify_type_sizes the type they refer to.
8939 (omp_notice_variable): Handle reference vars to VLAs.
8940 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
8941 reference to VLA decls in the second pass instead of first pass.
8942
8943 2016-03-02 Tom de Vries <tom@codesourcery.com>
8944
8945 PR tree-optimization/68659
8946 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
8947 new_expr == NULL_TREE.
8948 (get_new_name): Handle ADDR_EXPR.
8949
8950 2016-03-02 Bin Cheng <bin.cheng@arm.com>
8951
8952 PR rtl-optimization/69052
8953 * loop-invariant.c (canonicalize_address): New function.
8954 (inv_can_prop_to_addr_use): Check validity of address expression
8955 which is canonicalized by above function.
8956
8957 2016-03-02 Alan Modra <amodra@gmail.com>
8958
8959 PR ipa/69990
8960 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
8961 larger alignment.
8962
8963 2016-03-02 Jakub Jelinek <jakub@redhat.com>
8964
8965 PR target/70028
8966 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
8967 (*movhi_internal): Put mask moves from and to memory separately
8968 from moves from/to GPRs.
8969
8970 2016-03-02 Richard Biener <rguenther@suse.de>
8971
8972 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
8973 GENERIC expressions in GIMPLE.
8974
8975 2016-03-02 Richard Biener <rguenther@suse.de>
8976
8977 * config/i386/i386.c (type_natural_mode): Fix typo.
8978
8979 2016-03-02 Nick Clifton <nickc@redhat.com>
8980
8981 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
8982
8983 2016-03-02 Richard Biener <rguenther@suse.de>
8984 Uros Bizjak <ubizjak@gmail.com>
8985
8986 PR target/67278
8987 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
8988
8989 2016-03-02 Richard Biener <rguenther@suse.de>
8990
8991 PR middle-end/67278
8992 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
8993
8994 2016-03-02 Marek Polacek <polacek@redhat.com>
8995
8996 PR c/67854
8997 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
8998 "is promoted to" warning.
8999
9000 2016-03-01 DJ Delorie <dj@redhat.com>
9001
9002 * config.gcc: Deprecate mep-*.
9003
9004 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
9005
9006 PR middle-end/70025
9007 * lra-constraints.c (regno_val_use_in): New.
9008 (match_reload): Use it instead of regno_use_in.
9009
9010 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
9011
9012 PR rtl-optimization/70007
9013 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
9014 references present in REG_EQUAL notes attached to non-SET patterns.
9015
9016 2016-03-01 Jeff Law <law@redhat.com>
9017
9018 PR tree-optimization/69196
9019 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9020 Appropriately clamp the number of statements to copy when the
9021 thread path does not traverse a loop backedge.
9022
9023 PR tree-optimization/69196
9024 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9025 Do count some PHIs in the thread path against the insn count. Decrease
9026 final statement count by one as the control statement in the last
9027 block will get removed. Remove special cased code for handling PHIs
9028 in the last block.
9029
9030 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
9031
9032 PR target/70027
9033 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
9034 asm dialect alternatives to explicit GOTPCREL calls.
9035
9036 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
9037
9038 PR ada/70017
9039 * ira.c (do_reload): Issue warning for generic stack checking here...
9040 * reload1.c (reload): ...instead of here and streamline it.
9041
9042 2016-03-01 Nick Clifton <nickc@redhat.com>
9043
9044 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
9045
9046 2016-03-01 Richard Biener <rguenther@suse.de>
9047
9048 PR tree-optimization/69983
9049 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
9050 types and fall back to operand_equal_p.
9051
9052 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9053
9054 Revert
9055 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9056
9057 * config/s390/constraints.md ("jm8"): New constraint.
9058 * config/s390/predicates.md ("const_int_8bitset_operand"): New
9059 predicate.
9060 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
9061 into ...
9062 ("*setmem_long<setmem_and>"): New pattern.
9063 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
9064 into ...
9065 ("*setmem_long_31z<setmem_and>"): New pattern.
9066 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
9067 New substitution rules with the required attributes.
9068
9069
9070 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9071
9072 Revert
9073 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9074
9075 * gensupport.c (process_substs_on_one_elem): Split loop to
9076 complete mark_operands_used_in_match_dup on all expressions in the
9077 vector first.
9078 (adjust_operands_numbers): Inline into process_substs_on_one_elem
9079 and remove function.
9080
9081 2016-03-01 Richard Biener <rguenther@suse.de>
9082
9083 PR middle-end/70022
9084 * fold-const.c (fold_indirect_ref_1): Fix range checking for
9085 vector BIT_FIELD_REF extract.
9086
9087 2016-03-01 Richard Biener <rguenther@suse.de>
9088
9089 PR tree-optimization/69994
9090 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
9091
9092 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
9093
9094 PR tree-optimization/69956
9095 * tree-vect-stmts.c (supportable_widening_operation): Support
9096 multi-step conversion of boolean vectors.
9097 (supportable_narrowing_operation): Likewise.
9098
9099 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9100
9101 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
9102 anymore.
9103
9104 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9105
9106 * config/s390/subst.md (DSI_VI): New mode iterator.
9107 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
9108 * config/s390/vector.md ("vec_set<mode>"): Move expander before
9109 the insn definition.
9110 ("*vec_set<mode>"): Change predicate and add alternative to
9111 support only either register or const_int operands as element
9112 selector.
9113 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
9114 operands.
9115 ("vec_extract<mode>"): New expander.
9116 ("*vec_extract<mode>"): New insn definition supporting reg and
9117 const_int element selectors.
9118 ("*vec_extract<mode>_plus"): New insn definition supporting
9119 reg+const_int element selectors.
9120 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
9121 following expander+insn definition.
9122 ("<vec_shifts_name><mode>3"): New expander.
9123 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
9124
9125 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9126
9127 * config/s390/s390.md ("*tabort_1"): Change predicate to
9128 nonmemory_operand. Add a second alternative to cover
9129 register as well as const int operands.
9130 ("*tabort_1_plus"): New pattern definition.
9131
9132 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9133
9134 * config/s390/s390.md ("*ashrdi3_cc_31")
9135 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
9136 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
9137 Merge insn definitions into ...
9138 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
9139 New pattern definition.
9140 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
9141 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
9142 ("*ashr<mode>3_and"): Merge insn definitions into ...
9143 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
9144 New pattern definition.
9145 * config/s390/subst.md ("addr_style_op_cc_subst")
9146 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
9147 substitutions patterns plus attributes.
9148 Add ashiftrt to SUBST iterator.
9149
9150 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9151
9152 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
9153 op2 to nonmemory_operand.
9154 ("*<shift>di3_31", "*<shift>di3_31_and"):
9155 Merge into single pattern definition ...
9156 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
9157 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
9158 pattern definition ...
9159 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
9160 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
9161 iterator.
9162
9163 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9164
9165 * config/s390/predicates.md (const_int_6bitset_operand): New
9166 predicate.
9167 * config/s390/s390.md: Include subst.md.
9168 ("rotl<mode>3"): New expander.
9169 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
9170 ...
9171 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
9172 * config/s390/subst.md: New file.
9173
9174 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9175
9176 * config/s390/s390.md ("op_type", "atype", "length" attributes):
9177 Remove RRR type. It doesn't really exist.
9178 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
9179 attributes.
9180 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
9181 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
9182 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
9183 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
9184 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
9185 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
9186 `enabled' attribute.
9187
9188 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9189
9190 * gensupport.c (process_substs_on_one_elem): Split loop to
9191 complete mark_operands_used_in_match_dup on all expressions in the
9192 vector first.
9193 (adjust_operands_numbers): Inline into process_substs_on_one_elem
9194 and remove function.
9195
9196 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
9197
9198 PR target/69706
9199 * config/sparc/sparc.c (NWORDS_UP): Rename to...
9200 (CEIL_NWORDS): ...this. Use CEIL macro.
9201 (compute_fp_layout): Adjust to above renaming.
9202 (function_arg_union_value): Likewise.
9203 (sparc_arg_partial_bytes): Likewise.
9204 (sparc_function_arg_advance): Likewise.
9205
9206 2016-02-29 Jeff Law <law@redhat.com>
9207
9208 PR tree-optimization/70005
9209 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
9210 where an object with a boolean range is compared against a value
9211 outside [0..1].
9212
9213 PR tree-optimization/69999
9214 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
9215 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
9216 loop cleanups.
9217
9218 2016-02-29 Richard Biener <rguenther@suse.de>
9219
9220 PR tree-optimization/69994
9221 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
9222 (get_unary_op): Look through nop conversions.
9223 (ops_equal_values_p): New function, look for equality diregarding
9224 nop conversions.
9225 (eliminate_plus_minus_pair): Use ops_equal_values_p
9226 (repropagate_negates): Do not use get_unary_op here.
9227
9228 2016-02-29 Martin Liska <mliska@suse.cz>
9229
9230 * system.h: Poison ENABLE_CHECKING macro.
9231
9232 2016-02-29 Martin Liska <mliska@suse.cz>
9233
9234 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
9235 is presented in dump flags.
9236 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
9237 (hsa_regalloc): Likewise.
9238
9239 2016-02-19 Richard Biener <rguenther@suse.de>
9240
9241 PR tree-optimization/69980
9242 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
9243 permutation of those we need to keep.
9244
9245 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
9246
9247 PR target/69706
9248 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
9249 (NWORDS_UP): ...this
9250 (init_cumulative_args): Minor tweaks.
9251 (sparc_promote_function_mode): Likewise.
9252 (scan_record_type): Delete.
9253 (traverse_record_type): New function template.
9254 (classify_data_t): New structure type.
9255 (classify_registers): New inline function.
9256 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
9257 exhausted. Instantiate traverse_record_type on classify_registers and
9258 deal with the case of a structure passed in slot #15 with no FP field
9259 in the first word.
9260 (assign_data_t): New structure type.
9261 (compute_int_layout): New static function.
9262 (compute_fp_layout): Likewise.
9263 (count_registers): New inline function.
9264 (assign_int_registers): New static function.
9265 (assign_fp_registers): Likewise.
9266 (assign_registers): New inline function.
9267 (function_arg_record_value_1): Delete.
9268 (function_arg_record_value_2): Likewise.
9269 (function_arg_record_value_3): Likewise.
9270 (function_arg_record_value): Adjust to above changes. Instantiate
9271 traverse_record_type on count_registers to first count the number of
9272 registers to be used and then on assign_registers to assign them.
9273 (function_arg_union_value): Adjust to above renaming.
9274 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
9275 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
9276 case of a structure passed in slot #15
9277 (sparc_function_arg_advance): Likewise.
9278 (function_arg_padding): Minor tweak.
9279
9280 2016-02-29 Richard Biener <rguenther@suse.de>
9281
9282 PR tree-optimization/69720
9283 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
9284 the adjustment_def path for possibly vectorized defs.
9285 (vect_create_epilog_for_reduction): Handle vectorized initial
9286 defs properly.
9287
9288 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
9289
9290 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
9291
9292 2016-02-27 Jeff Law <law@redhat.com>
9293
9294 Revert
9295 2016-02-26 Richard Biener <rguenther@suse.de>
9296 Jeff Law <law@redhat.com>
9297
9298 PR tree-optimization/69740
9299 * cfghooks.c (remove_edge): Request loop fixups if we delete
9300 an edge that might turn an irreducible loop into a natural
9301 loop.
9302
9303 2016-02-27 Jakub Jelinek <jakub@redhat.com>
9304
9305 PR rtl-optimization/69896
9306 * tree-vect-generic.c (get_compute_type): Avoid single element
9307 vector types.
9308
9309 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
9310
9311 Rename the AArch64 tuning option and related functions to enable the
9312 Newton series for the reciprocal square root to reflect its
9313 approximative characteristic.
9314
9315 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
9316 function to "aarch64_emit_approx_rsqrt".
9317 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
9318 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
9319 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
9320 (xgene1_tunings): Likewise.
9321 (use_rsqrt_p): Likewise.
9322 (aarch64_emit_swrsqrt): Use new function name.
9323 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
9324 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
9325 text explaining this option.
9326 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
9327
9328 2016-02-26 Jakub Jelinek <jakub@redhat.com>
9329
9330 PR target/69969
9331 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
9332 complain about -mallow-movmisalign without -mvsx if
9333 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
9334
9335 2016-02-26 Joel Sherrill <joel@rtems.org>
9336
9337 * config.gcc: Add x86_64-*-rtems*.
9338 * config/i386/rtems-64.h: New file.
9339
9340 2016-02-26 Joel Sherrill <joel@rtems.org>
9341
9342 * config.gcc: Add aarch64-*-rtems*.
9343 * config/aarch64/rtems.h: New file.
9344
9345 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
9346
9347 PR target/69946
9348 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
9349 shift amount using %h. Add comment.
9350
9351 2016-02-26 Richard Biener <rguenther@suse.de>
9352 Jeff Law <law@redhat.com>
9353
9354 PR tree-optimization/69740
9355 * cfghooks.c (remove_edge): Request loop fixups if we delete
9356 an edge that might turn an irreducible loop into a natural
9357 loop.
9358
9359 2016-02-26 Martin Jambor <mjambor@suse.cz>
9360
9361 PR middle-end/69920
9362 * tree-sra.c (sra_modify_assign): Do not remove loads of
9363 uninitialized aggregates to SSA_NAMEs.
9364
9365 2016-02-26 Richard Henderson <rth@redhat.com>
9366
9367 PR target/69709
9368 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
9369 pseudo in case the target rtx matches the source of the left
9370 shift.
9371
9372 2016-02-26 Martin Jambor <mjambor@suse.cz>
9373
9374 PR hsa/69568
9375 * hsa.h (hsa_type_packed_p): Declare.
9376 * hsa.c (hsa_type_packed_p): New function.
9377 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
9378 loads.
9379 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
9380 * hsa-brig.c (emit_basic_insn): Likewise.
9381
9382 2016-02-26 Martin Jambor <mjambor@suse.cz>
9383
9384 pr hsa/69674
9385 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
9386 pointers.
9387 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
9388
9389 2016-02-26 Martin Jambor <mjambor@suse.cz>
9390
9391 * hsa.h (is_a_helper): New overload for hsa_op_immed for
9392 hsa_op_with_type operands.
9393 (hsa_unsigned_type_for_type): Declare.
9394 * hsa.c (hsa_unsigned_type_for_type): New function.
9395 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
9396 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
9397 the finalizer. Do not emit extra move.
9398
9399 2016-02-26 Martin Jambor <mjambor@suse.cz>
9400
9401 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
9402 atomic operations in private segment.
9403
9404 2016-02-26 Martin Jambor <mjambor@suse.cz>
9405
9406 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
9407 statements to wi->info. Also disallow omp simd constructs.
9408 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
9409 for not gridifying. Dump special string for omp_for.
9410
9411 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9412
9413 PR target/69245
9414 * config/aarch64/aarch64.c (aarch64_set_current_function):
9415 Save/restore target globals when switching to
9416 target_option_default_node.
9417
9418 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9419
9420 PR target/69613
9421 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
9422 Return 0 if !SHIFT_COUNT_TRUNCATED.
9423
9424 2016-02-26 Jakub Jelinek <jakub@redhat.com>
9425 Eric Botcazou <ebotcazou@adacore.com>
9426
9427 PR rtl-optimization/69891
9428 * dse.c (scan_insn): If we can't figure out memset arguments
9429 or they are non-constant, call clear_rhs_from_active_local_stores.
9430
9431 2016-02-26 Martin Liska <mliska@suse.cz>
9432
9433 * doc/extend.texi: Mention clog10, clog10f an clog10l
9434 in Builtins section.
9435
9436 2016-02-26 Martin Liska <mliska@suse.cz>
9437
9438 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
9439 CHECKING_P.
9440 (resolve_args_picking_1): Likewise.
9441 * dwarf2out.h (struct GTY): Likewise.
9442
9443 2016-02-26 Martin Liska <mliska@suse.cz>
9444
9445 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
9446 with flag_checking.
9447 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
9448
9449 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
9450 Martin Liska <mliska@suse.cz>
9451
9452 * doc/install.texi: Mention --enable-valgrind-annotations.
9453
9454 2016-02-26 Richard Biener <rguenther@suse.de>
9455
9456 PR tree-optimization/69551
9457 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
9458 looking through aliases adjust DECL_PT_UID to refer to the
9459 ultimate alias target.
9460
9461 2016-02-25 Martin Liska <mliska@suse.cz>
9462
9463 PR middle-end/69919
9464 * alloc-pool.c (after_memory_report): New variable.
9465 * alloc-pool.h (base_pool_allocator ::release): Do not use
9466 the infrastructure if after_memory_report.
9467 * toplev.c (toplev::main): Mark after memory report.
9468
9469 2016-02-25 Richard Biener <rguenther@suse.de>
9470
9471 PR tree-optimization/48795
9472 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
9473
9474 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
9475
9476 PR driver/68463
9477 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
9478 offloading is enabled and -fopenacc or -fopenmp is specified.
9479 (CRTOFFLOADEND): Likewise.
9480 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
9481 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
9482 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
9483 (offload_objects_file_name): New static var.
9484 (tool_cleanup): Remove offload_objects_file_name file.
9485 (find_offloadbeginend): Replace with ...
9486 (find_crtoffloadtable): ... this.
9487 (run_gcc): Remove offload_argc and offload_argv.
9488 Get offload_objects_file_name from -foffload-objects=... option.
9489 Read names of object files with offload from this file, pass them to
9490 compile_images_for_offload_targets. Don't call find_offloadbeginend and
9491 don't pass offloadbegin and offloadend to the linker. Don't pass
9492 offload non-LTO files to the linker, because now they're not claimed.
9493
9494 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
9495
9496 PR ipa/69630
9497 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
9498 on builtin_unreachable.
9499
9500 2016-02-25 Jakub Jelinek <jakub@redhat.com>
9501
9502 PR rtl-optimization/69896
9503 * regcprop.c: Include cfgrtl.h.
9504 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
9505 than remembered mode, either delete it (if noop_move_p), or
9506 treat like copy_p but not noop_p instruction.
9507
9508 2016-02-24 Jakub Jelinek <jakub@redhat.com>
9509
9510 PR debug/69705
9511 * dwarf2out.c (gen_variable_die): Work around buggy LTO
9512 - allow NULL decl for Fortran DW_TAG_common_block variables.
9513
9514 2016-02-24 Jason Merrill <jason@redhat.com>
9515
9516 * common.opt (flifetime-dse): Add -flifetime-dse=1.
9517
9518 2016-02-24 Richard Biener <rguenther@suse.de>
9519 Jakub Jelinek <jakub@redhat.com>
9520
9521 PR middle-end/69760
9522 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
9523 conditionally executed ops to well-defined overflow behavior.
9524
9525 2016-02-24 Jakub Jelinek <jakub@redhat.com>
9526
9527 PR middle-end/69915
9528 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
9529 elements.
9530
9531 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9532
9533 PR rtl-optimization/69886
9534 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
9535 argument. Use it when checking validity of set instructions.
9536 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
9537 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
9538 callsite.
9539 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
9540 * store-motion.c (find_moveable_store): Update
9541 can_assign_to_reg_without_clobbers_p callsite.
9542
9543 2016-02-24 Richard Biener <rguenther@suse.de>
9544
9545 PR middle-end/68963
9546 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
9547 bogus check.
9548 (record_nonwrapping_iv): Do not fall back to the low/high bound
9549 for non-constant IV bases if the stmt is not always executed.
9550
9551 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9552
9553 * config/arm/arm-cores.def (cortex-a32): New entry.
9554 * config/arm/arm-tables.opt: Regenerate.
9555 * config/arm/arm-tune.md: Regenerate.
9556 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
9557 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
9558 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
9559 for -mcpu and -mtune.
9560
9561 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9562
9563 PR target/69875
9564 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
9565 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
9566 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
9567 (atomic_loaddi_1): Delete.
9568 (atomic_loaddi): Rewrite expander using the above changes.
9569
9570 2016-02-24 Jakub Jelinek <jakub@redhat.com>
9571
9572 PR c/69918
9573 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
9574 2 to 3.
9575
9576 2016-02-24 Jakub Jelinek <jakub@redhat.com>
9577 Richard Biener <rguenth@suse.de>
9578
9579 PR middle-end/69909
9580 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
9581 set_mem_attributes if tem is SSA_NAME which got expanded
9582 as a MEM.
9583
9584 2016-02-24 Richard Biener <rguenther@suse.de>
9585
9586 PR tree-optimization/69907
9587 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
9588 end of permutations for BB vectorization.
9589
9590 2016-02-24 Christian Bruel <christian.bruel@st.com>
9591
9592 * config/arm/arm-c.c (arm_option_override): Initialize
9593 target_option_current_node.
9594 * config/arm/arm.c (arm_pragma_target_parse): Replace
9595 build_target_option_node call by target_option_current_node.
9596 Set target_option_current_node.
9597 Fix comments.
9598
9599 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
9600
9601 PR target/69810
9602 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
9603 define_insn_and_split to define_insn.
9604 (zero_extendqi<mode>2_dot2): Same.
9605 (extendqi<mode>2_dot): Same.
9606 (extendqi<mode>2_dot2): Same.
9607
9608 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
9609
9610 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
9611 and add bypass for AES{D,E} and AESMC pairs.
9612 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
9613 and AESMC pairs.
9614
9615 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
9616
9617 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
9618 series for reciprocal square root in Exynos M1.
9619
9620 2016-02-23 Martin Sebor <msebor@redhat.com>
9621
9622 PR c/69759
9623 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
9624 __builtin_alloca_with_align.
9625
9626 2016-02-23 Richard Henderson <rth@redhat.com>
9627
9628 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
9629 (ix86_register_pragmas): Remove __seg_tls.
9630 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
9631 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
9632 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
9633 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
9634 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
9635 * doc/extend.texi (__seg_tls): Remove item.
9636
9637 2016-02-23 Richard Biener <rguenther@suse.de>
9638
9639 * alloc-pool.h (struct allocation_object): Make id member
9640 conditional on CHECKING_P again.
9641 (get_instance): Adjust.
9642 (base_pool_allocator): Likewise.
9643
9644 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
9645
9646 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
9647 (parallelize_loops): In OpenACC kernels mode, set n_threads to
9648 zero.
9649 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
9650 flag_openacc.
9651 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
9652
9653 2016-02-23 Richard Biener <rguenther@suse.de>
9654
9655 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
9656 * bitmap.h (struct bitmap_usage): Likewise.
9657 (bitmap_move): Declare.
9658 * bitmap.c (register_overhead): Take size_t argument.
9659 (bitmap_move): New function.
9660 * df-problems.c (df_rd_transfer_function): Use bitmap_move
9661 to properly account overhead.
9662 * tree.c (free_node): Use tree_size.
9663
9664 2016-02-23 Jakub Jelinek <jakub@redhat.com>
9665
9666 PR c++/69902
9667 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
9668 when inverting comparison.
9669
9670 PR c/69900
9671 * common.opt (Wunreachable-code): Add Warning flag.
9672
9673 2016-02-23 Mark Wielaard <mjw@redhat.com>
9674 Jakub Jelinek <jakub@redhat.com>
9675
9676 PR c/69911
9677 * cgraphunit.c (check_global_declaration): Check main_input_filename
9678 and DECL_SOURCE_FILE are not NULL.
9679
9680 2016-02-23 Martin Jambor <mjambor@suse.cz>
9681
9682 PR tree-optimization/69666
9683 * tree-sra.c (sra_modify_assign): Do not attempt to create
9684 default_def replacements for unscalarizable regions.
9685
9686 2016-02-20 Mark Wielaard <mjw@redhat.com>
9687
9688 PR c/28901
9689 * cgraphunit.c (check_global_declaration): Check level of
9690 warn_unused_const_variable and main_input_filename.
9691 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
9692 (-Wunused-variable): For C implies -Wunused-const-variable=1.
9693 (-Wunused-const-variable): Explain levels 1 and 2.
9694
9695 2016-02-22 Jakub Jelinek <jakub@redhat.com>
9696
9697 PR target/69888
9698 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
9699 identical arguments. Formatting and spelling fixes.
9700
9701 PR target/69885
9702 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
9703 be specified.
9704
9705 PR target/69894
9706 PR target/69895
9707 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
9708 and m68k-devices.def.
9709 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
9710 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
9711
9712 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
9713
9714 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
9715 and HImode registers.
9716
9717 2016-02-22 Richard Biener <rguenther@suse.de>
9718
9719 PR tree-optimization/69882
9720 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
9721 preserve permutations present because of gaps.
9722 (vect_supported_load_permutation_p): Always continue checking
9723 permutations after vect_attempt_slp_rearrange_stmts.
9724
9725 2016-02-22 Bin Cheng <bin.cheng@arm.com>
9726
9727 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
9728 min_profitable_estimate, rather than min_profitable_iters.
9729
9730 2016-02-22 Jakub Jelinek <jakub@redhat.com>
9731
9732 PR target/69885
9733 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
9734 SImode for last match_operand.
9735
9736 2016-02-22 Martin Liska <mliska@suse.cz>
9737
9738 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
9739 return bitsize - 1 as the return value.
9740
9741 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
9742
9743 PR target/69806
9744 PR target/54089
9745 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
9746 Handle negative shift counts.
9747 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
9748 force_reg on the shift constant.
9749 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
9750 (lshrsi3_d): Handle negative shift counts.
9751
9752 2016-02-22 Richard Biener <rguenther@suse.de>
9753 Tom de Vries <tom@codesourcery.com>
9754
9755 * graph.c: Include dumpfile.h.
9756 (print_graph_cfg): Split into three overloads.
9757 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
9758
9759 2016-02-22 Tom de Vries <tom@codesourcery.com>
9760
9761 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
9762 dump-fn.
9763
9764 2016-02-22 Richard Biener <rguenther@suse.de>
9765
9766 PR ipa/37448
9767 * ipa-inline-transform.c (inline_call): When not updating
9768 overall summaries adjust self size by the growth estimate.
9769 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
9770 hash-set, do not update overall summaries here. Renamed from ...
9771 (inline_to_all_callers): ... this which is now wrapping the
9772 above and performing delayed overall summary update.
9773 (early_inline_small_functions): Delay updating of the overall
9774 summary.
9775
9776 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
9777
9778 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
9779 variable.
9780
9781 2016-02-19 Jakub Jelinek <jakub@redhat.com>
9782
9783 PR driver/69805
9784 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
9785 :%* in %:gt() argument.
9786 (greater_than_spec_func): Adjust for expecting only numbers,
9787 if there are more than two numbers, compare the last two.
9788
9789 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
9790
9791 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
9792 -Wnarrowing with -std.
9793
9794 2016-02-19 Jakub Jelinek <jakub@redhat.com>
9795
9796 PR c++/69851
9797 * expr.c (store_field): Don't use bit-field path if exp is
9798 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
9799 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
9800 and the assignment can be performed by bitwise copy. Formatting
9801 fix.
9802
9803 PR middle-end/69838
9804 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
9805 call copy_reg_eh_region_note_forward on before and/or after sequences
9806 and remove note from insn if it no longer can throw.
9807
9808 PR target/69820
9809 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
9810 if TARGET_AVX512BW.
9811
9812 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9813
9814 * config/s390/vector.md: Add missing commutative operand markers
9815 to the patterns which qualify for one.
9816 * config/s390/vx-builtins.md: Likewise.
9817
9818 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9819
9820 * config/s390/vector.md (VI, VI_QHS): Add single element vector
9821 types to mode iterators.
9822 (vec_double): ... and mode attribute.
9823 * config/s390/vx-builtins.md (non_vec_int): Likewise.
9824
9825 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9826
9827 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
9828 Change the predicate of op2 from nonimmediate to general and let
9829 reload fix it if necessary.
9830
9831 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9832
9833 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
9834
9835 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9836
9837 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
9838 mode.
9839
9840 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9841
9842 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
9843 * config/s390/s390.c (s390_expand_vec_movstr): New function.
9844 * config/s390/s390.md ("movstr<P:mode>"): Call
9845 s390_expand_vec_movstr.
9846
9847 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9848
9849 * config/s390/s390.md: Add missing output modifier for operand 1
9850 to print it as address properly.
9851
9852 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9853
9854 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
9855 * config/s390/2964.md: New file.
9856 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
9857 of insn grouping attributes depending on the CPU level.
9858 (s390_get_unit_mask): New function.
9859 (s390_sched_score): Remove the OOO from the scheduling macros.
9860 Add loop to calculate a score for the instruction mix.
9861 (s390_sched_reorder): Likewise plus improve debug output.
9862 (s390_sched_variable_issue): Rename macros as above. Calculate
9863 the unit distances after actually scheduling an insn. Improve
9864 debug output.
9865 (s390_sched_init): Clear last_scheduled_unit_distance array.
9866 * config/s390/s390.md: Include 2964.md.
9867
9868 2016-02-18 Jakub Jelinek <jakub@redhat.com>
9869
9870 PR target/69671
9871 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
9872 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
9873 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
9874 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
9875 *avx512f_<code>v8div16qi2_mask_1): New insns.
9876
9877 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
9878
9879 PR target/68404
9880 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
9881 2016-02-09 change.
9882
9883 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
9884 earlyclobber from target. Use wF constraint for fused memory
9885 address.
9886 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
9887
9888 2016-02-18 Jakub Jelinek <jakub@redhat.com>
9889 Martin Liska <mliska@suse.cz>
9890
9891 PR sanitizer/69863
9892 * cfgexpand.c (asan_sanitize_stack_p): New function.
9893 (partition_stack_vars): Use the function.
9894 (expand_stack_vars): Likewise.
9895 (defer_stack_allocation): Likewise.
9896 (expand_used_vars): Likewise.
9897
9898 2016-02-18 Richard Biener <rguenther@suse.de>
9899
9900 PR middle-end/69553
9901 * fold-const.c (operand_equal_p): Properly compare offsets for
9902 IMAGPART_EXPR and ARRAY_REF.
9903
9904 2016-02-18 Nick Clifton <nickc@redhat.com>
9905
9906 PR target/62254
9907 PR target/69610
9908 * config/arm/arm.c (arm_option_override_internal): Disable
9909 interworking if the target does not support thumb instructions.
9910 (arm_reload_in_hi): Handle the case where a register to register
9911 move needs reloading because there is no simple pattern to handle
9912 it.
9913 (arm_reload_out_hi): Likewise.
9914
9915 2016-02-18 Richard Biener <rguenther@suse.de>
9916
9917 PR middle-end/69854
9918 * match.pd: Don't use fold_binary or fold_unary for folding
9919 constants.
9920
9921 2016-02-17 Jakub Jelinek <jakub@redhat.com>
9922
9923 PR c++/69850
9924 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
9925 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
9926 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
9927 warn on gimple_no_warning_p statements.
9928
9929 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
9930
9931 * doc/extend.texi (C++ Attributes): Correct description of
9932 warn_unused type attribute.
9933
9934 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9935
9936 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
9937 correct instruction.
9938
9939 2016-02-17 Richard Biener <rguenther@suse.de>
9940
9941 PR rtl-optimization/69609
9942 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
9943 (find_traces_1_round): When ending a trace update cached priority
9944 of successors.
9945 (bb_to_key): Use cached priority when available.
9946 (copy_bb): Initialize cached priority.
9947 (reorder_basic_blocks_software_trace_cache): Likewise.
9948
9949 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9950
9951 PR target/69161
9952 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
9953 New predicate.
9954 (aarch64_comparison_operator): Break overly long line into two.
9955 (aarch64_comparison_operation): Likewise.
9956 * config/aarch64/aarch64.md (cstorecc4): Use
9957 aarch64_comparison_operator_mode instead of
9958 aarch64_comparison_operator.
9959 (cstore<mode>4): Likewise.
9960 (aarch64_cstore<mode>): Likewise.
9961 (*cstoresi_insn_uxtw): Likewise.
9962 (cstore<mode>_neg): Likewise.
9963 (*cstoresi_neg_uxtw): Likewise.
9964
9965 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9966
9967 PR target/69161
9968 * config/arm/predicates.md (arm_comparison_operator_mode):
9969 New predicate.
9970 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
9971 instead of arm_comparison_operator.
9972 (*mov_negscc): Likewise.
9973 (*mov_notscc): Likewise.
9974 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
9975 (*thumb2_mov_negscc): Likewise.
9976 (*thumb2_mov_negscc_strict_it): Likewise.
9977 (*thumb2_mov_notscc): Likewise.
9978 (*thumb2_mov_notscc_strict_it): Likewise.
9979
9980 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
9981
9982 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
9983 Add missing return.
9984
9985 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
9986
9987 * config/visium/visium.c (machine_libfunc_index): New enum.
9988 (machine_libfuncs): New structure.
9989 (visium_libfuncs): New static variable.
9990 (TARGET_INIT_LIBFUNCS): Define to...
9991 (visium_init_libfuncs): ...this. New function.
9992 (expand_block_move_4): Use the appropriate libfunc.
9993 (expand_block_move_2): Likewise.
9994 (expand_block_move_1): Likewise.
9995 (expand_block_set_4): Likewise.
9996 (expand_block_set_2): Likewise.
9997 (expand_block_set_1): Likewise.
9998 (visium_trampoline_init): Likewise.
9999
10000 2016-02-17 Nick Clifton <nickc@redhat.com>
10001
10002 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
10003 TI's devices.csv file as of March 2016.
10004
10005 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
10006
10007 PR Target/48344
10008 * opts-global.c (handle_common_deferred_options): Introduce and
10009 initialize two global variables to remember command-line options
10010 specifying a stack-limiting register.
10011 * opts.h: Add extern declarations of the two new global variables.
10012 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
10013 variable based on the values of the two new global variables.
10014
10015 2016-02-16 Jakub Jelinek <jakub@redhat.com>
10016
10017 PR c/69835
10018 * common.opt (Wnonnull-compare): New warning.
10019 * doc/invoke.texi (-Wnonnull): Remove text about comparison
10020 of arguments against NULL.
10021 (-Wnonnull-compare): Document.
10022 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
10023 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
10024 * passes.def (pass_warn_nonnull_compare): Add.
10025 * gimple-ssa-nonnull-compare.c: New file.
10026
10027 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
10028
10029 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
10030 AARCH64_EXTRA_TUNE_RECIP_SQRT.
10031
10032 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
10033
10034 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
10035 reciprocal sqrt for -mlow-precision-recip-sqrt.
10036
10037 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
10038 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10039
10040 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
10041 always use lane loads to construct non-constant vectors.
10042
10043 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
10044
10045 * config/aarch64/aarch64.md
10046 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
10047 constraints for operand 3.
10048 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
10049
10050 2016-02-16 Jakub Jelinek <jakub@redhat.com>
10051 Richard Biener <rguenther@suse.de>
10052
10053 PR tree-optimization/69820
10054 * tree-vect-patterns.c (type_conversion_p): Return false if
10055 *orig_type is unsigned single precision or boolean.
10056 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
10057 Formatting fix.
10058
10059 2016-02-16 Jakub Jelinek <jakub@redhat.com>
10060
10061 PR rtl-optimization/69764
10062 PR rtl-optimization/69771
10063 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
10064 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
10065
10066 2016-02-16 Richard Biener <rguenther@suse.de>
10067
10068 PR tree-optimization/69776
10069 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
10070 sets from caller.
10071 (indirect_refs_may_alias_p): Likewise.
10072 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
10073 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
10074 according to tbaa_p.
10075 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
10076 (optimize_stmt): For redundant store discovery do not allow tbaa.
10077
10078 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
10079
10080 PR tree-optimization/69714
10081 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
10082 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
10083
10084 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
10085
10086 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
10087 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
10088 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
10089 * config/arc/arc.c (arc_init): Check FPU options.
10090 (get_arc_condition_code): Handle new CC_FPU* modes.
10091 (arc_select_cc_mode): Likewise.
10092 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
10093 register pair only. Allow access for ARCv2 accumulator.
10094 (gen_compare_reg): Whenever we have FPU support use FPU compare
10095 instructions.
10096 (arc_reorg): Don't generate brcc insns when FPU compare
10097 instructions are involved.
10098 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
10099 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
10100 floating point emulation.
10101 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
10102 (REVERSE_CONDITION): Add new CC_FPU* modes.
10103 (TARGET_FP_SP_BASE): Define.
10104 (TARGET_FP_DP_BASE): Likewise.
10105 (TARGET_FP_SP_FUSED): Likewise.
10106 (TARGET_FP_DP_FUSED): Likewise.
10107 (TARGET_FP_SP_CONV): Likewise.
10108 (TARGET_FP_DP_CONV): Likewise.
10109 (TARGET_FP_SP_SQRT): Likewise.
10110 (TARGET_FP_DP_SQRT): Likewise.
10111 (TARGET_FP_DP_AX): Likewise.
10112 * config/arc/arc.md (ARCV2_ACC): New constant.
10113 (type): New fpu type attribute.
10114 (SDF): Conditional iterator.
10115 (cstore<mode>, cbranch<mode>): Change expand condition.
10116 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
10117 handles FPU/FPX cases as well.
10118 * config/arc/arc.opt (mfpu): New option.
10119 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
10120 Renamed.
10121 (adddf3, muldf3, subdf3): Removed.
10122 * config/arc/predicates.md (proper_comparison_operator): Recognize
10123 CC_FPU* modes.
10124 * config/arc/fpu.md: New file.
10125 * doc/invoke.texi (ARC Options): Document mfpu option.
10126
10127 2016-02-16 Richard Biener <rguenther@suse.de>
10128
10129 PR rtl-optimization/69291
10130 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
10131 noce_operand_ok check.
10132
10133 2016-02-16 Tom de Vries <tom@codesourcery.com>
10134
10135 PR lto/67709
10136 * omp-low.c (simd_clone_create): Remove call to
10137 symtab->call_cgraph_insertion_hooks.
10138
10139 2016-02-16 Jakub Jelinek <jakub@redhat.com>
10140
10141 PR tree-optimization/69802
10142 * tree-ssa-reassoc.c (update_range_test): If op is
10143 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
10144 op == 1 test of precision 1 integral op, otherwise handle
10145 that case as op itself. Fix up formatting.
10146 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
10147 up formatting.
10148
10149 2016-02-16 Richard Biener <rguenther@suse.de>
10150
10151 PR tree-optimization/69586
10152 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
10153 types for conversion sources.
10154
10155 2016-02-16 Richard Biener <rguenther@suse.de>
10156
10157 PR middle-end/69801
10158 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
10159 mask OEP_ADDRESS_OF.
10160
10161 2016-02-16 Alan Modra <amodra@gmail.com>
10162
10163 PR target/68973
10164 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
10165 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
10166 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
10167 (p8_mtvsrwz): New.
10168 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
10169 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
10170 (p8_fmrgow_<mode>): Likewise.
10171 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
10172 changes.
10173 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
10174 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
10175 to use movdi_internal64. Remove op0_di.
10176 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
10177
10178 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
10179
10180 Add support for the FCCMP insn types
10181
10182 * config/aarch64/aarch64.md (fccmp): Change insn type.
10183 (fccmpe): Likewise.
10184 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
10185 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
10186 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
10187 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
10188 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
10189 * config/arm/types.md (fccmps): Add new insn type.
10190 (fccmpd): Likewise.
10191
10192 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
10193
10194 * alias.c (get_alias_set): Fix a typo in comment.
10195
10196 2016-02-15 Richard Biener <rguenther@suse.de>
10197
10198 PR tree-optimization/69595
10199 * match.pd: Complete range test simplification to true.
10200
10201 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
10202
10203 PR rtl-optimization/69648
10204 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
10205 pic_offset_table_rtx.
10206
10207 PR rtl-optimization/69752
10208 * ira.c (update_equiv_regs): When looking for more than a single SET,
10209 also take other side effects into account.
10210
10211 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
10212
10213 * config/s390/s390.c (s390_function_profiler): Add a new sequence
10214 for z900+ CPUs in 31-bit mode.
10215
10216 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
10217
10218 * common/config/s390/s390-common.c (s390_supports_split_stack):
10219 New function.
10220 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
10221 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
10222 * config/s390/s390.c (struct machine_function): New field
10223 split_stack_varargs_pointer.
10224 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
10225 in s390_emit_prologue.
10226 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
10227 vararg pointer.
10228 (morestack_ref): New global.
10229 (SPLIT_STACK_AVAILABLE): New macro.
10230 (s390_expand_split_stack_prologue): New function.
10231 (s390_live_on_entry): New function.
10232 (s390_va_start): Use split-stack vararg pointer if appropriate.
10233 (s390_asm_file_end): Emit the split-stack note sections.
10234 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
10235 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
10236 (UNSPECV_SPLIT_STACK_CALL): New unspec.
10237 (UNSPECV_SPLIT_STACK_DATA): New unspec.
10238 (split_stack_prologue): New expand.
10239 (split_stack_space_check): New expand.
10240 (split_stack_data): New insn.
10241 (split_stack_call): New expand.
10242 (split_stack_call_*): New insn.
10243 (split_stack_cond_call): New expand.
10244 (split_stack_cond_call_*): New insn.
10245
10246 2016-02-15 Richard Biener <rguenther@suse.de>
10247
10248 PR tree-optimization/69783
10249 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
10250 Add trivially correct cases.
10251
10252 2016-02-15 Tom de Vries <tom@codesourcery.com>
10253
10254 PR lto/69655
10255 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
10256 do_force_output.
10257 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
10258
10259 2016-02-15 Richard Biener <rguenther@suse.de>
10260
10261 PR tree-optimization/69776
10262 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
10263 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
10264 indicate whether we can use TBAA to disambiguate against stores.
10265 Use alias-set zero if not.
10266 (visit_reference_op_store): Do not use TBAA when looking up
10267 redundant stores.
10268 * tree-ssa-pre.c (compute_avail): Use TBAA here.
10269 (eliminate_dom_walker::before_dom_children): But not when looking
10270 up redundant stores.
10271
10272 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
10273
10274 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
10275
10276 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
10277
10278 * config/i386/znver1.md
10279 (znver1_pop, znver1_pop_mem,
10280 znver1_load_imov_double_store,
10281 znver1_load_imov_direct_store,
10282 znver1_load_imov_direct_load,
10283 znver1_load_imov_double_load): Add new.
10284 (znver1_insn, znver1_insn_load): Add icmov type.
10285 (znver1_sseavx_fma,
10286 znver1_sseavx_fma_load,
10287 znver1_avx256_fma,
10288 znver1_avx256_fma_load): Fix pipe usage.
10289
10290 2016-02-14 Alan Modra <amodra@gmail.com>
10291
10292 PR target/68973
10293 * reloads.c (find_reloads_address_1): For pre/post-inc/dec
10294 with an invalid hard reg, reload just the reg not the entire
10295 pre/post-inc/dec address expression.
10296
10297 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
10298
10299 PR target/67260
10300 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
10301 fixed R1_REG scratch reg.
10302 (sibcall_value_pcrel_fdpic): Likewise.
10303
10304 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
10305
10306 PR target/67636
10307 PR target/64345
10308 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
10309
10310 2016-02-12 Walter Lee <walt@tilera.com>
10311
10312 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
10313 * config/tilegx/t-tilegx: Likewise.
10314
10315 2016-02-12 David Malcolm <dmalcolm@redhat.com>
10316
10317 PR other/69554
10318 * diagnostic-show-locus.c (struct line_span): New struct.
10319 (layout::get_first_line): Delete.
10320 (layout::get_last_line): Delete.
10321 (layout::get_num_line_spans): New member function.
10322 (layout::get_line_span): Likewise.
10323 (layout::print_heading_for_line_span_index_p): Likewise.
10324 (layout::get_expanded_location): Likewise.
10325 (layout::calculate_line_spans): Likewise.
10326 (layout::m_first_line): Delete.
10327 (layout::m_last_line): Delete.
10328 (layout::m_line_spans): New field.
10329 (layout::layout): Update comment. Replace m_first_line and
10330 m_last_line with m_line_spans, replacing their initialization
10331 with a call to calculate_line_spans.
10332 (diagnostic_show_locus): When printing source lines and
10333 annotations, rather than looping over a single span
10334 of lines, instead loop over each line_span within
10335 the layout, with an inner loop over the lines within them.
10336 Call the context's start_span callback when changing line spans.
10337 * diagnostic.c (diagnostic_initialize): Initialize start_span.
10338 (diagnostic_build_prefix): Break out the building of the location
10339 part of the string into...
10340 (diagnostic_get_location_text): ...this new function, rewriting
10341 it from nested ternary expressions to a sequence of "if"
10342 statements.
10343 (default_diagnostic_start_span_fn): New function.
10344 * diagnostic.h (diagnostic_start_span_fn): New typedef.
10345 (diagnostic_context::start_span): New field.
10346 (default_diagnostic_start_span_fn): New prototype.
10347
10348 2016-02-12 David Malcolm <dmalcolm@redhat.com>
10349
10350 PR driver/69779
10351 * gcc.c (driver::finalize): Fix cleanup of "specs".
10352
10353 2016-02-12 David Malcolm <dmalcolm@redhat.com>
10354
10355 PR driver/69265
10356 PR driver/69453
10357 * gcc.c (driver::driver): Initialize m_option_suggestions.
10358 (driver::~driver): Clean up m_option_suggestions.
10359 (suggest_option): Convert to...
10360 (driver::suggest_option): ...this, and split out into
10361 driver::build_option_suggestions and find_closest_string.
10362 (driver::build_option_suggestions): New function, from
10363 first half of suggest_option. Special-case
10364 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
10365 the sanitizer_opts array. For options of enum types, add the
10366 various enum values to the candidate strings.
10367 (driver::handle_unrecognized_options): Remove "const".
10368 * gcc.h (driver::handle_unrecognized_options): Likewise.
10369 (driver::build_option_suggestions): New decl.
10370 (driver::suggest_option): New decl.
10371 (driver::m_option_suggestions): New field.
10372 * opts-common.c (add_misspelling_candidates): New function.
10373 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
10374 and make non-static.
10375 * opts.h (sanitizer_opts): New array decl.
10376 (add_misspelling_candidates): New function decl.
10377 * spellcheck.c (find_closest_string): New function.
10378 * spellcheck.h (find_closest_string): New function decl.
10379
10380 2016-02-12 Jakub Jelinek <jakub@redhat.com>
10381
10382 PR rtl-optimization/69764
10383 PR rtl-optimization/69771
10384 * optabs.c (expand_binop_directly): For shift_optab_p, force
10385 convert_modes with VOIDmode if xop1 has VOIDmode.
10386
10387 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
10388
10389 PR target/69729
10390 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
10391 to correctly determine instrumentation thunks.
10392
10393 2016-02-12 Jakub Jelinek <jakub@redhat.com>
10394
10395 PR ipa/69241
10396 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
10397 type by reference, force lhs on the call.
10398
10399 PR ipa/68672
10400 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
10401 Compute retval and retbnd early in all cases if split_part_return_p
10402 and return_bb is not EXIT. Remove all clobber stmts and reset
10403 all debug stmts that refer to SSA_NAMEs defined in split part,
10404 except if it is retval, in that case replace the old retval with the
10405 lhs of the call to the split part.
10406
10407 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
10408
10409 revert:
10410 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
10411
10412 PR middle-end/66726
10413 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
10414 whose result is used in PHI.
10415 (maybe_optimize_range_tests): Likewise.
10416 (final_range_test_p): Likweise.
10417
10418 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
10419
10420 PR middle-end/66726
10421 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
10422 whose result is used in PHI.
10423 (maybe_optimize_range_tests): Likewise.
10424 (final_range_test_p): Likweise.
10425
10426 2016-02-12 Jakub Jelinek <jakub@redhat.com>
10427
10428 * cgraph.c: Spelling fixes - behaviour -> behavior and
10429 neighbour -> neighbor.
10430 * target.def: Likewise.
10431 * sel-sched.c: Likewise.
10432 * config/mips/mips.c: Likewise.
10433 * config/arc/arc.md: Likewise.
10434 * config/arm/cortex-a57.md: Likewise.
10435 * config/arm/arm.c: Likewise.
10436 * config/arm/neon.md: Likewise.
10437 * config/arm/arm-c.c: Likewise.
10438 * config/vms/vms-c.c: Likewise.
10439 * config/s390/s390.c: Likewise.
10440 * config/i386/znver1.md: Likewise.
10441 * config/i386/i386.c: Likewise.
10442 * config/ia64/hpux-unix2003.h: Likewise.
10443 * config/msp430/msp430.md: Likewise.
10444 * config/rx/rx.c: Likewise.
10445 * config/rx/rx.md: Likewise.
10446 * config/aarch64/aarch64-simd.md: Likewise.
10447 * config/aarch64/aarch64.c: Likewise.
10448 * config/nvptx/nvptx.c: Likewise.
10449 * config/bfin/bfin.c: Likewise.
10450 * config/cris/cris.opt: Likewise.
10451 * config/rs6000/rs6000.c: Likewise.
10452 * target.h: Likewise.
10453 * spellcheck.c: Likewise.
10454 * ira-build.c: Likewise.
10455 * tree-inline.c: Likewise.
10456 * builtins.c: Likewise.
10457 * lra-constraints.c: Likewise.
10458 * explow.c: Likewise.
10459 * hwint.h: Likewise.
10460 * targhooks.c: Likewise.
10461 * tree-vect-data-refs.c: Likewise.
10462 * expr.c: Likewise.
10463 * doc/tm.texi: Likewise.
10464 * doc/extend.texi: Likewise.
10465 * doc/install.texi: Likewise.
10466 * doc/md.texi: Likewise.
10467 * tree-ssa-tail-merge.c: Likewise.
10468 * sched-int.h: Likewise.
10469 * match.pd: Likewise.
10470 * sched-ebb.c: Likewise.
10471 * target.def (omit_struct_return_reg): Likewise.
10472 * gimple-ssa-isolate-paths.c: Likewise.
10473 (find_implicit_erroneous_behaviour): Renamed to...
10474 (find_implicit_erroneous_behavior): ... this.
10475 (find_explicit_erroneous_behaviour): Renamed to...
10476 (find_explicit_erroneous_behavior): ... this.
10477 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
10478
10479 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
10480
10481 PR rtl-optimization/64682
10482 PR rtl-optimization/69567
10483 PR rtl-optimization/69737
10484 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
10485 in I2 as well, just lose it.
10486
10487 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10488
10489 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
10490 New variable.
10491 (aarch64_last_printed_tune_string): Likewise.
10492 (aarch64_declare_function_name): Only output .arch assembler
10493 directive if it will be different from the previously output
10494 directive. Same for .tune comment but only if -dA is set.
10495 (aarch64_start_file): New function.
10496 (TARGET_ASM_FILE_START): Define.
10497
10498 2016-02-11 David Malcolm <dmalcolm@redhat.com>
10499
10500 PR plugins/69758
10501 * Makefile.in (PLUGIN_HEADERS): Add params.list.
10502
10503 2016-02-11 Jakub Jelinek <jakub@redhat.com>
10504
10505 PR target/65313
10506 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
10507 -Wmaybe-uninitialized warning.
10508
10509 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
10510
10511 PR target/69713
10512 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
10513
10514 2016-02-11 Richard Biener <rguenther@suse.de>
10515
10516 PR rtl-optimization/69291
10517 * ifcvt.c (noce_try_store_flag_constants): Do not allow
10518 subexpressions affected by changing the result.
10519
10520 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
10521
10522 PR target/69148
10523 * lra-constraints.c (curr_insn_transform): Find in/out operands
10524 for secondary memory moves. Update dups.
10525
10526 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
10527
10528 PR tree-optimization/69652
10529 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
10530 to nested loop, did source re-formatting, skip debug statements,
10531 add check on statement with volatile operand, remove dead scalar
10532 statements.
10533
10534 2016-02-10 Jakub Jelinek <jakub@redhat.com>
10535 Patrick Palka <ppalka@gcc.gnu.org>
10536
10537 PR ipa/69241
10538 PR c++/69649
10539 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
10540 calls if the return type is TREE_ADDRESSABLE.
10541 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
10542 * ipa-split.c (split_function): Fix doubled "we" in comment.
10543 Use void return type for the split part even if
10544 !split_point->split_part_set_retval.
10545
10546 2016-02-10 Bin Cheng <bin.cheng@arm.com>
10547
10548 PR tree-optimization/68021
10549 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
10550 when computing the value of biv cand by itself.
10551
10552 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
10553
10554 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
10555 (cortexa57_tunings): Likewise.
10556 (cortexa72_tunings): Likewise.
10557 (arch_macro_fusion_pair_p): Add support for AES fusion.
10558 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
10559 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
10560 Allow virtual registers before reload so early scheduling works.
10561 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
10562 correct latency and pipeline.
10563 (cortex_a57_crypto_complex): Likewise.
10564 (cortex_a57_crypto_xor): Likewise.
10565 (define_bypass): Add AES bypass.
10566
10567 2016-02-10 Richard Biener <rguenther@suse.de>
10568
10569 PR tree-optimization/69726
10570 * passes.def: Add DCE pass before late uninit.
10571 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
10572 really fixup if-conversions job.
10573
10574 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
10575
10576 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
10577 (arm_cortex_a57_tune): Likewise.
10578 (aarch_macro_fusion_pair_p): Add support for AES fusion.
10579 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
10580
10581 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
10582
10583 * timevar.def (TV_PHASE_DBGINFO): Delete.
10584 (TV_PHASE_CHECK_DBGINFO): Likewise.
10585 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
10586
10587 2016-02-10 Richard Biener <rguenther@suse.de>
10588
10589 PR tree-optimization/69719
10590 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
10591 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
10592
10593 2016-02-09 Andrew Pinski <apinski@cavium.com>
10594
10595 PR tree-opt/69282
10596 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
10597 get_vcond_mask_icode returns false.
10598
10599 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
10600
10601 PR target/68404
10602 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
10603 an ADDIS that adds a pointer to a large constant that sets the
10604 upper16 bits with a load operation.
10605
10606 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
10607
10608 PR target/68532
10609 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
10610 order.
10611 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
10612 endian.
10613 (vzipq_s16): Likewise.
10614 (vzipq_s32): Likewise.
10615 (vzipq_f32): Likewise.
10616 (vzipq_u8): Likewise.
10617 (vzipq_u16): Likewise.
10618 (vzipq_u32): Likewise.
10619 (vzipq_p8): Likewise.
10620 (vzipq_p16): Likewise.
10621
10622 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
10623
10624 PR target/68532
10625 * config/arm/arm.c (neon_endian_lane_map): New function.
10626 (neon_vector_pair_endian_lane_map): New function.
10627 (arm_evpc_neon_vuzp): Allow for big endian lane order.
10628 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
10629 endian.
10630 (vuzpq_s16): Likewise.
10631 (vuzpq_s32): Likewise.
10632 (vuzpq_f32): Likewise.
10633 (vuzpq_u8): Likewise.
10634 (vuzpq_u16): Likewise.
10635 (vuzpq_u32): Likewise.
10636 (vuzpq_p8): Likewise.
10637 (vuzpq_p16): Likewise.
10638
10639 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
10640
10641 PR target/69634
10642 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
10643 debug insns.
10644
10645 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
10646
10647 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
10648 truncate const_int operand 1 to QImode.
10649
10650 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
10651
10652 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
10653 corresponding to an abnormal edge.
10654
10655 2016-02-09 Tom de Vries <tom@codesourcery.com>
10656
10657 PR tree-optimization/69599
10658 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
10659 function.
10660 (find_func_aliases_for_builtin_call, find_func_clobbers)
10661 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
10662 partition.
10663
10664 2016-02-09 Richard Biener <rguenther@suse.de>
10665
10666 PR tree-optimization/69715
10667 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
10668 LHS on calls as non-rewritable.
10669
10670 2016-02-09 Tom de Vries <tom@codesourcery.com>
10671
10672 PR lto/69707
10673 * lto-wrapper.c (append_diag_options): New function.
10674 (compile_offload_image): Call append_diag_options.
10675
10676 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
10677
10678 PR other/69722
10679 * doc/extend.texi (Flag Output Operands): Correct sectioning.
10680 Minor copy-edit to fix verb tenses.
10681
10682 2016-02-08 Jakub Jelinek <jakub@redhat.com>
10683
10684 PR tree-optimization/69209
10685 * ipa-split.c (split_function): If split part is not
10686 returning retval, retval has gimple type but is not
10687 gimple value, force it into a SSA_NAME first.
10688
10689 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
10690
10691 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
10692 outdated section.
10693
10694 2016-02-08 Jason Merrill <jason@redhat.com>
10695
10696 PR c++/69631
10697 * convert.c (convert_to_integer_1): Check dofold on truncation
10698 distribution.
10699 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
10700 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
10701 Rename from *_nofold.
10702 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
10703 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
10704
10705 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
10706
10707 PR target/60410
10708 * tree.c (build_common_tree_nodes): Remove short_double argument.
10709 All callers changed.
10710 * tree.h (build_common_tree_nodes): Adjust declaration.
10711 * doc/invoke.texi (-fshort-double): Remove documentation.
10712 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10713 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
10714 * lto-wrapper.c (merge_and_complain, append_compiler_options)
10715 (append_linker_options): Don't handle OPT_fshort_double.
10716
10717 PR rtl-optimization/68730
10718 * lra-remat.c (insn_to_cand_activation): New static variable.
10719 (lra_remat): Allocate and free it.
10720 (create_cand): New arg activation. Initialize a field in
10721 insn_to_cand_activation if it is nonnull.
10722 (create_cands): Pass the activation insn to create_cand when making
10723 a candidate involving an output reload. Reorganize code a little.
10724 (do_remat): Keep track of active status of candidates in a separate
10725 bitmap.
10726
10727 2016-02-08 Richard Biener <rguenther@suse.de>
10728
10729 PR tree-optimization/69719
10730 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
10731 Properly use absolute of the difference of the two offsets to
10732 compare or adjust the segment length.
10733
10734 2016-02-08 Richard Biener <rguenther@suse.de>
10735 Jeff Law <law@redhat.com>
10736
10737 PR target/68273
10738 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
10739 types for anonymous SSA names.
10740
10741 2016-02-08 Richard Biener <rguenther@suse.de>
10742
10743 PR rtl-optimization/69274
10744 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
10745
10746 2016-02-08 Jeff Law <law@redhat.com>
10747
10748 PR tree-optimization/65917
10749 * tree-ssa-dom.c (record_temporary_equivalences): Record both
10750 equivalences from if (x == y) style conditionals.
10751 (loop_depth_of_name): Remove.
10752 (record_equality): Remove loop depth check.
10753 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
10754 (const_and_copies::record_const_or_copy_raw): New member function.
10755 * tree-ssa-scopedtables.c
10756 (const_and_copies::record_const_or_copy_raw): New, factored out of
10757 (const_and_copies::record_const_or_copy): Call new member function.
10758
10759 2016-02-05 Jeff Law <law@redhat.com>
10760
10761 PR tree-optimization/68541
10762 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
10763 (count_stmts_in_block): New function.
10764 (poor_ifcvt_candidate_code): Likewise.
10765 (is_feasible_trace): Add some heuristics to determine when path
10766 splitting is profitable.
10767 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
10768 is a diamond with a single exit.
10769
10770 2016-02-05 Martin Sebor <msebor@redhat.com>
10771
10772 PR c++/69662
10773 * doc/invoke.texi: Update -Wplacement-new to take an optional
10774 argument.
10775
10776 2016-02-06 Richard Henderson <rth@redhat.com>
10777
10778 PR c/69643
10779 * tree.c (tree_nop_conversion_p): Do not strip casts into or
10780 out of non-standard address spaces.
10781
10782 2016-02-05 Jakub Jelinek <jakub@redhat.com>
10783
10784 PR rtl-optimization/69691
10785 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
10786
10787 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
10788
10789 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
10790 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
10791 (*ieee128_mfvsrd_64bit): Likewise.
10792 (*ieee128_mfvsrd_32bit): Likewise.
10793
10794 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
10795
10796 PR target/69369
10797 Revert r232560:
10798 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
10799
10800 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
10801 instrumented_version.
10802
10803 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
10804
10805 * doc/invoke.texi (Optimize Options): In table of --param options
10806 rename second occurrence of tracer-min-branch-ratio to
10807 tracer-min-branch-probability, rename
10808 tracer-min-branch-ratio-feedback to
10809 tracer-min-branch-probability-feedback and clarify description,
10810 rename sched-spec-state-edge-prob-cutoff to
10811 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
10812 to selsched-insns-to-rename, rename lto-minpartition to
10813 lto-min-partition, delete reorder-blocks-duplicate and
10814 reorder-blocks-duplicate-feedback.
10815
10816 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10817
10818 * config/s390/s390.c (s390_register_info_set_ranges): Remove
10819 superfluous loops.
10820
10821 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
10822
10823 * doc/extend.texi: S/390: Correct some typos.
10824
10825 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10826
10827 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
10828
10829 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10830
10831 PR target/69625
10832 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
10833 (s390_register_info_gprtofpr): Use new macros above.
10834 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
10835 its name.
10836 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
10837 its name. Adjust restore and save gpr ranges.
10838 (s390_register_info_set_ranges): New function.
10839 (s390_register_info): Use new macros above. Call
10840 s390_register_info_set_ranges.
10841 (s390_optimize_register_info): Likewise.
10842 (s390_hard_regno_rename_ok): Use new macros.
10843 (s390_hard_regno_scratch_ok): Likewise.
10844 (s390_emit_epilogue): Likewise.
10845 (s390_can_use_return_insn): Likewise.
10846 (s390_optimize_prologue): Likewise.
10847 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
10848
10849 2016-02-05 Jakub Jelinek <jakub@redhat.com>
10850
10851 PR bootstrap/69677
10852 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
10853 alignment fixes.
10854 (ix86_option_override_internal): Disable TARGET_STV even for
10855 -m{incoming,preferred}-stack-boundary=3.
10856
10857 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10858
10859 * config.gcc: Mark deprecated rtems targets as obsolete.
10860
10861 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
10862
10863 PR rtl-optimization/64682
10864 PR rtl-optimization/69567
10865 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
10866 before I2 only if the register is both used and set in I2.
10867
10868 2016-02-04 DJ Delorie <dj@redhat.com>
10869
10870 * config/msp430/msp430.c (msp430_start_function): Add function type.
10871
10872 2016-02-04 Jakub Jelinek <jakub@redhat.com>
10873
10874 PR fortran/69368
10875 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
10876
10877 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
10878
10879 PR rtl-optimization/69577
10880 Revert:
10881 2015-10-29 Richard Henderson <rth@redhat.com>
10882
10883 PR target/68124
10884 PR rtl-opt/67609
10885 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
10886 sse check to the exact conditions of PR 67609.
10887
10888 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
10889
10890 PR target/69667
10891 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
10892 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
10893 not allowed into the traditional Altivec registers.
10894 (movtd_64bit_nodm): Likewise.
10895 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
10896
10897 2016-02-04 David Malcolm <dmalcolm@redhat.com>
10898
10899 * config/aarch64/cortex-a57-fma-steering.c
10900 (aarch64_register_fma_steering): Remove "static" from arguments
10901 to register_pass.
10902
10903 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
10904
10905 PR target/69619
10906 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
10907 twice when complex.
10908
10909 2016-02-04 Mike Frysinger <vapier@gentoo.org>
10910
10911 * doc/invoke.texi: Delete -mno-fma4.
10912
10913 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
10914
10915 PR rtl-optimization/69577
10916 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
10917 (find_subregs_of_mode): Update accordingly. Iterate over partial
10918 definitions.
10919
10920 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
10921
10922 * config/arm/arm-protos.h (neon_reinterpret): Remove.
10923 * config/arm/arm.c (neon_reinterpret): Remove.
10924 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
10925 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
10926 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
10927 vreinterpretti): Remove.
10928 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
10929 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
10930 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
10931 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
10932 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
10933 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
10934 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
10935 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
10936 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
10937 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
10938 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
10939 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
10940 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
10941 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
10942 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
10943 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
10944 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
10945 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
10946 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
10947 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
10948 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
10949 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
10950 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
10951 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
10952 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
10953 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
10954 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
10955 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
10956 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
10957 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
10958 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
10959 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
10960 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
10961 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
10962 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
10963 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
10964 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
10965 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
10966 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
10967 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
10968 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
10969 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
10970 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
10971 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
10972 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
10973 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
10974 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
10975 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
10976 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
10977 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
10978 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
10979 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
10980 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
10981 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
10982 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
10983 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
10984 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
10985 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
10986 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
10987 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
10988 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
10989 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
10990 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
10991 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
10992 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
10993 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
10994 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
10995 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
10996 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
10997 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
10998 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
10999 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
11000 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
11001 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
11002 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
11003 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
11004 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
11005 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
11006 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
11007 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
11008 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
11009 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
11010 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
11011 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
11012 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
11013 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
11014 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
11015 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
11016 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
11017 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
11018 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
11019 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
11020 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
11021 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
11022 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
11023 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
11024 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
11025 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
11026 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
11027 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
11028 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
11029 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
11030 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
11031
11032 2016-02-04 Martin Liska <mliska@suse.cz>
11033
11034 PR sanitizer/69276
11035 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
11036 that are gimple_store_p.
11037 (maybe_instrument_call): Likewise.
11038
11039 2016-02-04 Bin Cheng <bin.cheng@arm.com>
11040
11041 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
11042 register scaling out of memory reference and comment why.
11043
11044 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11045
11046 PR target/65932
11047 PR target/67714
11048 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
11049 folding the source of a SET.
11050
11051 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11052
11053 PR target/65932
11054 PR target/67714
11055 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
11056 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
11057
11058 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
11059
11060 PR target/65932
11061 PR target/67714
11062 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
11063 HImode.
11064
11065 2016-02-04 Christian Bruel <christian.bruel@st.com>
11066
11067 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
11068 * config/arm/arm.c (arm_set_current_function): Likewise.
11069
11070 2016-02-04 Jakub Jelinek <jakub@redhat.com>
11071 Ilya Enkovich <enkovich.gnu@gmail.com>
11072 H.J. Lu <hongjiu.lu@intel.com>
11073
11074 PR target/69454
11075 * config/i386/i386.c (convert_scalars_to_vector): Remove
11076 stack alignment fixes.
11077 (ix86_option_override_internal): Disable TARGET_STV if stack
11078 might not be aligned enough.
11079 (ix86_minimum_alignment): Assert that TARGET_STV is false.
11080
11081 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
11082
11083 * config/i386/x86-tune.def: Disable default prefetching
11084 for -march=znver1.
11085
11086 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
11087 Vladimir Makarov <vmakarov@redhat.com>
11088
11089 PR target/69461
11090 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
11091 in validating fused toc addresses.
11092
11093 2016-02-03 Jakub Jelinek <jakub@redhat.com>
11094
11095 PR c/69627
11096 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
11097 range->m_caret fields if range->m_show_caret_p is false.
11098
11099 PR target/69644
11100 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
11101 Force oldval into register if it does not satisfy reg_or_short_operand
11102 predicate. Fix up formatting.
11103
11104 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
11105 Alexandre Oliva <aoliva@redhat.com>
11106
11107 PR target/69461
11108 * lra-constraints.c (simplify_operand_subreg): Check additionally
11109 address validity after potential reloading.
11110 (process_address_1): Check insns validity. In case of failure do
11111 nothing.
11112
11113 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
11114
11115 PR target/69118
11116 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
11117 Fix target.
11118
11119 2016-02-02 Jakub Jelinek <jakub@redhat.com>
11120
11121 * wide-int.cc (canonize_uhwi): New function.
11122 (wi::divmod_internal): Use it.
11123
11124 2016-02-02 James Norris <jnorris@codesourcery.com
11125
11126 * gimplify.c (omp_notice_variable): Add usage check.
11127
11128 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
11129
11130 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
11131 like LE, GE, LT, GT when emitting relational operator.
11132
11133 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
11134
11135 * ira-costs.c (find_costs_and_classes): Add extra argument.
11136 * target.def (ira_change_pseudo_allocno_class): Add parameter.
11137 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
11138 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
11139 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
11140 Add best_class parameter, and return it if not ALL_REGS.
11141 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
11142 Add parameter.
11143 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
11144 Update target hook.
11145
11146 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
11147
11148 * config/aarch64/aarch64.c
11149 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
11150 (aarch64_ira_change_pseudo_allocno_class): New function.
11151
11152 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
11153
11154 PR target/67032
11155 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
11156
11157 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
11158
11159 * config/avr/avr.c (avr_option_override): Set
11160 PARAM_ALLOW_STORE_DATA_RACES to 1.
11161
11162 2016-02-02 Richard Biener <rguenther@suse.de>
11163
11164 PR tree-optimization/69595
11165 * match.pd: Add range test simplifications to true/false.
11166
11167 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
11168
11169 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
11170 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
11171 instead.
11172
11173 2016-02-02 Richard Biener <rguenther@suse.de>
11174
11175 PR tree-optimization/69606
11176 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
11177 info on the result before moving a stmt.
11178
11179 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
11180
11181 PR middle-end/68542
11182 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
11183 branch with vector comparison.
11184 * config/i386/sse.md (VI48_AVX): New mode iterator.
11185 (define_expand "cbranch<mode>4): Add support for conditional branch
11186 with vector comparison.
11187 * tree-vect-loop.c (optimize_mask_stores): New function.
11188 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
11189 has_mask_store field of vect_info.
11190 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
11191 vectorized loops having masked stores after vec_info destroy.
11192 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
11193 correspondent macros.
11194 (optimize_mask_stores): Add prototype.
11195
11196 2016-02-02 Alan Modra <amodra@gmail.com>
11197
11198 PR target/69548
11199 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
11200 allow subregs.
11201
11202 2016-02-02 Alan Modra <amodra@gmail.com>
11203
11204 PR target/68662
11205 * config/rs6000/rs6000.c (need_toc_init): New var, set it
11206 whenever toc_label_name used.
11207 (rs6000_file_start): Don't set up toc section here,
11208 (rs6000_output_function_epilogue): do so here instead,
11209 (rs6000_xcoff_file_start): and here.
11210 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
11211 (load_toc_aix_di): Likewise.
11212
11213 2016-02-01 Jakub Jelinek <jakub@redhat.com>
11214
11215 PR rtl-optimization/69592
11216 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
11217 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
11218 (num_sign_bit_copies_binary_arith_p): New inline function.
11219 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
11220
11221 2016-02-01 Jeff Law <law@redhat.com>
11222
11223 PR tree-optimization/69580
11224 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
11225 * tree-ssa-threadbackward.c
11226 (fsm_find_control_statement_thread_paths): Do not try to walk
11227 through large PHI nodes.
11228
11229 2016-02-01 Jakub Jelinek <jakub@redhat.com>
11230
11231 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
11232 when count is incremented above limit, don't analyze further
11233 insns afterwards.
11234
11235 * omp-low.c (oacc_parse_default_dims): Avoid
11236 -Wsign-compare warning, make sure value fits into int
11237 rather than just unsigned int.
11238
11239 2016-02-01 Bin Cheng <bin.cheng@arm.com>
11240
11241 PR tree-optimization/67921
11242 * fold-const.c (split_tree): New parameters. Convert pointer
11243 type variable part to proper type before negating.
11244 (fold_binary_loc): Pass new arguments to split_tree.
11245
11246 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
11247
11248 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
11249 (nvptx_goacc_validate_dims): Extend to handle global defaults.
11250 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
11251 * doc/tm.texti: Rebuilt.
11252 * doc/invoke.texi (fopenacc-dim): Document.
11253 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
11254 (append_compiler_options): Likewise.
11255 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
11256 (oacc_parse_default_dims): New.
11257 (oacc_validate_dims): Add USED arg. Select non-unity default when
11258 possible.
11259 (oacc_loop_fixed_partitions): Return mask of used partitions.
11260 (oacc_loop_auto_partitions): Emit dump info.
11261 (oacc_loop_partition): Return mask of used partitions.
11262 (execute_oacc_device_lower): Parse default dimension arg. Adjust
11263 loop partitioning and validation calls.
11264
11265 2016-02-01 Richard Biener <rguenther@suse.de>
11266
11267 PR middle-end/69556
11268 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
11269
11270 2016-02-01 Richard Biener <rguenther@suse.de>
11271
11272 PR tree-optimization/69574
11273 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
11274 of asserting return chrec_dont_know.
11275
11276 2016-02-01 Martin Liska <mliska@suse.cz>
11277
11278 * mem-stats-traits.h: Add copyright header.
11279 * mem-stats.h: Likewise.
11280
11281 2016-02-01 Richard Biener <rguenther@suse.de>
11282
11283 PR tree-optimization/69579
11284 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
11285 Do not propagate through abnormal PHI results.
11286
11287 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
11288
11289 * postreload.c (reload_cse_simplify): Remove dead code.
11290
11291 2016-02-01 Jakub Jelinek <jakub@redhat.com>
11292
11293 PR rtl-optimization/69570
11294 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
11295 if there is more than one set, not if there is a single set.
11296
11297 2016-02-01 Richard Henderson <rth@redhat.com>
11298
11299 PR rtl-opt/69535
11300 * combine.c (make_compound_operation): When looking through a
11301 subreg, make sure to re-extend to the width of the outer mode.
11302
11303 2016-01-30 Jakub Jelinek <jakub@redhat.com>
11304
11305 PR tree-optimization/69546
11306 * wide-int.cc (wi::divmod_internal): For unsigned division
11307 where both operands fit into uhwi, if o1 is 1 and o0 has
11308 msb set, if divident_prec is larger than bits per hwi,
11309 clear another quotient word and return 2 instead of 1.
11310 Similarly for remainder with msb in HWI set, if dividend_prec
11311 is larger than bits per hwi.
11312
11313 2016-01-29 Martin Jambor <mjambor@suse.cz>
11314
11315 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
11316 Use short lowercase names.
11317 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
11318 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
11319 acq_rel one. Protect warning agains segfaults if
11320 get_memory_order_name returns NULL.
11321 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
11322 with release semantics. Do not warn if get_memory_order already did.
11323 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
11324 semantics. Fix check for relaxed or acquire semantics. Do not warn
11325 if get_memory_order already did.
11326
11327 2016-01-29 Sebastian Pop <s.pop@samsung.com>
11328
11329 * doc/install.texi: Document that isl-0.16 is supported.
11330
11331 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
11332
11333 PR target/69299
11334 * config/i386/constraints.md (Bm): Describe as special memory
11335 constraint.
11336 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
11337 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
11338 * genpreds.c (struct constraint_data): Add is_special_memory.
11339 (have_special_memory_constraints, special_memory_start): New
11340 static vars.
11341 (special_memory_end): Ditto.
11342 (add_constraint): Add new arg is_special_memory. Add code to
11343 process its true value. Update have_special_memory_constraints.
11344 (process_define_constraint): Pass the new arg.
11345 (process_define_register_constraint): Ditto.
11346 (choose_enum_order): Process special memory.
11347 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
11348 function insn_extra_special_memory_constraint.
11349 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
11350 * gensupport.c (process_rtx): Process
11351 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
11352 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
11353 * ira-lives.c (single_reg_class): Use
11354 insn_extra_special_memory_constraint.
11355 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
11356 * lra-constraints.c (process_alt_operands): Ditto.
11357 (curr_insn_transform): Use insn_extra_special_memory_constraint.
11358 * recog.c (asm_operand_ok, preprocess_constraints): Process
11359 CT_SPECIAL_MEMORY.
11360 * reload.c (find_reloads): Ditto.
11361 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
11362 * stmt.c (parse_input_constraint): Use
11363 insn_extra_special_memory_constraint.
11364
11365 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
11366
11367 PR target/69530
11368 * lra-splill.c (lra_final_code_change): Revert r229087 by
11369 removing all sub-registers.
11370
11371 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
11372
11373 PR target/65604
11374 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
11375
11376 2016-01-29 Jakub Jelinek <jakub@redhat.com>
11377
11378 PR target/69551
11379 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
11380 SSE1, copy target into the temporary reg first before recursing
11381 on it.
11382
11383 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
11384
11385 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
11386 with vm.
11387
11388 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
11389
11390 * ginclude/stdarg.h: Test __cplusplus instead of
11391 __GXX_EXPERIMENTAL_CXX0X__.
11392
11393 2016-01-29 Richard Biener <rguenther@suse.de>
11394
11395 PR tree-optimization/69547
11396 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
11397 Do not mark clobbers necessary.
11398 (mark_all_reaching_defs_necessary_1): Likewise.
11399
11400 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
11401
11402 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
11403 declaration name with %qs and print it in both error messages.
11404 Also fix indentation.
11405
11406 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
11407
11408 PR other/69006
11409 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
11410 trailing blank line from error message.
11411
11412 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
11413
11414 PR c++/69462
11415 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
11416 for C++-11.
11417
11418 2016-01-29 Richard Biener <rguenther@suse.de>
11419
11420 PR middle-end/69537
11421 * match.pd: Allow all integral types when simplifying a
11422 widening or sign-changing conversion.
11423
11424 2016-01-28 Sebastian Pop <s.pop@samsung.com>
11425
11426 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
11427 back to setting codegen_error to fail codegen.
11428
11429 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
11430
11431 PR target/69459
11432 * config/i386/constraints.md (C): Only accept constant zero operand.
11433 (BC): New constraint.
11434 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
11435 instead of C constraint.
11436 * doc/md.texi (Machine Constraints): Update description
11437 of C constraint.
11438
11439 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
11440
11441 PR target/68400
11442 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
11443
11444 2016-01-28 Jakub Jelinek <jakub@redhat.com>
11445
11446 PR middle-end/69542
11447 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
11448 non-debug insns.
11449
11450 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
11451
11452 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
11453 branches if using guessed profile.
11454
11455 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
11456
11457 * graphite-optimize-isl.c (optimize_isl): Fix dump.
11458
11459 2016-01-28 Richard Henderson <rth@redhat.com>
11460
11461 PR target/69305
11462 * config/aarch64/aarch64-modes.def (CC_Cmode): New
11463 * config/aarch64/aarch64-protos.h: Update.
11464 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
11465 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
11466 (aarch64_get_condition_code_1): Handle CC_Cmode.
11467 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
11468 (*add<mode>3_compareC_cconly_imm): New.
11469 (*add<mode>3_compareC_cconly): New.
11470 (*add<mode>3_compareC_imm): New.
11471 (add<mode>3_compareC): New.
11472 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
11473 to be first. Use aarch64_carry_operation.
11474 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
11475 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
11476 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
11477 (subti3): Use subdi3_compare1.
11478 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
11479 (sub<mode>3_compare1): New.
11480 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
11481 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
11482 (*subsi3_carryin_uxtw): Likewise.
11483 (*ngc<mode>, *ngcsi_uxtw): Likewise.
11484 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
11485 * config/aarch64/iterators.md (DWI): New.
11486 * config/aarch64/predicates.md (aarch64_carry_operation): New.
11487 (aarch64_borrow_operation): New.
11488
11489 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
11490
11491 * graphite-optimize-isl.c (optimize_isl): Print a different debug
11492 message when isl does not return a valid schedule.
11493
11494 2016-01-28 Sebastian Pop <s.pop@samsung.com>
11495
11496 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
11497 Remove comments from class declarations: they are already in the code
11498 close by the defs.
11499
11500 2016-01-28 Sebastian Pop <s.pop@samsung.com>
11501
11502 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
11503 codegen_error_p.
11504 (ternary_op_to_tree): Same.
11505 (unary_op_to_tree): Same.
11506 (nary_op_to_tree): Same.
11507 (gcc_expression_from_isl_expr_op): Same.
11508 (gcc_expression_from_isl_expression): Same.
11509 (graphite_create_new_loop): Same.
11510 (graphite_create_new_loop_guard): Same.
11511 (build_iv_mapping): Same.
11512 (graphite_create_new_guard): Same.
11513 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
11514 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
11515
11516 2016-01-28 Sebastian Pop <s.pop@samsung.com>
11517
11518 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
11519 instead of setting codegen_error to fail codegen.
11520
11521 2016-01-28 Jason Merrill <jason@redhat.com>
11522
11523 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
11524
11525 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
11526
11527 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
11528 Remove CONST_INT_P check in CCMP cost calculation.
11529
11530 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
11531
11532 * config/aarch64/aarch64.c (generic_vector_cost):
11533 Set vec_permute_cost.
11534 (cortexa57_vector_cost): Likewise.
11535 (exynosm1_vector_cost): Likewise.
11536 (xgene1_vector_cost): Likewise.
11537 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
11538 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
11539 Add vec_permute_cost entry.
11540
11541 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
11542
11543 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
11544 immediate as %1.
11545 (add<mode>3_compare0): Likewise.
11546 (addsi3_compare0_uxtw): Likewise.
11547 (add<mode>3nr_compare0): Likewise.
11548 (compare_neg<mode>): Likewise.
11549 (<optab><mode>3): Likewise.
11550
11551 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
11552
11553 * tree-vect-stmts.c (vectorizable_comparison): Add
11554 NULL check for vectype.
11555
11556 2016-01-28 Richard Biener <rguenther@suse.de>
11557
11558 PR tree-optimization/69466
11559 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
11560 Account for PHIs we couldn't duplicate.
11561
11562 2016-01-28 Martin Liska <mliska@suse.cz>
11563
11564 PR pch/68758
11565 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
11566 instead of ENABLE_VALGRIND_CHECKING.
11567
11568 2016-01-27 Richard Henderson <rth@redhat.com>
11569
11570 PR rtl-opt/69447
11571 * lra-remat.c (subreg_regs): New.
11572 (dump_candidates_and_remat_bb_data): Dump it.
11573 (operand_to_remat): Reject if operand in subreg_regs.
11574 (set_bb_regs): Collect subreg_regs.
11575 (lra_remat): Init and free subreg_regs. Compute
11576 calculate_local_reg_remat_bb_data before create_cands.
11577
11578 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
11579
11580 PR target/68986
11581 * config/i386/i386.c (ix86_update_stack_boundary): Don't
11582 change stack_alignment_needed for __tls_get_addr call.
11583
11584 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
11585
11586 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
11587
11588 2016-01-27 Jeff Law <law@redhat.com>
11589
11590 PR tree-optimization/68398
11591 PR tree-optimization/69196
11592 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
11593 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
11594 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11595 Only count PHIs in the last block in the path. The others will
11596 const/copy propagate away. Add heuristic to allow more irreducible
11597 subloops to be created when it is likely profitable to do so.
11598
11599 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11600 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
11601 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
11602
11603 2016-01-27 Jakub Jelinek <jakub@redhat.com>
11604
11605 PR lto/69254
11606 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
11607 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
11608 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
11609 * tree-streamer-in.c: Include asan.h.
11610 (streamer_get_builtin_tree): For builtins in sanitizer
11611 range call initialize_sanitizer_builtins and retry.
11612
11613 2016-01-27 Ian Lance Taylor <iant@google.com>
11614
11615 * common.opt (fkeep-gc-roots-live): New undocumented option.
11616 * tree-ssa-loop-ivopts.c (add_candidate_1): If
11617 -fkeep-gc-roots-live, skip pointers.
11618 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
11619 NULL.
11620
11621 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
11622
11623 PR target/69512
11624 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
11625 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
11626
11627 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
11628
11629 PR target/68380
11630 * configure.ac: NetBSD provides SSP in its C library.
11631 * configure: Updated.
11632
11633 2016-01-27 Richard Biener <rguenther@suse.de>
11634
11635 PR tree-optimization/69166
11636 * tree-vect-loop.c (vect_is_simple_reduction): Always check
11637 reduction code for commutativity / associativity.
11638
11639 2016-01-27 Martin Jambor <mjambor@suse.cz>
11640
11641 PR tree-optimization/69355
11642 * tree-sra.c (analyze_access_subtree): Correct hole detection when
11643 total_scalarization fails.
11644
11645 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
11646
11647 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
11648 power9.
11649
11650 2016-01-27 Christian Bruel <christian.bruel@st.com>
11651
11652 PR target/69245
11653 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
11654 Move arm_reset_previous_fndecl and set_target_option_current_node in
11655 the conditional part. Call save_restore_target_globals.
11656 * config/arm/arm.c (arm_set_current_function):
11657 Refactor to better support #pragma target and attribute mix.
11658 Call save_restore_target_globals.
11659 * config/arm/arm-protos.h (save_restore_target_globals): New function.
11660
11661 2016-01-27 Martin Liska <mliska@suse.cz>
11662
11663 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
11664 reference for an HSA kernel and its host function.
11665
11666 2016-01-27 Jakub Jelinek <jakub@redhat.com>
11667
11668 PR tree-optimization/69399
11669 * wide-int.h (wi::lrshift): For larger precisions, only
11670 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
11671
11672 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
11673
11674 * config/arc/predicates.md (proper_comparison_operator): Reject
11675 constant-constant comparison.
11676
11677 2016-01-26 Tom de Vries <tom@codesourcery.com>
11678
11679 PR tree-optimization/69110
11680 * tree-data-ref.c (initialize_data_dependence_relation): Handle
11681 DR_NUM_DIMENSIONS == 0.
11682
11683 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
11684 Sebastian Pop <s.pop@samsung.com>
11685
11686 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
11687 isl_ast_op_cond and isl_ast_op_select.
11688 (gcc_expression_from_isl_expr_op): Same.
11689
11690 2016-01-26 Jason Merrill <jason@redhat.com>
11691
11692 PR c++/68782
11693 * tree.c (recompute_constructor_flags): Split out from
11694 build_constructor.
11695 (verify_constructor_flags): New.
11696 * tree.h: Declare them.
11697
11698 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
11699
11700 PR rtl-optimization/69217
11701 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
11702 are no TYPE_FIELDS set for the record type.
11703
11704 2016-01-26 Jakub Jelinek <jakub@redhat.com>
11705
11706 PR target/68662
11707 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
11708 toc_label_name unconditionally.
11709 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
11710 SYMBOL_REF string. Use toc_label_name instead of constructing
11711 LCTOC1.
11712 (rs6000_elf_declare_function_name): Use toc_label_name instead of
11713 constructing LCTOC1.
11714
11715 2016-01-26 Martin Sebor <msebor@redhat.com>
11716
11717 PR other/69477
11718 * doc/extend.texi (Common Type Attributes): Move text that talks about
11719 attribute packed from attribute aligned to the section discussing
11720 the former attribute for clarity.
11721
11722 2016-01-26 Richard Henderson <rth@redhat.com>
11723
11724 PR middle-end/60908
11725 * trans-mem.c (tm_region_init): Mark entry block as visited.
11726
11727 2016-01-26 David Malcolm <dmalcolm@redhat.com>
11728
11729 PR other/69006
11730 * diagnostic-show-locus.c (layout::print_source_line): Replace
11731 call to pp_newline with call to layout::print_newline.
11732 (layout::print_annotation_line): Likewise.
11733 (layout::move_to_column): Likewise.
11734 (layout::print_any_fixits): After printing any fixits, print a
11735 trailing newline, if necessary.
11736 (layout::print_newline): New method, resetting any colorization
11737 before a newline.
11738 (diagnostic_show_locus): Move the pp_newline to before the
11739 early bailout. Remove dummy block enclosing the layout instance.
11740 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
11741 of pp_newline_and_flush with pp_flush.
11742 (diagnostic_append_note): Delete use of pp_newline.
11743 (diagnostic_append_note_at_rich_loc): Delete.
11744 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
11745 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
11746 when newline characters are added to the buffer.
11747
11748 2016-01-26 Michael Matz <matz@suse.de>
11749
11750 * configure.ac (ac_cv_std_swap_in_utility): New test.
11751 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
11752 * configure: Regenerate.
11753 * config.in: Regenerate.
11754
11755 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
11756
11757 * config/arc/arc.md (cstoresi4): Force operand into register.
11758 (arcset<code>): Fix predicate.
11759 (arcsetltu): Likewise.
11760 (arcsetgeu): Likewise.
11761 (arcsethi): Likewise.
11762 (arcsetls): Likewise.
11763
11764 2016-01-26 Jakub Jelinek <jakub@redhat.com>
11765
11766 PR tree-optimization/69483
11767 * gimple-fold.c (canonicalize_constructor_val): Return NULL
11768 if base has error_mark_node type.
11769
11770 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
11771
11772 PR target/68620
11773 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
11774 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
11775 New helper macros.
11776 (vget_lane_f16): Handle big-endian.
11777 (vgetq_lane_f16): Likewise.
11778 (vset_lane_f16): Likewise.
11779 (vsetq_lane_f16): Likewise.
11780 * config/arm/iterators.md (VQXMOV): Add V8HF.
11781 (VDQ): Add V4HF and V8HF.
11782 (V_reg): Handle V4HF and V8HF.
11783 (Is_float_mode): Likewise.
11784 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
11785 neon_vdup_nv8hf): New patterns.
11786 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
11787 Use VD_LANE iterator.
11788 (neon_vld1_dup<mode>): Use VQ2 iterator.
11789
11790 2016-01-26 Nathan Sidwell <nathan@acm.org>
11791
11792 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
11793 (set_oacc_fn_attrib): Add IS_KERNEL arg.
11794 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
11795 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
11796 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
11797 (oacc_validate_dims): Add LEVEL arg, don't return level.
11798 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
11799 oacc_validate_dims.
11800 (execute_oacc_device_lower): Adjust, add more dump output.
11801 * tree-ssa-loop.c (gate_oacc_kernels): Use
11802 oacc_fn_attrib_kernels_p.
11803 * tree-parloops.c (create_parallel_loop): Adjust
11804 set_oacc_fn_attrib call.
11805
11806 2016-01-26 Jakub Jelinek <jakub@redhat.com>
11807
11808 PR lto/69254
11809 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
11810 (append_compiler_options): Handle -fcilkplus.
11811 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
11812
11813 2016-01-26 Nick Clifton <nickc@redhat.com>
11814
11815 PR target/66655
11816 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
11817 been marked as DECL_ONE_ONLY but we do not the means to make it
11818 so, then do not allow it to bind locally.
11819
11820 2016-01-26 Jakub Jelinek <jakub@redhat.com>
11821
11822 PR lto/69254
11823 * opts.h (parse_sanitizer_options): New prototype.
11824 * opts.c (sanitizer_opts): New array.
11825 (parse_sanitizer_options): New function.
11826 (common_handle_option): Use parse_sanitizer_options.
11827
11828 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
11829
11830 PR target/68986
11831 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
11832 alignment adjustment to ...
11833 (ix86_update_stack_boundary): Here. Don't over-align stack for
11834 __tls_get_addr.
11835 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
11836 if __tls_get_addr is called.
11837
11838 2016-01-26 Christian Bruel <christian.bruel@st.com>
11839
11840 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
11841
11842 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
11843
11844 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
11845
11846 2016-01-26 Richard Biener <rguenther@suse.de>
11847
11848 PR middle-end/69467
11849 * match.pd: Guard X * CST CMP 0 pattern with single_use.
11850
11851 2016-01-26 Richard Biener <rguenther@suse.de>
11852
11853 PR tree-optimization/69452
11854 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
11855 (move_computations_dom_walker::before_dom_children): Rename
11856 to ...
11857 (move_computations_worker): This.
11858 (move_computations): Perform an RPO rather than a DOM walk.
11859
11860 2016-01-26 Jakub Jelinek <jakub@redhat.com>
11861
11862 PR target/69442
11863 * combine.c (combine_instructions): For REG_EQUAL note with
11864 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
11865 to the underlying register.
11866 * doc/rtl.texi (REG_EQUAL): Document the behavior of
11867 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
11868
11869 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
11870
11871 PR target/67896
11872 * config/aarch64/aarch64-builtins.c
11873 (aarch64_init_simd_builtin_types): Do not set structural
11874 equality to __Poly{8,16,64,128}_t types.
11875
11876 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
11877
11878 PR tree-optimization/69400
11879 * wide-int.cc (wi_pack): Take the precision as argument and
11880 perform canonicalization here rather than in the callers.
11881 Use the main loop to handle all full-width HWIs. Add a
11882 zero HWI if in_len isn't a full result.
11883 (wi::divmod_internal): Update accordingly.
11884 (wi::mul_internal): Likewise. Simplify.
11885
11886 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
11887 Sebastian Pop <s.pop@samsung.com>
11888
11889 * graphite-poly.c (apply_poly_transforms): Simplify.
11890 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
11891 (print_isl_map): Same.
11892 (print_isl_union_map): Same.
11893 (print_isl_schedule): New.
11894 (debug_isl_schedule): New.
11895 * graphite-dependences.c (scop_get_reads): Do not call
11896 isl_union_map_add_map that is undocumented isl functionality.
11897 (scop_get_must_writes): Same.
11898 (scop_get_may_writes): Same.
11899 (scop_get_original_schedule): Remove.
11900 (scop_get_dependences): Do not call isl_union_map_compute_flow that
11901 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
11902 (compute_deps): Remove.
11903 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
11904 (debug_schedule_ast): New.
11905 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
11906 set_separate_option.
11907 (graphite_regenerate_ast_isl): Add dump.
11908 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
11909 from scop->transformed_schedule.
11910 (graphite_regenerate_ast_isl): Add more dump.
11911 * graphite-optimize-isl.c (optimize_isl): Set
11912 scop->transformed_schedule. Check whether schedules are equal.
11913 (apply_poly_transforms): Move here.
11914 * graphite-poly.c (apply_poly_transforms): ... from here.
11915 (free_poly_bb): Static.
11916 (free_scop): Static.
11917 (pbb_number_of_iterations_at_time): Remove.
11918 (print_isl_ast): New.
11919 (debug_isl_ast): New.
11920 (debug_scop_pbb): New.
11921 * graphite-scop-detection.c (print_edge): Move.
11922 (print_sese): Move.
11923 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
11924 (build_scop_scattering): Remove.
11925 (create_pw_aff_from_tree): Assert instead of bailing out.
11926 (add_condition_to_pbb): Remove unused code, do not fail.
11927 (add_conditions_to_domain): Same.
11928 (add_conditions_to_constraints): Remove.
11929 (build_scop_context): New.
11930 (add_iter_domain_dimension): New.
11931 (build_iteration_domains): Initialize pbb->iterators.
11932 Call add_conditions_to_domain.
11933 (nested_in): New.
11934 (loop_at): New.
11935 (index_outermost_in_loop): New.
11936 (index_pbb_in_loop): New.
11937 (outermost_pbb_in): New.
11938 (add_in_sequence): New.
11939 (add_outer_projection): New.
11940 (outer_projection_mupa): New.
11941 (add_loop_schedule): New.
11942 (build_schedule_pbb): New.
11943 (build_schedule_loop): New.
11944 (embed_in_surrounding_loops): New.
11945 (build_schedule_loop_nest): New.
11946 (build_original_schedule): New.
11947 (build_poly_scop): Call build_original_schedule.
11948 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
11949 (free_poly_dr): Remove.
11950 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
11951 (free_poly_bb): Remove.
11952 (debug_loop_vec): Remove.
11953 (print_isl_ast): Declare.
11954 (debug_isl_ast): Declare.
11955 (scop_do_interchange): Remove.
11956 (scop_do_strip_mine): Remove.
11957 (scop_do_block): Remove.
11958 (flatten_all_loops): Remove.
11959 (optimize_isl): Remove.
11960 (pbb_number_of_iterations_at_time): Remove.
11961 (debug_scop_pbb): Declare.
11962 (print_schedule_ast): Declare.
11963 (debug_schedule_ast): Declare.
11964 (struct scop): Remove schedule. Add original_schedule,
11965 transformed_schedule.
11966 (free_gimple_poly_bb): Remove.
11967 (print_generated_program): Remove.
11968 (debug_generated_program): Remove.
11969 (unify_scattering_dimensions): Remove.
11970 * sese.c (print_edge): ... here.
11971 (print_sese): ... here.
11972 (debug_edge): ... here.
11973 (debug_sese): ... here.
11974 * sese.h (print_edge): Declare.
11975 (print_sese): Declare.
11976 (dump_edge): Declare.
11977 (dump_sese): Declare.
11978
11979 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
11980 Sebastian Pop <s.pop@samsung.com>
11981
11982 * Makefile.in: Set ISLVER in site.exp.
11983
11984 2016-01-25 Jakub Jelinek <jakub@redhat.com>
11985
11986 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
11987 DECL_VALUE_EXPR of new_var even for the non-array case. Look
11988 through DECL_VALUE_EXPR for expansion.
11989
11990 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
11991
11992 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
11993 the frame info after reload completed.
11994
11995 2016-01-25 Jeff Law <law@redhat.com>
11996
11997 PR tree-optimization/69196
11998 PR tree-optimization/68398
11999 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
12000 tree-ssa-threadupdate.c.
12001 (determine_bb_domination_status): Prototype
12002 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
12003 (determine_bb_domination_status): No longer static.
12004 (valid_jump_thread_path): Remove code to detect characteristics
12005 of the jump thread path not associated with correctness.
12006 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
12007 Correct test for thread path length. Count PHIs for real operands as
12008 statements that need to be copied. Do not count ASSERT_EXPRs.
12009 Look at all the blocks in the thread path. Compute and selectively
12010 filter thread paths based on threading through the latch, threading
12011 a multiway branch or crossing a multiway branch.
12012
12013 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12014
12015 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
12016 decl with __attribute__ ((unused)) annotation.
12017
12018 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
12019
12020 PR target/69421
12021 * tree-vect-stmts.c (vectorizable_condition): Check vectype
12022 of operands is compatible with a statement vectype.
12023
12024 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
12025
12026 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
12027 improve wording for mixed storage order support.
12028
12029 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
12030
12031 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
12032 (vcvt_u64_f64): Likewise.
12033 (vcvta_s64_f64): Likewise.
12034 (vcvta_u64_f64): Likewise.
12035 (vcvtm_s64_f64): Likewise.
12036 (vcvtm_u64_f64): Likewise.
12037 (vcvtn_s64_f64): Likewise.
12038 (vcvtn_u64_f64): Likewise.
12039 (vcvtp_s64_f64): Likewise.
12040 (vcvtp_u64_f64): Likewise.
12041
12042 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
12043
12044 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
12045 (arc_init): Check validity mll64 option.
12046 (arc_save_restore): Use double load/store instruction.
12047 (arc_expand_movmem): Likewise.
12048 (arc_split_move): Don't split if we have double load/store
12049 instructions. Returns a boolean.
12050 (arc_process_double_reg_moves): Change function to return boolean
12051 instead of a sequence of instructions.
12052 (arc_dwarf_register_span): New function.
12053 * config/arc/arc-protos.h (arc_split_move): Change prototype.
12054 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
12055 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
12056 (*movdf_insn): Likewise.
12057 * config/arc/arc.opt (mll64): New option.
12058 * config/arc/predicates.md (even_register_operand): New predicate.
12059 * doc/invoke.texi (ARC Options): Add mll64 documentation.
12060
12061 2016-01-25 Richard Biener <rguenther@suse.de>
12062
12063 PR lto/69393
12064 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
12065 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
12066 DECL_NAMELESS.
12067 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
12068
12069 2016-01-25 Richard Biener <rguenther@suse.de>
12070
12071 PR tree-optimization/69376
12072 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
12073 flag.
12074 (VN_INFO_ANTI_RANGE_P): New inline.
12075 (VN_INFO_RANGE_TYPE): Likewise.
12076 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
12077 SSA_NAME_ANTI_RANGE_P.
12078 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
12079 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
12080 Properly query VN_INFO_RANGE_TYPE.
12081
12082 2016-01-25 Nick Clifton <nickc@redhat.com>
12083
12084 PR target/66655
12085 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
12086
12087 2016-01-23 Tom de Vries <tom@codesourcery.com>
12088
12089 PR tree-optimization/69426
12090 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
12091 removed clobber.
12092
12093 2016-01-23 Jakub Jelinek <jakub@redhat.com>
12094
12095 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
12096 "the the" with "the" in the comments.
12097 * ipa-devirt.c (build_type_inheritance_graph,
12098 update_type_inheritance_graph): Likewise.
12099 * tree.c (build_function_type_list_1): Likewise.
12100 * cfgloopmanip.c (scale_loop_profile): Likewise.
12101 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
12102 * gimple-ssa-split-paths.c
12103 (find_block_to_duplicate_for_splitting_paths): Likewise.
12104 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
12105 * expr.c (convert_move): Likewise.
12106 * var-tracking.c (vt_stack_adjustments): Likewise.
12107 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
12108 * tree-vrp.c (test_for_singularity): Likewise.
12109
12110 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
12111 directly instead of building a temporary tree.
12112
12113 PR bootstrap/69434
12114 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
12115 remove <algorithm> include.
12116
12117 2016-01-22 Jakub Jelinek <jakub@redhat.com>
12118
12119 PR target/69432
12120 * config/i386/i386.c: Include dojump.h.
12121 (expand_small_movmem_or_setmem,
12122 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
12123 fixes.
12124 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
12125 if dynamic_check != -1.
12126
12127 2016-01-21 Jeff Law <law@redhat.com>
12128
12129 PR middle-end/69347
12130 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
12131 record_temporary_equivalences. Rewritten to avoid unnecessary calls
12132 into dominated_by_p.
12133 (cprop_into_successor_phis): Avoid unnecessary tests.
12134
12135 2016-01-22 Richard Henderson <rth@redhat.com>
12136
12137 PR target/69416
12138 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
12139 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
12140
12141 2016-01-22 Michael Matz <matz@suse.de>
12142
12143 * system.h (string, algorithm): Include only conditionally.
12144 (new): Include always under C++.
12145 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
12146 * final.c (toplevel): Ditto.
12147 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
12148 * genconditions.c (write_header): Make gencondmd.c define
12149 INCLUDE_STRING.
12150 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
12151
12152 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
12153 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
12154
12155 2016-01-22 Christian Bruel <christian.bruel@st.com>
12156
12157 PR target/68674
12158 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
12159
12160 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12161
12162 PR target/69403
12163 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
12164 define_insn_and_split. Ensure operands[1] and operands[0] do not
12165 get assigned the same register.
12166
12167 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
12168
12169 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
12170
12171 2016-01-22 Christian Bruel <christian.bruel@st.com>
12172
12173 * config/arm/arm-c.c (arm_pragma_target_parse):
12174 Remove warn_builtin_macro_redefined overwrite.
12175
12176 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
12177
12178 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
12179 flag_non_call_exceptions compatibility.
12180
12181 2016-01-22 Jakub Jelinek <jakub@redhat.com>
12182
12183 PR debug/66668
12184 * dwarf2out.c (add_child_die_after): New function.
12185 (dwarf_qual_info_t): New type.
12186 (dwarf_qual_info): New variable.
12187 (qualified_die_p): New function.
12188 (modified_type_die): For -fdebug-types-section, ensure
12189 canonical order of qualifiers. Put qualified DIEs adjacent
12190 to the corresponding non-qualified type DIE and search there
12191 for existing qualified DIEs.
12192
12193 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
12194
12195 * doc/extend.texi (scalar_storage_order type attribute): Document
12196 restriction on type punning and aliasing, and remove future tense.
12197
12198 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
12199
12200 PR target/69252
12201 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
12202 first stage.
12203
12204 2016-01-21 Jeff Law <law@redhat.com>
12205
12206 PR middle-end/69347
12207 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
12208 useless call to record_temporary_equivalences.
12209 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
12210 allocate 10 slots in the bb_path vector and let it grow as needed.
12211 (fsm_find_control_statement_thread_paths): Similarly for the next_path
12212 vector.
12213
12214 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
12215
12216 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
12217 Detangle.
12218 * configure: Regenerate.
12219
12220 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
12221
12222 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
12223 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
12224
12225 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
12226
12227 PR middle-end/66178
12228 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
12229 drop EXPAND_INITIALIZER.
12230 * rtl.h (contains_symbolic_reference_p): Declare.
12231 * rtlanal.c (contains_symbolic_reference_p): New function.
12232 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
12233 a subtraction into a NOT if symbolic constants are involved.
12234
12235 2016-01-21 Anton Blanchard <anton@samba.org>
12236 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12237
12238 PR target/63354
12239 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
12240 #define.
12241 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
12242 function.
12243
12244 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
12245
12246 * config/microblaze/microblaze.c
12247 (get_branch_target): New.
12248 (insert_wic_for_ilb_runout): New.
12249 (insert_wic): New.
12250 (microblaze_machine_dependent_reorg): New.
12251 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
12252 * config/microblaze/microblaze.md
12253 (UNSPEC_IPREFETCH): Define.
12254 (iprefetch): New pattern
12255 * config/microblaze/microblaze.opt
12256 (mxl-prefetch): New flag.
12257
12258 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
12259
12260 * config/microblaze/microblaze.h
12261 (FIXED_REGISTERS): Update in macro.
12262 (CALL_USED_REGISTERS): Update in macro.
12263
12264 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
12265
12266 PR rtl-optimization/68920
12267 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
12268 moves.
12269
12270 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
12271
12272 PR rtl-optimization/68990
12273 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
12274 pseudo instead of inheritance ones.
12275
12276 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
12277 Nick Clifton <nickc@redhat.com>
12278
12279 PR target/69129
12280 PR target/69012
12281 * config/mips/mips.c (mips_compute_frame_info): Initialise
12282 args_size and hard_frame_pointer_offset fields of the frame
12283 structure before calling mips_global_pointer.
12284
12285 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
12286
12287 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
12288 label reference.
12289 * configure: Regenerate.
12290
12291 2016-01-21 Richard Biener <rguenther@suse.de>
12292
12293 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
12294
12295 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
12296
12297 * config/s390/s390.c (s390_asm_declare_function_size): Add code
12298 to actually emit the .size directive.
12299
12300 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
12301 Jakub Jelinek <jakub@redhat.com>
12302
12303 PR target/69187
12304 PR target/65624
12305 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
12306 args array size by one to avoid buffer overflow.
12307
12308 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
12309
12310 * config/s390/s390.md (pool_section_start): Use switch_to_section
12311 to select proper read-only data section instead of hardcoding
12312 .rodata.
12313 (pool_section_end): Use switch_to_section to match the above.
12314
12315 2016-01-21 Richard Biener <rguenther@suse.de>
12316
12317 PR tree-optimization/69378
12318 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
12319 (set_ssa_val_to): Use it for dominance checks taking into
12320 account not executable edges.
12321
12322 2016-01-21 Jakub Jelinek <jakub@redhat.com>
12323
12324 PR c++/69355
12325 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
12326 for bitsize instead of GET_MODE_PRECISION (mode).
12327
12328 2016-01-20 Martin Sebor <msebor@redhat.com>
12329
12330 PR c/52291
12331 * extend.texi (__sync Builtins): Clarify the semantics of
12332 __sync_fetch_and_OP built-ins on pointers.
12333 (__atomic Builtins): Same.
12334
12335 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
12336 Sebastian Pop <s.pop@samsung.com>
12337
12338 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
12339 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
12340 (is_valid_rename): Same.
12341 (translate_isl_ast_to_gimple::get_rename): Same.
12342 (translate_isl_ast_to_gimple::rename_all_uses): Same.
12343 (translate_isl_ast_to_gimple::rename_uses): Same.
12344 (get_new_name): Check for close_phi nodes.
12345 (copy_loop_phi_args): Use phi_node_kind.
12346 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
12347 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
12348
12349 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
12350 Sebastian Pop <s.pop@samsung.com>
12351
12352 Revert commit r229783.
12353 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
12354 Remove use of parameter_rename_map.
12355 (copy_def): Remove.
12356 (copy_internal_parameters): Remove.
12357 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
12358 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
12359 (free_sese_info): Do not free parameter_rename_map.
12360 (set_rename): Do not use parameter_rename_map.
12361 (rename_uses): Update call to set_rename.
12362 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
12363 * sese.h (parameter_rename_map_t): Remove.
12364 (struct sese_info_t): Remove field parameter_rename_map.
12365
12366 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
12367 Sebastian Pop <s.pop@samsung.com>
12368
12369 * graphite-isl-ast-to-gimple.c: Fix comment.
12370 * graphite-scop-detection.c (defined_in_loop_p): New.
12371 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
12372 names defined in loop.
12373
12374 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
12375 Sebastian Pop <s.pop@samsung.com>
12376
12377 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
12378 Discard unstructured if-then-else regions.
12379
12380 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
12381 Sebastian Pop <s.pop@samsung.com>
12382
12383 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
12384 (cleanup_loop_iter_dom): Remove.
12385 (build_loop_iteration_domains): Remove.
12386 (build_scop_context): Remove.
12387 (build_scop_iteration_domain): Remove.
12388 (add_loop_constraints): New.
12389 (build_iteration_domains): New.
12390 (build_poly_scop): Call build_iteration_domains.
12391
12392 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
12393 Sebastian Pop <s.pop@samsung.com>
12394
12395 * graphite-scop-detection.c
12396 (scop_detection::harmful_loop_in_region): Free dom and loops.
12397 (scop_detection::loop_body_is_valid_scop): Free bbs.
12398
12399 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
12400 Sebastian Pop <s.pop@samsung.com>
12401
12402 * graphite-scop-detection.c (record_loop_in_sese): New.
12403 (gather_bbs::before_dom_children): Call record_loop_in_sese.
12404 (build_scops): Remove call to build_sese_loop_nests.
12405 * sese.c (sese_record_loop): Remove.
12406 (build_sese_loop_nests): Remove.
12407 (new_sese_info): Remove region->loops.
12408 (free_sese_info): Same.
12409 * sese.h (sese_contains_loop): Same.
12410 (build_sese_loop_nests): Remove.
12411 (sese_contains_loop): Remove.
12412
12413 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
12414 Sebastian Pop <s.pop@samsung.com>
12415
12416 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
12417 loop_is_valid_in_scop.
12418 (scop_detection::harmful_stmt_in_region): Renamed
12419 harmful_loop_in_region.
12420 Call loop_is_valid_in_scop.
12421
12422 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
12423 Sebastian Pop <s.pop@samsung.com>
12424
12425 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
12426 isl_ast_node_mark.
12427
12428 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
12429 Sebastian Pop <s.pop@samsung.com>
12430
12431 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
12432 * graphite.h (struct poly_bb): Remove field is_reduction.
12433 (PBB_IS_REDUCTION): Remove.
12434
12435 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
12436 Sebastian Pop <s.pop@samsung.com>
12437
12438 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
12439 (add_pdr_constraints): Same.
12440 (scop_get_reads): Same.
12441 (scop_get_must_writes): Same.
12442 (scop_get_may_writes): Same.
12443 (scop_get_original_schedule): Same.
12444 (extend_schedule): Same.
12445 (apply_schedule_on_deps): Same.
12446 (carries_deps): Same.
12447 (compute_deps): Same.
12448 (scop_get_dependences): Same.
12449 * graphite-isl-ast-to-gimple.c
12450 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
12451 * graphite-optimize-isl.c (get_schedule_for_band): Same.
12452 (get_schedule_for_band_list): Same.
12453 (get_schedule_map): Same.
12454 (apply_schedule_map_to_scop): Same.
12455 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
12456 (build_loop_iteration_domains): Same.
12457 (add_condition_to_pbb): Same.
12458 (add_param_constraints): Same.
12459 (pdr_add_memory_accesses): Same.
12460 (pdr_add_data_dimensions): Same.
12461
12462 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
12463
12464 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
12465 requirements.
12466
12467 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
12468
12469 * common.opt (feliminate-dwarf2-dups): Replace references to
12470 "DWARF 2" with just "DWARF".
12471 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
12472 * doc/extend.texi: Likewise.
12473 * doc/cpp.texi: Likewise.
12474 * doc/invoke.texi: Likewise.
12475 (Option Summary): Add -gdwarf to list of Debugging Options.
12476 (Debugging Options): Document -gdwarf.
12477 * doc/contrib.texi: Spell "DWARF" like that.
12478
12479 2016-01-21 Jakub Jelinek <jakub@redhat.com>
12480
12481 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
12482 warning. Fix up formatting.
12483
12484 PR middle-end/67653
12485 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
12486 attempt to mark memory input operand addressable and
12487 call prepare_gimple_addressable in that case. Don't adjust
12488 input_location for diagnostics, use error_at instead.
12489
12490 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
12491
12492 * config/rs6000/ppc-auxv.h: New file.
12493 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
12494 (cpu_is): Likewise.
12495 (cpu_supports): Likewise.
12496 * config/rs6000/rs6000.c: include "ppc-auxv.h".
12497 (cpu_is_info): New variable.
12498 (cpu_supports_info): Likewise.
12499 (tcb_verification_symbol): Likewise.
12500 (cpu_builtin_p): Likewise.
12501 (cpu_expand_builtin): New function.
12502 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
12503 (rs6000_init_builtins): Likewise.
12504 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
12505 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
12506 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
12507 * configure: Regenerate.
12508 * config.in: Likewise.
12509 * doc/extend.texi (PowerPC Built-in Functions): Document
12510 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
12511
12512 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
12513
12514 PR target/68609
12515 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
12516 domain check.
12517 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
12518 for V4SFmode.
12519
12520 2016-01-20 Richard Henderson <rth@redhat.com>
12521
12522 PR bootstrap/69343
12523 PR bootstrap/69339
12524 PR tree-opt/68964
12525 Revert:
12526 * tree.c (tm_define_builtin): New.
12527 (find_tm_vector_type): New.
12528 (build_tm_vector_builtins): New.
12529 (build_common_builtin_nodes): Call it.
12530
12531 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
12532
12533 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
12534 (arm_fp_ok): Likewise.
12535 (arm_fp): Likewise.
12536 (arm_crypto): Likewise.
12537
12538 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
12539 Richard Biener <rguenther@suse.de>
12540
12541 PR tree-optimization/69328
12542 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
12543 vectors have same number of elements.
12544 (vectorizable_condition): Fix masked version recognition.
12545
12546 2016-01-20 Richard Biener <rguenther@suse.de>
12547
12548 PR tree-optimization/69345
12549 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
12550 (VN_INFO_PTR_INFO): Likewise.
12551 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
12552 info when it is equal between non-dominating SSA names.
12553 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
12554 Make sure to look at original SSA infos.
12555
12556 2016-01-20 Jeff Law <law@redhat.com>
12557
12558 PR target/25114
12559 * config/m68k/predicates.md (pow2_m1_operand): New predicate
12560 extracted from ...
12561 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
12562 (pc_or_label_operand): New predicate.
12563 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
12564 tests for small integers that are 2^n - 1.
12565
12566 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
12567
12568 * doc/invoke.texi (Options Summary): Add '.' after @xref.
12569
12570 2016-01-19 Jeff Law <law@redhat.com>
12571
12572 PR middle-end/69347
12573 * tree-ssa-threadbackwards.c
12574 (fsm_find_control_statement_thread_paths): Do not try to lookup
12575 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
12576
12577 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
12578
12579 * doc/lto.texi: Remove text that says only Gold has linker plugin
12580 support.
12581
12582 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
12583
12584 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
12585 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
12586 the DIE accordingly.
12587 (modified_type_die): Add REVERSE parameter and pass it recursively,
12588 as well as to base_type_die. Adjust presence check accordingly.
12589 (base_type_for_mode): Adjust call to modified_type_die.
12590 (add_type_attribute): Add REVERSE parameter and pass it to
12591 modified_type_die.
12592 (generic_parameter_die): Adjust call to add_type_attribute.
12593 (add_scalar_info): Likewise.
12594 (add_subscript_info): Likewise.
12595 (gen_array_type_die): Likewise.
12596 (gen_descr_array_type_die): Likewise.
12597 (gen_entry_point_die): Likewise.
12598 (gen_enumeration_type_die): Likewise.
12599 (gen_formal_parameter_die): Likewise.
12600 (gen_subprogram_die): Likewise.
12601 (gen_variable_die ): Likewise.
12602 (gen_const_die): Likewise.
12603 (gen_field_die): Likewise.
12604 (gen_pointer_type_die): Likewise.
12605 (gen_reference_type_die): Likewise.
12606 (gen_ptr_to_mbr_type_die): Likewise.
12607 (gen_inheritance_die): Likewise.
12608 (gen_subroutine_type_die): Likewise.
12609 (gen_typedef_die): Likewise.
12610 (force_type_die): Adjust call to modified_type_die.
12611
12612 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
12613
12614 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
12615 flow throughout the file. Fix broken link to Objective-C 2.0
12616 documentation.
12617 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
12618 errors.
12619
12620 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
12621
12622 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
12623
12624 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
12625
12626 PR ipa/66223
12627 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
12628 (maybe_record_node): Record cxa_pure_virtual as the only possible
12629 target if there are not ohter candidates.
12630 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
12631
12632 2016-01-19 Richard Biener <rguenther@suse.de>
12633
12634 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
12635 (get_memory_order): Likewise.
12636
12637 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
12638
12639 * tree-vect-stmts.c (vectorizable_store): Check
12640 rhs vectype.
12641
12642 2016-01-19 David Malcolm <dmalcolm@redhat.com>
12643
12644 PR jit/68446
12645 * gcc.c (driver::decode_argv): Add call to
12646 init_opts_obstack before init_options_struct.
12647 * opts.c (init_opts_obstack): Remove idempotency.
12648 (init_options_struct): Replace call to init_opts_obstack
12649 with a gcc_assert to verify that it has already been called.
12650 * toplev.c (toplev::main): Add call to init_opts_obstack before
12651 calls to init_options_struct.
12652 (toplev::finalize): Move cleanup of opts_obstack next to
12653 cleanup of save_decoded_options, clearing the latter, and
12654 save_decoded_options_count.
12655
12656 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12657
12658 PR target/69135
12659 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
12660 attribute to unconditional. Remove %? from output template.
12661
12662 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
12663 Jiong Wang <jiong.wang@arm.com>
12664
12665 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
12666 generated from different expand order.
12667
12668 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
12669
12670 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
12671 Add support for CCMP costing.
12672
12673 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
12674
12675 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
12676 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
12677 (fccmpe<mode>): Likewise.
12678 (fcmp): Rename to fcmp and globalize pattern.
12679 (fcmpe): Likewise.
12680 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
12681 (aarch64_gen_ccmp_next): Add FP support.
12682
12683 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
12684
12685 * target.def (gen_ccmp_first): Update documentation.
12686 (gen_ccmp_next): Likewise.
12687 * doc/tm.texi (gen_ccmp_first): Update documentation.
12688 (gen_ccmp_next): Likewise.
12689 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
12690 expand_ccmp_expr_1. Improve comments.
12691 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
12692 (ccmp_ior<mode>): Remove pattern.
12693 (cmp<mode>): Remove expand.
12694 (cmp): Globalize pattern.
12695 (cstorecc4): Use cc_register.
12696 (mov<mode>cc): Remove ccmp_cc_register check.
12697 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
12698 Simplify after removal of CC_DNE/* modes.
12699 (aarch64_ccmp_mode_to_code): Remove.
12700 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
12701 In 'k' case use integer as condition.
12702 (aarch64_nzcv_codes): Remove inverted cases.
12703 (aarch64_code_to_ccmode): Remove.
12704 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
12705 comparison with CC register to be used in folowing CCMP/branch/CSEL.
12706 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
12707 pattern. Return the comparison with CC register. Invert conditions
12708 when bitcode is OR.
12709 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
12710 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
12711
12712 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
12713
12714 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
12715 instrumented_version.
12716
12717 2016-01-19 Richard Biener <rguenther@suse.de>
12718
12719 PR tree-optimization/69336
12720 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
12721 handled components with get_ref_base_and_extent.
12722 (equal_mem_array_ref_p): Adjust.
12723
12724 2016-01-19 Jakub Jelinek <jakub@redhat.com>
12725
12726 PR debug/65779
12727 * shrink-wrap.c: Include valtrack.h.
12728 (move_insn_for_shrink_wrap): Add DEBUG argument. If
12729 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
12730 in between insn and where it will be moved to. Call
12731 dead_debug_insert_temp.
12732 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
12733 first and dead_debug_local_finish at the end.
12734 For uses and defs bitmap, handle all regs in between REGNO and
12735 END_REGNO, not just the first one.
12736
12737 2016-01-19 Richard Biener <rguenther@suse.de>
12738
12739 PR tree-optimization/69352
12740 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
12741 (equal_mem_array_ref_p): Constrain size and max size properly.
12742 Compare the reverse flag.
12743
12744 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
12745
12746 * ira.c (ira): Update regstat data if we deleted insns.
12747
12748 2016-01-19 Jakub Jelinek <jakub@redhat.com>
12749
12750 PR rtl-optimization/68955
12751 PR rtl-optimization/64557
12752 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
12753 here. Fix up formatting.
12754 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
12755
12756 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
12757
12758 PR lto/69133
12759 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
12760 assume that the node has body.
12761 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
12762 check.
12763
12764 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
12765
12766 * lto-streamer-out.c (lto_output): Do not stream instrumentation
12767 thunks.
12768
12769 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
12770
12771 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
12772 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
12773
12774 2016-01-19 Martin Jambor <mjambor@suse.cz>
12775 Martin Liska <mliska@suse.cz>
12776 Michael Matz <matz@suse.de>
12777
12778 * Makefile.in (OBJS): Add new source files.
12779 (GTFILES): Add hsa.c.
12780 * common.opt (disable_hsa): New variable.
12781 (-Whsa): New warning.
12782 * config.in (ENABLE_HSA): New.
12783 * configure.ac: Treat hsa differently from other accelerators.
12784 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
12785 $enable_offloading.
12786 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
12787 * doc/install.texi (Configuration): Document --with-hsa-runtime,
12788 --with-hsa-runtime-include, --with-hsa-runtime-lib and
12789 --with-hsa-kmt-lib.
12790 * doc/invoke.texi (-Whsa): Document.
12791 (hsa-gen-debug-stores): Likewise.
12792 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
12793 to invoke offload compiler for hsa acclerator.
12794 * opts.c (common_handle_option): Determine whether HSA offloading
12795 should be performed.
12796 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
12797 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
12798 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
12799 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
12800 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
12801 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
12802 GF_OMP_FOR_KIND_GRID_LOOP.
12803 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
12804 (pp_gimple_stmt_1): Likewise.
12805 * gimple-walk.c (walk_gimple_stmt): Likewise.
12806 * gimple.c (gimple_build_omp_grid_body): New function.
12807 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
12808 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
12809 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
12810 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
12811 GF_OMP_TEAMS_GRID_PHONY.
12812 (gimple_statement_omp_single_layout): Updated comments.
12813 (gimple_build_omp_grid_body): New function.
12814 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
12815 (gimple_omp_for_grid_phony): New function.
12816 (gimple_omp_for_set_grid_phony): Likewise.
12817 (gimple_omp_parallel_grid_phony): Likewise.
12818 (gimple_omp_parallel_set_grid_phony): Likewise.
12819 (gimple_omp_teams_grid_phony): Likewise.
12820 (gimple_omp_teams_set_grid_phony): Likewise.
12821 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
12822 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
12823 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
12824 (BUILT_IN_GOMP_TARGET): Updated type.
12825 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
12826 (adjust_for_condition): New function.
12827 (get_omp_for_step_from_incr): Likewise.
12828 (extract_omp_for_data): Moved parts to adjust_for_condition and
12829 get_omp_for_step_from_incr.
12830 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
12831 (fixup_child_record_type): Bail out if receiver_decl is NULL.
12832 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
12833 (scan_omp_parallel): Do not create child functions for phony
12834 constructs.
12835 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
12836 (scan_omp_1_op): Checking assert we are not remapping to
12837 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
12838 (parallel_needs_hsa_kernel_p): New function.
12839 (expand_parallel_call): Register apprpriate parallel child
12840 functions as HSA kernels.
12841 (grid_launch_attributes_trees): New type.
12842 (grid_attr_trees): New variable.
12843 (grid_create_kernel_launch_attr_types): New function.
12844 (grid_insert_store_range_dim): Likewise.
12845 (grid_get_kernel_launch_attributes): Likewise.
12846 (get_target_argument_identifier_1): Likewise.
12847 (get_target_argument_identifier): Likewise.
12848 (get_target_argument_value): Likewise.
12849 (push_target_argument_according_to_value): Likewise.
12850 (get_target_arguments): Likewise.
12851 (expand_omp_target): Call get_target_arguments instead of looking
12852 up for teams and thread limit.
12853 (grid_expand_omp_for_loop): New function.
12854 (grid_arg_decl_map): New type.
12855 (grid_remap_kernel_arg_accesses): New function.
12856 (grid_expand_target_kernel_body): New function.
12857 (expand_omp): Call it.
12858 (lower_omp_for): Do not emit phony constructs.
12859 (lower_omp_taskreg): Do not emit phony constructs but create for them
12860 a temporary variable receiver_decl.
12861 (lower_omp_taskreg): Do not emit phony constructs.
12862 (lower_omp_teams): Likewise.
12863 (lower_omp_grid_body): New function.
12864 (lower_omp_1): Call it.
12865 (grid_reg_assignment_to_local_var_p): New function.
12866 (grid_seq_only_contains_local_assignments): Likewise.
12867 (grid_find_single_omp_among_assignments_1): Likewise.
12868 (grid_find_single_omp_among_assignments): Likewise.
12869 (grid_find_ungridifiable_statement): Likewise.
12870 (grid_target_follows_gridifiable_pattern): Likewise.
12871 (grid_remap_prebody_decls): Likewise.
12872 (grid_copy_leading_local_assignments): Likewise.
12873 (grid_process_kernel_body_copy): Likewise.
12874 (grid_attempt_target_gridification): Likewise.
12875 (grid_gridify_all_targets_stmt): Likewise.
12876 (grid_gridify_all_targets): Likewise.
12877 (execute_lower_omp): Call grid_gridify_all_targets.
12878 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
12879 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
12880 (tree_omp_clause): Added union field dimension.
12881 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
12882 * tree.c (omp_clause_num_ops): Added number of arguments of
12883 OMP_CLAUSE__GRIDDIM_.
12884 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
12885 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
12886 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
12887 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
12888 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
12889 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
12890 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
12891 * tree-pass.h (make_pass_gen_hsail): Declare.
12892 (make_pass_ipa_hsa): Likewise.
12893 * ipa-hsa.c: New file.
12894 * lto-section-in.c (lto_section_name): Add hsa section name.
12895 * lto-streamer.h (lto_section_type): Add hsa section.
12896 * timevar.def (TV_IPA_HSA): New.
12897 * hsa-brig-format.h: New file.
12898 * hsa-brig.c: New file.
12899 * hsa-dump.c: Likewise.
12900 * hsa-gen.c: Likewise.
12901 * hsa.c: Likewise.
12902 * hsa.h: Likewise.
12903 * toplev.c (compile_file): Call hsa_output_brig.
12904 * hsa-regalloc.c: New file.
12905
12906 2016-01-18 Jeff Law <law@redhat.com>
12907
12908 PR tree-optimization/69320
12909 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
12910 ranged object, do nothing if the RHS constant is not [0..1].
12911 (optimize_stmt): Comparing a boolean ranged object against a
12912 constant outside [0..1] results in a compile-time constant.
12913
12914 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
12915 test.
12916
12917 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
12918
12919 * doc/invoke.texi (Invoking GCC): Add new section to menu.
12920 (Option Summary): Update to reflect new section and moved options.
12921 (C++ Dialect Options): Move -fstats to new section.
12922 (Debugging Options): Move all dump, statistics, and other GCC
12923 developer options to new section. Rewrite section introduction
12924 and re-order remaining options to put the more basic ones first.
12925 (Optimization Options): Move -fira-verbose and -flto-report* to
12926 new section.
12927 (Developer Options): New section incorporating moved options.
12928 * doc/cppopts.texi (-dM): Update cross-reference.
12929
12930 2016-01-18 Richard Henderson <rth@redhat.com>
12931
12932 PR target/69176
12933 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
12934 operands to pseudo only if CSE is expected. Split long immediate
12935 operands only after reload, and for the stack pointer.
12936 (*add<GPI>3_pluslong): Remove.
12937 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
12938 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
12939 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
12940 (*add<GPI>3 peepholes): New.
12941 (*add<GPI>3 splitters): New.
12942 * config/aarch64/constraints.md (Upl): New.
12943 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
12944
12945 2016-01-18 Richard Biener <rguenther@suse.de>
12946
12947 PR tree-optimization/69297
12948 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
12949 stmt at most once.
12950 (vect_bb_vectorization_profitable_p): Clear visited flag again.
12951
12952 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
12953
12954 PR middle-end/68542
12955 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
12956 of mixind vector and scalar types.
12957 (fold_relational_const): Add handling of vector
12958 comparison with boolean result.
12959 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
12960 comparison of vector operands with boolean result for EQ/NE only.
12961 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
12962 (verify_gimple_cond): Likewise.
12963 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
12964 valid type of VAL.
12965
12966 2016-01-18 Joseph Myers <joseph@codesourcery.com>
12967
12968 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
12969 !TARGET_OCTEON.
12970
12971 2016-01-18 Richard Biener <rguenther@suse.de>
12972
12973 PR middle-end/69308
12974 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
12975
12976 2016-01-18 Tom de Vries <tom@codesourcery.com>
12977
12978 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
12979
12980 2016-01-18 Tom de Vries <tom@codesourcery.com>
12981
12982 * omp-low.c (set_oacc_fn_attrib): Make extern.
12983 * omp-low.h (set_oacc_fn_attrib): Declare.
12984 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
12985 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
12986 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
12987 Add and handle function parameter oacc_kernels_p.
12988 (find_reduc_addr, get_omp_data_i_param): New function.
12989 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
12990 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
12991 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
12992 Calculate dominance info. Skip loops that are not in a kernels region
12993 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
12994 (pass_parallelize_loops::execute): Call parallelize_loops with
12995 oacc_kernels_p argument.
12996 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
12997 New member function.
12998 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
12999 * passes.def: Add argument to pass_parallelize_loops instantation.
13000
13001 2016-01-18 Tom de Vries <tom@codesourcery.com>
13002
13003 * tree-parloops.c (pass_parallelize_loops::execute): Allow
13004 pass_parallelize_loops to be run outside the loop pipeline.
13005
13006 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
13007
13008 * tree-scalar-evolution.c (follow_copies_to_constant): New.
13009 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
13010
13011 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
13012
13013 PR target/63679
13014 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
13015 using get_ref_base_and_extent.
13016 (equal_mem_array_ref_p): New.
13017 (hashable_expr_equal_p): Add call to previous.
13018
13019 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
13020
13021 PR target/63679
13022 * tree-sra.c (disqualified_constants, constant_decl_p): New.
13023 (sra_initialize): Allocate disqualified_constants.
13024 (sra_deinitialize): Free disqualified_constants.
13025 (disqualify_candidate): Update disqualified_constants when appropriate.
13026 (create_access): Scan for constant-pool entries as we go along.
13027 (scalarizable_type_p): Add check against type_contains_placeholder_p.
13028 (maybe_add_sra_candidate): Allow constant-pool entries.
13029 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
13030 (initialize_constant_pool_replacements): New.
13031 (sra_modify_assign): Avoid mangling assignments created by previous,
13032 and don't generate writes into constant pool.
13033 (sra_modify_function_body): Call initialize_constant_pool_replacements.
13034
13035 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
13036
13037 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
13038 andnot instruction.
13039 (scalar_chain::convert_op): Likewise.
13040 * config/i386/i386.md (*andndi3_doubleword): New.
13041
13042 2016-01-18 Richard Biener <rguenther@suse.de>
13043
13044 PR tree-optimization/69170
13045 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
13046 building a vector from scalar results of a pattern stmt.
13047
13048 2016-01-18 Jakub Jelinek <jakub@redhat.com>
13049
13050 * haifa-sched.c (autopref_multipass_init): Work around
13051 -Wmaybe-uninitialized warning.
13052
13053 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
13054
13055 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
13056 against the constant 0.
13057
13058 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13059
13060 PR tree-optimization/68799
13061 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
13062 look up phi candidates in the statement-candidate map.
13063 (phi_add_costs): Likewise.
13064 (record_phi_increments): Likewise.
13065 (phi_incr_cost): Likewise.
13066 (ncd_with_phi): Likewise.
13067 (all_phi_incrs_profitable): Likewise.
13068
13069 2016-01-17 Jakub Jelinek <jakub@redhat.com>
13070
13071 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
13072 -Wmaybe-uninitialized warning.
13073
13074 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
13075
13076 * doc/invoke.texi (Invoking GCC): Add new section to menu.
13077 (Option Summary): Update to reflect new section and moved options.
13078 (C++ Dialect Options): Move -fvtable-verify and related options.
13079 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
13080 and profiling-related options.
13081 (Optimization Options): Move profile generation options and
13082 -fstack-protector and related options.
13083 (Instrumentation Options): New section incorporating moved options.
13084 (Code Generation Options): Move -finstrument-functions and
13085 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
13086
13087 2016-01-16 Tom de Vries <tom@codesourcery.com>
13088
13089 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
13090
13091 2016-01-16 Tom de Vries <tom@codesourcery.com>
13092
13093 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
13094
13095 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
13096
13097 * hash-table.h (hash_table::empty): Turn into an inline wrapper
13098 that checks whether the table is already empty. Rename the
13099 original implementation to...
13100 (hash_table::empty_slot): ...this new private function.
13101
13102 2016-01-15 David Malcolm <dmalcolm@redhat.com>
13103
13104 PR diagnostic/68899
13105 * diagnostic-show-locus.c (layout::print_source_line): Move x
13106 offset of line until after call to
13107 get_line_width_without_trailing_whitespace.
13108
13109 2016-01-15 Jeff Law <law@redhat.com>
13110
13111 PR tree-optimization/69270
13112 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
13113 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
13114 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
13115 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
13116 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
13117 ssa_name_has_boolean_range and constant_boolean_node.
13118
13119 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
13120
13121 PR rtl-optimization/69030
13122 * lra-spills.c (remove_pseudos): Check nrefs and make the function
13123 returning bool.
13124 (spill_pseudos): Delete debug insn for dead pseudo.
13125 (lra_spill): Initiate spill_hard_reg and slots memory separately.
13126
13127 2016-01-15 Jiong Wang <jiong.wang@arm.com>
13128
13129 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
13130 New.
13131 (TYPES_UNOPUS): Likewise.
13132 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
13133 builtin type, from UNOP to UNOPUS.
13134 (lbtruncuv4sf): Likewise.
13135 (lbtruncuv2df): Likewise.
13136 (lrounduv2sf): Likewise.
13137 (lrounduv4sf): Likewise.
13138 (lrounduv2df): Likewise.
13139 (lroundusf): Likewise.
13140 (lroundusf): Likewise.
13141 (lceiluv2sf): Likewise.
13142 (lceiluv4sf): Likewise.
13143 (lceiluv2df): Likewise.
13144 (lceilusf): Likewise.
13145 (lceiludf): Likewise.
13146 (lflooruv2sf): Likewise.
13147 (lflooruv4sf): Likewise.
13148 (lflooruv2df): Likewise.
13149 (lfloorusf): Likewise.
13150 (lfloorudf): Likewise.
13151 (lfrintnuv2sf): Likewise.
13152 (lfrintnuv4sf): Likewise.
13153 (lfrintnuv2df): Likewise.
13154 (lfrintnusf): Likewise.
13155 (lfrintnudf): Likewise.
13156 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
13157 conversion.
13158 (vcvtq_u32_f32): Likewise.
13159 (vcvtq_u64_f64): Likewise.
13160 (vcvta_u32_f32): Likewise.
13161 (vcvtaq_u32_f32): Likewise.
13162 (vcvtaq_u64_f64): Likewise.
13163 (vcvtm_u32_f32): Likewise.
13164 (vcvtmq_u32_f32): Likewise.
13165 (vcvtmq_u64_f64): Likewise.
13166 (vcvtn_u32_f32): Likwise.
13167 (vcvtnq_u32_f32): Likewise.
13168 (vcvtnq_u64_f64): Likewise.
13169 (vcvtp_u32_f32): Likewise.
13170 (vcvtpq_u32_f32): Likewise.
13171 (vcvtpq_u64_f64): Likewise.
13172 (vcvtmd_u64_f64): Likewise.
13173 (vcvtms_u32_f32): Likewise.
13174 (vcvtad_u64_f64): Likewise.
13175 (vcvtas_u32_f32): Likewise.
13176 (vcvtnd_u64_f64): Likewise.
13177 (vcvtns_u32_f32): Likewise.
13178 (vcvtpd_u64_f64): Likewise.
13179 (vcvtps_u32_f32): Likewise.
13180
13181 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13182
13183 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
13184 CSEL of zero_extended registers.
13185
13186 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13187
13188 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
13189 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
13190
13191 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13192
13193 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
13194 false when argument string is not found in the attributes table
13195 at all.
13196
13197 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
13198
13199 PR target/68609
13200 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
13201 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
13202 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
13203 precision estimate.
13204
13205 2016-01-15 Richard Biener <rguenther@suse.de>
13206
13207 PR tree-optimization/66856
13208 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
13209 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
13210 (vect_create_new_slp_node): Increment stmt reference count.
13211 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
13212 an SLP tree before swapping operands.
13213 (vect_build_slp_tree): Likewise.
13214 (destroy_bb_vec_info): Free stmt info after SLP instances.
13215 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
13216 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
13217 (STMT_VINFO_NUM_SLP_USES): New macro.
13218
13219 2016-01-15 Richard Biener <rguenther@suse.de>
13220
13221 PR debug/69137
13222 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
13223 (add_linkage_name): ... here.
13224 (gen_typedef_die): Use add_linkage_name_raw instead of
13225 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
13226 if necessary.
13227
13228 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
13229
13230 * gimplify.c (oacc_default_clause): Decode reference and pointer
13231 types for both kernels and parallel regions.
13232
13233 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
13234
13235 PR middle-end/69246
13236 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
13237
13238 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
13239
13240 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
13241 (convert_scalars_to_vector): Likewise.
13242
13243 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
13244
13245 * doc/extend.texi (Type Traits): Fix grammar.
13246
13247 2016-01-15 Martin Jambor <mjambor@suse.cz>
13248
13249 * tree-inline.c (remap_decl): Use existing dclarations if
13250 remapping a type and prevent_decl_creation_for_types.
13251 (replace_locals_stmt): Do an initial remapping of non-VLA typed
13252 decls first. Do real remapping with
13253 prevent_decl_creation_for_types set.
13254 * tree-inline.h (copy_body_data): New field
13255 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
13256 padding.
13257
13258 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
13259
13260 * config/s390/s390.opt (mmvcle): More verbose help text.
13261
13262 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
13263
13264 * config/s390/s390.opt: Add period to -mzvector option text.
13265
13266 2016-01-15 Richard Biener <rguenther@suse.de>
13267
13268 PR tree-optimization/68961
13269 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
13270 of invariants in stores again.
13271
13272 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
13273
13274 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
13275
13276 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
13277
13278 * config/i386/i386.c (ix86_expand_branch): Don't split
13279 DI mode xor instruction to SI mode.
13280
13281 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
13282
13283 PR ipa/68148
13284 * ipa-icf.c (sem_function::merge): Virtual functions may become
13285 reachable even if they address is not taken and there are no
13286 idrect calls.
13287
13288 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
13289
13290 * lto-streamer-out.c (subtract_estimated_size): New function.
13291 (get_symbol_initial_value): Use it.
13292
13293 2016-01-15 Christian Bruel <christian.bruel@st.com>
13294
13295 PR target/65837
13296 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
13297 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
13298 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
13299 use add_builtin_function_ext_scope instead of add_builtin_function.
13300 (neon_set_p, neon_crypto_set_p): Remove.
13301 (arm_init_builtins): Always call arm_init_neon_builtins and
13302 arm_init_crypto_builtins.
13303 (arm_expand_builtin): Check that builtins are allowed for the arch.
13304 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
13305 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
13306 arm_init_neon_builtins call.
13307
13308 2016-01-15 Richard Biener <rguenther@suse.de>
13309
13310 PR tree-optimization/69117
13311 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
13312 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
13313 of the leader conservatively.
13314 (free_scc_vn): Restore original SSA name infos.
13315
13316 2016-01-14 Jeff Law <law@redhat.com>
13317
13318 PR tree-optimization/69270
13319 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
13320 single bit of precision, verify it's also unsigned.
13321 (record_edge_info): Use constant_boolean_node rather than fold_convert
13322 to convert boolean_true/boolean_false to the right type.
13323
13324 2016-01-14 Richard Henderson <rth@redhat.com>
13325
13326 PR rtl-opt/69014
13327 * loop-doloop.c (record_reg_sets): New.
13328 (doloop_optimize): Reject the transform if the sequence
13329 clobbers registers live at the end of the loop block.
13330 (doloop_optimize_loops): Enable df_live if needed.
13331
13332 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
13333
13334 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
13335 * config/rs6000/rs6000.c: Likewise.
13336 * config/rs6000/rs6000.h: Likewise.
13337 * config/rs6000/rs6000.md: Likewise.
13338 * doc/extend.texi: Likewsie.
13339
13340 2016-01-14 Jeff Law <law@redhat.com>
13341
13342 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
13343 typo.
13344
13345 2016-01-14 Richard Henderson <rth@redhat.com>
13346
13347 PR c/69272
13348 PR tree-opt/68964
13349 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
13350 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
13351 instead of builtin_decl_declared_p to test for declaration.
13352
13353 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
13354
13355 * doc/loop.texi (Loop Analysis and Representation): Document
13356 loop_depth function.
13357
13358 2016-01-14 Tom de Vries <tom@codesourcery.com>
13359
13360 PR tree-optimization/68773
13361 * omp-low.c (expand_omp_target): Don't set force_output.
13362 * varpool.c (varpool_node::get_create): Same.
13363 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
13364 offload_funcs with force_output.
13365
13366 2016-01-14 Jakub Jelinek <jakub@redhat.com>
13367
13368 PR debug/69244
13369 * lra-eliminations.c (move_plus_up): Don't change anything if either
13370 the outer or inner subreg mode is not MODE_INT.
13371 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
13372 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
13373
13374 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
13375
13376 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
13377 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
13378 reduc_uplus_@var{m}): Remove.
13379 * expr.c (expand_expr_real_2): Remove expansion path for
13380 reduc_[us](min|max|plus) optabs.
13381 * optabs-tree.c (scalar_reduc_to_vector): Remove.
13382 * optabs-tree.h (scalar_reduc_to_vector): Remove.
13383 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
13384 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
13385 * tree-vect-loop.c (vectorizable_reduction): Remove test for
13386 reduc_[us](min|max|plus) optabs.
13387
13388 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
13389
13390 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
13391 (reduc_plus_scal_v2sf): New.
13392 (reduc_smax_v2sf): Rename to...
13393 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
13394 (reduc_smin_v2sf): Rename to...
13395 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
13396
13397 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
13398
13399 * alias.c (compare_base_symbol_refs): New function.
13400 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
13401 it.
13402
13403 2016-01-14 Jakub Jelinek <jakub@redhat.com>
13404
13405 PR middle-end/68146
13406 PR tree-optimization/69155
13407 * tree-complex.c: Include cfganal.h.
13408 (phis_to_revisit): New variable.
13409 (extract_component): Add phiarg_p argument. Assert that returned
13410 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
13411 (update_phi_components): Partly rewrite to use loop over real/imag
13412 components instead of code duplication. If extract_component returns
13413 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
13414 create_tmp_reg into the PHI node instead, and mention the phi triplet
13415 in phis_to_revisit.
13416 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
13417 in phis_to_revisit at the end.
13418
13419 2016-01-14 Richard Biener <rguenther@suse.de>
13420
13421 PR tree-optimization/68060
13422 * tree-vect-loop.c (vect_is_simple_reduction): Check the
13423 outer loop reduction is only used in the inner loop before
13424 detecting a double reduction.
13425
13426 2016-01-14 Jakub Jelinek <jakub@redhat.com>
13427
13428 PR target/68269
13429 * combine.c (expand_field_assignment): Punt if compute_mode is
13430 unsupported scalar mode.
13431
13432 2016-01-14 Richard Biener <rguenther@suse.de>
13433
13434 PR tree-optimization/66856
13435 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
13436 SLP node only if it built successfully.
13437 (vect_analyze_slp_instance): Adjust.
13438
13439 2016-01-14 Jeff Law <law@redhat.com>
13440
13441 PR tree-optimization/69270
13442 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
13443 (record_edge_info): Use it. Convert boolean_{true,false}_node
13444 to the type of op0.
13445
13446 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
13447
13448 PR ipa/66487
13449 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
13450 use block_ultimate_origin
13451 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
13452
13453 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
13454
13455 * doc/invoke.texi (Submodel Options): Rename section to
13456 "Machine-Dependent Options" to better reflect its content.
13457 Rewrite introductory text to remove archaic CPU names.
13458 Update references.
13459
13460 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
13461
13462 * doc/invoke.texi (Code Gen Options): Move section up in file,
13463 before target-specific options. Update menu and option summary
13464 to reflect the new section ordering.
13465
13466 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
13467
13468 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
13469 (C++ Dialect Options): Add cross-reference to -std option.
13470 * doc/standards.texi (C++ Language): Document C++14 support.
13471
13472 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
13473
13474 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
13475 for pack/unpack functions for __ibm128.
13476 (PACK_IF): Likewise.
13477 (UNPACK_IF): Likewise.
13478
13479 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
13480 support for __ibm128 pack/unpack functions.
13481 (rs6000_invalid_builtin): Likewise.
13482 (rs6000_init_builtins): Likewise.
13483 (rs6000_opt_masks): Likewise.
13484
13485 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
13486 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
13487 functions
13488 (RS6000_BTM_COMMON): Likewise.
13489
13490 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
13491 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
13492 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
13493 128-bit floating point. Add support for the double values to be
13494 in Altivec registers for TF/IF packing and unpacking, but restrict
13495 TD packing sub-fields to be FPR registers. Don't allow overlapped
13496 register support for packing. Allow pack inputs to be memory
13497 locations. Don't build generator functions for unpack<mode>_dm
13498 and unpack<mode>_nodm.
13499 (unpack<mode>_dm): Likewise.
13500 (unpack<mode>_nodm): Likewise.
13501 (pack<mode>): Likewise.
13502
13503 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
13504 built-in functions to pack/unpack explicit __ibm128 values.
13505 (__builtin_unpack_ibm128): Likewise.
13506
13507 * doc/extend.texi (PowerPC Built-in Functions): Document
13508 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
13509
13510 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
13511
13512 PR c/66208
13513 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
13514 Add new arg loc and pass it down as context.
13515 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
13516 to the location to use for the warning.
13517 (check_function_arguments): New arg loc. All callers changed. Pass
13518 it to check_function_nonnull.
13519 * c-common.h (check_function_arguments): Adjust declaration.
13520
13521 2016-01-13 Jakub Jelinek <jakub@redhat.com>
13522
13523 PR tree-optimization/69156
13524 * gimple.c (validate_type): Removed.
13525 (gimple_builtin_call_types_compatible_p): Use
13526 useless_type_conversion_p instead of validate_type.
13527 * value-prof.c (gimple_stringop_fixed_value): Fold
13528 icall_size to correct type.
13529
13530 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
13531
13532 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
13533 effects.
13534
13535 2016-01-13 Richard Henderson <rth@redhat.com>
13536
13537 PR tree-opt/68964
13538 * target.def (builtin_tm_load, builtin_tm_store): Remove.
13539 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
13540 (ix86_builtin_tm_store): Remove.
13541 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
13542 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
13543 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
13544 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
13545 * doc/tm.texi: Rebuild.
13546
13547 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
13548 (BUILT_IN_TM_MEMCPY_RTWN): New.
13549 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
13550 fallback from vector to integer helpers.
13551 (build_tm_load): Handle vector types directly, instead of
13552 via target hook.
13553 (build_tm_store): Likewise.
13554 (expand_assign_tm): Prepare for register types not handled by
13555 the above. Copy them to memory and use memcpy.
13556 * tree.c (tm_define_builtin): New.
13557 (find_tm_vector_type): New.
13558 (build_tm_vector_builtins): New.
13559 (build_common_builtin_nodes): Call it.
13560
13561 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
13562
13563 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
13564 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
13565
13566 2016-01-13 Tom de Vries <tom@codesourcery.com>
13567
13568 PR tree-optimization/69169
13569 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
13570 handled_struct_type param.
13571 (create_variable_info_for, intra_create_variable_infos): Call
13572 create_variable_info_for_1 with extra arg.
13573
13574 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
13575
13576 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
13577 and "armv8.1-a+crc" entries.
13578
13579 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
13580
13581 PR target/69228
13582 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
13583 Change first operand predicate from register_or_constm1_operand
13584 to register_operand.
13585 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
13586 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
13587 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
13588 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
13589 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
13590 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
13591 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
13592 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
13593 comparison with constm1_rtx from vec_prefetch_gen part.
13594
13595 2016-01-13 Richard Biener <rguenther@suse.de>
13596
13597 PR tree-optimization/69013
13598 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
13599 Exchange assert for a test.
13600
13601 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13602
13603 PR target/69247
13604 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
13605
13606 2016-01-13 Richard Biener <rguenther@suse.de>
13607
13608 PR tree-optimization/69242
13609 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
13610 assert with a check.
13611
13612 2016-01-13 Richard Biener <rguenther@suse.de>
13613
13614 PR tree-optimization/69186
13615 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
13616 Properly guard vect_update_misalignment_for_peel call.
13617
13618 2016-01-12 Jeff Law <law@redhat.com>
13619
13620 PR tree-optimization/pr67755
13621 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
13622 "need_profile_correction".
13623 (thread_block_1): Initialize new field to false by default. If we
13624 have multiple thread paths through a common joiner to different
13625 final targets, then set new field to true.
13626 (compute_path_counts): Only do count adjustment when it's really
13627 needed.
13628
13629 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
13630
13631 * doc/invoke.texi (Spec Files): Move section down in file, past
13632 all command-line option descriptions.
13633
13634 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13635
13636 PR middle-end/54809
13637 * doc/gty.texi: Remove documentation of mark_hook.
13638 * gengtype.c (struct write_types_data): Remove code to support
13639 mark_hook attribute.
13640 (walk_type): Likewise.
13641 (write_func_for_structure): Likewise.
13642
13643 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
13644
13645 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
13646 Directory Options, and -specs= to Overall Options.
13647 (Overall Options): Adjust similarly. Reorder to group related
13648 options together. Make -specs= cross-reference the spec file details.
13649 (Directory Options): Adjust similarly.
13650
13651 2016-01-12 Jeff Law <law@redhat.com>
13652
13653 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
13654
13655 2016-01-12 Olivier Hainque <hainque@adacore.com>
13656
13657 * gcc.c (spec_undefvar_allowed): New global.
13658 (process_command): Set to true when running for --version or --help,
13659 alone or together.
13660 (getenv_spec_function): When the variable is not defined, use the
13661 variable name as the variable value if we're allowed not to issue
13662 a fatal error.
13663
13664 2016-01-12 Bin Cheng <bin.cheng@arm.com>
13665
13666 PR tree-optimization/68911
13667 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
13668 information computed for expression "init + nit * step".
13669
13670 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
13671
13672 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
13673 about name of GCC executable. Remove deleted node from menu.
13674 (Directory Options) <-B>: Remove cross-reference to deleted node.
13675 (Target Options): Delete section.
13676
13677 2016-01-12 Christian Bruel <christian.bruel@st.com>
13678
13679 PR target/69180
13680 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
13681 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
13682
13683 2016-01-12 Jakub Jelinek <jakub@redhat.com>
13684
13685 PR target/69198
13686 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
13687 aligned_mem is properly set for AVX512-VL floating point masked
13688 stores.
13689
13690 PR target/69175
13691 * ifcvt.c (cond_exec_process_if_block): When removing the last
13692 insn from then_bb, remove also any possible barriers that follow it.
13693
13694 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
13695
13696 PR target/68456
13697 PR target/69226
13698 * config/i386/iamcu.h (SIZE_TYPE): New macro.
13699 (PTRDIFF_TYPE): Likewise.
13700 (WCHAR_TYPE): Likewise.
13701 (WCHAR_TYPE_SIZE): Likewise.
13702 (STDINT_LONG32): Likewise.
13703
13704 2016-01-12 Richard Biener <rguenther@suse.de>
13705
13706 PR tree-optimization/69053
13707 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
13708 convert initial value for cond reductions.
13709
13710 2016-01-12 Richard Biener <rguenther@suse.de>
13711
13712 PR tree-optimization/69007
13713 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
13714 widen_sum after dot_prod and sad.
13715
13716 2016-01-12 Richard Biener <rguenther@suse.de>
13717
13718 PR tree-optimization/69168
13719 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
13720 pattern stmt SLP type.
13721 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
13722 end up unused so cope with that case.
13723
13724 2016-01-12 Richard Biener <rguenther@suse.de>
13725
13726 PR tree-optimization/69157
13727 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
13728 stmts def type only during analyze phase.
13729 (vectorizable_call): Likewise.
13730 (vectorizable_simd_clone_call): Likewise.
13731 (vectorizable_conversion): Likewise.
13732 (vectorizable_assignment): Likewise.
13733 (vectorizable_shift): Likewise.
13734 (vectorizable_operation): Likewise.
13735 (vectorizable_store): Likewise.
13736 (vectorizable_load): Likewise.
13737
13738 2016-01-12 Richard Biener <rguenther@suse.de>
13739
13740 PR tree-optimization/69174
13741 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
13742 space.
13743 (vectorizable_load): Properly compute the number of loads needed
13744 for permuted strided SLP loads and do not spuriously assign
13745 to SLP_TREE_VEC_STMTS.
13746
13747 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
13748
13749 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
13750 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
13751 (MD_EXEC_PREFIX): Remove.
13752 (MD_STARTFILE_PREFIX) Removee.
13753 (FILE_NAME_ABSOLUTE_P): Remove.
13754 (CPP_SPEC): Do not read macros from sys/version.h.
13755 (LINK_COMMAND_SPEC): Remove.
13756 (LOCAL_INCLUDE_DIR): Remove.
13757 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
13758 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
13759 (POST_LINK_SPEC): Define to invoke stubify after linker
13760 (LIBSTDCXX): Remove define
13761 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
13762 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
13763 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
13764 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
13765 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
13766 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
13767 (i386_djgpp_asm_named_section): Add propotype of new procedure
13768
13769 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
13770 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
13771 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
13772 in config/i386/djgpp.h).
13773 (STANDARD_STARTFILE_PREFIX_2): Define identical to
13774 STANDARD_STARTFILE_PREFIX_1.
13775 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
13776 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
13777 installation errors.
13778 (MAX_OFILE_ALIGNMENT): Define to 128.
13779 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
13780
13781 * config/i386/djgpp.c: New file. Add implementation of
13782 i386_djgpp_asm_named_section.
13783
13784 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
13785
13786 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
13787 Add rule for building djgpp.o.
13788
13789 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13790
13791 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
13792 (rtx_is_swappable_p): Reductions are swappable.
13793 (insn_is_swappable_p): V2DF reductions are swappable.
13794
13795 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
13796
13797 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
13798 reloads for other unsupported memory operands.
13799
13800 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
13801 Jim Wilson <jim.wilson@linaro.org>
13802
13803 PR target/69194
13804 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
13805 copy_to_mode_reg instead of force_reg.
13806
13807 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
13808
13809 PR target/69225
13810 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
13811 TARGET_80387 is true.
13812
13813 2016-01-11 Jakub Jelinek <jakub@redhat.com>
13814
13815 PR target/69071
13816 * lra-eliminations.c (move_plus_up): Only move plus up
13817 if subreg of the constant can be simplified into constant
13818 and use the simplified subreg of the constant instead of
13819 the original constant.
13820
13821 * fold-const.c (fold_convertible_p): Don't return true
13822 for conversion of VECTOR_TYPE to same sized integral type.
13823 (fold_convert_loc): Fix up formatting. Fold conversion of
13824 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
13825 instead of NOP_EXPR.
13826
13827 PR tree-optimization/69214
13828 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
13829 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
13830 Formatting fix.
13831
13832 PR tree-optimization/69207
13833 * tree-vect-slp.c (vect_get_constant_vectors): For
13834 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
13835 fold_convertible_p to vector_type's element type, and always
13836 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
13837
13838 2016-01-11 Richard Biener <rguenther@suse.de>
13839
13840 PR tree-optimization/69173
13841 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
13842 fixup the cycle if all stmts are in a pattern.
13843
13844 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
13845
13846 PR middle-end/68999
13847 * alias.c (base_alias_check): Move check for addresses with
13848 alignment ANDs before the call for compare_base_decls.
13849 (memrefs_conflict_p): Return -1 for different decls
13850 that went through alignment adjustments.
13851
13852 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13853
13854 PR rtl-optimization/68796
13855 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
13856 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
13857 and QImode comparisons against zero with CC_NZmode.
13858 * config/aarch64/iterators.md (short_mask): New mode_attr.
13859
13860 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
13861
13862 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
13863 (<avx512>_store<mode>_mask): Likewise.
13864
13865 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
13866 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13867
13868 PR rtl-optimization/68841
13869 * ifcvt.c (struct noce_if_info): Add orig_x field.
13870 (bbs_ok_for_cmove_arith): Add to_rename parameter.
13871 Don't record conflicts on to_rename if it's present.
13872 Allow memory destinations in sets.
13873 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
13874 blocks, passing orig_x to the checks.
13875 (noce_process_if_block): Set if_info->orig_x appropriately.
13876
13877 2016-01-11 Tom de Vries <tom@codesourcery.com>
13878
13879 PR tree-optimization/69069
13880 * tree-parloops.c (create_parallel_loop): Add missing phi args.
13881
13882 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
13883
13884 PR rtl-optimization/68920
13885 * config/i386/i386.c (ix86_option_override_internal): Restrict number
13886 of conditional moves for RTL if-conversion to 1 for
13887 TARGET_ONE_IF_CONV_INSN.
13888 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
13889 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
13890 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
13891 parameter to restirct number of conditional moves for
13892 RTL if-conversion.
13893 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
13894 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
13895 conditionl moves.
13896
13897 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
13898
13899 PR bootstrap/69123
13900 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
13901 onepart vars. Fix typo in comment. Fix reversed condition in
13902 unshare test.
13903 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
13904
13905 PR bootstrap/69123
13906 * var-tracking.c (dump_onepart_variable_differences): New.
13907 (dataflow_set_different): If a detailed dump is requested,
13908 delay early returns and dump differences between onepart
13909 variables present before and after, and added variables.
13910
13911 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
13912
13913 PR target/69010
13914 * expr.c (expand_expr_real_1): For boolean vector constants
13915 with a scalar mode use const_scalar_mask_from_tree.
13916 (const_scalar_mask_from_tree): New.
13917 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
13918 assigned to a mask type to handle constants.
13919
13920 2016-01-11 Martin Jambor <mjambor@suse.cz>
13921
13922 PR ipa/69044
13923 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
13924 useless parameters if we cannot change function signature.
13925
13926 2016-01-11 Martin Jambor <mjambor@suse.cz>
13927
13928 PR ipa/66616
13929 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
13930 flag.
13931
13932 2016-01-11 Tom de Vries <tom@codesourcery.com>
13933
13934 PR tree-optimization/69109
13935 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
13936 latch with phi.
13937
13938 2016-01-11 Tom de Vries <tom@codesourcery.com>
13939
13940 PR tree-optimization/69108
13941 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
13942 res is not used in a phi.
13943
13944 2016-01-11 Yury Gribov <y.gribov@samsung.com>
13945
13946 PR 67425
13947 * common.opt (frandom-seed): Fix parameter name.
13948 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
13949
13950 2016-01-11 Tom de Vries <tom@codesourcery.com>
13951
13952 PR tree-optimization/69058
13953 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
13954 not supported.
13955
13956 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
13957
13958 * config/arc/arc.opt (mdiv-rem): Add period to the end.
13959 (mcode-density): Likewise.
13960
13961 2016-01-10 Tom de Vries <tom@codesourcery.com>
13962
13963 PR tree-optimization/69062
13964 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
13965 (parallelize_loops): Don't paralelize loop that has phi with address
13966 arg.
13967
13968 2016-01-10 Tom de Vries <tom@codesourcery.com>
13969
13970 PR tree-optimization/69039
13971 * tree-parloops.c (try_create_reduction_list): Only allow single exit
13972 phi for reduction.
13973
13974 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
13975
13976 PR middle-end/68743
13977 * match.pd: Require target has function_c99_misc before doing
13978 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
13979
13980 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
13981
13982 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
13983 use GMPINC.
13984 * configure: Regenerate.
13985
13986 2016-01-09 Jakub Jelinek <jakub@redhat.com>
13987
13988 PR middle-end/50865
13989 PR tree-optimization/69097
13990 * fold-const.h (expr_not_equal_to): New prototype.
13991 * fold-const.c: Include stringpool.h and tree-ssanames.h.
13992 (expr_not_equal_to): New function.
13993 * match.pd (X % -Y is the same as X % Y): Don't optimize
13994 unless X is known not to be equal to minimum or Y is known
13995 not to be equal to -1.
13996 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
13997 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
13998 (simplify_stmt_using_ranges): Adjust caller.
13999 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
14000 substitute_and_fold.
14001
14002 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
14003
14004 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
14005 w/o DECL_NAME.
14006
14007 2016-01-08 Jakub Jelinek <jakub@redhat.com>
14008
14009 PR tree-optimization/69167
14010 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
14011 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
14012 ops[0] comparison.
14013 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
14014
14015 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
14016 Richard Biener <rguenther@suse.de>
14017
14018 PR tree-optimization/68707
14019 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
14020 instances that can be handled via vect_load_lanes.
14021
14022 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
14023
14024 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
14025 if we can't determine address equivalence.
14026 * alias.c (compare_base_decl): Update for changed return value of
14027 symtab_node::equal_address_to.
14028
14029 2016-01-08 Jason Merrill <jason@redhat.com>
14030
14031 PR c++/68983
14032 PR c++/67557
14033 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
14034 * expr.c (store_field): Not here.
14035 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
14036 call with TREE_ADDRESSABLE type.
14037 * tree-cfg.c (verify_gimple_call): Adjust.
14038
14039 2016-01-08 Olivier Hainque <hainque@adacore.com>
14040
14041 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
14042 libc_internal.
14043
14044 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
14045
14046 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
14047 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
14048 (reduc_smin_v2sf): Rename to...
14049 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
14050 (reduc_splus_v2sf): Rename to...
14051 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
14052
14053 2016-01-08 Jakub Jelinek <jakub@redhat.com>
14054
14055 PR tree-optimization/69162
14056 * gimplify.c (gimplify_va_arg_expr): Encode original type of
14057 valist argument in another argument.
14058 (gimplify_modify_expr): Adjust for the above change. Cleanup.
14059 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
14060 to determine the va_list type, build a MEM_REF instead of
14061 build_fold_indirect_ref.
14062
14063 PR tree-optimization/69172
14064 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
14065 gimple_build.
14066
14067 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
14068
14069 PR tree-optimization/67781
14070 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
14071 and cmpnop in two steps: first the ones not accessed in original
14072 gimple expression in a endian independent way and then the ones not
14073 accessed in the final result in an endian-specific way.
14074
14075 2016-01-08 Jakub Jelinek <jakub@redhat.com>
14076
14077 PR tree-optimization/69083
14078 * tree-vect-slp.c (vect_get_constant_vectors): For
14079 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
14080 element type. If op is fold_convertible_p to vector_type's element
14081 type, use NOP_EXPR instead of VCE.
14082
14083 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
14084
14085 PR rtl-optimization/67778
14086 PR rtl-optimization/68634
14087 PR rtl-optimization/68909
14088 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
14089 block from the stack until done with it. Remove a superfluous
14090 bitmap set. Remove a superfluous bitmap test.
14091
14092 2016-01-07 Martin Sebor <msebor@redhat.com>
14093
14094 PR c/68966
14095 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
14096 constraint on the type of arguments.
14097
14098 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
14099
14100 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
14101 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
14102 unaligned_access on the gcc_options set.
14103 * config/arm/arm.c (arm_option_override_internal): Use
14104 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
14105
14106 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
14107
14108 PR target/69140
14109 * config/i386/i386.c (ix86_frame_pointer_required): Enable
14110 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
14111
14112 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
14113
14114 Revert
14115 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
14116
14117 PR target/69140
14118 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
14119 depending on frame_pointer_needed before remaining integer and SSE
14120 registers are saved.
14121
14122 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
14123
14124 PR 1078
14125 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
14126
14127 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
14128
14129 PR target/69171
14130 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
14131 Use the "xBm" constraint.
14132 (float<sseintvecmodelower><mode>2<mask_name><round_name):
14133 Likewise.
14134 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
14135 (sse_cvtsi2ssq<round_name>): Likewise.
14136 (sse_cvtss2si<round_name>): Likewise.
14137 (sse_cvtss2siq<round_name>): Likewise.
14138 (sse2_cvtsi2sdq<round_name>): Likewise.
14139 (sse2_cvtsd2si<round_name>): Likewise.
14140 (sse2_cvtsd2siq<round_name>): Likewise.
14141 * config/i386/subst.md (round_nimm_scalar_predicate): New
14142 predicate.
14143
14144 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
14145
14146 PR middle-end/67639
14147 * varasm.c (make_decl_rtl): Mark invalid register vars as
14148 DECL_EXTERNAL.
14149
14150 PR rtl-optimization/66206
14151 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
14152 All callers changed.
14153
14154 2016-01-07 Jakub Jelinek <jakub@redhat.com>
14155
14156 PR tree-optimization/69141
14157 * tree-ssa-pre.c: Include langhooks.h.
14158 (eliminate_dom_walker::before_dom_children): Use
14159 lang_hooks.decl_printable_name instead of
14160 cgraph_node::get ()->name ().
14161
14162 PR middle-end/68960
14163 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
14164 it and DECL_ALIGN too.
14165
14166 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
14167
14168 * config/mips/mips-ftypes.def: Sort to lexicographical order.
14169
14170 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
14171
14172 PR target/69140
14173 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
14174 depending on frame_pointer_needed before remaining integer and SSE
14175 registers are saved.
14176
14177 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14178
14179 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
14180 mode iterator with VSX_M2.
14181 (*p9_vecstore_<mode>): Likewise.
14182 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
14183 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
14184 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
14185 (define_split for VSX_LE128 stores): Likewise.
14186 (define_peephole2 for TImode LE swaps): Likewise.
14187 (define_split for VSX_LE128 post-reload stores): Likewise.
14188
14189 2016-01-06 Marek Polacek <polacek@redhat.com>
14190
14191 PR sanitizer/69099
14192 * convert.c (convert_to_integer_1): Adjust call to
14193 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
14194 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
14195 EXPR instead of ARG.
14196 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
14197
14198 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
14199
14200 PR 1078
14201 * doc/extend.texi (RL78 Variable Attributes): New section.
14202
14203 2016-01-05 Marek Polacek <polacek@redhat.com>
14204
14205 PR c/69104
14206 * builtins.c (get_memmodel): Use expansion point location rather than
14207 the input location. Call warning_at rather than warning.
14208 (expand_builtin_atomic_compare_exchange): Likewise.
14209 (expand_builtin_atomic_load): Likewise.
14210 (expand_builtin_atomic_store): Likewise.
14211 (expand_builtin_atomic_clear): Likewise.
14212
14213 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
14214
14215 PR target/68991
14216 * config/i386/i386.c (ix86_expand_vector_logical_operator):
14217 Replace nonimmediate_operand with vector_operand.
14218 * config/i386/predicates.md (vector_operand): New predicate.
14219 (general_vector_operand): Replace nonimmediate_operand with
14220 vector_operand.
14221 * config/i386/sse.md: Replace nonimmediate_operand with
14222 vector_operand and m constraint with Bm constraint on SSE
14223 patterns with 16-byte memory operand.
14224 * config/i386/subst.md (round_nimm_predicate): Replace
14225 nonimmediate_operand with vector_operand.
14226 (round_saeonly_nimm_predicate): Likewise.
14227 (round_saeonly_nimm_scalar_predicate): New.
14228
14229 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
14230
14231 PR target/68991
14232 * config/i386/constraints.md (Bm): New constraint.
14233 * config/i386/predicates.md (vector_memory_operand): New
14234 predicate.
14235 * config/i386/sse.md: Replace xm with xBm in plusminus and
14236 any_logic patterns.
14237
14238 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
14239
14240 PR 1078
14241 * doc/extend.texi (V850 Function Attributes): New section.
14242 (V850 Variable Attributes): New section.
14243
14244 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
14245
14246 PR 1078
14247 * doc/extend.texi (MicroBlaze Function Attributes): Document
14248 interrupt_handler and fast_interrupt attributes.
14249
14250 2016-01-05 Sergei Trofimovich <siarheit@google.com>
14251
14252 PR other/60465
14253 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
14254 for local symbolic operands.
14255 * config/ia64/predicates.md (local_symbolic_operand64): New
14256 predicate.
14257
14258 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14259
14260 PR rtl-optimization/68651
14261 * combine.c (combine_simplify_rtx): Canonicalize x + x into
14262 x << 1.
14263
14264 2016-01-05 Nathan Sidwell <nathan@acm.org>
14265
14266 * alias.c (compare_base_decls): Use symtab_node::get.
14267
14268 2016-01-05 Nick Clifton <nickc@redhat.com>
14269
14270 PR target/68770
14271 * ira-costs.c (copy_cost): Initialise the t_icode field of the
14272 secondary_reload_info structure.
14273
14274 PR target/66655
14275 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
14276 decls if weak support is available.
14277
14278 2016-01-04 Martin Sebor <msebor@redhat.com>
14279
14280 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
14281
14282 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
14283
14284 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
14285 OPTION_MASK_P9_DFORM.
14286
14287 * config/rs6000/constraints.md (wo constraint): New constraint for
14288 ISA 3.0 (power9).
14289
14290 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
14291 for wo constraint.
14292 (rs6000_init_hard_regno_mode_ok): Likewise.
14293
14294 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
14295 wo constraint.
14296
14297 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
14298 expanders not to have constraints. Add support for ISA 3.0 xxperm
14299 instruction. Add support for fusing xxlor with xxperm.
14300 (altivec_vperm_<mode>_internal): Likewise.
14301 (altivec_vperm_v8hiv16qi): Likewise.
14302 (altivec_vperm_<mode>v16q): Likewise.
14303 (altivec_vperm_<mode>_uns): Likewise.
14304 (vperm_v8hiv4si): Likewise.
14305 (vperm_v16qiv8hi): Likewise.
14306
14307 * doc/md.texi (RS/6000 constraints): Document wo constraint.
14308
14309 2016-01-04 Jakub Jelinek <jakub@redhat.com>
14310
14311 Update copyright years.
14312
14313 * gcc.c (process_command): Update copyright notice dates.
14314 * gcov-dump.c (print_version): Ditto.
14315 * gcov.c (print_version): Ditto.
14316 * gcov-tool.c (print_version): Ditto.
14317 * gengtype.c (create_file): Ditto.
14318 * doc/cpp.texi: Bump @copying's copyright year.
14319 * doc/cppinternals.texi: Ditto.
14320 * doc/gcc.texi: Ditto.
14321 * doc/gccint.texi: Ditto.
14322 * doc/gcov.texi: Ditto.
14323 * doc/install.texi: Ditto.
14324 * doc/invoke.texi: Ditto.
14325
14326 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
14327
14328 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
14329 modes larger than TImode as TImode if NEON is not enabled.
14330
14331 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
14332
14333 PR target/69100
14334 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
14335 mode for %f0-%f31 only if TARGET_FPU.
14336
14337 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
14338
14339 PR target/69072
14340 * config/sparc/sparc.c (scan_record_type): Take into account subfields
14341 to compute the PACKED_P predicate.
14342 (function_arg_record_value): Minor tweaks.
14343
14344 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
14345
14346 * doc/install.texi (--with-multilib-list): Describe the meaning of the
14347 option for arm*-*-* targets.
14348
14349 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
14350
14351 * doc/extend.texi (Common Function Attributes): Move docs for
14352 MSP430-specific attributes to....
14353 (MSP430 Function Attributes): ...here. Delete the redundant
14354 entries and copy-edit the remaining text.
14355 (MSP430 Variable Attributes): Use uniform format for index
14356 entries and add a cross-reference to the corresponding function
14357 attribute docs.
14358
14359 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
14360
14361 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
14362 -finite-math typo.
14363 (x86 Options): Likewise.
14364
14365 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
14366
14367 PR 1078
14368
14369 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
14370 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
14371 to corresponding attribute.
14372
14373 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
14374
14375 * doc/extend.texi (Common Function Attributes) <noplt>: Move
14376 to correct alphabetization of table. Copy-edit and correct
14377 markup.
14378 <stack_protect>: Likewise.
14379 <target_clones>: Likewise.
14380 <simd>: Likewise.
14381 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
14382 Correct punctuation.
14383 (Code Gen Options) <-fno-plt>: Copy-edit.
14384
14385 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
14386
14387 PR target/68917
14388 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
14389 SI values. Explicitly convert SI to DI and vice-versa.
14390
14391 2016-01-01 Jakub Jelinek <jakub@redhat.com>
14392
14393 PR tree-optimization/69070
14394 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
14395 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
14396
14397 PR sanitizer/69055
14398 * ubsan.c (ubsan_instrument_float_cast): Call
14399 initialize_sanitizer_builtins.
14400
14401 PR target/69015
14402 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
14403 \f
14404 Copyright (C) 2016 Free Software Foundation, Inc.
14405
14406 Copying and distribution of this file, with or without modification,
14407 are permitted in any medium without royalty provided the copyright
14408 notice and this notice are preserved.