match.pd: optimize unsigned mul overflow check
[gcc.git] / gcc / ChangeLog
1 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
2 Marc Glisse <marc.glisse@inria.fr>
3
4 PR tree-optimization/71289
5 * match.pd (-1 / B < A, A > -1 / B): New transformations.
6
7 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
8
9 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
10
11 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
12
13 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
14 for peeled copies; avoid underflow when updating estimates; correctly
15 scale loop profile.
16
17 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
18
19 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
20 r236875. Corrected oe3 to oe2 as obvious.
21
22 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
23
24 PR middle-end/71269
25 PR middle-end/71252
26 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
27 that inserted stmt will not dominate stmts that defines its operand.
28 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
29 (rewrite_expr_tree_parallel): Likewise.
30
31 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
32
33 PR middle-end/71252
34 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
35 all fields including stmt_to_insert are swapped.
36
37 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
38
39 * predict.h (force_edge_cold): Declare.
40 * predict.c (force_edge_cold): New function.
41 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
42 updating.
43 (canonicalize_loop_induction_variables): Fix formating.
44
45 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
46
47 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
48 (visium_expand_copysign): Use gen_int_mode directly.
49 (visium_compute_frame_size): Minor tweaks.
50
51 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
52
53 * tree-vect-loop.c (vect_analyze_loop_2): Use
54 likely_max_stmt_executions_int.
55
56 2016-05-30 Tom de Vries <tom@codesourcery.com>
57
58 PR tree-optimization/69067
59 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
60
61 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
62
63 PR target/71245
64 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
65 New peepholes to remove unneeded fild/fistp pairs.
66 (define_peephole2 atomic_loaddi_fpu): Ditto.
67
68 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
69
70 * predict.c (maybe_hot_frequency_p): Avoid division.
71
72 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
73
74 * doc/install.texi: Use https for shop.fsf.org.
75
76 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
77
78 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
79 likely_max_stmt_executions_int.
80
81 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
82
83 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
84 likely_max_stmt_executions_int.
85
86 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
87
88 * profile.c (compute_branch_probabilities): Do not report hitrates
89 here.
90 (branch_prob): Report hitrates here.
91 * predict.c (gimple_predict_edge): Do not assert profile status;
92 fix formatting issues.
93
94 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
95
96 * predict.c (edge_predicted_by_p): New function.
97 (predict_paths_for_bb): Do not put multiple predictions of the same type
98 on one edge.
99
100 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
101
102 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
103 commit.
104
105 2016-05-28 Alan Modra <amodra@gmail.com>
106
107 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
108
109 2016-05-28 Alan Modra <amodra@gmail.com>
110
111 PR rtl-optimization/71275
112 * ira.c (ira): Free dominance info.
113
114 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
115
116 * doc/sourcebuild.texi: New address for upstream Go repository.
117
118 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
119
120 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
121 (TARGET_ARM_V7M): Likewise.
122
123 2016-05-26 Jeff Law <law@redhat.com>
124
125 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
126 (thread_across_edge): Remove calls to find_jump_threads_backwards.
127 * passes.def: Add jump threading passes before DOM/VRP.
128 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
129 argument to a basic block from an edge. Remove tests which are
130 handled elsewhere.
131 (pass_data_thread_jumps, class pass_thread_jumps): New.
132 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
133 (make_pass_thread_jumps): Likewise.
134 * tree-pass.h (make_pass_thread_jumps): Declare.
135
136 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
137
138 * config/visium/visium-protos.h (split_double_move): Rename into...
139 (visium_split_double_move): ...this.
140 (visium_split_double_add): Declare.
141 * config/visium/visium.c (split_double_move): Rename into...
142 (visium_split_double_move): ...this.
143 (visium_split_double_add): New function.
144 (visium_expand_copysign): Renumber operands for consistency.
145 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
146 (DFmode move splitter): Likewise.
147 (*addi3_insn): Split by means of visium_split_double_add.
148 (*adddi3_insn_flags): Delete.
149 (*plus_plus_sltu<subst_arith>): New insn.
150 (*subdi3_insn): Split by means of visium_split_double_add.
151 (subdi3_insn_flags): Delete.
152 (*minus_minus_sltu<subst_arith>): New insn.
153 (*negdi2_insn): Split by means of visium_split_double_add.
154 (*negdi2_insn_flags): Delete.
155
156 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
157
158 * configure.ac: Treat a --with-headers option without argument
159 the same as the default (i.e. consult sys-include directory).
160 * configure: Regenerate.
161
162 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
163
164 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
165 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
166 prototype.
167 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
168 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
169
170 2016-05-27 Jiong Wang <jiong.wang@arm.com>
171
172 PR target/63596
173 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
174 tree-stdarg analysis results.
175 (aarch64_setup_incoming_varargs): Likewise.
176
177 2016-05-27 Jiong Wang <jiong.wang@arm.com>
178
179 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
180 va_list_gpr_counter_field and va_list_fpr_counter_field.
181
182 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
183
184 PR67609
185 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
186 * config/aarch64/aarch64.c
187 (aarch64_cannot_change_mode_class): Remove function.
188 * config/aarch64/aarch64-protos.h
189 (aarch64_cannot_change_mode_class): Remove.
190
191 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
192
193 * cfgloop.c (record_niter_bound): Record likely upper bounds.
194 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
195 get_likely_max_loop_iterations_int): New.
196 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
197 any_likely_upper_bound.
198 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
199 Declare.
200 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
201 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
202 upper bound.
203 (unroll_loop_constant_iterations): Likewise.
204 (unroll_loop_runtime_iterations): Likewise.
205 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
206 * lto-streamer-out.c (output_cfg): Likewise.
207 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
208 bounds.
209 (canonicalize_loop_induction_variables): Dump likely upper bounds.
210 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
211 (likely_max_loop_iterations): New.
212 (likely_max_loop_iterations_int): New.
213 (likely_max_stmt_executions): New.
214 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
215 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
216 likely_max_stmt_executions): Declare.
217
218 2016-05-27 Marek Polacek <polacek@redhat.com>
219
220 PR middle-end/71308
221 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
222
223 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
224
225 * config/s390/s390.md (2x risbg splitters): Use
226 reg_overlap_mentioned_p instead of rtx_equal_p.
227
228 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
229
230 * combine.c (make_compound_operation): Take known zero bits into
231 account when checking for possible zero_extend.
232
233 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
234
235 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
236 Use const_int_operand for operand 2 predicate. Simplify expand code
237 as a result.
238
239 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
240
241 PR middle-end/71279
242 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
243 into comparison.
244
245 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
246
247 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
248 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
249 that returns CC_SESWPmode and CC_ZESWPmode.
250 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
251 and CC_SESWPmode.
252 (aarch64_rtx_costs): Likewise.
253
254 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
255
256 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
257 for ISA 3.0 min/max support.
258 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
259 conditional move support.
260 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
261 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
262 available.
263 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
264 conditional moves where the comparison type is different from move
265 type.
266 (fp_minmax): New code iterator for smin/smax.
267 (minmax): New code attributes for min/max.
268 (SMINMAX): Likewise.
269 (smax<mode>3): Combine min, max insns into one insn using the
270 fp_minmax code iterator. Add support for ISA 3.0 min/max
271 instructions that don't need -ffast-math.
272 (s<minmax><mode>3): Likewise.
273 (smax<mode>3_vsx): Likewise.
274 (smin<mode>3): Likewise.
275 (s<minmax><mode>3_vsx): Likewise.
276 (smin<mode>3_vsx): Likewise.
277 (pre-VSX min/max splitters): Likewise.
278 (s<minmax><mode>3_fpr): Likewise.
279 (movsfcc): Rewrite floating point conditional moves to combine
280 SFmode/DFmode into a single insn.
281 (mov<mode>cc): Likewise.
282 (movdfcc): Likewise.
283 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
284 SFDF2 iterators to handle all combinations.
285 (fseldfsf4): Likewise.
286 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
287 (fseldfdf4): Likewise.
288 (fselsfdf4): Likewise.
289 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
290 comparison instructions that set a 0/-1 mask, and use it for
291 floating point conditional move via XXSEL.
292 (fpmask<mode>): Likewise.
293 (xxsel<mode>): Likewise.
294 * config/rs6000/predicates.md (min_max_operator): Delete, no
295 longer used.
296 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
297 instructions that generate a 0/-1 mask for use with XXSEL.
298 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
299 say whether floating point min/max is available, either through
300 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
301 (TARGET_MINMAX_DF): Likewise.
302
303 2016-05-27 Alan Modra <amodra@gmail.com>
304
305 PR rtl-optimization/71275
306 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
307 for update_equiv_regs and combine_and_move_insns.
308
309 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
310
311 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
312 if_then_else or cond RTXes to calculate attribute value.
313 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
314 <attr "length_immediate>: Ditto.
315 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
316 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
317 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
318 <attr "type">: Ditto.
319 <attr "prefix_data16">: Ditto.
320 <attr "prefix_extra">: Ditto.
321 <attr "length_immediate">: Ditto.
322 <attr "prefix">: Ditto.
323 (vec_set<mode>_0) <attr "isa">: Ditto.
324 <attr "prefix_extra">: Ditto.
325 <attr "length_immediate">: Ditto.
326 <attr "prefix">: Ditto.
327 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
328 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
329 (sse2_storelpd) <attr "prefix_data16">: Ditto.
330 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
331 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
332 <attr "length_immediate">: Ditto.
333 <attr "prefix">: Ditto.
334 (sse2_movsd) <attr "length_immediate">: Ditto.
335 <attr "prefix">: Ditto.
336 (vec_concatv2df) <attr "isa">: Ditto.
337 <attr "prefix">: Ditto.
338 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
339 (*vec_extractv2di_1) <attr "isa">: Ditto.
340 <attr "type">: Ditto.
341 <attr "length_immediate">: Ditto.
342 <attr "prefix_rex">: Ditto.
343 <attr "prefix_extra">: Ditto.
344 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
345 <attr "prefix_extra">: Ditto.
346 <attr "length_immediate">: Ditto.
347 (vec_concatv2di) <attr "isa">: Ditto.
348 <attr "prefix_extra">: Ditto.
349 <attr "length_immediate">: Ditto.
350 <attr "prefix">: Ditto.
351
352 2016-05-26 Martin Liska <mliska@suse.cz>
353
354 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
355 function.
356 (operator+): Likewise.
357 (operator-): Likewise.
358 (comp_cost::operator+=): Likewise.
359 (comp_cost::operator-=): Likewise.
360 (comp_cost::operator/=): Likewise.
361 (comp_cost::operator*=): Likewise.
362 (operator<): Likewise.
363 (operator==): Likewise.
364 (operator<=): Likewise.
365 (new_cost): Remove.
366 (infinite_cost_p): Likewise.
367 (add_costs): Likewise.
368 (sub_costs): Likewise.
369 (compare_costs): Likewise.
370 (set_group_iv_cost): Use the newly introduced functions.
371 (get_address_cost): Likewise.
372 (get_shiftadd_cost): Likewise.
373 (force_expr_to_var_cost): Likewise.
374 (split_address_cost): Likewise.
375 (ptr_difference_cost): Likewise.
376 (difference_cost): Likewise.
377 (get_computation_cost_at): Likewise.
378 (determine_group_iv_cost_generic): Likewise.
379 (determine_group_iv_cost_address): Likewise.
380 (determine_group_iv_cost_cond): Likewise.
381 (autoinc_possible_for_pair): Likewise.
382 (determine_group_iv_costs): Likewise.
383 (cheaper_cost_pair): Likewise.
384 (iv_ca_recount_cost): Likewise.
385 (iv_ca_set_no_cp): Likewise.
386 (iv_ca_set_cp): Likewise.
387 (iv_ca_cost): Likewise.
388 (iv_ca_new): Likewise.
389 (iv_ca_dump): Likewise.
390 (iv_ca_narrow): Likewise.
391 (iv_ca_prune): Likewise.
392 (iv_ca_replace): Likewise.
393 (try_add_cand_for): Likewise.
394 (try_improve_iv_set): Likewise.
395 (find_optimal_iv_set): Likewise.
396
397 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
398
399 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
400 that internal functions will clobber all caller-saved registers.
401
402 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
403
404 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
405 Return a better case_values_threshold when optimizing.
406
407 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
408
409 * config/aarch64/aarch64-simd.md (aarch64_combinez):
410 Add ? to integer variant.
411 (aarch64_combinez_be): Likewise.
412
413 2016-05-26 Jakub Jelinek <jakub@redhat.com>
414
415 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
416 instead of x constraint.
417 (vcvtps2ph256<mask_name>): Likewise.
418
419 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
420 alternative. Formatting fix.
421
422 * config/i386/sse.md
423 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
424 to ...
425 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
426 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
427 maybe_evex prefix instead of vex.
428 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
429 EXT_REX_SSE_REG_P (op0) case in the splitter.
430
431 2016-05-25 Jeff Law <law@redhat.com>
432
433 PR tree-optimization/71272
434 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
435 Update comments. Add test for empty path.
436
437 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
438
439 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
440 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
441 special case builtin.
442 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
443 code for ALTIVEC_BUILTIN_VEC_CMPNE.
444 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
445 for __builtin_vec_cmpne.
446
447 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
448
449 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
450 redundant test and bail out if the type of the new operand is not
451 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
452
453 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
454
455 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
456 (x_ix86_target_flags_explicit): Remove.
457 * config/i386/i386.c (ix86_function_specific_save): Do not copy
458 x_ix86_target_flags_explicit.
459 (ix86_function_specific_restore): Ditto.
460
461 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
462 H.J. Lu <hongjiu.lu@intel.com>
463
464 PR target/70738
465 * common/config/i386/i386-common.c
466 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
467 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
468 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
469 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
470 (-mgeneral-regs-only): Add new option.
471 * config/i386/i386.c (ix86_option_override_internal): Don't enable
472 x87 instructions if only general registers are allowed.
473 (ix86_target_string): Add ix86_flags argument. Handle additional
474 flags options through ix86_flags argument. Update all callers.
475 * doc/invoke.texi: Document -mgeneral-regs-only.
476
477 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
478
479 PR rtl-optimization/66940
480 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
481 decrementing desired_val will not overflow before performing these
482 operations.
483
484 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
485
486 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
487 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
488 * config/i386/i386.c (enum ix86_builtins): Add
489 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
490 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
491 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
492 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
493 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
494 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
495 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
496 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
497 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
498 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
499 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
500 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
501 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
502 __builtin_ia32_cvtps2dq512_mask.
503 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
504 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
505 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
506 * config/i386/sse.md
507 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
508 Rename to ...
509 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
510 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
511 to ...
512 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
513 (avx512f_vec_pack_sfix_v8df): New define_expand.
514 (avx512f_roundpd512): Rename to ...
515 (avx512f_round<castmode>512): ... this. Change iterator.
516 (avx512f_roundps512_sfix): New define_expand.
517 (round<mode>2_sfix): Change iterator.
518
519 2016-05-25 Nick Clifton <nickc@redhat.com>
520
521 * config/msp430/msp430.c (msp430_attr): Produce an error if a
522 static interrupt handler is detected.
523 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
524 default linker script.
525 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
526 the low part of a symbolic pointer.
527
528 2016-05-25 Richard Biener <rguenther@suse.de>
529
530 PR tree-optimization/71261
531 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
532 interesting stmt instead of immediate uses when looking
533 for the use operand to replace.
534
535 2016-05-25 Martin Liska <mliska@suse.cz>
536
537 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
538
539 2016-05-25 Richard Biener <rguenther@suse.de>
540
541 PR tree-optimization/71264
542 * tree-vect-stmts.c (vect_init_vector): Properly deal with
543 vector type val.
544
545 2016-05-25 Martin Liska <mliska@suse.cz>
546
547 PR tree-optimization/71239
548 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
549 if DECL_SIZE is NULL.
550
551 2016-05-25 Richard Biener <rguenther@suse.de>
552
553 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
554 * tree-if-conv.c (pass_data_if_conversion): Use it.
555
556 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
557
558 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
559 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
560 * varpool.c (varpool_node::get_availability): Likewise.
561
562 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
563
564 * config/rs6000/altivec.md (VNEG iterator): New iterator for
565 VNEGW/VNEGD instructions.
566 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
567 (neg<mode>2): Add expander for V2DImode added in ISA 2.06, and
568 support for ISA 3.0 VNEGW/VNEGD instructions.
569
570 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
571
572 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
573 pointers inside OACC_DATA regions.
574 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
575 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
576 (gimplify_adjust_omp_clauses): Fix typo in comment.
577
578 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
579
580 * config/rs6000/altivec.md (VParity): New mode iterator for vector
581 parity built-in functions.
582 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
583 zeros.
584 (p9v_parity<mode>2): Likewise.
585 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
586 parity.
587 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
588 (parity<mode>2): ISA 3.0 expander for vector parity.
589 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
590 power9 built-ins.
591 (BU_P9_64BIT_MISC_0): Likewise.
592 (BU_P9_MISC_0): Likewise.
593 (BU_P9V_AV_1): Likewise.
594 (BU_P9V_AV_2): Likewise.
595 (BU_P9V_AV_3): Likewise.
596 (BU_P9V_AV_P): Likewise.
597 (BU_P9V_VSX_1): Likewise.
598 (BU_P9V_OVERLOAD_1): Likewise.
599 (BU_P9V_OVERLOAD_2): Likewise.
600 (BU_P9V_OVERLOAD_3): Likewise.
601 (VCTZB): Add vector count trailing zeros support.
602 (VCTZH): Likewise.
603 (VCTZW): Likewise.
604 (VCTZD): Likewise.
605 (VPRTYBD): Add vector parity support.
606 (VPRTYBQ): Likewise.
607 (VPRTYBW): Likewise.
608 (VCTZ): Add overloaded vector count trailing zeros support.
609 (VPRTYB): Add overloaded vector parity support.
610 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
611 overloaded vector count trailing zeros and parity instructions.
612 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
613 vector parity support.
614 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
615 trailing zeros support.
616 (vec_cntlz): Likewise.
617 (vec_vctzb): Likewise.
618 (vec_vctzd): Likewise.
619 (vec_vctzh): Likewise.
620 (vec_vctzw): Likewise.
621 (vec_vprtyb): Add ISA 3.0 vector parity support.
622 (vec_vprtybd): Likewise.
623 (vec_vprtybw): Likewise.
624 (vec_vprtybq): Likewise.
625 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
626 the ISA 3.0 vector count trailing zeros and vector parity built-in
627 functions.
628
629 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
630
631 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
632 when there is stmt_to_insert.
633
634 2016-05-24 Martin Sebor <msebor@redhat.com>
635
636 PR c++/71147
637 * tree.h (complete_or_array_type_p): New inline function.
638
639 2016-05-24 Jakub Jelinek <jakub@redhat.com>
640
641 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
642 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
643 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
644
645 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
646 Limit 1st alternative to noavx isa, split 2nd alternative into one
647 noavx and one avx alternative, use *x and Bm in the former and
648 x and m in the latter.
649
650 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
651 of sse4 for the first alternative, drop %v from the template
652 and d operand modifier. Split second alternative into one sse4_noavx
653 and one avx alternative, use *x instead of *v in the former and v
654 instead of *v in the latter.
655 (*sse4_1_extractps): Use noavx isa instead of * for the first
656 alternative, drop %v from the template. Split second alternative into
657 one noavx and one avx alternative, use *x instead of *v in the
658 former and v instead of *v in the latter.
659 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
660 with noavx and the last one with avx.
661 (sse4_1_phminposuw): Guard first alternative with noavx isa,
662 split the second one into one noavx and one avx alternative,
663 use *x and Bm in the former and x and m in the latter one.
664 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
665 alternatives.
666
667 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
668 first two alternatives to noavx, use *x instead of *v in the second
669 one, add avx alternative without *.
670 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
671 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
672 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
673
674 2016-05-24 Jeff Law <law@redhat.com>
675
676 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
677 New function, extracted from...
678 (fsm_find_control_statement_thread_paths): Here. Use the new function.
679 Allow simple copies and constant initializations in the SSA chain.
680
681 2016-05-24 Marek Polacek <polacek@redhat.com>
682
683 PR c/71249
684 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
685 scope.
686
687 2016-05-24 Jakub Jelinek <jakub@redhat.com>
688
689 PR c++/71257
690 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
691 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
692 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
693 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
694 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
695
696 2016-05-24 Richard Biener <rguenther@suse.de>
697
698 PR tree-optimization/71240
699 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
700 has integral type.
701
702 2016-05-24 Richard Biener <rguenther@suse.de>
703
704 PR tree-optimization/71230
705 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
706
707 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
708
709 * tree-vectorizer.h (vectorizable_comparison): Delete.
710 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
711 PURE_SLP_STMT check.
712 * tree-vect-stmts.c (vectorizable_call): Likewise.
713 (vectorizable_simd_clone_call): Likewise.
714 (vectorizable_conversion): Likewise.
715 (vectorizable_assignment): Likewise.
716 (vectorizable_shift): Likewise.
717 (vectorizable_operation): Likewise.
718 (vectorizable_load): Likewise.
719 (vectorizable_condition): Likewise.
720 (vectorizable_store): Likewise. Assert that we don't have
721 hybrid SLP.
722 (vectorizable_comparison): Make static. Remove redundant
723 PURE_SLP_STMT check.
724 (vect_transform_stmt): Assert that we always have an slp_node
725 if PURE_SLP_STMT.
726
727 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
728
729 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
730 operands[2] against 1 with comparison against CONST1_RTX.
731 (<shift>di3_neon): Likewise.
732 * config/arm/predicates.md (const0_operand): Replace with comparison
733 against CONST0_RTX.
734
735 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
736
737 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
738 operands[2] against 1 with comparison against CONST1_RTX.
739 (ashrdi3): Likewise.
740 (lshrdi3): Likewise.
741 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
742 UINTVAL.
743 (ashrsi3): Likewise.
744 (lshrsi3): Likewise.
745 (rotrsi3): Likewise.
746 (define_split above *compareqi_eq0): Likewise.
747 (define_split above "prologue"): Likewise.
748 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
749 * config/arm/predicates.md (shift_operator): Likewise.
750 (shift_nomul_operator): Likewise.
751 (sat_shift_operator): Likewise.
752 (thumb1_cmp_operand): Likewise.
753 (const_neon_scalar_shift_amount_operand): Replace manual range
754 check with IN_RANGE.
755 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
756 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
757
758 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
759
760 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
761 with HOST_WIDE_INT_1.
762 (insv): Likewise.
763 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
764 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
765 (arm_canonicalize_comparison): Likewise.
766 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
767 HOST_WIDE_INT_1.
768 (thumb1_size_rtx_costs): Likewise.
769 (vfp_const_double_index): Replace cast of 1 to unsigned
770 HOST_WIDE_INT with HOST_WIDE_INT_1U.
771 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
772 HOST_WIDE_INT_1.
773 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
774 HOST_WIDE_INT with HOST_WIDE_INT_1U.
775 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
776 HOST_WIDE_INT with HOST_WIDE_INT_1.
777
778 2016-05-24 Marek Polacek <polacek@redhat.com>
779
780 * tree-cfg.h (should_remove_lhs_p): New predicate.
781 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
782 * gimplify.c (gimplify_modify_expr): Likewise.
783 * tree-cfg.c (verify_gimple_call): Likewise.
784 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
785 * gimple-fold.c: Include "tree-cfg.h".
786 (gimple_fold_call): Use should_remove_lhs_p.
787
788 2016-05-24 Richard Biener <rguenther@suse.de>
789
790 PR tree-optimization/71253
791 * cfganal.h (control_dependences): Make robust against edge
792 and BB removal.
793 (control_dependences::control_dependences): Remove edge_list argument.
794 (control_dependences::get_edge): Remove.
795 (control_dependences::get_edge_src): Add.
796 (control_dependences::get_edge_dest): Likewise.
797 (control_dependences::m_el): Make a vector of edge src/dest index.
798 * cfganal.c (control_dependences::find_control_dependence): Adjust.
799 (control_dependences::control_dependences): Likewise.
800 (control_dependences::~control_dependence): Likewise.
801 (control_dependences::get_edge): Remove.
802 (control_dependences::get_edge_src): Add.
803 (control_dependences::get_edge_dest): Likewise.
804 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
805 get_edge_src.
806 (perform_tree_ssa_dce): Adjust.
807 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
808 get_edge_src.
809 (pass_loop_distribution::execute): Adjust. Do loop destroying
810 conditional on changed.
811
812 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
813
814 PR target/69857
815 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
816 return. Reindent transformation comment and mention the ARM state
817 behavior.
818
819 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
820
821 PR middle-end/71252
822 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
823 after build_and_add_sum creates new use stmt.
824
825 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
826
827 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
828 load_lanes/grouped_load classification comes first. Don't check
829 whether the vectorization factor is a multiple of the group size
830 for load_lanes.
831
832 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
833
834 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
835 GROUP_GAP for single-element interleaving.
836 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
837 variable.
838
839 2016-05-24 Richard Biener <rguenther@suse.de>
840
841 PR middle-end/70434
842 PR c/69504
843 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
844 bases which are accessed with non-invariant indices.
845 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
846 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
847
848 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
849
850 PR middle-end/71170
851 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
852 (add_to_ops_vec): Add stmt_to_insert.
853 (add_repeat_to_ops_vec): Init stmt_to_insert.
854 (insert_stmt_before_use): New.
855 (transform_add_to_multiply): Remove mult_stmt insertion and add it
856 to ops vector.
857 (get_ops): Init stmt_to_insert.
858 (maybe_optimize_range_tests): Likewise.
859 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
860 (rewrite_expr_tree_parallel): Likewise.
861 (reassociate_bb): Likewise.
862
863 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
864
865 PR target/71201
866 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
867 ISA 3.0 xxperm fusion alternative.
868 (altivec_vperm_v8hiv16qi): Likewise.
869 (altivec_vperm_<mode>_uns_internal): Likewise.
870 (vperm_v8hiv4si): Likewise.
871 (vperm_v16qiv8hi): Likewise.
872
873 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
874 Kelvin Nilsen <kelvin@gcc.gnu.org>
875
876 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
877 vpermr/xxpermr on ISA 3.0.
878 (altivec_expand_vec_perm_le): Likewise.
879 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
880 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
881 ISA 3.0.
882
883 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
884
885 * config/i386/i386.h (IS_STACK_MODE): Enable for
886 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
887 SSE_FLOAT_MODE_P macros.
888 * config/i386/i386.c (ix86_preferred_reload_class): Use
889 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
890 Cleanup regclass processing for CONST_DOUBLE_P.
891 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
892 (ix86_rtx_costs): Remove redundant TARGET_80387 check
893 with IS_STACK_MODE macro.
894 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
895 with TARGET_SSE2.
896 (*movdf_internal): Use IS_STACK_MODE macro.
897 (*movsf_internal): Ditto.
898
899 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
900
901 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
902 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
903
904 2016-05-23 Jeff Law <law@redhat.com>
905
906 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
907 extracted from ...
908 (fsm_find_control_statement_thread_paths): Call it.
909
910 2016-05-23 Martin Jambor <mjambor@suse.cz>
911
912 PR ipa/71234
913 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
914 from_global_constant if t is not NULL.
915
916 2016-05-23 Marek Polacek <polacek@redhat.com>
917
918 PR c/49859
919 * common.opt (Wswitch-unreachable): New option.
920 * doc/invoke.texi: Document -Wswitch-unreachable.
921 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
922 warning.
923
924 2016-05-23 Bin Cheng <bin.cheng@arm.com>
925
926 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
927 TMR_INDEX is non-NULL.
928
929 2016-05-23 Richard Biener <rguenther@suse.de>
930
931 PR tree-optimization/71230
932 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
933 (try_special_add_to_ops): ... here. Always test for single-use.
934
935 2016-05-23 Martin Jambor <mjambor@suse.cz>
936
937 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
938 default block if a PHI node in the original one would be resized.
939
940 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
941
942 PR tree-optimization/58135
943 * tree-vect-slp.c: When group size is not multiple
944 of vector size, allow splitting of store group at
945 vector boundary.
946
947 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
948
949 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
950
951 2016-05-22 Jakub Jelinek <jakub@redhat.com>
952
953 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
954 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
955 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
956 of 64x2.
957
958 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
959 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
960 v constraint instead of x and vinserti32x4 insn.
961
962 * config/i386/sse.md (i128vldq): New mode iterator.
963 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
964 avx512dq and avx512vl alternatives.
965
966 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
967 constraint, use maybe_evex prefix instead of vex.
968 (vec_dupv4sf): Use v constraint instead of x for output
969 operand except for noavx alternative, use Yv constraint
970 instead of x for input. Use maybe_evex prefix instead of vex.
971 (*vec_dupv4si): Likewise.
972 (*vec_dupv2di): Likewise.
973
974 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
975
976 PR middle-end/40921
977 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
978 (linearize_expr_tree): Call try_special_add_to_ops.
979 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
980
981 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
982
983 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
984 to computed stack_usage.
985
986 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
987
988 PR target/71103
989 * config/avr/avr.md (define_expand "mov<mode>"): If the source
990 operand is subreg (symbol_ref) then move the symbol ref to register.
991
992 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
993
994 * tree.c (array_at_struct_end_p): Look through MEM_REF.
995
996 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
997
998 PR middle-end/71179
999 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
1000 VECTOR type.
1001
1002 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
1003
1004 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
1005 ranges by calling get_single_symbol and tidy up. Look more closely
1006 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
1007
1008 2016-05-20 Jeff Law <law@redhat.com>
1009
1010 * bitmap.c (bitmap_find_bit): Remove useless test.
1011
1012 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
1013
1014 * function.c (thread_prologue_and_epilogue_insns): Commit the
1015 insertion of the epilogue.
1016
1017 2016-05-20 Martin Jambor <mjambor@suse.cz>
1018
1019 PR tree-optimization/70884
1020 * tree-sra.c (initialize_constant_pool_replacements): Do not check
1021 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
1022 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
1023 of constant pool data as a reason for scalarization.
1024
1025 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
1026
1027 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
1028 for naked functions.
1029 (thumb1_expand_prologue): Likewise.
1030
1031 2016-05-20 Nathan Sidwell <nathan@acm.org>
1032
1033 * config/nvptx/nptx.c (nvptx_option_override): Only set
1034 flag_toplevel_reorder, if not explicitly specified. Set
1035 flag_no_common, unless explicitly specified.
1036
1037 2016-05-20 David Malcolm <dmalcolm@redhat.com>
1038
1039 * calls.c (can_implement_as_sibling_call_p): Mark param
1040 reg_parm_stack_space with ATTRIBUTE_UNUSED.
1041
1042 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
1043
1044 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
1045 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
1046 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
1047 constants.
1048 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
1049 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
1050 and CASE_CONST_ANY.
1051
1052 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
1053
1054 * config/nvptx/nvptx.md (sincossf3): New pattern.
1055
1056 2016-05-20 David Malcolm <dmalcolm@redhat.com>
1057
1058 * calls.c (maybe_complain_about_tail_call): New function.
1059 (initialize_argument_information): Call
1060 maybe_complain_about_tail_call when clearing *may_tailcall.
1061 (can_implement_as_sibling_call_p): Call
1062 maybe_complain_about_tail_call when returning false.
1063 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
1064 ensure try_tail_call is set. Call maybe_complain_about_tail_call
1065 if tail-call optimization fails.
1066 * cfgexpand.c (expand_call_stmt): Initialize
1067 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
1068 * gimple-pretty-print.c (dump_gimple_call): Dump
1069 gimple_call_must_tail_p.
1070 * gimple.c (gimple_build_call_from_tree): Call
1071 gimple_call_set_must_tail with the value of
1072 CALL_EXPR_MUST_TAIL_CALL.
1073 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
1074 (gimple_call_set_must_tail): New function.
1075 (gimple_call_must_tail_p): New function.
1076 * print-tree.c (print_node): Update printing of TREE_STATIC
1077 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
1078 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
1079 trailing comment listing applicable flags.
1080 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
1081
1082 2016-05-20 David Malcolm <dmalcolm@redhat.com>
1083
1084 * calls.c (expand_call): Move "Rest of purposes for tail call
1085 optimizations to fail" to...
1086 (can_implement_as_sibling_call_p): ...this new function, and
1087 split into multiple "if" statements.
1088
1089 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
1090
1091 * cfgloop.h (expected_loop_iterations_unbounded,
1092 expected_loop_iterations): Unconstify.
1093 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
1094 profile with known upper bound; return 3 when profile is absent.
1095 (expected_loop_iterations): Update.
1096
1097 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
1098
1099 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
1100 and get_max_loop_iterations_int.
1101
1102 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
1103
1104 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
1105 realistic upper bounds here.
1106
1107 2016-05-20 Jakub Jelinek <jakub@redhat.com>
1108
1109 PR c++/71210
1110 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
1111 calls if the LHS is variable length or has addressable type.
1112 If targets[0]->decl is a noreturn call with void return type and
1113 zero arguments, adjust fntype and remove lhs in that case.
1114
1115 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
1116
1117 PR tree-optimization/71079
1118 PR tree-optimization/71206
1119 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
1120
1121 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1122
1123 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
1124 (get_vec_alignment_for_array_decl): Likewise.
1125 (get_vec_alignment_for_record_decl): Likewise.
1126 (increase_alignment::execute): Move code to find alignment to
1127 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
1128 (type_align_map): New hash_map.
1129
1130 2016-05-20 Richard Guenther <rguenther@suse.de>
1131
1132 PR tree-optimization/29756
1133 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
1134 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
1135 * fold-const.c (operand_equal_p): Likewise.
1136 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
1137 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
1138 * tree-inline.c (estimate_operator_cost): Likewise.
1139 * tree-pretty-print.c (dump_generic_node): Likewise.
1140 * tree-ssa-operands.c (get_expr_operands): Likewise.
1141 * cfgexpand.c (expand_debug_expr): Likewise.
1142 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
1143 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
1144 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
1145 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
1146 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
1147 (execute_update_addresses_taken): Do it.
1148
1149 2016-05-20 Richard Biener <rguenther@suse.de>
1150
1151 PR tree-optimization/71185
1152 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
1153 register operations.
1154
1155 2016-05-20 Richard Biener <rguenther@suse.de>
1156
1157 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
1158 gimple_seq_add_seq_without_update.
1159 (release_bb_predicate): Assert we have no operands to free.
1160 (if_convertible_loop_p_1): Calculate post dominators later.
1161 Do not free BB predicates here.
1162 (combine_blocks): Do not recompute BB predicates.
1163 (version_loop_for_if_conversion): Save BB predicates around
1164 loop versioning.
1165
1166 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
1167
1168 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
1169 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
1170 code. Ignore sibcalls on EDGE_IGNORE edges.
1171 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
1172 on edges for sibcalls that run without prologue. The rest of the
1173 function is combined from...
1174 (fix_fake_fallthrough_edge): ... this, and ...
1175 (try_shrink_wrapping): ... a part of this. Remove the bb_with
1176 function argument, make it a local variable.
1177
1178 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
1179
1180 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
1181 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
1182 for 32-bit mode and SEH for 64-bit.
1183 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
1184 TARGET_64BIT_DEFAULT.
1185
1186 2016-05-19 Ryan Burn <contact@rnburn.com>
1187
1188 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
1189 * gengtype.c (open_base_files): Add cilk.h to ifiles.
1190
1191 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
1192
1193 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
1194 force pending loads from memory.
1195
1196 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
1197
1198 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
1199 (UNSPEC_DARN_32): New unspec constant.
1200 (UNSPEC_DARN_RAW): New unspec constant.
1201 (darn_32): New instruction.
1202 (darn_raw): New instruction.
1203 (darn): New instruction.
1204 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
1205 support and documentation for this macro.
1206 (BU_P9_MISC_1): New macro definition.
1207 (BU_P9_64BIT_MISC_0): New macro definition.
1208 (BU_P9_MISC_0): New macro definition.
1209 (darn_32): New builtin definition.
1210 (darn_raw): New builtin definition.
1211 (darn): New builtin definition.
1212 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
1213 RS6000_BUILTIN_0 directives to surround each occurrence of
1214 #include "rs6000-builtin.def".
1215 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
1216 RS6000_BTM_64BIT flags to the returned mask, depending on
1217 configuration.
1218 (def_builtin): Correct an error in the assignments made to the
1219 debugging variable attr_string.
1220 (rs6000_expand_builtin): Add support for no-operand built-in
1221 functions.
1222 (builtin_function_type): Remove fatal_error assertion that is no
1223 longer valid.
1224 (rs6000_common_init_builtins): Add support for no-operand built-in
1225 functions.
1226 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
1227 definition.
1228 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
1229 definition.
1230 (RS6000_BTM_64BIT): New macro definition.
1231 * doc/extend.texi: Document __builtin_darn (void),
1232 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
1233 functions.
1234
1235 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
1236
1237 * tree-vect-loop.c (vect_analyze_loop_2): Use also
1238 max_loop_iterations_int.
1239
1240 2016-05-19 Marek Polacek <polacek@redhat.com>
1241
1242 PR tree-optimization/71031
1243 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
1244 condition and adjust the code a bit.
1245
1246 2016-05-19 Martin Liska <mliska@suse.cz>
1247
1248 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
1249 auto_vec instead of vec.
1250
1251 2016-05-19 Martin Liska <mliska@suse.cz>
1252
1253 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
1254
1255 2016-05-19 Martin Liska <mliska@suse.cz>
1256
1257 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
1258
1259 2016-05-19 Martin Liska <mliska@suse.cz>
1260
1261 * ipa-pure-const.c (set_function_state): Remove an existing
1262 funct_state.
1263 (remove_node_data): Do not free it as it's released
1264 in set_function_state.
1265
1266 2016-05-19 Martin Liska <mliska@suse.cz>
1267
1268 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
1269 bitmap.
1270
1271 2016-05-19 Martin Liska <mliska@suse.cz>
1272
1273 * omp-simd-clone.c (simd_clone_adjust): Release vector.
1274
1275 2016-05-19 Martin Liska <mliska@suse.cz>
1276
1277 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
1278 an auto_vec instead of re-creating it.
1279
1280 2016-05-19 Martin Liska <mliska@suse.cz>
1281
1282 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
1283 auto_vec instead of vec.
1284
1285 2016-05-19 Martin Liska <mliska@suse.cz>
1286
1287 * lto-section-in.c (lto_get_section_data): Call
1288 lto_check_version with additional argument.
1289 * lto-streamer.c (lto_check_version): Add new argument.
1290 * lto-streamer.h (lto_check_version): Likewise.
1291
1292 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1293
1294 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
1295 Don't add cost of inner memory when handling sign-extended loads.
1296
1297 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
1298
1299 PR rtl-optimization/71148
1300 * cse.c (cse_main): Free dominance info.
1301 (rest_of_handle_cse): Don't free dominance info.
1302 (rest_of_handle_cse2): Likewise.
1303 (rest_of_handle_cse_after_global_opts): Likewise.
1304
1305 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1306
1307 PR target/71056
1308 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
1309 NULL_TREE early if NEON is not available. Remove now redundant check
1310 in ARM_CHECK_BUILTIN_MODE.
1311
1312 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
1313
1314 PR sanitizer/64354
1315 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
1316 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
1317 * doc/cpp.texi: Document new macros.
1318
1319 2016-05-19 Bin Cheng <bin.cheng@arm.com>
1320
1321 PR tree-optimization/69848
1322 * tree-vect-loop.c (vectorizable_reduction): Don't factor
1323 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
1324
1325 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
1326
1327 * function.c (thread_prologue_and_epilogue_insn): Move the
1328 "goto epilogue_done" one block later.
1329
1330 2016-05-19 Richard Biener <rguenther@suse.de>
1331
1332 PR tree-optimization/70729
1333 * passes.def: Move LIM pass before PRE. Remove no longer
1334 required copyprop and move first DCE out of the loop pipeline.
1335
1336 2016-05-18 David Malcolm <dmalcolm@redhat.com>
1337
1338 PR driver/69265
1339 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
1340 (OBJS-libcommon-target): ...here.
1341 * opts-common.c: Include spellcheck.h.
1342 (cmdline_handle_error): Build a vec of valid options and use it
1343 to suggest provide hints for misspelled arguments.
1344
1345 2016-05-18 Jakub Jelinek <jakub@redhat.com>
1346
1347 PR c++/71100
1348 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
1349 lhs if it has TREE_ADDRESSABLE type.
1350
1351 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
1352
1353 PR target/71145
1354 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
1355 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
1356
1357 2016-05-18 Martin Jambor <mjambor@suse.cz>
1358
1359 PR ipa/69708
1360 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
1361 input for NOP_EXPR pass-through functions.
1362 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
1363 aggregate global constant VAR_DECLs in constant jump functions.
1364
1365 2016-05-18 Martin Jambor <mjambor@suse.cz>
1366
1367 PR ipa/69708
1368 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
1369 from TREE_READONLY parameters.
1370
1371 2016-05-18 Martin Jambor <mjambor@suse.cz>
1372
1373 PR ipa/69708
1374 * cgraph.h (cgraph_indirect_call_info): New field
1375 guaranteed_unmodified.
1376 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
1377 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
1378 appropriate.
1379 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
1380 pass the parameter value to ipa_find_agg_cst_for_param.
1381 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
1382 guaranteed_unmodified, store AA results there instead of bailing out
1383 if present.
1384 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
1385 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
1386 (find_constructor_constant_at_offset): New function.
1387 (ipa_find_agg_cst_from_init): Likewise.
1388 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
1389 static initializers of contants, report back through a new paameter
1390 from_global_constant if that was the case.
1391 (try_make_edge_direct_simple_call): Also pass parameter value to
1392 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
1393 appropriate.
1394 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
1395 (ipa_read_indirect_edge_info): Likewise.
1396 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
1397 (ipa_load_from_parm_agg): Likewise.
1398
1399 2016-05-18 Jiong Wang <jiong.wang@arm.com>
1400
1401 PR rtl-optimization/71150
1402 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
1403 check.
1404
1405 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
1406
1407 PR target/70915
1408 * config/rs6000/constraints.md (wE constraint): New constraint
1409 for a vector constant that can be loaded with XXSPLTIB.
1410 (wM constraint): New constraint for a vector constant of a 1's.
1411 (wS constraint): New constraint for a vector constant that can be
1412 loaded with XXSPLTIB and a vector sign extend instruction.
1413 * config/rs6000/predicates.md (xxspltib_constant_split): New
1414 predicates for wE/wS constraints.
1415 (xxspltib_constant_nosplit): Likewise.
1416 (easy_vector_constant): Add support for constants that can be
1417 loaded via XXSPLTIB.
1418 (all_ones_constant): New predicate for vector constant with all
1419 1's set.
1420 (splat_input_operand): Add support for ISA 3.0 word splat operations.
1421 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
1422 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
1423 instruction and possibly with a sign extension.
1424 (output_vec_const_move): Add support for XXSPLTIB. If we are
1425 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
1426 instead of XXLXOR/XXLORC.
1427 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
1428 operations.
1429 (rs6000_legitimize_reload_address): Likewise.
1430 (rs6000_output_move_128bit): Use output_vec_const_move to emit
1431 constants.
1432 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
1433 combine VSX_M and VSX_M2 into one iterator.
1434 (VSX_M2): Likewise.
1435 (VSINT_84): New iterators for loading constants with XXSPLTIB.
1436 (VSINT_842): Likewise.
1437 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
1438 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
1439 XXSPLTIB instruction.
1440 (xxspltib_<mode>_nosplit): Likewise.
1441 (xxspltib_<mode>_split): New insn to load up constants with
1442 XXSPLTIB and a sign extend instruction.
1443 (vsx_mov<mode>): Replace single move that handled all vector types
1444 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
1445 moves (when -mvsx-timode is in effect) into the main vector
1446 moves. Eliminate separate moves for <VSr> <VSa>, where the
1447 preferred register class (<VSr>) is listed first, and the
1448 secondary register class (<VSa>) is listed second with a '?' to
1449 discourage use. Prefer loading 0/-1 in any VSX register for ISA
1450 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
1451 that if the register was involved in a slow operation, the
1452 clear/set operation does not wait for the slow operation to
1453 finish. Adjust the length attributes for 32-bit mode. Use
1454 rs6000_output_move_128bit and drop the use of the string
1455 instructions for 32-bit movti when -mvsx-timode is in effect. Use
1456 spacing so that the alternatives and attributes don't generate
1457 long lines, and put things in columns, so that it is easier to
1458 match up the operands and attributes with the insn alternatives.
1459 (vsx_mov<mode>_64bit): Likewise.
1460 (vsx_mov<mode>_32bit): Likewise.
1461 (vsx_movti_64bit): Fold movti into normal vector moves.
1462 (vsx_movti_32bit): Likewise.
1463 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
1464 splat instructions.
1465 (vsx_splat_v4si_internal): Likewise.
1466 (vsx_splat_v4sf_internal): Likewise.
1467 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
1468 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
1469 extend vector elements.
1470 (vsx_sign_extend_hi_<mode>): Likewise.
1471 (vsx_sign_extend_si_v2di): Likewise.
1472 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
1473 declaration.
1474 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
1475 constraints. Add trailing period to wL documentation.
1476
1477 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
1478
1479 PR middle-end/71020
1480 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
1481 * tree-dfa.c (replace_abnormal_ssa_names): New function.
1482 * tree-call-cdce.c: Include tree-dfa.h.
1483 (can_guard_call_p): New function, extracted from...
1484 (can_use_internal_fn): ...here.
1485 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
1486 and return void.
1487 (shrink_wrap_one_built_in_call): Likewise.
1488 (use_internal_fn): Likewise.
1489 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
1490 and return void. Call replace_abnormal_ssa_names.
1491 (pass_call_cdce::execute): Check can_guard_call_p during the
1492 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
1493 will always change something.
1494
1495 2016-05-18 Martin Jambor <mjambor@suse.cz>
1496
1497 PR ipa/70646
1498 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
1499 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
1500
1501 2016-05-18 Martin Jambor <mjambor@suse.cz>
1502
1503 PR ipa/70646
1504 * ipa-inline.h (condition): New field size.
1505 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
1506 for comaprison and store it into the new condition.
1507 (evaluate_conditions_for_known_args): Use condition size to check
1508 access sizes for all but CHANGED conditions.
1509 (unmodified_parm_1): New parameter size_p, store access size into it.
1510 (unmodified_parm): Likewise.
1511 (unmodified_parm_or_parm_agg_item): Likewise.
1512 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
1513 (set_cond_stmt_execution_predicate): Extract access sizes and store
1514 them to conditions.
1515 (set_switch_stmt_execution_predicate): Likewise.
1516 (will_be_nonconstant_expr_predicate): Likewise.
1517 (will_be_nonconstant_predicate): Likewise.
1518 (inline_read_section): Stream condition size.
1519 (inline_write_summary): Likewise.
1520
1521 2016-05-18 Richard Biener <rguenther@suse.de>
1522
1523 * tree-ssa-loop-im.c (determine_max_movement): Properly add
1524 condition cost to PHI cost instead of total_cost.
1525
1526 2016-05-18 Martin Liska <mliska@suse.cz>
1527
1528 PR fortran/70856
1529 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
1530 merged variables.
1531
1532 2016-05-18 Richard Biener <rguenther@suse.de>
1533
1534 * lto-streamer.h (LTO_major_version): Bump to 6.
1535
1536 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
1537
1538 * function.c (make_split_prologue_seq, make_prologue_seq,
1539 make_epilogue_seq): New functions, factored out from...
1540 (thread_prologue_and_epilogue_insns): Here.
1541
1542 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
1543
1544 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
1545 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
1546 of before. Add a comment.
1547
1548 2016-05-18 Bin Cheng <bin.cheng@arm.com>
1549
1550 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
1551 expression pointer, not pointer to the pointer.
1552
1553 2016-05-18 Jakub Jelinek <jakub@redhat.com>
1554
1555 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
1556 (avx2_pbroadcast<mode>): Add another alternative with v instead
1557 of x constraints in it, using <pbroadcast_evex_isa> isa.
1558 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
1559
1560 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
1561 constraint x instead of v in second alternative, add avx512bw
1562 alternative.
1563
1564 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
1565 constraint x instead of v in second alternative, add avx512bw
1566 alternative.
1567
1568 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
1569 constraint x instead of v in second alternative, add avx512bw
1570 alternative.
1571
1572 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
1573 avx512bw alternative.
1574
1575 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
1576
1577 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
1578 array to 128 chars.
1579 (define_insn "*andnottf3"): Ditto.
1580 (define_insn "*<code><mode>3"/any_logic): Ditto.
1581 (define_insn "*<code>tf3"/any_logic): Ditto.
1582 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
1583 operand to block AVX-512VL insn variant emit when it is not enabled.
1584
1585 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
1586
1587 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
1588 constraint fot SF mode.
1589
1590 2016-05-18 Petr Murzin <petr.murzin@intel.com>
1591 Kirill Yukhin <kirill.yukhin@intel.com>
1592
1593 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
1594 modifiers.
1595 (define_insn "rsqrt14<mode>"): Ditto.
1596 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
1597 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
1598 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
1599 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
1600 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
1601 Ditto.
1602 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
1603 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
1604 * config/i386/i386.c (ix86_print_operand): Expand check for size
1605 override codes for Intel syntax.
1606
1607 2016-05-18 Richard Biener <rguenther@suse.de>
1608
1609 PR tree-optimization/71168
1610 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
1611 initialization earlier.
1612
1613 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
1614
1615 * config/aarch64/aarch64-simd.md
1616 (aarch64_reduc_plus_internal<mode>): Rename to...
1617 (reduc_plus_scal): ...This, and remove previous implementation.
1618
1619 2016-05-18 Richard Biener <rguenther@suse.de>
1620
1621 * passes.def: Put late dse and cd_dce in canonical order.
1622
1623 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
1624
1625 * ipa-inline-transform.c (preserve_function_body_p): Look for
1626 first non-thunk clone.
1627 (save_function_body): Save into first non-thunk.
1628 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
1629 up call stmt id.
1630 (lto_output_node): Inline thunks don't need body in every
1631 partition.
1632 * lto-streamer-in.c: Do not fixup thunk clones.
1633 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
1634 thunks.
1635 * tree-inline.c (copy_bb): Be prepared for target node to be new after
1636 folding suceeds.
1637
1638 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
1639
1640 PR middle-end/63586
1641 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
1642 (reassociate_bb): Call transform_add_to_multiply.
1643
1644 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
1645
1646 * config/aarch64/aarch64.c (all_extensions): Removed unused
1647 static variable.
1648
1649 2016-05-17 Nathan Sidwell <nathan@acm.org>
1650
1651 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
1652 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
1653
1654 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
1655
1656 PR tree-optimization/54579
1657 PR middle-end/55299
1658 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
1659
1660 2016-05-17 Marek Polacek <polacek@redhat.com>
1661
1662 PR ipa/71146
1663 * tree-inline.c (expand_call_inline): Call
1664 maybe_remove_unused_call_args.
1665
1666 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
1667
1668 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
1669 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
1670 * doc/md.texi (fmin@var{m}3): Likewise.
1671
1672 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1673
1674 * match.pd (X & C): New transformation.
1675
1676 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1677
1678 * match.pd (~X & Y): New transformation.
1679
1680 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
1681
1682 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
1683 information for new SSA_NAME.
1684 (simplify_conversion_using_ranges): Get range through get_range_info
1685 instead of get_value_range.
1686
1687 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1688
1689 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
1690 Remove inline assembly.
1691 (vmvn_s16): Likewise.
1692 (vmvn_s32): Likewise.
1693 (vmvn_u8): Likewise.
1694 (vmvn_u16): Likewise.
1695 (vmvn_u32): Likewise.
1696 (vmvnq_s8): Likewise.
1697 (vmvnq_s16): Likewise.
1698 (vmvnq_s32): Likewise.
1699 (vmvnq_u8): Likewise.
1700 (vmvnq_u16): Likewise.
1701 (vmvnq_u32): Likewise.
1702 (vmvn_p8): Likewise.
1703 (vmvnq_p16): Likewise.
1704
1705 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1706
1707 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
1708 Use builtin.
1709 (vmul_n_s16): Likewise.
1710 (vmul_n_s32): Likewise.
1711 (vmul_n_u16): Likewise.
1712 (vmul_n_u32): Likewise.
1713 (vmulq_n_f32): Likewise.
1714 (vmulq_n_f64): Likewise.
1715 (vmulq_n_s16): Likewise.
1716 (vmulq_n_s32): Likewise.
1717 (vmulq_n_u16): Likewise.
1718 (vmulq_n_u32): Likewise.
1719
1720 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1721
1722 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
1723 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
1724
1725 2016-05-17 Jiong Wang <jiong.wang@arm.com>
1726
1727 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
1728 to *aarch64_fma4_elt_from_dup<mode>.
1729 (*aarch64_fnma4_elt_to_128df): Rename to
1730 *aarch64_fnma4_elt_from_dup<mode>.
1731 * config/aarch64/arm_neon.h (vfma_n_f64): New.
1732 (vfms_n_f32): Likewise.
1733 (vfms_n_f64): Likewise.
1734 (vfmsq_n_f32): Likewise.
1735 (vfmsq_n_f64): Likewise.
1736
1737 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
1738
1739 * wide-int.h: Change fixed_wide_int_storage from class to struct.
1740
1741 2016-05-17 Richard Biener <rguenther@suse.de>
1742
1743 PR tree-optimization/71132
1744 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
1745 Only add control dependences for blocks in the loop.
1746 (build_rdg): Adjust.
1747 (generate_code_for_partition): Return whether loop should
1748 be destroyed and delay that.
1749 (distribute_loop): Likewise.
1750 (pass_loop_distribution::execute): Record loops to be destroyed
1751 and perform delayed destroying of loops.
1752
1753 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1754
1755 PR target/70809
1756 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
1757
1758 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1759
1760 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
1761
1762 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
1763
1764 PR target/71114
1765 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
1766 insertion point for instructions generated by validize_mem.
1767
1768 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1769
1770 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
1771 in brackets.
1772
1773 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
1774
1775 * config/aarch64/aarch64.c
1776 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
1777 rather than a macro.
1778
1779 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1780
1781 * doc/invoke.texi (AArch64 Options): Various updates.
1782
1783 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1784
1785 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
1786 into instrumentation thunks.
1787 * cif-code.def (CIF_CHKP): New.
1788
1789 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
1790
1791 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
1792
1793 2016-05-16 Martin Jambor <mjambor@suse.cz>
1794
1795 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
1796 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
1797
1798 2016-05-16 Marek Polacek <polacek@redhat.com>
1799
1800 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
1801 commentary.
1802
1803 2016-05-16 Martin Jambor <mjambor@suse.cz>
1804
1805 PR hsa/70857
1806 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
1807 the outlined kernel function.
1808
1809 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
1810
1811 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
1812 (ISA_HAS_DLSA): Ditto.
1813
1814 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
1815
1816 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
1817
1818 2016-05-16 Nathan Sidwell <nathan@acm.org>
1819
1820 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
1821 (nvptx_name_replacement): Restore. Add comment.
1822 (write_fn_proto, write_fn_proto_from_insn,
1823 nvptx_output_call_insn): Restore
1824 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
1825
1826 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1827
1828 * config/aarch64/aarch64.md
1829 (add<mode>3_compareC_cconly_imm): Remove use of %w.
1830 (add<mode>3_compareC_imm): Likewise.
1831 (<optab>si3_uxtw): Split into register and immediate variants.
1832 (andsi3_compare0_uxtw): Likewise.
1833 (and<mode>3_compare0): Likewise.
1834 (and<mode>3nr_compare0): Likewise.
1835 (stack_protect_test_<mode>): Don't use %x for memory operands.
1836
1837 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
1838
1839 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
1840
1841 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
1842
1843 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
1844 Split integer shifts into shift_reg and bfm.
1845 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
1846 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
1847 (ror<mode>3_insn): Likewise.
1848 (<optab>si3_insn_uxtw): Likewise.
1849 (<optab><mode>3_insn): Change to rotate_imm.
1850 (extr<mode>5_insn_alt): Likewise.
1851 (extrsi5_insn_uxtw): Likewise.
1852 (extrsi5_insn_uxtw_alt): Likewise.
1853
1854 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1855
1856 * doc/tm.texi: Regenerate.
1857 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
1858 (TARGET_INVALID_RETURN_TYPE): Remove.
1859 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
1860 TARGET_INVALID_RETURN_TYPE.
1861 * target.def (invalid_parameter_type): Remove.
1862 (invalid_return_type): Remove.
1863
1864 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1865
1866 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
1867 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
1868 calls from thunk.
1869 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
1870 gimple body.
1871 (preserve_function_body_p): No need to preserve function body
1872 * cif-codes.def (CIF_THUNK): Remove.
1873 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
1874
1875 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1876
1877 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
1878
1879 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1880
1881 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
1882 for thunks.
1883
1884 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1885
1886 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
1887 (inline_small_functions): Do not look for function symbol when
1888 resetting caches.
1889
1890 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
1891
1892 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
1893 of inline thunks
1894
1895 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1896 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1897 Jiong Wang <jiong.wang@arm.com>
1898
1899 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
1900 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
1901 Define __ARM_FP16_ARGS when appropriate.
1902 * config/arm/arm.c (arm_invalid_parameter_type): Remove
1903 declaration.
1904 (arm_invalid_return_type): Likewise.
1905 (TARGET_INVALID_PARAMETER_TYPE): Remove.
1906 (TARGET_INVALID_RETURN_TYPE): Remove.
1907 (aapcs_vfp_sub_candidate): Allow HFmode.
1908 (aapcs_vfp_allocate): Add comment. Support HFmode.
1909 (aapcs_vfp_allocate_return_reg): Likewise.
1910 (struct aapcs_cp_arg_layout): Slightly reword comments for
1911 is_return_candidate and allocate_return_reg.
1912 (output_mov_vfp): Update assert.
1913 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
1914 condition.
1915 (arm_invalid_parameter_type): Remove.
1916 (amr_invalid_return_type): Remove.
1917 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
1918 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
1919 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
1920
1921 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
1922
1923 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
1924 * config/aarch64/arch64-protos.h
1925 (aarch64_legitimize_reload_address): Remove.
1926 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
1927 Remove.
1928
1929 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
1930
1931 * configure.ac: Add ACX_NONCANONICAL_HOST.
1932 * configure: Regenerate.
1933 * Makefile.in: Set host_noncanonical.
1934
1935 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
1936
1937 PR target/71097
1938 * config/i386/i386.md (*movtf_internal): Before register allocation,
1939 do not allow FP constants for CM_MEDIUM memory model, allow only
1940 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
1941 (*movxf_internal): Ditto.
1942 (*movdf_internal): Ditto.
1943 (*movsf_internal): Ditto.
1944
1945 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
1946
1947 PR rtl-optimization/67483
1948 * combine.c (make_compound_operation): Don't call extract_left_shift
1949 with negative shift amounts.
1950
1951 2016-05-13 Jakub Jelinek <jakub@redhat.com>
1952
1953 PR bootstrap/71071
1954 * fold-const.c (fold_checksum_tree): Allow modification
1955 of TYPE_ALIAS_SET during folding.
1956
1957 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
1958 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
1959 (ix86_split_to_parts): Likewise. Fix up formatting.
1960
1961 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
1962
1963 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
1964 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
1965 printf format.
1966
1967 2016-05-13 Nathan Sidwell <nathan@acm.org>
1968
1969 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
1970 (nvptx_name_replacement): Delete.
1971 (write_fn_proto, write_fn_proto_from_insn,
1972 nvptx_output_call_insn): Remove nvptx_name_replacement call.
1973 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
1974 * langhooks.c (add_builtin_funcction_common): Call
1975 targetm.mangle_decl_assembler_name.
1976
1977 * config/nvptx/nvptx.c (write_fn_proto): Handle
1978 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
1979
1980 2016-05-13 Martin Liska <mliska@suse.cz>
1981
1982 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
1983 and PRIu64 in printf format.
1984
1985 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1986
1987 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
1988 comment.
1989
1990 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1991
1992 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1993 Change --param max-completely-peeled-times to
1994 --param max-completely-peel-times in dump file printing.
1995
1996 2016-05-13 Richard Biener <rguenther@suse.de>
1997
1998 PR tree-optimization/42587
1999 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
2000 (find_bswap_or_nop_1): Likewise.
2001 (bswap_replace): Likewise.
2002
2003 2016-05-13 Martin Liska <mliska@suse.cz>
2004
2005 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
2006 Initialize a variable with default value.
2007
2008 2016-05-13 Martin Liska <mliska@suse.cz>
2009
2010 * doc/invoke.texi: Enhance explanation of error recovery
2011 of sanitizers.
2012
2013 2016-05-13 Martin Liska <mliska@suse.cz>
2014
2015 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
2016 (struct cost_pair): Change inv_expr_id (int) to inv_expr
2017 (iv_inv_expr_ent *).
2018 (struct iv_inv_expr_ent): Comment struct fields.
2019 (sort_iv_inv_expr_ent): New function.
2020 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
2021 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
2022 a hash_map between iv_inv_expr_ent and number of usages.
2023 (niter_for_exit): Fix coding style.
2024 (tree_ssa_iv_optimize_init): Use renamed variable.
2025 (determine_base_object): Fix coding style.
2026 (alloc_iv): Likewise.
2027 (find_interesting_uses_outside): Likewise.
2028 (add_candidate_1): Likewise.
2029 (add_standard_iv_candidates): Likewise.
2030 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
2031 (prepare_decl_rtl): Fix coding style.
2032 (get_address_cost): Likewise.
2033 (get_shiftadd_cost): Likewise.
2034 (force_expr_to_var_cost): Likewise.
2035 (compare_aff_trees): Likewise.
2036 (get_expr_id): Restructure the function.
2037 (get_loop_invariant_expr_id): Renamed to
2038 get_loop_invariant_expr.
2039 (get_computation_cost_at): Replace usage of inv_expr_id with
2040 inv_expr.
2041 (get_computation_cost): Likewise.
2042 (determine_group_iv_cost_generic): Likewise.
2043 (determine_group_iv_cost_address): Likewise.
2044 (iv_period): Fix coding style.
2045 (iv_elimination_compare_lt): Likewise.
2046 (may_eliminate_iv): Likewise.
2047 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
2048 inv_expr.
2049 (determine_group_iv_costs): Dump invariant expressions.
2050 (iv_ca_recount_cost): Use the newly added hash_map.
2051 (iv_ca_set_remove_invariants): Fix coding style.
2052 (iv_ca_set_add_invariants): Fix coding style.
2053 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
2054 invariants.
2055 (iv_ca_set_cp): Likewise.
2056 (iv_ca_new): Initialize the newly added hash_map and remove
2057 initialization of fields.
2058 (iv_ca_free): Delete the hash_map.
2059 (iv_ca_dump): Dump invariant expressions.
2060 (iv_ca_extend): Fix coding style.
2061 (try_add_cand_for): Likewise.
2062 (create_new_ivs): Dump information about # of avg iterations and
2063 # of used invariant expressions.
2064 (rewrite_use_compare): Fix coding style.
2065 (free_loop_data): Set default value for max_inv_expr_id.
2066
2067 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
2068
2069 * cse.c (rest_of_handle_cse): Use cleanup_cfg
2070 returned value cse_cfg_altered computation.
2071 (rest_of_handle_cse2): Likewise.
2072 (rest_of_handle_cse_after_global_opts): Likewise.
2073
2074 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2075
2076 PR target/53440
2077 * config/arm/arm.c (arm32_output_mi_thunk): New.
2078 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
2079 to split Thumb1 vs TARGET_32BIT functionality.
2080 (arm_thumb1_mi_thunk): New.
2081
2082 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2083
2084 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
2085 to true.
2086
2087 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2088
2089 PR target/71080
2090 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
2091
2092 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
2093
2094 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
2095 (expand_builtin_trap): Emit a regular call.
2096 (set_builtin_user_assembler_name): Remove obsolete cases.
2097 * dse.c (scan_insn): Adjust.
2098 * except.c: Include calls.h.
2099 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
2100 emit a regular call to setjmp.
2101 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
2102 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
2103 (emit_block_move_via_libcall): Delete.
2104 (block_move_fn): Delete.
2105 (init_block_move_fn): Likewise.
2106 (emit_block_move_libcall_fn): Likewise.
2107 (emit_block_op_via_libcall): New function.
2108 (set_storage_via_libcall): Tidy up and use memset builtin.
2109 (block_clear_fn): Delete.
2110 (init_block_clear_fn): Likewise.
2111 (clear_storage_libcall_fn): Likewise.
2112 (expand_assignment): Call emit_block_move_via_libcall.
2113 Do not include gt-expr.h.
2114 * expr.h (emit_block_op_via_libcall): Declare.
2115 (emit_block_copy_via_libcall): New inline function.
2116 (emit_block_move_via_libcall): Likewise.
2117 (emit_block_comp_via_libcall): Likewise.
2118 (block_clear_fn): Delete.
2119 (init_block_move_fn): Likewise.
2120 (init_block_clear_fn): Likewise.
2121 (emit_block_move_via_libcall): Likewise.
2122 (set_storage_via_libcall): Add default parameter value.
2123 * libfuncs.h (enum libfunc_index): Remove obsolete values.
2124 (abort_libfunc): Delete.
2125 (memcpy_libfunc): Likewise.
2126 (memmove_libfunc): Likewise.
2127 (memcmp_libfunc): Likewise.
2128 (memset_libfunc): Likewise.
2129 (setbits_libfunc): Likewise.
2130 (setjmp_libfunc): Likewise.
2131 (longjmp_libfunc): Likewise.
2132 (profile_function_entry_libfunc): Likewise.
2133 (profile_function_exit_libfunc): Likewise.
2134 (gcov_flush_libfunc): Likewise.
2135 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
2136 and DECL_VISIBILITY on the declaration.
2137 (init_optabs): Do not initialize obsolete libfuncs.
2138 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
2139 * tree-core.h (ECF_RET1): Define.
2140 (ECF_TM_PURE): Adjust.
2141 (ECF_TM_BUILTIN): Likewise.
2142 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
2143 (build_common_builtin_nodes): Initialize abort builtin.
2144 Add ECF_RET1 on memcpy, memmove and memset builtins.
2145 Pass final flags for alloca and alloca_with_align builtins.
2146 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
2147 obsolete builtins.
2148 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
2149 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
2150 set_storage_via_libcall and call emit_block_copy_via_libcall.
2151
2152 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
2153
2154 * config/i386/i386.md (*call_got_x32): Change operand 0 to
2155 DImode before it is passed to ix86_output_call_operand.
2156 (*call_value_got_x32): Ditto for operand 1.
2157
2158 2016-05-12 Jiong Wang <jiong.wang@arm.com>
2159
2160 PR rtl-optimization/70904
2161 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
2162 reload for wide mode.
2163
2164 2016-05-12 Marek Polacek <polacek@redhat.com>
2165
2166 PR c/70756
2167 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
2168 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
2169 * langhooks.h (incomplete_type_error): Likewise.
2170 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
2171 parameter, pass it down to incomplete_type_error.
2172 * tree.h (size_in_bytes): New inline overload.
2173 (size_in_bytes_loc): Renamed from size_in_bytes.
2174
2175 2016-05-12 Richard Biener <rguenther@suse.de>
2176
2177 PR tree-optimization/71059
2178 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
2179 nary before looking up or entering the expression into the VN
2180 hashes.
2181 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
2182 Make sure to re-use NARYs without result as inserted by
2183 phi-translation.
2184
2185 2016-05-12 Richard Biener <rguenther@suse.de>
2186
2187 PR tree-optimization/71062
2188 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
2189 field.
2190 * tree-ssa-structalias.c (set_uids_in_ptset): Set
2191 vars_contains_restrict if the var is a restrict tag.
2192 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
2193 do not disambiguate pointers against it.
2194 (dump_points_to_solution): Re-structure and adjust for new
2195 vars_contains_restrict flag.
2196 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
2197
2198 2016-05-12 Martin Liska <mliska@suse.cz>
2199
2200 * doc/invoke.texi: Explain connection between
2201 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
2202
2203 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
2204
2205 PR tree-optimization/71006
2206 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
2207 consider COND_EXPR as a mask producer.
2208
2209 2016-05-12 Marek Polacek <polacek@redhat.com>
2210
2211 PR driver/71063
2212 * opts.c (common_handle_option): Detect missing argument for --help^.
2213
2214 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2215
2216 PR target/70830
2217 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
2218 when popping the PC and within an interrupt handler routine.
2219 Add missing tab to output of "ldmfd".
2220 (output_return_instruction): Output LDMFD with SP update rather
2221 than POP when returning from interrupt handler.
2222
2223 2016-05-12 Jakub Jelinek <jakub@redhat.com>
2224
2225 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
2226 TARGET_64BIT && TARGET_AVX512DQ.
2227 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
2228 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
2229 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
2230 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
2231 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
2232 (*vec_extractv4si_zext): Add avx512dq alternative.
2233 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
2234 use v instead of x constraint in other alternatives where possible.
2235
2236 * config/i386/sse.md (sse2_loadld): Use v instead of x
2237 constraint in alternatives 0,1,4.
2238
2239 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
2240 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
2241 v constraints instead of x and <pinsr_evex_isa> isa attribute.
2242
2243 PR target/71019
2244 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
2245 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
2246 is not emitted unless TARGET_AVX512BW.
2247 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
2248 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
2249 for the result operand.
2250
2251 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
2252 constraint instead of x in avx alternatives. Use maybe_evex instead
2253 of vex prefix.
2254
2255 * config/i386/constraints.md (Yv): New constraint.
2256 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
2257 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
2258 * config/i386/i386.md (avx512fvecmode): New mode attr.
2259 (*pushtf): Use v constraint instead of x.
2260 (*movtf_internal): Likewise. For TARGET_AVX512VL and
2261 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
2262 (*absneg<mode>2): Use Yv constraint instead of x constraint.
2263 (*absnegtf2_sse): Likewise.
2264 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
2265 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
2266 avx512f alternatives.
2267 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
2268
2269 2016-05-12 Richard Biener <rguenther@suse.de>
2270
2271 PR tree-optimization/71060
2272 * tree-data-ref.c (initialize_data_dependence_relation): Do not
2273 require exact match of DR_BASE_OBJECT but only matching address and
2274 type.
2275
2276 2016-05-12 Richard Biener <rguenther@suse.de>
2277
2278 PR tree-optimization/70986
2279 * cfganal.c: Include cfgloop.h.
2280 (dfs_find_deadend): Prefer to take edges exiting loops.
2281
2282 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2283
2284 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
2285 compile and run time.
2286
2287 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
2288
2289 PR c/43651
2290 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
2291
2292 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
2293
2294 * config/i386/i386.c (legitimize_pic_address): Use
2295 copy_to_suggested_reg instead of gen_movsi.
2296
2297 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
2298
2299 * config/rs6000/predicates.md (quad_memory_operand): Move most of
2300 the code into quad_address_p and call it to share code with
2301 vsx_quad_dform_memory_operand.
2302 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
2303 d-form support.
2304 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
2305 bit instead of being a separate word. Split -mpower9-dform into
2306 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
2307 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
2308 for the register class supporting 128-bit quad word memory offsets.
2309 (mode_supports_vsx_dform_quad): Helper function to return if the
2310 register class uses quad word memory offsets.
2311 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
2312 (rs6000_debug_reg_global): Always print if we are using LRA or not.
2313 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
2314 instructions are enabled, set up the appropriate addr_masks for
2315 128-bit types.
2316 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
2317 -mpower9-dform-scalar, instead of -mpower9-dform.
2318 (rs6000_option_override_internal): Split -mpower9-dform into two
2319 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
2320 -mpower9-dform switch sets or clears both. If we are not using
2321 the LRA register allocator, do not enable -mpower9-dform-vector by
2322 default. If we are using LRA, enable -mpower9-dform-vector and
2323 -mvsx-timode if it is appropriate. Issue a warning if either
2324 -mpower9-dform-vector or -mvsx-timode are explicitly used without
2325 enabling LRA.
2326 (quad_address_offset_p): New helper function to return if the
2327 offset is legal for quad word memory instructions.
2328 (quad_address_p): New function to determin if GPR or vector
2329 register quad word memory addresses are legal.
2330 (mem_operand_gpr): Validate quad word address offsets.
2331 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
2332 d-form (register + offset) instructions.
2333 (offsettable_ok_by_alignment): Likewise.
2334 (rs6000_legitimate_offset_address_p): Likewise.
2335 (legitimate_lo_sum_address_p): Likewise.
2336 (rs6000_legitimize_address): Likewise.
2337 (rs6000_legitimize_reload_address): Add more debug statements for
2338 -mdebug=addr.
2339 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
2340 d-form instructions.
2341 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
2342 d-form instructions. Distinguish different cases in debug
2343 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
2344 d-form instructions.
2345 (rs6000_preferred_reload_class): Likewise.
2346 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
2347 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
2348 of the ISA 2.06 indexed memory instructions.
2349 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
2350 use them to save/restore the saved vector registers instead of
2351 using Altivec instructions.
2352 (rs6000_emit_epilogue): Likewise.
2353 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
2354 (rs6000_opt_masks): Split -mpower9-dform into
2355 -mpower9-dform-scalar and -mpower9-dform-vector.
2356 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
2357 was not selected.
2358 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
2359 ISA 3.0 vector indexed memory instructions, and fold the code into
2360 the normal mov<mode> patterns.
2361 (p9_vecstore_<mode>): Likewise.
2362 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
2363 instructions.
2364 (vsx_movti_64bit): Likewise.
2365 (vsx_movti_32bit): Likewise.
2366 * config/rs6000/constraints.md (wO constraint): New constraint for
2367 ISA 3.0 vector d-form support.
2368 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
2369 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
2370 include -mpower9-dform-vector until we switch over to LRA.
2371 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
2372 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
2373 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
2374 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
2375 for -mpower9-dform and -mlra.
2376 * doc/md.texi (wO constraint): Document wO constraint.
2377
2378 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
2379
2380 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
2381 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
2382 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
2383 Move handling of non-insn arguments inline into the sole user:
2384 (output_trans_func): ...here.
2385 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
2386 in emitted function prototype.
2387 (output_internal_insn_latency_func): Ditto. Simplify.
2388 (output_internal_maximal_insn_latency_func): Ditto. Delete
2389 always-unused argument.
2390 (output_insn_latency_func): Ditto.
2391 (output_maximal_insn_latency_func): Ditto.
2392
2393 2016-05-11 Richard Biener <rguenther@suse.de>
2394
2395 PR tree-optimization/71055
2396 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
2397 sth with precision not equal to access size verify we don't chop
2398 off bits.
2399
2400 2016-05-11 Richard Biener <rguenther@suse.de>
2401
2402 PR debug/71057
2403 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
2404 (dwarf2out_finish): Move retry_incomplete_types call ...
2405 (dwarf2out_early_finish): ... here.
2406
2407 2016-05-11 Richard Biener <rguenther@suse.de>
2408
2409 PR middle-end/71002
2410 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
2411 if the langhook insists on it.
2412 * fold-const.c (make_bit_field_ref): Add arg for the original
2413 reference and preserve its alias-set.
2414 (decode_field_reference): Take exp by reference and adjust it
2415 to the original memory reference.
2416 (optimize_bit_field_compare): Adjust callers.
2417 (fold_truth_andor_1): Likewise.
2418 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
2419
2420 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
2421
2422 PR middle-end/70807
2423 * cfgrtl.h (delete_insn_and_edges): Now return bool.
2424 * cfgrtl.c (delete_insn_and_edges): Likewise.
2425 * config/i386/i386.c (convert_scalars_to_vector): Remove
2426 redundant code.
2427 * cse.c (cse_insn): Compute cse_cfg_altered.
2428 (delete_trivially_dead_insns): Likewise.
2429 (cse_cc_succs): Likewise.
2430 (rest_of_handle_cse): Free dominance info if required.
2431 (rest_of_handle_cse2): Likewise.
2432 (rest_of_handle_cse_after_global_opts): Likewise.
2433
2434 2016-05-11 Alan Modra <amodra@gmail.com>
2435
2436 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
2437 abi_v4_pass_in_fpr): New functions.
2438 (rs6000_function_arg_boundary): Exclude complex IBM long double
2439 from 64-bit alignment when ABI_V4.
2440 (rs6000_function_arg, rs6000_function_arg_advance_1,
2441 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
2442
2443 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
2444
2445 PR rtl-optimization/71028
2446 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
2447 jump with just a return in the fallthrough block if the branch
2448 block contains just a return as well.
2449
2450 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
2451
2452 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
2453 * match.pd ((X & Y) ^ Y): ... this.
2454 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
2455 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
2456
2457 2016-05-10 David Malcolm <dmalcolm@redhat.com>
2458
2459 * read-md.c (require_char_ws): New function.
2460 (read_string): Simplify using require_char_ws.
2461 (handle_constants): Likewise.
2462 (handle_enum): Likewise.
2463 (handle_file): Likewise.
2464 * read-md.h (require_char_ws): New declaration.
2465 * read-rtl.c (read_conditions): Simplify using require_char_ws.
2466 (read_mapping): Likewise.
2467 (read_rtx_code): Likewise.
2468 (read_nested_rtx): Likewise.
2469
2470 2016-05-10 James Norris <jnorris@codesourcery.com>
2471
2472 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
2473 if offloading is enabled and -fopenacc or -fopenmp is specified.
2474 (CRTOFFLOADEND): Likewise.
2475 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
2476 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
2477
2478 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
2479
2480 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
2481 gotoff_operand code paths. Use copy_to_suggested_regs and
2482 expand_simple_binop where appropriate. Cleanup.
2483
2484 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
2485
2486 PR target/70799
2487 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
2488 integer constants.
2489 (dimode_scalar_chain::vector_const_cost): New.
2490 (dimode_scalar_chain::compute_convert_gain): Handle constants.
2491 (dimode_scalar_chain::convert_op): Likewise.
2492 (dimode_scalar_chain::convert_insn): Likewise.
2493
2494 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
2495
2496 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
2497 unary operation, not a binary one.
2498
2499 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
2500
2501 PR middle-end/70877
2502 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
2503 calls with type casted fndecl.
2504
2505 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
2506
2507 PR tree-optimization/70786
2508 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
2509 * calls.c (initialize_argument_information): Bind bounds
2510 with corresponding args passed by reference.
2511
2512 2016-05-10 Jakub Jelinek <jakub@redhat.com>
2513
2514 PR target/70927
2515 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
2516 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
2517 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
2518 accordingly.
2519
2520 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2521
2522 PR target/70963
2523 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
2524 code for a zero scale factor.
2525 (vsx_xvcvdpuxds_scale): Likewise.
2526
2527 2016-05-10 David Malcolm <dmalcolm@redhat.com>
2528
2529 * diagnostic-show-locus.c (layout::layout): Call show_ruler
2530 if show_ruler_p was set on the context.
2531 (layout::show_ruler): New method.
2532 * diagnostic.h (struct diagnostic_context): Add field
2533 "show_ruler_p".
2534
2535 2016-05-10 Richard Biener <rguenther@suse.de>
2536
2537 PR tree-optimization/71039
2538 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
2539 (chk_uses): New function.
2540 (propagate_with_phi): Verify we can safely replicate the lhs of an
2541 aggregate assignment on all incoming edges.
2542
2543 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
2544
2545 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
2546 Forward declare.
2547 (rx_atomic_sequence): New class.
2548 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
2549 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
2550 non-inline.
2551 (rx_atomic_sequence::rx_atomic_sequence,
2552 rx_atomic_sequence::~rx_atomic_sequence): New functions.
2553 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
2554 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
2555 CTRLREG_INTB): New constants.
2556 (FETCHOP): New code iterator.
2557 (fethcop_name, fetchop_name2): New iterator code attributes.
2558 (QIHI): New mode iterator.
2559 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
2560 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
2561 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
2562
2563 2016-05-10 Martin Liska <mliska@suse.cz>
2564
2565 * tree-inline.c (remap_dependence_clique): Do not remap
2566 debugging statements.
2567
2568 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2569
2570 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
2571 ("*fixuns_truncdfdi2_z13")
2572 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
2573 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
2574 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
2575
2576 2016-05-10 Richard Biener <rguenther@suse.de>
2577
2578 PR tree-optimization/70497
2579 PR tree-optimization/28367
2580 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
2581 split out from ...
2582 (visit_reference_op_load): ... here.
2583 (vn_reference_lookup_3): Use it to handle subreg-like accesses
2584 with simplified BIT_FIELD_REFs.
2585 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
2586 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
2587 correctly.
2588
2589 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
2590
2591 * dwarf2out.c (add_abstract_origin_attribute): Adjust
2592 documentation comment. For BLOCK nodes, add a
2593 DW_AT_abstract_origin attribute that points to the DIE generated
2594 for the origin BLOCK.
2595 (gen_lexical_block_die): Call add_abstract_origin_attribute for
2596 blocks from inlined functions.
2597
2598 2016-05-10 Alan Modra <amodra@gmail.com>
2599
2600 PR target/70947
2601 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
2602 regrename modifying insns saving lr before __morestack call.
2603 * config/rs6000/rs6000.md (split_stack_return): Similarly for
2604 insns restoring lr after __morestack call.
2605
2606 2016-05-09 Jakub Jelinek <jakub@redhat.com>
2607
2608 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
2609 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
2610 expanders.
2611 * config/i386/sse.md (vec_interleave_high<mode>,
2612 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
2613 <avx512>_vpermt2var<mode>3_maskz): Likewise.
2614
2615 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
2616
2617 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
2618 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
2619 parallel reassociation for power8 and forward.
2620
2621 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
2622
2623 * config/i386/i386.md (absneg splitters with general regs): Use
2624 general_reg_operand predicate.
2625 (btsq peephole2): Use x86_64_immediate_operand to check if new
2626 value is suitable for immediate operand. Generate emitted insn
2627 using RTL expressions.
2628 (btcq peephole2): Ditto.
2629 (btrq peephole2): Ditto. Generate correct immediate operand
2630 for AND masking.
2631
2632 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
2633
2634 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
2635 bitpos.
2636
2637 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
2638
2639 * tree-affine.c (wide_int_constant_multiple_p): Add missing
2640 pointer dereference.
2641
2642 2016-05-09 Richard Biener <rguenther@suse.de>
2643
2644 PR tree-optimization/70985
2645 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
2646 op0 isn't a gimple register.
2647
2648 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
2649
2650 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
2651 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
2652 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
2653 (i6400_fpu_mult): New cpu units.
2654 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
2655 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
2656 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
2657 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
2658 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
2659 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
2660 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
2661 (i6400_msa_long_float4, i6400_msa_long_float5)
2662 (i6400_msa_long_float8, i6400_msa_fdiv_df)
2663 (i6400_msa_fdiv_sf): New reservations.
2664 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
2665 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
2666 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
2667 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
2668 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
2669 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
2670 (msa_short_cmp, msa_short_float2, msa_short_logic3)
2671 (msa_short_store4, msa_long_load, msa_short_store)
2672 (msa_long_logic, msa_long_float2, msa_long_float4)
2673 (msa_long_float5, msa_long_float8, msa_long_mult)
2674 (msa_long_fdiv, msa_long_div): New reservations.
2675
2676 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
2677 Sameera Deshpande <sameera.deshpande@imgtec.com>
2678 Matthew Fortune <matthew.fortune@imgtec.com>
2679 Graham Stott <graham.stott@imgtec.com>
2680 Chao-ying Fu <chao-ying.fu@imgtec.com>
2681
2682 * config.gcc: Add MSA header file for mips*-*-* target.
2683 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
2684 (Ubv8i, Urv8): New constraints.
2685 * config/mips/mips-ftypes.def: Add function types for MSA
2686 builtins.
2687 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
2688 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
2689 * config/mips/mips-msa.md: New file.
2690 * config/mips/mips-protos.h
2691 (mips_split_128bit_const_insns): New prototype.
2692 (mips_msa_idiv_insns): Likewise.
2693 (mips_split_128bit_move): Likewise.
2694 (mips_split_128bit_move_p): Likewise.
2695 (mips_split_msa_copy_d): Likewise.
2696 (mips_split_msa_insert_d): Likewise.
2697 (mips_split_msa_fill_d): Likewise.
2698 (mips_expand_msa_branch): Likewise.
2699 (mips_const_vector_same_val_p): Likewise.
2700 (mips_const_vector_same_bytes_p): Likewise.
2701 (mips_const_vector_same_int_p): Likewise.
2702 (mips_const_vector_shuffle_set_p): Likewise.
2703 (mips_const_vector_bitimm_set_p): Likewise.
2704 (mips_const_vector_bitimm_clr_p): Likewise.
2705 (mips_msa_vec_parallel_const_half): Likewise.
2706 (mips_msa_output_division): Likewise.
2707 (mips_ldst_scaled_shift): Likewise.
2708 (mips_expand_vec_cond_expr): Likewise.
2709 * config/mips/mips.c (enum mips_builtin_type): Add
2710 MIPS_BUILTIN_MSA_TEST_BRANCH.
2711 (mips_gen_const_int_vector_shuffle): New prototype.
2712 (mips_const_vector_bitimm_set_p): New function.
2713 (mips_const_vector_bitimm_clr_p): Likewise.
2714 (mips_const_vector_same_val_p): Likewise.
2715 (mips_const_vector_same_bytes_p): Likewise.
2716 (mips_const_vector_same_int_p): Likewise.
2717 (mips_const_vector_shuffle_set_p): Likewise.
2718 (mips_symbol_insns): Forbid loading symbols via immediate for
2719 MSA.
2720 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
2721 stores.
2722 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
2723 MSA.
2724 (mips_lx_address_p): Add support load indexed address for MSA.
2725 (mips_address_insns): Add calculation of instructions needed for
2726 stores and loads for MSA.
2727 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
2728 CONST_VECTOR for MSA and let it fall through.
2729 (mips_ldst_scaled_shift): New function.
2730 (mips_subword_at_byte): Likewise.
2731 (mips_msa_idiv_insns): Likewise.
2732 (mips_legitimize_move): Validate MSA moves.
2733 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
2734 calculation of costs for MSA division.
2735 (mips_split_move_p): Check if MSA moves need splitting.
2736 (mips_split_move): Split MSA moves if necessary.
2737 (mips_split_128bit_move_p): New function.
2738 (mips_split_128bit_move): Likewise.
2739 (mips_split_msa_copy_d): Likewise.
2740 (mips_split_msa_insert_d): Likewise.
2741 (mips_split_msa_fill_d): Likewise.
2742 (mips_output_move): Handle MSA moves.
2743 (mips_expand_msa_branch): New function.
2744 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
2745 Reinstate 'y' modifier.
2746 (mips_file_start): Add MSA .gnu_attribute.
2747 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
2748 FPRs.
2749 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
2750 (mips_class_max_nregs): Add register size for MSA supported mode.
2751 (mips_cannot_change_mode_class): Allow conversion between MSA
2752 vector modes and TImode.
2753 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
2754 instruction.
2755 (mips_secondary_reload_class): Force MSA loads/stores via memory.
2756 (mips_preferred_simd_mode): Add preffered modes for MSA.
2757 (mips_vector_mode_supported_p): Add MSA supported modes.
2758 (mips_autovectorize_vector_sizes): New function.
2759 (mips_msa_output_division): Likewise.
2760 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
2761 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
2762 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
2763 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
2764 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
2765 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
2766 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
2767 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
2768 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
2769 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
2770 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
2771 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
2772 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
2773 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
2774 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
2775 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
2776 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
2777 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
2778 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
2779 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
2780 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
2781 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
2782 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
2783 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
2784 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
2785 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
2786 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
2787 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
2788 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
2789 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
2790 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
2791 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
2792 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
2793 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
2794 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
2795 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
2796 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
2797 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
2798 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
2799 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
2800 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
2801 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
2802 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
2803 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
2804 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
2805 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
2806 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
2807 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
2808 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
2809 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
2810 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
2811 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
2812 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
2813 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
2814 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
2815 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
2816 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
2817 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
2818 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
2819 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
2820 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
2821 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
2822 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
2823 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
2824 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
2825 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
2826 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
2827 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
2828 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
2829 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
2830 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
2831 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
2832 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
2833 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
2834 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
2835 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
2836 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
2837 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
2838 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
2839 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
2840 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
2841 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
2842 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
2843 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
2844 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
2845 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
2846 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
2847 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
2848 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
2849 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
2850 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
2851 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
2852 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
2853 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
2854 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
2855 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
2856 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
2857 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
2858 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
2859 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
2860 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
2861 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
2862 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
2863 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
2864 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
2865 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
2866 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
2867 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
2868 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
2869 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
2870 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
2871 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
2872 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
2873 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
2874 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
2875 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
2876 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
2877 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
2878 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
2879 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
2880 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
2881 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
2882 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
2883 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
2884 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
2885 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
2886 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
2887 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
2888 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
2889 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
2890 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
2891 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
2892 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
2893 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
2894 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
2895 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
2896 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
2897 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
2898 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
2899 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
2900 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
2901 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
2902 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
2903 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
2904 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
2905 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
2906 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
2907 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
2908 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
2909 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
2910 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
2911 move_v builtins.
2912 (mips_get_builtin_decl_index): New array.
2913 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
2914 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
2915 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
2916 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
2917 (mips_init_builtins): Initialize mips_get_builtin_decl_index
2918 array.
2919 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
2920 hook.
2921 (mips_expand_builtin_insn): Prepare operands for
2922 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
2923 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
2924 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
2925 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
2926 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
2927 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
2928 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
2929 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
2930 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
2931 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
2932 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
2933 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
2934 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
2935 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
2936 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
2937 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
2938 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
2939 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
2940 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
2941 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
2942 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
2943 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
2944 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
2945 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
2946 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
2947 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
2948 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
2949 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
2950 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
2951 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
2952 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
2953 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
2954 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
2955 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
2956 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
2957 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
2958 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
2959 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
2960 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
2961 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
2962 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
2963 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
2964 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
2965 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
2966 These are set implicitly and an error is reported if overridden.
2967 (mips_expand_builtin_msa_test_branch): New function.
2968 (mips_expand_msa_shuffle): Likewise.
2969 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
2970 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
2971 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
2972 (mips_expand_vec_unpack): Add support for MSA.
2973 (mips_expand_vector_init): Likewise.
2974 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
2975 instead of const0_rtx.
2976 (mips_msa_vec_parallel_const_half): New function.
2977 (mips_gen_const_int_vector): Likewise.
2978 (mips_gen_const_int_vector_shuffle): Likewise.
2979 (mips_expand_msa_cmp): Likewise.
2980 (mips_expand_vec_cond_expr): Likewise.
2981 * config/mips/mips.h
2982 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
2983 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
2984 specified.
2985 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
2986 (ISA_HAS_MSA): New macro.
2987 (UNITS_PER_MSA_REG): Likewise.
2988 (BITS_PER_MSA_REG): Likewise.
2989 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
2990 (MSA_REG_FIRST): New macro.
2991 (MSA_REG_LAST): Likewise.
2992 (MSA_REG_NUM): Likewise.
2993 (MSA_REG_P): Likewise.
2994 (MSA_REG_RTX_P): Likewise.
2995 (MSA_SUPPORTED_MODE_P): Likewise.
2996 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
2997 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
2998 * config/mips/mips.md: Include mips-msa.md.
2999 (alu_type): Add simd_add.
3000 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
3001 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
3002 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
3003 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
3004 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
3005 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
3006 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
3007 simd_move, simd_load, simd_store. Choose "multi" for moves
3008 for "qword_mode".
3009 (qword_mode): New attribute.
3010 (insn_count): Add instruction count for quad moves.
3011 Increase the count for MIPS SIMD division.
3012 (UNITMODE): Add UNITMODEs for vector types.
3013 (addsub): New code iterator.
3014 * config/mips/mips.opt (mmsa): New option.
3015 * config/mips/msa.h: New file.
3016 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
3017 specified.
3018 * config/mips/mti-linux.h: Likewise.
3019 * config/mips/predicates.md
3020 (const_msa_branch_operand): New constraint.
3021 (const_uimm3_operand): Likewise.
3022 (const_uimm4_operand): Likewise.
3023 (const_uimm5_operand): Likewise.
3024 (const_uimm8_operand): Likewise.
3025 (const_imm5_operand): Likewise.
3026 (aq10b_operand): Likewise.
3027 (aq10h_operand): Likewise.
3028 (aq10w_operand): Likewise.
3029 (aq10d_operand): Likewise.
3030 (const_m1_operand): Likewise.
3031 (reg_or_m1_operand): Likewise.
3032 (const_exp_2_operand): Likewise.
3033 (const_exp_4_operand): Likewise.
3034 (const_exp_8_operand): Likewise.
3035 (const_exp_16_operand): Likewise.
3036 (const_vector_same_val_operand): Likewise.
3037 (const_vector_same_simm5_operand): Likewise.
3038 (const_vector_same_uimm5_operand): Likewise.
3039 (const_vector_same_uimm6_operand): Likewise.
3040 (const_vector_same_uimm8_operand): Likewise.
3041 (par_const_vector_shf_set_operand): Likewise.
3042 (reg_or_vector_same_val_operand): Likewise.
3043 (reg_or_vector_same_simm5_operand): Likewise.
3044 (reg_or_vector_same_uimm6_operand): Likewise.
3045 * doc/extend.texi (MIPS SIMD Architecture Functions): New
3046 section.
3047 * doc/invoke.texi (-mmsa): Document new option.
3048
3049 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3050
3051 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
3052 * configure: Regenerate.
3053 * config.in: Regenerate.
3054 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
3055 on -fvtable-verify.
3056 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
3057 (ENDFILE_VTV_SPEC): Define.
3058
3059 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
3060
3061 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
3062 registers in all interrupt handlers if necessary.
3063 (rl78_option_override): Add warning.
3064 (MUST_SAVE_MDUC_REGISTERS): New macro.
3065 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
3066 * config/rl78/rl78.c (check_mduc_usage): New function.
3067 (mduc_regs): New structure to hold MDUC register data.
3068 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
3069 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
3070 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
3071 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
3072 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
3073 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
3074
3075 2016-05-09 Bin Cheng <bin.cheng@arm.com>
3076
3077 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
3078 (tree-ssa-loop-niter.h): Ditto.
3079 (idx_within_array_bound, ref_within_array_bound): New functions.
3080 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
3081 Factor out check on writable base object to ...
3082 (base_object_writable): ... here.
3083
3084 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3085
3086 * config/arm/arm.md (probe_stack): Add modes to set source
3087 and destination.
3088
3089 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
3090
3091 * regrename.c (base_reg_class_for_rename): New static function.
3092 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
3093
3094 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
3095
3096 * cgraph.c (thunk_adjust): Export.
3097 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
3098 * cgraphunit.c (thunk_adjust): Export.
3099 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
3100 thunks.
3101 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
3102 inlinable.
3103 * tree-inline.c (expand_call_inline): Expand thunks inline.
3104
3105 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
3106
3107 PR target/70998
3108 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
3109 (*sse2_vd_cvtss2sd): Ditto.
3110 * config/i386/i386.md
3111 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
3112 Generate *sse2_vd_cvtsd2ss pattern.
3113 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
3114 Generate *sse2_vd_cvtss2sd pattern.
3115
3116 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
3117
3118 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
3119 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
3120 users.
3121
3122 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
3123
3124 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
3125 * config/sh/sh.c: Define and declare variables on first use throughout
3126 the file.
3127 (current_function_interrupt): Change to bool type.
3128 (frame_insn): Rename to emit_frame_insn and update users.
3129 (push_regs): Use bool for 'interrupt_handler' argument.
3130 (save_schedule_s): Remove.
3131 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
3132 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
3133 targetm.asm_out.unaligned_op.di.
3134 (gen_far_branch): Remove redundant forward declaration.
3135 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
3136 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
3137 (sh_set_return_address, sh_function_ok_for_sibcall,
3138 scavenge_reg): Update comments.
3139 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
3140 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
3141 (sh_attr_renesas_p): Remove unnecessary parentheses.
3142 (branch_dest): Simplify.
3143 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
3144 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
3145 (CUMULATIVE_ARGS): Change macro to typedef.
3146 (current_function_interrupt): Change to bool type.
3147 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
3148 Surround with __cplusplus ifdef.
3149 (sh_compare_op0, sh_compare_op1): Remove.
3150 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
3151
3152 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
3153
3154 * config/arm/arm.md: (arch): Add neon.
3155 (arch_enabled): Return yes for arch neon when TARGET_NEON.
3156 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
3157 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
3158 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
3159 attributes for alt renumbering. Mark alt 3 as non-predicable.
3160 (thumb2_movdf_vfp): Likewise.
3161
3162 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
3163
3164 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
3165 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
3166 (*andqi_1): Add preferred_for_speed attribute to disparage
3167 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
3168 (*<code>qi_1): Ditto.
3169 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
3170 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
3171 (*ashlqi3_1): Ditto.
3172 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
3173 Add preferred_for_size attribute to disparage alternative 0 and
3174 preferred_for_speed attribute to disparage alternative 1 for
3175 TARGET_PARTIAL_REG_STALL targets.
3176
3177 2016-05-07 Tom de Vries <tom@codesourcery.com>
3178
3179 PR tree-optimization/70956
3180 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
3181 def.
3182
3183 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
3184
3185 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
3186 * config/sh/sh.c (sh_cbranch_distance): Implement it.
3187 * config/sh/sh.md (branch_zero): Remove define_attr.
3188 (define_delay): Disable delay slot if branch distance is one insn.
3189
3190 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
3191
3192 * config/i386/i386.md (LEAMODE): New mode attribute.
3193 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
3194 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
3195 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
3196 operand 2 predicate.
3197 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
3198 (*lea<mode>_general_3): Ditto.
3199 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
3200
3201 2016-05-06 Jakub Jelinek <jakub@redhat.com>
3202
3203 * genmddump.c (main): Convert argv from char ** to const char **.
3204
3205 2016-05-06 David Malcolm <dmalcolm@redhat.com>
3206
3207 * coretypes.h (OVERRIDE): New macro.
3208 (FINAL): New macro.
3209
3210 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
3211
3212 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
3213 allow coalescing if the types are compatible.
3214
3215 2016-05-06 David Malcolm <dmalcolm@redhat.com>
3216
3217 * pass_manager.h (pass_manager::register_pass_name): New method.
3218 (pass_manager::get_pass_by_name): New method.
3219 (pass_manager::create_pass_tab): New method.
3220 (pass_manager::m_name_to_pass_map): New field.
3221 * passes.c (name_to_pass_map): Delete global in favor of field
3222 "m_name_to_pass_map" of pass_manager.
3223 (register_pass_name): Rename from a function to...
3224 (pass_manager::register_pass_name): ...this method, updating
3225 for renaming of global "name_to_pass_map" to field
3226 "m_name_to_pass_map".
3227 (create_pass_tab): Rename from a function to...
3228 (pass_manager::create_pass_tab): ...this method, updating
3229 for renaming of global "name_to_pass_map" to field.
3230 (get_pass_by_name): Rename from a function to...
3231 (pass_manager::get_pass_by_name): ...this method.
3232 (enable_disable_pass): Convert use of get_pass_by_name to
3233 a method call, locating the pass_manager singleton.
3234
3235 2016-05-06 David Malcolm <dmalcolm@redhat.com>
3236
3237 * genattr-common.c (main): Convert argv from char ** to const char **.
3238 * genattr.c (main): Likewise.
3239 * genattrtab.c (main): Likewise.
3240 * genautomata.c (initiate_automaton_gen): Likewise.
3241 (main): Likewise.
3242 * gencodes.c (main): Likewise.
3243 * genconditions.c (main): Likewise.
3244 * genconfig.c (main): Likewise.
3245 * genconstants.c (main): Likewise.
3246 * genemit.c (main): Likewise.
3247 * genenums.c (main): Likewise.
3248 * genextract.c (main): Likewise.
3249 * genflags.c (main): Likewise.
3250 * genmddeps.c (main): Likewise.
3251 * genopinit.c (main): Likewise.
3252 * genoutput.c (main): Likewise.
3253 * genpeep.c (main): Likewise.
3254 * genpreds.c (main): Likewise.
3255 * genrecog.c (main): Likewise.
3256 * gensupport.c (init_rtx_reader_args_cb): Likewise.
3257 (init_rtx_reader_args): Likewise.
3258 * gensupport.h (init_rtx_reader_args_cb): Likewise.
3259 (init_rtx_reader_args): Likewise.
3260 * gentarget-def.c (main): Likewise.
3261 * read-md.c (read_md_files): Likewise.
3262 * read-md.h (read_md_files): Likewise.
3263
3264 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
3265
3266 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
3267 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
3268 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
3269 Remove unused predicate.
3270 (register_and_not_fp_reg_operand): Ditto.
3271
3272 2016-05-06 Martin Liska <mliska@suse.cz>
3273
3274 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
3275 instead of vec as the vector is local to the function.
3276
3277 2016-05-06 Jakub Jelinek <jakub@redhat.com>
3278
3279 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
3280 avx512bw alternative.
3281
3282 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
3283 before the ashr<mode>3 pattern.
3284
3285 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
3286 v instead of x in vex or maybe_vex alternatives, use
3287 maybe_evex instead of vex in prefix.
3288
3289 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
3290 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
3291 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
3292 in vex or maybe_vex alternatives, use maybe_evex instead of vex
3293 in prefix.
3294
3295 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
3296 v instead of x in vex or maybe_vex alternatives, use
3297 maybe_evex instead of vex in prefix.
3298
3299 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
3300 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
3301 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
3302 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
3303 alternatives, use maybe_evex instead of vex in prefix.
3304
3305 * config/i386/sse.md (vec_interleave_lowv4sf,
3306 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
3307 v instead of x in vex or maybe_vex alternatives, use
3308 maybe_evex instead of vex in prefix.
3309
3310 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
3311 v instead of x in vex or maybe_vex alternatives, use
3312 maybe_evex instead of vex in prefix.
3313
3314 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
3315 v constraint instead of x.
3316
3317 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
3318
3319 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
3320 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
3321 equality first.
3322
3323 2016-05-06 Richard Biener <rguenther@suse.de>
3324
3325 PR tree-optimization/70948
3326 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3327 Properly clobber all fields of va_list for __builtin_va_start.
3328
3329 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
3330
3331 PR debug/70935
3332 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
3333 loop latch destination.
3334
3335 2016-05-06 Martin Liska <mliska@suse.cz>
3336
3337 * tree-ssa-uninit.c: Apply manual changes
3338 to the GNU coding style.
3339 (prune_uninit_phi_opnds): Rename from
3340 prune_uninit_phi_opnds_in_unrealizable_paths.
3341
3342 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3343
3344 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
3345 mspace): Remove deprecated options.
3346 * doc/invoke.texi (SH options): Remove -mspace.
3347
3348 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3349
3350 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
3351
3352 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3353
3354 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
3355 corresponding combine split pattern.
3356
3357 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3358
3359 PR target/58219
3360 * config/sh/predicates.md (long_displacement_mem_operand): New.
3361 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
3362 Add movi20, movi20s alternatives. Adjust length attribute for
3363 alternatives.
3364 (movsi_ie): Allow for any FPU. Adjust length attribute for
3365 alternatives.
3366 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
3367 attribute for alternatives.
3368 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
3369 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
3370 length attribute for alternatives.
3371
3372 2016-05-06 Richard Biener <rguenther@suse.de>
3373
3374 PR tree-optimization/70960
3375 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
3376
3377 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3378
3379 PR target/52933
3380 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
3381 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
3382
3383 2016-05-06 Marek Polacek <polacek@redhat.com>
3384
3385 PR sanitizer/70875
3386 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
3387
3388 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
3389
3390 PR target/54089
3391 * config/sh/sh.md (*rotcr): Add another variant.
3392
3393 2016-05-06 Richard Biener <rguenther@suse.de>
3394
3395 PR middle-end/70931
3396 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
3397
3398 2016-05-06 Richard Biener <rguenther@suse.de>
3399
3400 PR middle-end/70941
3401 * fold-const.c (split_tree): Always convert to the original type
3402 before negating.
3403
3404 2016-05-06 Richard Biener <rguenther@suse.de>
3405
3406 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
3407 (fwprop_addr): Likewise.
3408
3409 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
3410
3411 PR target/70873
3412 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
3413 New prototype.
3414 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
3415 * config/i386/i386.md (push mem splitter): Use find_constant_src in
3416 the splitter condition.
3417 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
3418 the splitter condition.
3419 (FP float_extend load splitter): Ditto.
3420
3421 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
3422
3423 * config/i386/i386.md (peehole2 patterns): Change true_regnum
3424 to REGNO in all peephole2 patterns.
3425 (post-reload splitters): Change true_regnum to REGNO in
3426 post-reload splitters.
3427 (zero_extend splitters): Use general_reg_operand and
3428 nonimmediate_gr_operand predicates.
3429
3430 2016-05-05 Jakub Jelinek <jakub@redhat.com>
3431
3432 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
3433 v constraint instead of x.
3434
3435 2016-05-05 Alan Modra <amodra@gmail.com>
3436
3437 PR target/68662
3438 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
3439 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
3440 TARGET_NO_FP_IN_TOC for -mrelocatable.
3441 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
3442 TARGET_RELOCATABLE test.
3443 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
3444 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3445 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
3446 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
3447 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3448 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
3449 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
3450 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
3451 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
3452 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
3453 Likewise.
3454 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
3455 (rs6000_stack_info): Likewise.
3456 (rs6000_elf_asm_out_constructor): Likewise.
3457 (rs6000_elf_asm_out_destructor): Likewise.
3458 (rs6000_elf_declare_function_name): Likewise.
3459 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
3460 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
3461 Don't define.
3462
3463 2016-05-05 Alan Modra <amodra@gmail.com>
3464
3465 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
3466
3467 2016-05-05 Alan Modra <amodra@gmail.com>
3468
3469 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
3470 out-of-line gpr restore for one or two regs if that would add
3471 a save of lr.
3472
3473 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
3474
3475 PR target/70873
3476 * config/i386/i386.md
3477 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
3478 Change to post-epilogue_completed late splitter. Use sse_reg_operand
3479 as operand 0 predicate.
3480 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
3481 Ditto.
3482 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
3483 Ditto. Emit the pattern using RTX.
3484
3485 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
3486 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
3487 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
3488 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
3489 Ditto.
3490 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
3491 sse_reg_operand as operand 0 predicate.
3492
3493 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
3494 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
3495 instead of gen_rtx_REG.
3496 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
3497 Ditto.
3498
3499 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
3500
3501 * function.c (emit_use_return_register_into_block): Delete.
3502 (gen_return_pattern): Delete.
3503 (emit_return_into_block): Delete.
3504 (active_insn_between): Delete.
3505 (convert_jumps_to_returns): Delete.
3506 (emit_return_for_exit): Delete.
3507 (thread_prologue_and_epilogue_insns): Delete all code dealing with
3508 simple_return for shrink-wrapped blocks.
3509 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
3510 end of blocks that need one.
3511 (get_unconverted_simple_return): Delete.
3512 (convert_to_simple_return): Delete.
3513 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
3514 (convert_to_simple_return): Ditto.
3515
3516 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
3517
3518 * cfgcleanup.c (bb_is_just_return): New function.
3519 (try_optimize_cfg): Simplify jumps to return, branches to return,
3520 and branches around return.
3521
3522 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
3523
3524 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
3525 branch to a return.
3526
3527 2016-05-04 Jakub Jelinek <jakub@redhat.com>
3528
3529 PR c++/70906
3530 PR c++/70933
3531 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
3532 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
3533 assert flags & OEP_HASH_CHECK, instead of asserting it
3534 never happens. Handle TARGET_EXPR.
3535 * fold-const.c (operand_equal_p): For hash verification,
3536 or in OEP_HASH_CHECK into flags.
3537
3538 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
3539
3540 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
3541 comment.
3542 (compute_samebase_partition_bases): Fix typo.
3543
3544 2016-05-04 Jakub Jelinek <jakub@redhat.com>
3545
3546 * config/i386/sse.md (vec_interleave_highv8sf,
3547 vec_interleave_lowv8sf, vec_interleave_highv4df,
3548 vec_interleave_lowv4df): Remove constraints from expanders.
3549
3550 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
3551
3552 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
3553
3554 * tree-inline.c (expand_call_inline): Fix path dealing with
3555 making lhs of call statement undefined.
3556
3557 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
3558
3559 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
3560 Check availability on NODE, too.
3561 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
3562 (cgraph_node::call_for_symbol_and_aliases): Likewise.
3563 (varpool_node::call_for_symbol_and_aliase): Likewise.
3564 * ipa-pure-const.c (add_new_function): Analyze all bodies.
3565 (propagate_pure_const): Propagate across interposable functions, too.
3566 (skip_function_for_local_pure_const): Do not skip interposable bodies
3567 with aliases.
3568 (pass_local_pure_const::execute): Update.
3569
3570 2016-05-04 Marek Polacek <polacek@redhat.com>
3571
3572 * doc/invoke.texi: Document -Wdangling-else.
3573
3574 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
3575
3576 * config.gcc: Error out when conflicting multilib is detected. Do not
3577 loop over multilibs since no combination is legal.
3578
3579 2016-05-04 Alan Modra <amodra@gmail.com>
3580
3581 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
3582 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
3583 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
3584 Align .toc.
3585
3586 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
3587
3588 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
3589 Clean up p5600 comments.
3590
3591 2016-05-04 Richard Biener <rguenther@suse.de>
3592
3593 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
3594 constructor simplifications.
3595 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
3596
3597 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
3598
3599 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
3600 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
3601 result.set_rtx is null instead of aborting.
3602 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
3603 Always enable.
3604 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
3605 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
3606 *mov<mode>_store_postinc): New patterns.
3607
3608 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
3609
3610 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
3611 as commutative. Check both conversions are NOP.
3612 ((A & B) OP (C & B)): Remove.
3613
3614 2016-05-04 Alan Modra <amodra@gmail.com>
3615
3616 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
3617
3618 2016-05-04 Alan Modra <amodra@gmail.com>
3619
3620 PR target/70866
3621 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
3622 when cr2,3,4 are all fixed regs.
3623
3624 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
3625
3626 PR rtl-optimization/57193
3627 * opts.c (default_options_table): Revert OPT_frename_registers change.
3628 * doc/invoke.texi (-frename-registers, -O2): Likewise.
3629
3630 2016-05-03 Martin Sebor <msebor@redhat.com>
3631
3632 PR c++/66561
3633 * builtins.c (fold_builtin_FILE): New function.
3634 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
3635 (fold_builtin_0): Call them.
3636 * gimplify.c (gimplify_call_expr): Remove the handling of
3637 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
3638
3639 PR c++/66561
3640 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
3641 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
3642 constants.
3643
3644 PR c++/66639
3645 * doc/extend.texi (Function Names as Strings): Update __func__,
3646 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
3647 constants.
3648
3649 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3650 Richard Biener <rguenther@suse.de>
3651
3652 PR tree-optimization/70916
3653 * tree-if-conv.c: Include cfganal.h.
3654 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
3655 and remove_fake_exit_edges around the optimization pass.
3656
3657 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
3658
3659 * cgraph.c (symbol_table::create_edge): Set inline_failed.
3660 (cgraph_edge::make_direct): Likewise.
3661 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
3662 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
3663 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
3664 (CIF_THUNK): New code.
3665 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
3666 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
3667 (compute_inline_parameters): Set inline_failed for thunks.
3668 (inline_analyze_function): Cleanup.
3669 * ipa-inline.c (can_inline_edge_p): Do not deal with
3670 call_stmt_cannot_inline_p.
3671 (can_early_inline_edge_p): Likewise.
3672 (early_inliner): Initialize inline_failed.
3673 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
3674
3675 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
3676
3677 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
3678 from nonimm_ssenomem_operand.
3679 (nonimm_ssenomem_operand): New predicate.
3680 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
3681 as operand 0 predicate.
3682 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
3683 Disable unsupported alternatives using "enabled" attribute.
3684 Use register_ssemem_operand as operand 0 predicate.
3685 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
3686
3687 2016-05-03 Marek Polacek <polacek@redhat.com>
3688
3689 PR c/70859
3690 * input.c (expansion_point_location): New function.
3691 * input.h (expansion_point_location): Declare.
3692
3693 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
3694
3695 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
3696 occurence with frame_offset_ ones.
3697
3698 2016-05-03 Alan Modra <amodra@gmail.com>
3699
3700 PR rtl-optimization/70890
3701 * ira.c (combine_and_move_insns): When moving def_insn, remove
3702 equivs on use_insn.
3703
3704 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
3705
3706 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
3707 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
3708 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
3709 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
3710
3711 2016-05-03 Alan Modra <amodra@gmail.com>
3712
3713 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
3714 for SAVE_MULTIPLE/STORE_MULTIPLE.
3715
3716 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3717
3718 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
3719 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
3720
3721 2016-05-03 Richard Biener <rguenther@suse.de>
3722
3723 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
3724 default true.
3725 (gimplify_arg): Likewise.
3726 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
3727 re-writing the result to a decl if required.
3728 (internal_get_tmp_var): Add allow_ssa parameter
3729 and override into_ssa with it.
3730 (get_formal_tmp_var): Adjust.
3731 (get_initialized_tmp_var): Add allow_ssa parameter.
3732 (gimplify_arg): Add allow_ssa parameter and avoid generating
3733 SSA names for the result false.
3734 (gimplify_call_expr): If the call may return twice do not
3735 gimplify parameters into SSA.
3736 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
3737 (gimplify_modify_expr): Adjust assert. For noreturn calls
3738 with a SSA name LHS adjust its def.
3739 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
3740 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
3741 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
3742 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
3743 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
3744 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
3745 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
3746 (optimize_target_teams): Do not allow SSA names for clause operands.
3747 (gimplify_expr): Likewise for where we mark the result addressable.
3748 * passes.def (pass_init_datastructures): Remove.
3749 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
3750 (rewrite_stmt): Likewise.
3751 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
3752 (replace_locals_op): Replace SSA names.
3753 (copy_gimple_seq_and_replace_locals): Init src_cfun.
3754 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
3755 * cgraph.c (release_function_body): Free CFG annotations only
3756 when we have a CFG. Simplify.
3757 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
3758 force_gimple_operand instead of get_initialized_tmp_var.
3759 * tree-pass.h (make_pass_init_datastructures): Remove.
3760 * tree-ssa.c (execute_init_datastructures): Remove.
3761 (pass_data_init_datastructures): Likewise.
3762 (class pass_init_datastructures): Likewise.
3763 (make_pass_init_datastructures): Likewise.
3764 * omp-low.c (create_omp_child_function): Init SSA data structures.
3765 (grid_expand_target_grid_body): Likewise.
3766 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
3767 name before adding it to names_to_release.
3768 (remove_bb): Always release SSA defs.
3769 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
3770 before dereferencing it.
3771 * cgraphunit.c (init_lowered_empty_function): Always
3772 int SSA data structures.
3773 * tree-ssanames.c (release_defs): Remove assert that we are in
3774 SSA form.
3775 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
3776
3777 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3778 Uros Bizjak <ubizjak@gmail.com>
3779
3780 PR rtl-optimization/70467
3781 * config/i386/predicates.md (x86_64_hilo_int_operand,
3782 x86_64_hilo_general_operand): New predicates.
3783 * config/i386/constraints.md (Wd): New constraint.
3784 * config/i386/i386.md (mode attr di): Use Wd instead of e.
3785 (general_hilo_operand): New mode attr.
3786 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
3787 instead of <general_operand>.
3788 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
3789 x86_64_hilo_general_operand instead of <general_operand>.
3790
3791 2016-05-03 Jakub Jelinek <jakub@redhat.com>
3792
3793 PR tree-optimization/70916
3794 * tree-if-conv.c (constant_or_ssa_name): Removed.
3795 (fold_build_cond_expr): Use is_gimple_val instead of
3796 constant_or_ssa_name.
3797
3798 PR tree-optimization/70916
3799 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
3800 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
3801
3802 PR target/49244
3803 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
3804 (optimize_atomic_bit_test_and): New function.
3805 (pass_fold_builtins::execute): Use it.
3806 * optabs.def (atomic_bit_test_and_set_optab,
3807 atomic_bit_test_and_complement_optab,
3808 atomic_bit_test_and_reset_optab): New optabs.
3809 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
3810 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
3811 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
3812 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
3813 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
3814 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
3815 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
3816 * doc/md.texi (atomic_bit_test_and_set@var{mode},
3817 atomic_bit_test_and_complement@var{mode},
3818 atomic_bit_test_and_reset@var{mode}): Document.
3819 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
3820 atomic_bit_test_and_complement<mode>,
3821 atomic_bit_test_and_reset<mode>): New expanders.
3822 (atomic_bit_test_and_set<mode>_1,
3823 atomic_bit_test_and_complement<mode>_1,
3824 atomic_bit_test_and_reset<mode>_1): New insns.
3825
3826 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
3827
3828 PR rtl-optimization/70687
3829 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
3830 instead of unsigned HOST_WIDE_INT.
3831
3832 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
3833
3834 PR rtl-optimization/44281
3835 * hard-reg-set.h (struct target_hard_regs): New field
3836 x_fixed_nonglobal_reg_set.
3837 (fixed_nonglobal_reg_set): New macro.
3838 * reginfo.c (init_reg_sets_1): Initialize it.
3839 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
3840 of fixed_reg_set.
3841 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
3842
3843 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3844
3845 PR tree-optimization/56541
3846 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
3847 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
3848 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
3849 (any_complicated_phi): new static variable.
3850 (aggressive_if_conv): delete.
3851 (if_convertible_phi_p): support phis with more than two arguments.
3852 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
3853 critical pred edges.
3854 (ifcvt_split_critical_edges): support phis with more than two
3855 arguments by checking new parameter. only split critical edges
3856 if needed.
3857 (tree_if_conversion): handle simd pragma marked loop using new
3858 local variable aggressive_if_conv. check any_complicated_phi.
3859
3860 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3861
3862 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
3863 before using it.
3864
3865 2016-05-03 Bin Cheng <bin.cheng@arm.com>
3866
3867 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
3868 cbase.
3869
3870 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
3871
3872 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
3873 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
3874 define_insn_and_split.
3875 (mulsi3_i): New define_insn_and_split.
3876 (mulsi3_call): Convert to define_insn.
3877 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
3878 Remove constraints.
3879
3880 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
3881
3882 * machmode.h (mode_complex): Add support to give the complex mode
3883 for a given mode.
3884 (GET_MODE_COMPLEX_MODE): Likewise.
3885 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
3886 stored by build_complex_type and gfc_build_complex_type instead of
3887 trying to figure out the appropriate mode based on the size. Raise
3888 an assertion error, if the type was not set.
3889 * genmodes.c (struct mode_data): Add field for the complex type of
3890 the given type.
3891 (blank_mode): Likewise.
3892 (make_complex_modes): Remember the complex mode created in the
3893 base type.
3894 (emit_mode_complex): Write out the mode_complex array to map a
3895 type mode to the complex version.
3896 (emit_insn_modes_c): Likewise.
3897 * tree.c (build_complex_type): Set the complex type to use before
3898 calling layout_type.
3899 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
3900 support for __float128 complex datatypes.
3901 (rs6000_hard_regno_mode_ok): Likewise.
3902 (rs6000_setup_reg_addr_masks): Likewise.
3903 (rs6000_complex_function_value): Likewise.
3904 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
3905 __float128 and __ibm128 complex.
3906 (FLOAT128_IBM_P): Likewise.
3907 (ALTIVEC_ARG_MAX_RETURN): Likewise.
3908 * doc/extend.texi (Additional Floating Types): Document that
3909 -mfloat128 must be used to enable __float128. Document complex
3910 __float128 and __ibm128 support.
3911
3912 2016-05-02 Jakub Jelinek <jakub@redhat.com>
3913
3914 PR target/49244
3915 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
3916 char/short arguments promoted to int because of promote_prototypes.
3917
3918 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
3919
3920 * config/i386/predicates.md (register_ssemem_operand): New predicate.
3921 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
3922 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
3923 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
3924 alternatives using "enabled" attribute. Use register_ssemem_operand
3925 as operand 1 predicate.
3926 (*cmpi<unord>xf_i387): Split XFmode pattern from
3927 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
3928 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
3929 *absneg<mode>2_i387. Disable unsupported alternatives using
3930 "enabled" attribute.
3931 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
3932
3933 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
3934
3935 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
3936 marker.
3937 (oacc_loop_process): Check mask for loop termination.
3938
3939 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
3940
3941 * cif-code.def (CIF_THUNK): Add.
3942 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
3943 accidental change.
3944
3945 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
3946
3947 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
3948 (dump_inline_summary): Dump it.
3949 (fp_expression_p): New predicate.
3950 (estimate_function_body_sizes): Use it.
3951 (inline_merge_summary): Merge fp_expressions.
3952 (inline_read_section): Read fp_expressions.
3953 (inline_write_summary): Write fp_expressions.
3954 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
3955 codegen boundary if either caller or callee is !fp_expressions.
3956 * ipa-inline.h (inline_summary): Add fp_expressions.
3957 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
3958 to fp_expressions be sure the fp generation flags are updated.
3959
3960 2016-05-02 Jakub Jelinek <jakub@redhat.com>
3961
3962 PR rtl-optimization/70467
3963 * cse.c (cse_insn): Handle no-op MEM moves after folding.
3964
3965 PR rtl-optimization/70467
3966 * ipa-pure-const.c (check_call): Handle internal calls even in
3967 ipa mode like in local mode.
3968
3969 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
3970
3971 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
3972
3973 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
3974
3975 * match.pd (X u< X, X u> X): New transformations.
3976
3977 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
3978
3979 * flag-types.h (enum warn_strict_overflow_code): Move ...
3980 * coretypes.h: ... here.
3981 * fold-const.h (fold_overflow_warning): Declare.
3982 * fold-const.c (fold_overflow_warning): Make non-static.
3983 (fold_comparison): Move the transformation of X +- C1 CMP C2
3984 into X CMP C2 -+ C1 ...
3985 * match.pd: ... here.
3986 * gimple-fold.c (fold_stmt_1): Protect with
3987 fold_defer_overflow_warnings.
3988
3989 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
3990
3991 * omp-low.c (struct oacc_loop): Add 'inner' field.
3992 (new_oacc_loop_raw): Initialize it to zero.
3993 (oacc_loop_fixed_partitions): Initialize it.
3994 (oacc_loop_auto_partitions): Partition outermost loop to outermost
3995 available partitioning.
3996
3997 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
3998
3999 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
4000 register_operand.
4001 (umulsidi3): Likewise.
4002 (indirect_jump): Fix jump instruction assembly patterns.
4003
4004 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
4005
4006 PR target/70860
4007 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
4008 (nvptx_function_value): Assert non-NULL cfun.
4009
4010 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
4011
4012 PR rtl-optimization/70886
4013 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
4014
4015 * cselib.h (rtx_equal_for_cselib_1): Declare.
4016 (rtx_equal_for_cselib_p: New inline function.
4017 * cselib.c (rtx_equal_for_cselib_p): Delete.
4018 (rtx_equal_for_cselib_1): Make public.
4019
4020 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
4021
4022 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
4023 (register_mixssei387nonimm_operand): Remove predicate.
4024 * config/i386/i386.md (*fop_<mode>_comm): Merge from
4025 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
4026 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
4027 for TARGET_MIX_SSE_I387 alternatives.
4028 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
4029 Disable unsupported alternatives using "enabled" attribute. Use
4030 nonimm_ssenomem_operand as operand 1 predicate. Also check
4031 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
4032
4033 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
4034
4035 * tree.c (cst_and_fits_in_hwi): Simplify.
4036
4037 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
4038
4039 * tree.h (wi::to_wide): New function.
4040 * expr.c (expand_expr_real_1): Use wi::to_wide.
4041 * fold-const.c (int_const_binop_1): Likewise.
4042 (extract_muldiv_1): Likewise.
4043
4044 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
4045
4046 * wide-int.h: Update offset_int and widest_int documentation.
4047 (WI_SIGNED_SHIFT_RESULT): New macro.
4048 (wi::binary_shift): Define signed_shift_result_type for
4049 shifts on offset_int- and widest_int-like types.
4050 (generic_wide_int): Support <<= and >>= if << and >> are supported.
4051 * tree.h (int_bit_position): Use shift operators instead of wi::
4052 shifts.
4053 * alias.c (adjust_offset_for_component_ref): Likewise.
4054 * expr.c (get_inner_reference): Likewise.
4055 * fold-const.c (fold_comparison): Likewise.
4056 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
4057 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
4058 * tree-dfa.c (get_ref_base_and_extent): Likewise.
4059 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
4060 (stmt_kills_ref_p): Likewise.
4061 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
4062 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
4063 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
4064 (ao_ref_init_from_vn_reference): Likewise.
4065
4066 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
4067
4068 * wide-int.h: Update offset_int and widest_int documentation.
4069 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
4070 (wi::binary_traits): Allow ordered comparisons between offset_int and
4071 offset_int, between widest_int and widest_int, and between either
4072 of these types and basic C types.
4073 (operator <, <=, >, >=): Define for the same combinations.
4074 * tree.h (tree_int_cst_lt): Use comparison operators instead
4075 of wi:: comparisons.
4076 (tree_int_cst_le): Likewise.
4077 * gimple-fold.c (fold_array_ctor_reference): Likewise.
4078 (fold_nonarray_ctor_reference): Likewise.
4079 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
4080 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
4081 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
4082 * tree-sra.c (completely_scalarize): Likewise.
4083 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
4084 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
4085 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
4086 (check_for_binary_op_overflow): Likewise.
4087 (search_for_addr_array): Likewise.
4088 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
4089
4090 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
4091
4092 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
4093 (arc_save_restore): Likewise.
4094 (arc_dwarf_register_span): Likewise.
4095 (arc_output_pic_addr_const): Initialize suffix variable.
4096
4097 2016-05-02 Martin Liska <mliska@suse.cz>
4098
4099 * symbol-summary.h (function_summary::function_summary):
4100 Remove checking assert for all cgraph nodes.
4101 (function_summary::get): Check summary_uid.
4102 (symtab_insertion): Check summary_uid.
4103
4104 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
4105
4106 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
4107 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
4108 bmaskn instruction.
4109 (arc_dwarf_register_span): Remove enum keyword.
4110 (compact_memory_operand_p): New function.
4111 * config/arc/arc.h (reg_class): Add code density register classes.
4112 (REG_CLASS_NAMES): Likewise.
4113 (REG_CLASS_CONTENTS): Likewise.
4114 * config/arc/arc.md (*movqi_insn): Add code density instructions.
4115 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
4116 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
4117 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
4118 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
4119 constraints.
4120 (h, Rcd, Rsd, Rzd): New register constraints.
4121 (T): Use compact_memory_operand_p function.
4122 * config/arc/predicates.md (compact_load_memory_operand): Remove.
4123
4124 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
4125
4126 * config/sh/sh.md (*negnegt, *movtt): Remove.
4127
4128 2016-05-02 Marek Polacek <polacek@redhat.com>
4129 Tom de Vries <tom@codesourcery.com>
4130
4131 PR tree-optimization/70700
4132 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
4133 bigger than FIRST_REF_NODE.
4134
4135 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
4136
4137 PR target/52898
4138 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
4139 TARGET_CMPEQDI_T.
4140 (prepare_cbranch_operands): Don't use scratch register. Assume that
4141 function is used when pseudos can be created.
4142 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
4143 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
4144 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
4145 define_expand. Allow it only when pseudos can be created.
4146 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
4147
4148 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
4149
4150 * config/i386/constraints.md (BC): Only allow -1 operands.
4151 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
4152 Add "enabled" attribute. Update XI mode attribute calculation.
4153 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
4154 (*movoi_internal_avx): Update XI mode attribute calculation.
4155 (*movti_internal): Ditto.
4156
4157 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
4158
4159 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
4160 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
4161
4162 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
4163
4164 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
4165 statement on instruction code. Remove trailing spaces.
4166 (altivec_expand_stv_builtin): Likewise.
4167
4168 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
4169
4170 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
4171 (TARGET_FPU_DOUBLE): Simplify.
4172 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
4173 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
4174 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
4175 with 'TARGET_FPU_DOUBLE'.
4176 * config/sh/sh.md: Likewise.
4177
4178 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
4179
4180 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
4181 SH_DIV_STR_FOR_SIZE): Remove.
4182 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
4183 SH_DIV_STR_FOR_SIZE): Remove.
4184
4185 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
4186
4187 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
4188 logical_reg_operand): Delete.
4189 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
4190 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
4191 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
4192 match_operand and match_test.
4193 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
4194 variables on their first use. Return bool values.
4195 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
4196 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
4197 arith_reg_operand for input operand. Remove empty constraints.
4198 (xorsi3): Delete.
4199 (*xorsi3_compact): Rename to xorsi3.
4200 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
4201 (*zero_extend<mode>si2_disp_mem): Update comment.
4202 (mov_nop): Delete.
4203
4204 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
4205
4206 * config/sh/t-sh: Remove SH5 support.
4207 * config.gcc: Likewise.
4208 * configure: Likewise.
4209
4210 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4211
4212 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
4213
4214 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
4215
4216 * config/sh/sh.c (register_sh_passes, sh_option_override,
4217 sh_print_operand, prepare_move_operands,
4218 sh_can_follow_jump): Remove TARGET_SH1 checks.
4219 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
4220 PROMOTE_MODE): Likewise.
4221 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
4222 movdi): Likewise.
4223
4224 2016-04-30 Alan Modra <amodra@gmail.com>
4225
4226 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
4227 restoring when fixed_reg_p, but allow out-of-line or stmw save.
4228 Check for user regs later to avoid unnecessary looping over regs.
4229 Merge user reg check with non-saved reg check. Don't force
4230 inline VR restore when static chain used.
4231 (rs6000_frame_related): Omit eh_frame info for user regs when
4232 saving.
4233 (fixed_regs_p): Delete.
4234
4235 2016-04-30 Alan Modra <amodra@gmail.com>
4236
4237 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
4238 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
4239 Update all uses.
4240
4241 2016-04-30 Alan Modra <amodra@gmail.com>
4242
4243 PR target/69645
4244 * config/rs6000/rs6000.c (fixed_reg_p): New function.
4245 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
4246 Update all uses.
4247
4248 2016-04-30 Alan Modra <amodra@gmail.com>
4249
4250 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
4251 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
4252 flag_pic test for Darwin.
4253
4254 2016-04-30 Alan Modra <amodra@gmail.com>
4255
4256 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
4257 throw_calls_crossed.
4258 (REG_FREQ_CALLS_CROSSED): Delete.
4259 (REG_N_THROWING_CALLS_CROSSED): Delete.
4260 * regstat.c (regstat_bb_compute_ri): Don't calculate
4261 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
4262 (dump_reg_info): Don't print call cross frequency.
4263 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
4264 and REG_N_THROWING_CALLS_CROSSED.
4265
4266 2016-04-30 Alan Modra <amodra@gmail.com>
4267
4268 * regs.h (struct reg_info_t): Delete live_length.
4269 (REG_LIVE_LENGTH): Delete macro.
4270 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
4271 local_live, local_processed and local_live_last_luid params.
4272 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
4273 Formatting fixes.
4274 (regstat_compute_ri): Adjust for above. Don't set
4275 REG_LIVE_LENGTH.
4276 (dump_reg_info): Don't print live length.
4277 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
4278 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
4279 Localize loop_depth var.
4280
4281 2016-04-30 Alan Modra <amodra@gmail.com>
4282
4283 * ira.c (enum valid_equiv): New.
4284 (validate_equiv_mem): Return enum.
4285 (update_equiv_mem): Create replacement in more cases.
4286 (add_store_equivs): Update validate_equiv_mem call.
4287
4288 2016-04-30 Alan Modra <amodra@gmail.com>
4289
4290 * ira.c (combine_and_move_insns): Rather than scanning insns,
4291 use DF infrastucture to find use and def insns.
4292
4293 2016-04-30 Alan Modra <amodra@gmail.com>
4294
4295 ira.c (combine_and_move_insns): Move invariant conditions..
4296 (ira.c): ..to here. Call combine_and_move_insns before
4297 add_store_equivs. Call grow_reg_equivs later. Allocate
4298 req_equiv later using max_reg_num() rather than global max_regno.
4299 (contains_replace_regs): Delete.
4300 (add_store_equivs): Remove contains_replace_regs test.
4301
4302 2016-04-30 Alan Modra <amodra@gmail.com>
4303
4304 * ira.c (struct equiv_mem_data): New.
4305 (equiv_mem, equiv_mem_modified): Delete static vars.
4306 (validate_equiv_mem_from_store): Use "data" param to communicate..
4307 (validate_equiv_mem): ..from here.
4308
4309 2016-04-30 Alan Modra <amodra@gmail.com>
4310
4311 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
4312 split out from..
4313 (update_reg_equivs): ..here. Move allocation and freeing of
4314 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
4315 end_alias_analysis to..
4316 (ira): ..here.
4317
4318 2016-04-30 Alan Modra <amodra@gmail.com>
4319
4320 * ira.c (pdx_subregs): Delete.
4321 (struct equivalence): Add pdx_subregs field.
4322 (set_paradoxical_subreg): Remove pdx_subregs param. Update
4323 pdx_subregs access.
4324 (update_equiv_regs): Don't create or free pdx_subregs. Update
4325 pdx_subregs access.
4326
4327 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4328
4329 * config/rs6000/altivec.h: Change definitions of vec_xl and
4330 vec_xst.
4331 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
4332 (LD_ELEMREV_V2DI): New.
4333 (LD_ELEMREV_V4SF): New.
4334 (LD_ELEMREV_V4SI): New.
4335 (LD_ELEMREV_V8HI): New.
4336 (LD_ELEMREV_V16QI): New.
4337 (ST_ELEMREV_V2DF): New.
4338 (ST_ELEMREV_V2DI): New.
4339 (ST_ELEMREV_V4SF): New.
4340 (ST_ELEMREV_V4SI): New.
4341 (ST_ELEMREV_V8HI): New.
4342 (ST_ELEMREV_V16QI): New.
4343 (XL): New.
4344 (XST): New.
4345 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4346 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
4347 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
4348 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
4349 (altivec_expand_builtin): Add handling for
4350 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
4351 (rs6000_invalid_builtin): Add error-checking for
4352 RS6000_BTM_P9_VECTOR.
4353 (altivec_init_builtins): Define builtins used to implement vec_xl
4354 and vec_xst.
4355 (rs6000_builtin_mask_names): Define power9-vector.
4356 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
4357 (RS6000_BTM_P9_VECTOR): Define.
4358 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
4359 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
4360 (vsx_ld_elemrev_v2df): Likewise.
4361 (vsx_ld_elemrev_v4sf): Likewise.
4362 (vsx_ld_elemrev_v4si): Likewise.
4363 (vsx_ld_elemrev_v8hi): Likewise.
4364 (vsx_ld_elemrev_v16qi): Likewise.
4365 (vsx_st_elemrev_v2df): Likewise.
4366 (vsx_st_elemrev_v2di): Likewise.
4367 (vsx_st_elemrev_v4sf): Likewise.
4368 (vsx_st_elemrev_v4si): Likewise.
4369 (vsx_st_elemrev_v8hi): Likewise.
4370 (vsx_st_elemrev_v16qi): Likewise.
4371 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
4372 grammar.
4373
4374 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
4375
4376 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
4377 out into ...
4378 (simplify_control_stmt_condition_1): ... here. Recurse into
4379 BIT_AND_EXPRs and BIT_IOR_EXPRs.
4380
4381 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
4382
4383 PR target/69810
4384 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
4385 (zero_extendqi<mode>2_dot): Revert earlier conversion from
4386 define_insn_and_split to define_insn.
4387 (zero_extendqi<mode>2_dot2): Same.
4388 (extendqi<mode>2_dot): Same.
4389 (extendqi<mode>2_dot2): Same.
4390
4391 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
4392
4393 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
4394 (probe_stack): New expander.
4395 (probe_stack_<mode>): New insn pattern.
4396
4397 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
4398
4399 * config/i386/i386.md
4400 (operations with memory inputs setting flags peephole2):
4401 Remove uneeded REG_P checks. Cleanup pattern generation.
4402
4403 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
4404
4405 * tree-vect-loop.c (vect_transform_loop): Fix
4406 nb_iterations_upper_bound computation for vectorized loop.
4407
4408 2016-04-29 Marek Polacek <polacek@redhat.com>
4409 Jakub Jelinek <jakub@redhat.com>
4410
4411 PR sanitizer/70342
4412 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
4413 TARGET_EXPR_SLOT as a base.
4414
4415 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
4416
4417 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
4418 with 'rCm2' constraints to limit possible immediate size.
4419 (*load_zeroextendqisi_update): Likewise.
4420 (*load_signextendqisi_update): Likewise.
4421 (*loadhi_update): Likewise.
4422 (*load_zeroextendhisi_update): Likewise.
4423 (*load_signextendhisi_update): Likewise.
4424 (*loadsi_update): Likewise.
4425 (*loadsf_update): Likewise.
4426
4427 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
4428
4429 * config/i386/predicates.md (constm1_operand): Fix comparison.
4430
4431 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
4432
4433 * testsuite/gcc.target/arc/ieee_eq.c: New test.
4434
4435 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
4436
4437 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
4438 remaining SH5 related settings.
4439 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
4440 shmedia_prepare_call_address): Delete.
4441 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
4442 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
4443 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
4444 UNSUPPORTED_SH2A): Remove m5 checks.
4445 (sh_divide_strategy_e): Remove SH5 division strategies.
4446 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
4447 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
4448
4449 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
4450
4451 * config/s390/s390.c (s390_rtx_costs): Update documentation.
4452
4453 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4454
4455 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
4456 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
4457 Change lder to ldr.
4458 * config/s390/vector.md ("mov<mode>"): Likewise.
4459
4460 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
4461
4462 * config/s390/constraints.md ("U", "W"): Invoke
4463 s390_mem_constraint with "ZR" and "ZT".
4464 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
4465 addresses when using LRA. Accept also short displacements for S
4466 and T constraints. Do not check for long displacement target for
4467 S and T constraints.
4468 (s390_mem_constraint): Remove handling of U and W constraints.
4469 * config/s390/s390.md (various patterns): Remove the short
4470 displacement constraints (Q and R) if a long displacement
4471 constraint is present. Add longdisp as required CPU capability.
4472 * config/s390/vector.md: Likewise.
4473 * config/s390/vx-builtins.md: Likewise.
4474
4475 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4476
4477 PR target/60040
4478 * reload1.c (reload): Call finish_spills before
4479 restarting reload loop. Skip select_reload_regs
4480 if update_eliminables_and_spill returns true.
4481
4482 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
4483
4484 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
4485 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
4486 (umulhisi3_imm): Update predicates and constraint letters.
4487 (umulhisi3_reg): Declare instruction as commutative.
4488 * config/arc/constraints.md (J12, J16): New constraints.
4489 * config/arc/predicates.md (short_unsigned_const_operand): New
4490 predicate.
4491 (arc_short_operand): Likewise.
4492 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
4493
4494 2016-04-29 Richard Biener <rguenther@suse.de>
4495
4496 PR tree-optimization/13962
4497 PR tree-optimization/65686
4498 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
4499 * tree-ssa-alias.c (ptrs_compare_unequal): New function
4500 using PTA to compare pointers.
4501 * match.pd: Add pattern for pointer equality compare simplification
4502 using ptrs_compare_unequal.
4503
4504 2016-04-29 Richard Biener <rguenther@suse.de>
4505
4506 * stor-layout.c (layout_type): Do not build a pointer-to-element
4507 type for arrays.
4508
4509 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
4510
4511 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
4512 Use SWI mode iterator. Use general_reg_operand predicate.
4513 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
4514 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
4515 predicates.
4516
4517 2016-04-29 Jakub Jelinek <jakub@redhat.com>
4518
4519 PR middle-end/70843
4520 * fold-const.c (operand_equal_p): Don't verify hash value equality
4521 if arg0 == arg1.
4522 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
4523 and OMP_CLAUSE.
4524
4525 2016-04-28 Jakub Jelinek <jakub@redhat.com>
4526
4527 PR target/70858
4528 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
4529 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
4530 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
4531 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
4532 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
4533
4534 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4535
4536 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
4537 to info. Don't initialize separate fields to 0. Clean up
4538 formatting a bit.
4539
4540 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4541
4542 * config/i386/i386.md (peephole2s for operations with memory inputs):
4543 Use SWI mode iterator.
4544 (peephole2s for operations with memory outputs): Ditto.
4545 Do not check for stack checking probe.
4546
4547 (probe_stack): Remove expander.
4548
4549 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4550 Andrew Burgess <andrew.burgess@embecosm.com>
4551
4552 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
4553 operands as 32-bits.
4554
4555 2016-04-28 Jason Merrill <jason@redhat.com>
4556
4557 * gdbinit.in: Skip line-map.h.
4558
4559 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4560 Andrew Burgess <andrew.burgess@embecosm.com>
4561
4562 * config/arc/arc.c (arc_conditional_register_usage): Take
4563 TARGET_RRQ_CLASS into account.
4564 (arc_print_operand): Support printing 'p' and 's' operands.
4565 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
4566 as 0.
4567 (TARGET_RRQ_CLASS): Define.
4568 (IS_POWEROF2_OR_0_P): Define.
4569 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
4570 alternatives.
4571 (*tst_movb): New define_insn.
4572 (*tst): Avoid recognition if it could prevent '*tst_movb'
4573 combination; replace c/CnL with c/Chs alternative.
4574 (*tst_bitfield_tst): New define_insn.
4575 (*tst_bitfield_asr): New define_insn.
4576 (*tst_bitfield): New define_insn.
4577 (andsi3_i): Add Rrq variant.
4578 (extzv): New define_expand.
4579 (insv): New define_expand.
4580 (*insv_i): New define_insn.
4581 (*movb): New define_insn.
4582 (*movb_signed): New define_insn.
4583 (*movb_high): New define_insn.
4584 (*movb_high_signed): New define_insn.
4585 (*movb_high_signed + 1): New define_split pattern.
4586 (*mrgb): New define_insn.
4587 (*mrgb + 1): New define_peephole2 pattern.
4588 (*mrgb + 2): New define_peephole2 pattern.
4589 * config/arc/arc.opt (mbitops): New option for nps400, uses
4590 TARGET_NPS_BITOPS_DEFAULT.
4591 * config/arc/constraints.md (q): Make register class conditional.
4592 (Rrq): New register constraint.
4593 (Chs): New constraint.
4594 (Clo): New constraint.
4595 (Chi): New constraint.
4596 (Cbf): New constraint.
4597 (Cbn): New constraint.
4598 (C18): New constraint.
4599 (Cbi): New constraint.
4600
4601 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4602
4603 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
4604 dst->popcount.
4605 (bitmap_intersection_of_preds): Ditto.
4606 (bitmap_union_of_succs): Ditto.
4607 (bitmap_union_of_preds): Ditto.
4608 * sbitmap.c (do_popcount): Delete.
4609 (BITMAP_DEBUGGING): Delete.
4610 (sbitmap_verify_popcount): Delete.
4611 (sbitmap_alloc): Don't initialize the popcount field.
4612 (sbitmap_alloc_with_popcount): Delete.
4613 (sbitmap_resize): Don't resize the popcount array.
4614 (sbitmap_vector_alloc): Don't initialize the popcount field.
4615 (bitmap_copy): Don't copy the popcount array.
4616 (bitmap_clear): Don't clear the popcount array.
4617 (bitmap_clear): Delete the popcount array handling.
4618 (bitmap_ior_and_compl): Delete the popcount assert.
4619 (bitmap_not): Ditto.
4620 (bitmap_and_compl): Ditto.
4621 (bitmap_and): Delete the popcount array handling.
4622 (bitmap_xor): Ditto.
4623 (bitmap_ior): Ditto.
4624 (bitmap_or_and): Delete the popcount assert.
4625 (bitmap_and_or): Ditto.
4626 (popcount_table): Delete.
4627 (sbitmap_elt_popcount): Delete.
4628 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
4629 (bitmap_set_bit): Delete the popcount assert.
4630 (bitmap_clear_bit): Ditto.
4631 (sbitmap_free): Don't free the popcount array.
4632 (sbitmap_alloc_with_popcount): Delete declaration.
4633 (sbitmap_popcount): Ditto.
4634
4635 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4636 Andrew Burgess <andrew.burgess@embecosm.com>
4637
4638 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
4639 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
4640 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
4641 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
4642 * config/arc/arc.opt (mcmem): New option.
4643 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
4644 supply length for r/m alternative.
4645 (*extendqisi2_ac): Likewise.
4646 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
4647 r/Uex alternative.
4648 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
4649 (movhi_insn): Likewise.
4650 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
4651 (*zero_extendqihi2_i): Add r/Ucm alternative.
4652 (*zero_extendqisi2_ac): Likewise.
4653 (*zero_extendhisi2_i): Likewise.
4654 * config/arc/constraints.md (Uex): New memory constraint.
4655 (Ucm): New define_constraint.
4656 * config/arc/predicates.md (long_immediate_loadstore_operand):
4657 Return 0 for MEM with cmem_address address.
4658 (cmem_address_0): New predicates.
4659 (cmem_address_1): Likewise.
4660 (cmem_address_2): Likewise.
4661 (cmem_address): Likewise.
4662
4663 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4664
4665 * config/rs6000/rs6000.c (machine_function): Rename
4666 insn_chain_scanned_p to spe_insn_chain_scanned_p.
4667 (rs6000_stack_info): Adjust.
4668
4669 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
4670 Andrew Burgess <andrew.burgess@embecosm.com>
4671
4672 * config/arc/constraints.md (Usd): Convert to define_constraint.
4673 (Us<): Likewise.
4674 (Us>): Likewise.
4675
4676 2016-04-28 Jakub Jelinek <jakub@redhat.com>
4677
4678 PR target/70821
4679 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
4680 Add new peephole2 where the first insn is *mov<mode>_or instead of
4681 *mov<mode>_internal.
4682
4683 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
4684
4685 * tracer.c (bb_seen): Make static.
4686
4687 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
4688
4689 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
4690 support, setup defaults.
4691 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
4692 * config/arc/arc.c (arc_init): Add NPS400 support.
4693 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
4694 (TARGET_ARC700): NPS400 is also an ARC700.
4695 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
4696
4697 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
4698
4699 PR target/70668
4700 * config/nds32/nds32.md (casesi): Don't access the operands array
4701 out of bounds.
4702
4703 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4704
4705 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
4706 (or $-1,reg peephole2): Ditto.
4707 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
4708
4709 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
4710
4711 * doc/extend.texi (Common Function Attributes) [optimize]:
4712 Discourage use of the optimize attribute.
4713
4714 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
4715
4716 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
4717 special case builtin.
4718 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
4719 ALTIVEC_BUILTIN_VEC_ADDE.
4720 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
4721 support for ALTIVEC_BUILTIN_VEC_ADDE.
4722 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
4723 for __builtin_vec_adde.
4724
4725 2016-04-28 Jakub Jelinek <jakub@redhat.com>
4726
4727 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
4728 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
4729
4730 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4731
4732 PR testsuite/70595
4733 * doc/sourcebuild.texi (Effective-Target Keywords, Other
4734 attributes): Document cilkplus_runtime.
4735
4736 2016-04-28 Martin Jambor <mjambor@suse.cz>
4737
4738 * tree-cfg.c (verify_expr): Verify that local declarations belong to
4739 this function. Call verify_expr on MEM_REFs and bases of other
4740 handled_components.
4741
4742 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4743
4744 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
4745 for WORD_REGISTER_OPERATIONS to runtime check.
4746
4747 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4748
4749 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
4750
4751 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4752
4753 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
4754 big-endian compilation.
4755 * config/arc/arc.md (addf3): Likewise.
4756 (subdf3): Likewise.
4757 (muldf3): Likewise.
4758
4759 2016-04-28 Richard Biener <rguenther@suse.de>
4760
4761 PR tree-optimization/70840
4762 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
4763 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
4764 Mark x * pow(x,c) -> pow(x,c+1) commutative.
4765 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
4766
4767 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4768
4769 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
4770 and explain why in a comment.
4771
4772 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4773
4774 * config/arc/arc.md (cpu_facility): Add fpx variant.
4775 (subdf3): Prohibit use reverse sub when assist operations option
4776 is enabled.
4777 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
4778 instructions only when FPX is enabled.
4779 * testsuite/gcc.target/arc/trsub.c: New test.
4780
4781 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4782
4783 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
4784 mult_operator when calculating "type" attribute.
4785 (*fop_<mode>_1_i387): Ditto.
4786 (*fop_xf_1_i387): Ditto.
4787 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
4788 Use std::swap to swap operands. Use RTL expressions to generate
4789 converted pattern.
4790
4791 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4792 Joern Rennecke <joern.rennecke@embecosm.com>
4793
4794 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
4795 declaration.
4796 (emit_pic_move): Remove.
4797 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
4798 * config/arc/arc.c (emit_pic_move): Removed.
4799 (TARGET_HAVE_TLS): Define.
4800 (arc_conditional_register_usage): Test for arc_tp_regno.
4801 (arc_print_operand, arc_print_operand_address): Handle TLS
4802 unspecs.
4803 (arc_needs_pcl_p): New function.
4804 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
4805 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
4806 (arc_raw_symbolic_reference_mentioned_p): Likewise.
4807 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
4808 (arc_legitimize_tls_address): Likewise.
4809 (DTPOFF_ZERO_SYM): Define.
4810 (arc_legitimize_pic_address): Make it static, handle TLS cases.
4811 (arc_output_pic_addr_const): Print TLS unspecs.
4812 (prepare_pic_move): New function, replaces emit_pic_move.
4813 (arc_legitimate_constant_p): Handle TLS unspecs.
4814 (arc_legitimate_address_p): Likewise.
4815 (arc_rewrite_small_data_p): Use assert for TLS constants.
4816 (prepare_move_operands): Use prepare_pic_move.
4817 (arc_legitimize_address): Legitimize tls addresses.
4818 (arc_epilogue_uses): Check for arc_tp_regno.
4819 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
4820 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
4821 Define.
4822 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
4823 Likewise.
4824 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
4825 %(arc_tls_extra_start_spec).
4826 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
4827 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
4828 (EH_USES): Define.
4829 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
4830 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
4831 (UNSPEC_TLS_OFF): Add.
4832 (R10_REG): Define.
4833 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
4834 (get_thread_pointersi): New patterns.
4835 * config/arc/arc.opt (mtp-regno): New option.
4836 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
4837 (move_dest_operand): Likewise.
4838 * configure: Regenerate.
4839 * configure.ac: Add arc*-*-* case to test for tls.
4840 * doc/invoke.texi (ARC options): Document mtp-regno.
4841
4842 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
4843
4844 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
4845 the new ARC HS SIMD instructions.
4846 (arc_preferred_simd_mode): New function.
4847 (arc_autovectorize_vector_sizes): Likewise.
4848 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
4849 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
4850 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
4851 (arc_init_builtins): Add new SIMD builtin types.
4852 (arc_split_move): Handle 64 bit vector moves.
4853 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
4854 (TARGET_PLUS_QMACW): Define.
4855 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
4856 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
4857 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
4858 (VSUBADD4H): New builtins.
4859 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
4860 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
4861
4862 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
4863 Matthias Klose <doko@debian.org>
4864
4865 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
4866
4867 2016-04-28 Richard Biener <rguenther@suse.de>
4868
4869 PR middle-end/70777
4870 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
4871 canonicalization.
4872
4873 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
4874
4875 * common/config/sh/sh-common.c: Remove SH5 support.
4876 * config/sh/constraints.md: Likewise.
4877 * config/sh/config/sh/elf.h: Likewise.
4878 * config/sh/linux.h: Likewise.
4879 * config/sh/netbsd-elf.h: Likewise.
4880 * config/sh/predicates.md: Likewise.
4881 * config/sh/sh-c.c: Likewise.
4882 * config/sh/sh-protos.h: Likewise.
4883 * config/sh/sh.c: Likewise.
4884 * config/sh/sh.h: Likewise.
4885 * config/sh/sh.md: Likewise.
4886 * config/sh/sh.opt: Likewise.
4887 * config/sh/sync.md: Likewise.
4888 * config/sh/sh64.h: Delete.
4889 * config/sh/shmedia.h: Likewise.
4890 * config/sh/shmedia.md: Likewise.
4891 * config/sh/sshmedia.h: Likewise.
4892 * config/sh/t-netbsd-sh5-64: Likewise.
4893 * config/sh/t-sh64: Likewise.
4894 * config/sh/ushmedia.h: Likewise.
4895
4896 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
4897
4898 * config/i386/i386.md (sign_extend to memory peephole2s): Use
4899 general_reg_operand instead of register_operand predicate.
4900
4901 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4902
4903 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
4904
4905 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
4906
4907 * match.pd (A - B > A, A + B < A): New transformations.
4908
4909 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
4910
4911 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
4912 which defaults to true. Emit an outer pair of parentheses only if
4913 EMIT_PARENS. When continuing a chain of && or || (or & or |),
4914 don't emit parentheses for the right-hand operand.
4915
4916 2016-04-27 Jeff Law <law@redhat.com>
4917
4918 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
4919
4920 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4921
4922 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
4923 (altivec_lvx_<mode>_internal): Document.
4924 (altivec_lvx_<mode>_2op): New define_insn.
4925 (altivec_lvx_<mode>_1op): Likewise.
4926 (altivec_lvx_<mode>_2op_si): Likewise.
4927 (altivec_lvx_<mode>_1op_si): Likewise.
4928 (altivec_stvx_<mode>): Remove.
4929 (altivec_stvx_<mode>_internal): Document.
4930 (altivec_stvx_<mode>_2op): New define_insn.
4931 (altivec_stvx_<mode>_1op): Likewise.
4932 (altivec_stvx_<mode>_2op_si): Likewise.
4933 (altivec_stvx_<mode>_1op_si): Likewise.
4934 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4935 Expand vec_ld and vec_st during parsing.
4936 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
4937 changes.
4938 (altivec_expand_stvx_be): Likewise.
4939 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
4940 address-masking behavior in RTL.
4941 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
4942 address-masking behavior in RTL.
4943 (altivec_expand_builtin): Change builtin code arguments for calls
4944 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
4945 (insn_is_swappable_p): Avoid incorrect swap optimization in the
4946 presence of lvx/stvx patterns.
4947 (alignment_with_canonical_addr): New function.
4948 (alignment_mask): Likewise.
4949 (find_alignment_op): Likewise.
4950 (recombine_lvx_pattern): Likewise.
4951 (recombine_stvx_pattern): Likewise.
4952 (recombine_lvx_stvx_patterns): Likewise.
4953 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
4954 stvx patterns from expand.
4955 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
4956 expansions.
4957 (vector_altivec_store_<mode>): Likewise.
4958
4959 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
4960
4961 * config/aarch64/aarch64.md
4962 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
4963 remove the "fp" attributes.
4964 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
4965 add the "simd" attributes.
4966 (*movdf_aarch64): Likewise.
4967 (*movtf_aarch64): Remove the "fp" attributes.
4968 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
4969 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
4970
4971 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4972
4973 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
4974 rtx to rtx_code_label *.
4975 * rtl.h (maybe_set_first_label_num): Likewise.
4976
4977 2016-04-27 David Malcolm <dmalcolm@redhat.com>
4978
4979 * df-core.c (df_add_problem): Make the problem param be const.
4980 (df_remove_problem): Make local "problem" be const.
4981 * df-problems.c (problem_RD): Make const.
4982 (problem_LR): Likewise.
4983 (problem_LIVE): Likewise.
4984 (problem_MIR): Likewise.
4985 (problem_CHAIN): Likewise.
4986 (problem_WORD_LR): Likewise.
4987 (problem_NOTE): Likewise.
4988 (problem_MD): Likewise.
4989 * df-scan.c (problem_SCAN): Likewise.
4990 * df.h (struct df_problem): Make field "dependent_problem" be
4991 const.
4992 (struct dataflow): Likewise for field "problem".
4993 (df_add_problem): Make param const.
4994
4995 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
4996
4997 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
4998 inter-unit moves to/from vector registers are enabled. Do not disable
4999 for TARGET_MMX.
5000
5001 2016-04-27 David Malcolm <dmalcolm@redhat.com>
5002
5003 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
5004 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
5005 #define to...
5006 (enum df_problem_id): ...this new enum.
5007 (struct df_problem): Convert field "id" from "int" to
5008 enum df_problem_id.
5009
5010 2016-04-27 David Malcolm <dmalcolm@redhat.com>
5011
5012 * rtl.def: Update comment for "things in the instruction chain" to
5013 reflect the removal of the leading "i" field for INSN_UID in
5014 r210360. Fix bogus apostrophe.
5015
5016 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
5017
5018 * config/i386/i386.md
5019 (lea arith with mem operand + setcc peephole2): Set operator mode.
5020
5021 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
5022
5023 PR target/70155
5024 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
5025 (dimode_scalar_to_vector_candidate_p): This.
5026 (timode_scalar_to_vector_candidate_p): New function.
5027 (scalar_to_vector_candidate_p): Likewise.
5028 (timode_check_non_convertible_regs): Likewise.
5029 (timode_remove_non_convertible_regs): Likewise.
5030 (remove_non_convertible_regs): Likewise.
5031 (remove_non_convertible_regs): Renamed to ...
5032 (dimode_remove_non_convertible_regs): This.
5033 (scalar_chain::~scalar_chain): Make it virtual.
5034 (scalar_chain::compute_convert_gain): Make it pure virtual.
5035 (scalar_chain::mark_dual_mode_def): Likewise.
5036 (scalar_chain::convert_insn): Likewise.
5037 (scalar_chain::convert_registers): Likewise.
5038 (scalar_chain::add_to_queue): Make it protected.
5039 (scalar_chain::emit_conversion_insns): Likewise.
5040 (scalar_chain::replace_with_subreg): Likewise.
5041 (scalar_chain::replace_with_subreg_in_insn): Likewise.
5042 (scalar_chain::convert_op): Likewise.
5043 (scalar_chain::convert_reg): Likewise.
5044 (scalar_chain::make_vector_copies): Likewise.
5045 (scalar_chain::convert_registers): New pure virtual function.
5046 (class dimode_scalar_chain): New class.
5047 (class timode_scalar_chain): Likewise.
5048 (scalar_chain::mark_dual_mode_def): Renamed to ...
5049 (dimode_scalar_chain::mark_dual_mode_def): This.
5050 (timode_scalar_chain::mark_dual_mode_def): New function.
5051 (timode_scalar_chain::convert_insn): Likewise.
5052 (dimode_scalar_chain::convert_registers): Likewise.
5053 (scalar_chain::compute_convert_gain): Renamed to ...
5054 (dimode_scalar_chain::compute_convert_gain): This.
5055 (scalar_chain::replace_with_subreg): Renamed to ...
5056 (dimode_scalar_chain::replace_with_subreg): This.
5057 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
5058 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
5059 (scalar_chain::make_vector_copies): Renamed to ...
5060 (dimode_scalar_chain::make_vector_copies): This.
5061 (scalar_chain::convert_reg): Renamed to ...
5062 (dimode_scalar_chain::convert_reg ): This.
5063 (scalar_chain::convert_op): Renamed to ...
5064 (dimode_scalar_chain::convert_op): This.
5065 (scalar_chain::convert_insn): Renamed to ...
5066 (dimode_scalar_chain::convert_insn): This.
5067 (scalar_chain::convert): Call convert_registers.
5068 (convert_scalars_to_vector): Change to scalar_chain pointer to
5069 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
5070 in 32-bit mode. Delete scalar_chain pointer. Call
5071 free_dominance_info in 64-bit mode.
5072 (pass_stv::gate): Remove TARGET_64BIT check.
5073 (ix86_option_override): Put the 64-bit STV pass before the CSE
5074 pass.
5075
5076 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
5077
5078 * dwarf2out.h (struct dw_loc_descr_node): Remove the
5079 dw_loc_frame_offset field.
5080 * dwarf2out.c (new_loc_descr): Likewise.
5081 (resolve_args_picking_1): Turn the VISITED hash set into a
5082 FRAME_OFFSET hash map. Use it to associate a frame offset to
5083 visited nodes. Remove uses of the CHECKING_P macro.
5084 (resolve_args_picking): Update call to resolve_args_picking_1.
5085
5086 2016-04-27 Martin Liska <mliska@suse.cz>
5087
5088 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
5089 (free_loop_data): Release vuses of groups.
5090
5091 2016-04-27 Bin Cheng <bin.cheng@arm.com>
5092
5093 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
5094 instead of redundant use_id and boolean have_use_for.
5095 (struct iv_use): Change sub_id into group_id. Remove field next.
5096 Move fields: related_cands, n_map_members, cost_map and selected
5097 to ...
5098 (struct iv_group): ... here. New structure.
5099 (struct iv_common_cand): Use structure declaration directly.
5100 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
5101 (MAX_CONSIDERED_USES): Rename macro to ...
5102 (MAX_CONSIDERED_GROUPS): ... here.
5103 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
5104 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
5105 (dump_uses): Rename to ...
5106 (dump_groups): ... here. Update all uses.
5107 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
5108 (find_induction_variables): Refactor format of dump information.
5109 (record_sub_use): Delete.
5110 (record_use): Update all uses.
5111 (record_group): New function.
5112 (record_group_use, find_interesting_uses_op): Call above functions.
5113 Update all uses.
5114 (find_interesting_uses_cond): Ditto.
5115 (group_compare_offset): New function.
5116 (split_all_small_groups): Rename to ...
5117 (split_small_address_groups_p): ... here. Update all uses.
5118 (split_address_groups): Update all uses.
5119 (find_interesting_uses): Refactor format of dump information.
5120 (add_candidate_1): Update all uses. Remove redundant check on iv,
5121 base and step.
5122 (add_candidate, record_common_cand): Remove redundant assert.
5123 (add_iv_candidate_for_biv): Update use.
5124 (add_iv_candidate_derived_from_uses): Update all uses.
5125 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
5126 (alloc_use_cost_map): Ditto.
5127 (set_use_iv_cost, get_use_iv_cost): Rename to ...
5128 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
5129 (determine_use_iv_cost_generic): Ditto.
5130 (determine_group_iv_cost_generic): Ditto.
5131 (determine_use_iv_cost_address): Ditto.
5132 (determine_group_iv_cost_address): Ditto.
5133 (determine_use_iv_cost_condition): Ditto.
5134 (determine_group_iv_cost_cond): Ditto.
5135 (determine_use_iv_cost): Ditto.
5136 (determine_group_iv_cost): Ditto.
5137 (set_autoinc_for_original_candidates): Update all uses.
5138 (find_iv_candidates): Update all uses. Refactor dump information.
5139 (determine_use_iv_costs): Ditto.
5140 (determine_iv_costs): Ditto.
5141 (iv_ca_cand_for_use): Rename to ...
5142 (iv_ca_cand_for_group): ... here. Update all uses.
5143 (iv_ca_add_use, iv_ca_add_group): Ditto.
5144 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
5145 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
5146 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
5147 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
5148 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
5149 (create_new_iv, adjust_iv_update_pos): Ditto.
5150 (rewrite_use_address): Delete.
5151 (rewrite_use_address_1): Rename to ...
5152 (rewrite_use_address): ... here.
5153 (rewrite_use_compare): Update all uses.
5154 (rewrite_use): Delete.
5155 (rewrite_uses): Rename to ...
5156 (rewrite_groups): ... here. Update all uses.
5157 (remove_unused_ivs, free_loop_data): Update all uses.
5158 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
5159
5160 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5161
5162 * rtlanal.c (nonzero_bits1): Convert preprocessor check
5163 for WORD_REGISTER_OPERATIONS to runtime check.
5164
5165 2016-04-27 Richard Biener <rguenther@suse.de>
5166
5167 PR ipa/70760
5168 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
5169 aggregate_value_p to determine if a function result is
5170 returned by reference.
5171 (ipa_pta_execute): Functions having their address taken are
5172 not automatically nonlocal.
5173
5174 2016-04-27 Jakub Jelinek <jakub@redhat.com>
5175
5176 PR sanitizer/70683
5177 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
5178 * fold-const.c (operand_equal_p): If flag_checking and
5179 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
5180 and if it returns non-zero, assert iterative_hash_expr on both
5181 args is the same.
5182
5183 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
5184
5185 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
5186
5187 2016-04-27 Nick Clifton <nickc@redhat.com>
5188
5189 PR middle-end/49889
5190 * varasm.c (merge_weak): Generate an error if an attempt is made
5191 to convert a non-weak static function into a weak, public function.
5192
5193 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5194
5195 * params.def (MAX_PARTITION_SIZE): New param.
5196 * doc/invoke.texi: Document lto-max-partition.
5197
5198 2016-04-27 Richard Biener <rguenther@suse.de>
5199
5200 PR ipa/70785
5201 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
5202 function cummulating used_from_other_partition, externally_visible
5203 and force_output from aliases.
5204 (refered_from_nonlocal_var): Likewise.
5205 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
5206 node flags properly.
5207
5208 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
5209
5210 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
5211 (-Wmemset-elt-size): New item.
5212
5213 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
5214
5215 PR ada/70759
5216 * stor-layout.h (internal_reference_types): Delete.
5217 * stor-layout.c (reference_types_internal): Likewise.
5218 (internal_reference_types): Likewise.
5219 (layout_type) <REFERENCE_TYPE>: Adjust.
5220
5221 2016-04-27 Jakub Jelinek <jakub@redhat.com>
5222
5223 PR sanitizer/70683
5224 * tree.h (inchash::add_expr): Add FLAGS argument.
5225 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
5226 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
5227 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
5228 Formatting fix. Adjust recursive calls. For tcc_comparison,
5229 if swap_tree_comparison (code) is smaller than code, hash that
5230 and arguments in the other order. Hash CONVERT_EXPR the same
5231 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
5232 of ADDR_EXPR of decl as the decl itself. Add or remove
5233 OEP_ADDRESS_OF from recursive flags as needed. For
5234 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
5235 operands commutatively and only the third one normally.
5236 For internal CALL_EXPR hash in CALL_EXPR_IFN.
5237
5238 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
5239
5240 * config/rtems.h (LIB_SPEC): Add -latomic.
5241
5242 2016-04-27 Joel Sherrill <joel@rtems.org>
5243
5244 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
5245 xilink.ld and flags not relevant to RTEMS.
5246
5247 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
5248
5249 * toplev.c (backend_init_target): Avoid calling init_reload when using
5250 LRA.
5251
5252 2016-04-26 Jakub Jelinek <jakub@redhat.com>
5253
5254 * reorg.c (try_merge_delay_insns): Declare i and j inside the
5255 for loops rather than one for the whole function.
5256
5257 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
5258
5259 * match.pd (X + CST CMP X): New transformation.
5260
5261 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
5262
5263 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
5264 * fold-const.c (fold_binary_loc): Remove 2 transformations
5265 superseded by match.pd.
5266 * match.pd (x+x -> x*2): Generalize to integers.
5267
5268 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
5269
5270 * config/i386/i386.md (operation on memory peephole): Duplicate an
5271 existing peephole and adapt it to match lea rather than an operation
5272 that clobbers CC.
5273
5274 PR rtl-optimization/57193
5275 * opts.c (default_options_table): Add OPT_frename_registers at -O2
5276 and above.
5277 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
5278
5279 2016-04-26 Bin Cheng <bin.cheng@arm.com>
5280
5281 * tree-if-conv.c (any_pred_load_store): New static variable.
5282 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
5283 any_pred_load_store instead of and_mask_load_store.
5284 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
5285 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
5286 (combine_blocks, tree_if_conversion): Ditto.
5287
5288 2016-04-26 Bin Cheng <bin.cheng@arm.com>
5289
5290 PR tree-optimization/70771
5291 PR tree-optimization/70775
5292 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
5293 virtual PHI nodes. Delete parameter.
5294 (if_convertible_loop_p_1): Delete argument to above function.
5295 (predicate_all_scalar_phis): Delete code handling single-argument
5296 PHIs.
5297 (tree_if_conversion): Mark and update virtual SSA.
5298
5299 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5300
5301 PR target/61821
5302 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
5303 (x86_elf_aligned_common): Rename to ...
5304 (x86_elf_aligned_decl_common): ... this.
5305 Add decl arg. Switch to .lbss for largecomm object. Use
5306 LARGECOMM_SECTION_ASM_OP.
5307 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
5308 renaming.
5309 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
5310 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
5311 Pass new decl arg.
5312 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
5313 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
5314
5315 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5316
5317 PR target/59407
5318 * config/i386/i386.c (SECTION_LARGE): Define.
5319 (x86_64_elf_select_section): Set it for large data/bss sections.
5320 Only clear SECTION_WRITE for .lrodata.
5321 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
5322 data/bss sections.
5323 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
5324 * varasm.c (default_elf_asm_named_section): Grow flagchars.
5325 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
5326 SECTION_MACH_DEP.
5327 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
5328 * doc/tm.texi: Regenerate.
5329
5330 2016-04-26 Jakub Jelinek <jakub@redhat.com>
5331
5332 PR bootstrap/70704
5333 * configure.ac (--enable-checking): Document extra flag, for
5334 non-release builds default to --enable-checking=yes,extra.
5335 If misc checking and extra checking, define CHECKING_P to 2 instead
5336 of 1.
5337 * common.opt (fchecking=): Add.
5338 * doc/invoke.texi (-fchecking=): Document.
5339 * doc/install.texi: Document --enable-checking changes.
5340 * configure: Regenerated.
5341 * config.in: Regenerated.
5342
5343 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
5344
5345 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
5346 attribute instead of which_alternative.
5347 * config/i386/sse.md (*mov<mode>_internal): Ditto.
5348 Use EXT_REX_SSE_REG_P where appropriate.
5349
5350 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
5351
5352 * config/i386/predicates.md (const0_operand): Do not match
5353 const_wide_int code.
5354 (const1_operand): Ditto.
5355
5356 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
5357
5358 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
5359 for SSE constm1 operands and TARGET_AVX512VL.
5360 (*movti_internal): Ditto.
5361 (*mov<mode>_or): Use constm1_operand predicate.
5362 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
5363 for SSE vector_all_ones operands and TARGET_AVX512VL.
5364 * config/i386/predicates.md (constm1_operand): New predicate.
5365 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
5366 emission of constant -1 load.
5367
5368 2016-04-25 Jason Merrill <jason@redhat.com>
5369
5370 * gdbinit.in: Skip is-a.h.
5371
5372 * attribs.c (register_scoped_attributes): Fix logic.
5373 * attribs.h: Declare register_scoped_attributes.
5374
5375 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5376
5377 * config/rs6000/rs6000-builtin.def: Correct pasto error for
5378 stxvd2x and stxvw4x built-in functions.
5379
5380 2016-04-25 DJ Delorie <dj@redhat.com>
5381
5382 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
5383 (ashrhi3): Likewise.
5384 (lshrhi3): Likewise.
5385
5386 2016-04-25 Richard Biener <rguenther@suse.de>
5387
5388 PR tree-optimization/70780
5389 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
5390 wasn't visited yet.
5391 (compute_antic): Mark blocks with abnormal preds as visited as
5392 they have a final empty antic-in solution already.
5393
5394 2016-04-25 Michael Collison <michael.collison@linaro.org>
5395
5396 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
5397
5398 2016-04-25 Michael Collison <michael.collison@linaro.org>
5399
5400 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
5401 mode is VQI to improve mixed mode vectorization.
5402 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
5403 define_insn to match low half of signed vaddw.
5404 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
5405 define_insn to match high half of signed vaddw.
5406 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
5407 define_insn to match low half of unsigned vaddw.
5408 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
5409 define_insn to match high half of unsigned vaddw.
5410 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
5411 (arm_simd_check_vect_par_cnst_half_p): Likewise.
5412 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
5413 for new function.
5414 (arm_simd_check_vect_par_cnst_half_p): Likewise.
5415 * config/arm/predicates.md (vect_par_constant_high): Support
5416 big endian and simplify by calling
5417 arm_simd_check_vect_par_cnst_half
5418 (vect_par_constant_low): Likewise.
5419
5420 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
5421
5422 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
5423 predicate for operand 2.
5424
5425 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
5426 H.J. Lu <hongjiu.lu@intel.com>
5427
5428 * config/i386/i386-protos.h (standard_sse_constant_p): Add
5429 machine_mode argument.
5430 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
5431 constm1_rtx operands. For VOIDmode constants, get mode from
5432 pred_mode. Check mode size if the mode is supported by ABI.
5433 (standard_sse_constant_opcode): Do not use standard_constant_p.
5434 Strictly check ABI support for all-ones operands.
5435 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
5436 immediates. Update calls to standard_sse_constant_p.
5437 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
5438 (ix86_rtx_costs): Ditto.
5439 * config/i386/i386.md (*movxi_internal_avx512f): Use
5440 nonimmediate_or_sse_const_operand instead of vector_move_operand.
5441 Use (v,BC) alternative instead of (v,C). Use register_operand
5442 checks instead of MEM_P.
5443 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
5444 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
5445 isa attribute. Use register_operand checks instead of MEM_P.
5446 (*movti_internal): Use nonimmediate_or_sse_const_operand for
5447 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
5448 alternative and corresponding sse2 isa attribute.
5449 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
5450 to standard_sse_constant_p.
5451 (FP constant splitters): Ditto.
5452 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
5453 (C): Ditto.
5454 * config/i386/predicates.md (constm1_operand): Remove.
5455 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
5456 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
5457 vector_all_ones_operand instead of constm1_operand.
5458
5459 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5460
5461 * print-rtl.c (print_rtx_insn_vec): New function.
5462 * print-rtl.h: New prototype.
5463 * store-motion.c (struct st_expr): Make avail_stores a vector.
5464 (st_expr_entry): Adjust.
5465 (free_st_expr_entry): Likewise.
5466 (print_store_motion_mems): Likewise.
5467 (find_moveable_store): Likewise.
5468 (compute_store_table): Likewise.
5469 (delete_store): Likewise.
5470 (build_store_vectors): Likewise.
5471
5472 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5473
5474 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
5475
5476 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5477
5478 * vec.h (vec_safe_contains): New function.
5479 (vec::contains): Likewise.
5480 (vec::begin): Likewise.
5481 (vec::end): Likewise.
5482
5483 2016-04-23 Jakub Jelinek <jakub@redhat.com>
5484
5485 PR sanitizer/70712
5486 * cfgexpand.c (expand_stack_vars): Fix typo.
5487
5488 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
5489
5490 * system.h (list, map, set, vector): Include conditionally.
5491 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
5492 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
5493 * ipa-icf.c (INCLUDE_LIST): Define.
5494 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
5495 * config/sh/sh.c (INCLUDE_VECTOR): Define.
5496 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
5497 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
5498 * cp/logic.cc (INCLUDE_LIST): Define.
5499 * fortran/trans-common.c (INCLUDE_MAP): Define.
5500
5501 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
5502
5503 * auto-profile.c: Remove <string.h> include.
5504 * ipa-icf-gimple.c: Remove <list> include.
5505 * diagnostic.c: Remove <new> include.
5506 * genmatch.c: Likewise.
5507 * pretty-print.c: Likewise.
5508 * toplev.c: Likewise
5509 * c/c-objc-common.c: Likewise.
5510 * cp/error.c: Likewise.
5511 * fortran/error.c: Likewise.
5512
5513 2016-04-22 Richard Biener <rguenther@suse.de>
5514
5515 * lto-streamer-in.c (input_ssa_names): Do not allocate
5516 GIMPLE_NOP for all SSA names.
5517 * lto-streamer-out.c (output_ssa_names): Do not output
5518 SSA names that should have been released.
5519
5520 2016-04-22 Richard Biener <rguenther@suse.de>
5521
5522 PR tree-optimization/70740
5523 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
5524 VDEF.
5525
5526 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
5527
5528 PR target/70750
5529 * config/i386/predicates.md (call_insn_operand): Replace
5530 sibcall_memory_operand with memory_operand.
5531
5532 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
5533
5534 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
5535 has_single_use() tests.
5536 (register_edge_assert_for_1): Likewise.
5537 (find_assert_locations_1): Check the liveness bitmap instead of
5538 checking has_single_use().
5539
5540 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
5541
5542 PR target/70728
5543 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
5544 Extract AVX-512BW constraint from AVX.
5545
5546 2016-04-21 Richard Biener <rguenther@suse.de>
5547
5548 PR tree-optimization/70725
5549 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
5550 for phi_convertible_by_degenerating_args.
5551 (predicate_all_scalar_phis): Handle single-argument PHIs.
5552
5553 2016-04-21 Richard Biener <rguenther@suse.de>
5554
5555 PR middle-end/70747
5556 * fold-const.c (fold_comparison): Return properly typed
5557 constant boolean.
5558
5559 2016-04-21 Bin Cheng <bin.cheng@arm.com>
5560
5561 PR tree-optimization/70715
5562 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
5563 after expanding BASE using expand_simple_operations.
5564
5565 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
5566
5567 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
5568 New transformations.
5569
5570 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
5571
5572 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
5573
5574 2016-04-20 Jan Hubicka <jh@suse.cz>
5575
5576 * ipa-inline.c (can_inline_edge_p): Pass caller info to
5577 ultiimate_alias_target.
5578 (update_callee_keys): Likewise.
5579 (lookup_recursive_calls): Likewise.
5580 (speculation_useful_p): Likewise.
5581
5582 2016-04-20 Jan Hubicka <jh@suse.cz>
5583
5584 PR ipa/70018
5585 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
5586 (set_nothrow_flag_1): ... this; handle interposition correctly;
5587 recurse on aliases and thunks.
5588 (cgraph_node::set_nothrow_flag): New.
5589 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
5590 functions compiled with non-call exceptions that binds to current
5591 def.
5592 (propagate_nothrow): Be safe WRT interposition.
5593 * cgraph.h (set_nothrow_flag): Update prototype.
5594
5595 2016-04-18 Jan Hubicka <jh@suse.cz>
5596
5597 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5598 max_loop_iterations_int.
5599 (tree_unswitch_outer_loop): Likewise.
5600
5601 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5602
5603 PR tree-optimization/69489
5604 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
5605 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
5606 Revise dump message.
5607 (if_convertible_bb_p): Remove check on edge count of basic block's
5608 predecessors.
5609
5610 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5611
5612 PR tree-optimization/56625
5613 PR tree-optimization/69489
5614 * tree-data-ref.h (DR_INNERMOST): New macro.
5615 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
5616 hashing struct innermost_loop_behavior.
5617 (ref_DR_map): Remove.
5618 (innermost_DR_map): New map.
5619 (baseref_DR_map): Revise comment.
5620 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
5621 to innermost_DR_map accroding to its innermost loop behavior.
5622 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
5623 to its innermost loop behavior.
5624 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
5625 Add initialization for innermost_DR_map. Record memory reference
5626 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
5627 have innermost loop behavior.
5628 (if_convertible_loop_p): Remove release for ref_DR_map. Release
5629 innermost_DR_map.
5630
5631 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
5632
5633 * config/i386/i386.md (*lea<mode>_general_1): Rename from
5634 *lea_general_1. Use explicit SWI12 mode interator.
5635 (*lea<mode>_general_2): Rename from *lea_general_2.
5636 Use explicit SWI12 mode interator.
5637 (*lea<mode>_general_3): Rename from *lea_general_3.
5638 Use explicit SWI12 mode interator.
5639 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
5640 Use explicit SWI12 mode interator.
5641 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
5642 Use explicit SWI48 mode interator.
5643
5644 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
5645
5646 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
5647 Short-cut unaligned load and store cases. Handle all integer
5648 vector modes.
5649 (ix86_expand_vector_move_misalign): Short-cut unaligned load
5650 and store cases. Call ix86_avx256_split_vector_move_misalign
5651 directly without checking mode class.
5652
5653 2016-04-20 Andrew Pinski <apinski@cavium.com>
5654 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5655
5656 PR target/64971
5657 * config/aarch64/aarch64.md (sibcall): Force call
5658 address to be DImode for ILP32.
5659 (sibcall_value): Likewise.
5660
5661 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
5662
5663 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
5664
5665 2016-04-20 Richard Biener <rguenther@suse.de>
5666
5667 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
5668 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
5669 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
5670 (maybe_push_res_to_seq): Adjust.
5671 * gimple-fold.c (maybe_build_generic_op): Likewise.
5672
5673 2016-04-20 Marek Polacek <polacek@redhat.com>
5674
5675 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
5676 rather than true.
5677
5678 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
5679
5680 * config/i386/sse.md (vec_unpacks_lo_hi): Always
5681 use kmovw to support AVX512F target.
5682
5683 2016-04-20 Bin Cheng <bin.cheng@arm.com>
5684
5685 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
5686
5687 2016-04-20 Marek Polacek <polacek@redhat.com>
5688
5689 PR tree-optimization/70725
5690 * tree-if-conv.c (is_false_predicate): New function.
5691 (predicate_mem_writes): Use it.
5692
5693 2016-04-20 Richard Biener <rguenther@suse.de>
5694
5695 PR tree-optimization/70726
5696 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
5697 shift amounts from a pattern stmt operand.
5698
5699 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5700
5701 PR target/70674
5702 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
5703 stack_restore_from_fpr pattern when restoring r15.
5704 (s390_optimize_prologue): Strip away the memory barrier in the
5705 parallel when trying to get rid of restore insns.
5706 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
5707 definition for loading the stack pointer from an FPR. Compared to
5708 the normal move insn this pattern includes a full memory barrier.
5709
5710 2016-04-19 Jakub Jelinek <jakub@redhat.com>
5711
5712 PR middle-end/70680
5713 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
5714 implicitly linear or lastprivate iterator on the outer context.
5715
5716 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
5717
5718 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
5719 alignment check.
5720 * config/i386/i386.md (ssememalign): Removed.
5721 * config/i386/sse.md: Remove ssememalign attribute from patterns.
5722
5723 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
5724
5725 PR target/69201
5726 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
5727 const short * to __builtin_ia32_loaddquhi512_mask.
5728 (_mm512_maskz_loadu_epi16): Likewise.
5729 (_mm512_mask_storeu_epi16): Pass short * to
5730 __builtin_ia32_storedquhi512_mask.
5731 (_mm512_mask_loadu_epi8): Pass const char * to
5732 __builtin_ia32_loaddquqi512_mask.
5733 (_mm512_maskz_loadu_epi8): Likewise.
5734 (_mm512_mask_storeu_epi8): Pass char * to
5735 __builtin_ia32_storedquqi512_mask.
5736 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
5737 const double * to __builtin_ia32_loadupd512_mask.
5738 (_mm512_mask_loadu_pd): Likewise.
5739 (_mm512_maskz_loadu_pd): Likewise.
5740 (_mm512_storeu_pd): Pass double * to
5741 __builtin_ia32_storeupd512_mask.
5742 (_mm512_mask_storeu_pd): Likewise.
5743 (_mm512_loadu_ps): Pass const float * to
5744 __builtin_ia32_loadups512_mask.
5745 (_mm512_mask_loadu_ps): Likewise.
5746 (_mm512_maskz_loadu_ps): Likewise.
5747 (_mm512_storeu_ps): Pass float * to
5748 __builtin_ia32_storeups512_mask.
5749 (_mm512_mask_storeu_ps): Likewise.
5750 (_mm512_mask_loadu_epi64): Pass const long long * to
5751 __builtin_ia32_loaddqudi512_mask.
5752 (_mm512_maskz_loadu_epi64): Likewise.
5753 (_mm512_mask_storeu_epi64): Pass long long *
5754 to __builtin_ia32_storedqudi512_mask.
5755 (_mm512_loadu_si512): Pass const int * to
5756 __builtin_ia32_loaddqusi512_mask.
5757 (_mm512_mask_loadu_epi32): Likewise.
5758 (_mm512_maskz_loadu_epi32): Likewise.
5759 (_mm512_storeu_si512): Pass int * to
5760 __builtin_ia32_storedqusi512_mask.
5761 (_mm512_mask_storeu_epi32): Likewise.
5762 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
5763 char * to __builtin_ia32_storedquqi256_mask.
5764 (_mm_mask_storeu_epi8): Likewise.
5765 (_mm256_mask_loadu_epi16): Pass const short * to
5766 __builtin_ia32_loaddquhi256_mask.
5767 (_mm256_maskz_loadu_epi16): Likewise.
5768 (_mm_mask_loadu_epi16): Pass const short * to
5769 __builtin_ia32_loaddquhi128_mask.
5770 (_mm_maskz_loadu_epi16): Likewise.
5771 (_mm256_mask_loadu_epi8): Pass const char * to
5772 __builtin_ia32_loaddquqi256_mask.
5773 (_mm256_maskz_loadu_epi8): Likewise.
5774 (_mm_mask_loadu_epi8): Pass const char * to
5775 __builtin_ia32_loaddquqi128_mask.
5776 (_mm_maskz_loadu_epi8): Likewise.
5777 (_mm256_mask_storeu_epi16): Pass short * to.
5778 __builtin_ia32_storedquhi256_mask.
5779 (_mm_mask_storeu_epi16): Pass short * to.
5780 __builtin_ia32_storedquhi128_mask.
5781 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
5782 const double * to __builtin_ia32_loadupd256_mask.
5783 (_mm256_maskz_loadu_pd): Likewise.
5784 (_mm_mask_loadu_pd): Pass onst double * to
5785 __builtin_ia32_loadupd128_mask.
5786 (_mm_maskz_loadu_pd): Likewise.
5787 (_mm256_mask_storeu_pd): Pass double * to
5788 __builtin_ia32_storeupd256_mask.
5789 (_mm_mask_storeu_pd): Pass double * to
5790 __builtin_ia32_storeupd128_mask.
5791 (_mm256_mask_loadu_ps): Pass const float * to
5792 __builtin_ia32_loadups256_mask.
5793 (_mm256_maskz_loadu_ps): Likewise.
5794 (_mm_mask_loadu_ps): Pass const float * to
5795 __builtin_ia32_loadups128_mask.
5796 (_mm_maskz_loadu_ps): Likewise.
5797 (_mm256_mask_storeu_ps): Pass float * to
5798 __builtin_ia32_storeups256_mask.
5799 (_mm_mask_storeu_ps): ass float * to
5800 __builtin_ia32_storeups128_mask.
5801 (_mm256_mask_loadu_epi64): Pass const long long * to
5802 __builtin_ia32_loaddqudi256_mask.
5803 (_mm256_maskz_loadu_epi64): Likewise.
5804 (_mm_mask_loadu_epi64): Pass const long long * to
5805 __builtin_ia32_loaddqudi128_mask.
5806 (_mm_maskz_loadu_epi64): Likewise.
5807 (_mm256_mask_storeu_epi64): Pass long long * to
5808 __builtin_ia32_storedqudi256_mask.
5809 (_mm_mask_storeu_epi64): Pass long long * to
5810 __builtin_ia32_storedqudi128_mask.
5811 (_mm256_mask_loadu_epi32): Pass const int * to
5812 __builtin_ia32_loaddqusi256_mask.
5813 (_mm256_maskz_loadu_epi32): Likewise.
5814 (_mm_mask_loadu_epi32): Pass const int * to
5815 __builtin_ia32_loaddqusi128_mask.
5816 (_mm_maskz_loadu_epi32): Likewise.
5817 (_mm256_mask_storeu_epi32): Pass int * to
5818 __builtin_ia32_storedqusi256_mask.
5819 (_mm_mask_storeu_epi32): Pass int * to
5820 __builtin_ia32_storedqusi128_mask.
5821 * config/i386/i386-builtin-types.def (PCSHORT): New.
5822 (PINT64): Likewise.
5823 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
5824 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
5825 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
5826 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
5827 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
5828 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
5829 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
5830 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
5831 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
5832 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
5833 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
5834 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
5835 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
5836 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
5837 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
5838 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
5839 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
5840 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
5841 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
5842 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
5843 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
5844 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
5845 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
5846 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
5847 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
5848 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
5849 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
5850 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
5851 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
5852 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
5853 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
5854 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
5855 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
5856 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
5857 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
5858 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
5859 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
5860 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
5861 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
5862 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
5863 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
5864 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
5865 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
5866 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
5867 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
5868 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
5869 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
5870 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
5871 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
5872 use UNSPEC_STOREU.
5873 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
5874 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
5875 load nor store.
5876 (ix86_expand_vector_move_misalign): Likewise.
5877 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
5878 to scalar function prototype for unaligned load/store builtins.
5879 (ix86_expand_special_args_builtin): Updated.
5880 * config/i386/sse.md (UNSPEC_LOADU): Removed.
5881 (UNSPEC_STOREU): Likewise.
5882 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
5883 (VI_ULOADSTORE_F_AVX512VL): Likewise.
5884 (ssescalarsize): Handle V4TI, V2TI and V1TI.
5885 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
5886 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
5887 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
5888 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
5889 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
5890 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
5891 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
5892 (<avx512>_storedqu<mode>_mask): Likewise.
5893 (*sse4_2_pcmpestr_unaligned): Likewise.
5894 (*sse4_2_pcmpistr_unaligned): Likewise.
5895 (*mov<mode>_internal): Renamed to ...
5896 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
5897 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
5898 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
5899 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
5900
5901 2016-04-19 Richard Biener <rguenther@suse.de>
5902
5903 PR tree-optimization/70171
5904 * tree-ssa-phiprop.c: Include stor-layout.h.
5905 (phiprop_insert_phi): Handle the aggregate copy case.
5906 (propagate_with_phi): Likewise.
5907
5908 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
5909
5910 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
5911 instead of simplify_gen_subreg (... , 0).
5912 (ix86_delegitimize_address): Ditto.
5913 (ix86_split_divmod): Ditto.
5914 (ix86_split_copysign_const): Ditto.
5915 (ix86_split_copysign_var): Ditto.
5916 (ix86_expand_args_builtin): Ditto.
5917 (ix86_expand_round_builtin): Ditto.
5918 (ix86_expand_special_args_builtin): Ditto.
5919 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
5920 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
5921 (udivmodqi4): Ditto.
5922 (absneg splitters): Ditto.
5923 (*jcc_bt<mode>_1): Ditto.
5924
5925 2016-04-19 Richard Biener <rguenther@suse.de>
5926
5927 PR tree-optimization/70724
5928 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
5929 restoring out from ...
5930 (free_scc_vn): ... here.
5931 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
5932 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
5933 tail merging.
5934 (pass_fre::execute): Restore SSA info.
5935
5936 2016-04-19 Richard Biener <rguenther@suse.de>
5937
5938 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
5939 * gimple-walk.c (walk_gimple_op): Initialize it.
5940 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
5941 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
5942 remapping SSA names of defs.
5943 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
5944 adjustment.
5945
5946 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
5947
5948 PR middle-end/70689
5949 * lra-constraints.c (equiv_substition_p): New.
5950 (process_alt_operands): Use it.
5951 (swap_operands): Swap it.
5952 (curr_insn_transform): Update it.
5953
5954 2016-04-18 Michael Matz <matz@suse.de>
5955
5956 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
5957 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
5958 * tree-core.h (tree_type_common.align): Use bit-field.
5959 (tree_type_common.spare): New.
5960 (tree_decl_common.off_align): Make smaller.
5961 (tree_decl_common.align): Use bit-field.
5962
5963 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
5964 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
5965 (scan_sharing_clauses): Ditto.
5966 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
5967 (omp_finish_file): Ditto.
5968 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
5969 (layout_decl): Ditto.
5970 (relayout_decl): Ditto.
5971 (finalize_record_size): Use SET_TYPE_ALIGN.
5972 (finalize_type_size): Ditto.
5973 (finish_builtin_struct): Ditto.
5974 (layout_type): Ditto.
5975 (initialize_sizetypes): Ditto.
5976 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
5977 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
5978 (lookup_field_for_decl): Use SET_DECL_ALIGN.
5979 (get_chain_field): Ditto.
5980 (get_trampoline_type): Ditto.
5981 (get_nl_goto_field): Ditto.
5982 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
5983 SET_DECL_ALIGN.
5984 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
5985 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
5986 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
5987 (build_qualified_type): Use SET_TYPE_ALIGN.
5988 (build_aligned_type, build_range_type_1): Ditto.
5989 (build_atomic_base): Ditto.
5990 (build_common_tree_nodes): Ditto.
5991 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
5992 (expand_one_stack_var_at): Ditto.
5993 * coverage.c (build_var): Use SET_DECL_ALIGN.
5994 * except.c (init_eh): Ditto.
5995 * function.c (assign_parm_setup_block): Ditto.
5996 * symtab.c (increase_alignment_1): Ditto.
5997 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
5998 * tree-vect-stmts.c (ensure_base_align): Ditto.
5999 * varasm.c (align_variable): Ditto.
6000 (assemble_variable): Ditto.
6001 (build_constant_desc): Ditto.
6002 (output_constant_def_contents): Ditto.
6003
6004 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
6005 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
6006 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
6007 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
6008 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
6009
6010 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
6011
6012 PR target/70708
6013 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
6014 replace %vmovsd with "%vmovq".
6015 (vec_concatv2df): Likewise.
6016
6017 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
6018
6019 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
6020 (*vec_extractv2si_0): Ditto.
6021 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
6022 (zero_extended_scalar_load_operand splitters): Ditto.
6023 (vec_extract splitters): Ditto.
6024 (*vec_extractv4si_0_zext): Ditto.
6025 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
6026 and lowpart_subreg.
6027 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
6028 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
6029 (*sse4_1_extractps): Use lowpart_subreg.
6030 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
6031
6032 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6033
6034 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
6035 gld requirements.
6036 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
6037 Mention Solaris 11 packaging changes.
6038 Update gas and gld requirements.
6039 Remove reference to pre-Solaris 10 bug.
6040 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
6041 systems and bugs.
6042 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
6043 with cc.
6044
6045 2016-04-17 Jan Hubicka <jh@suse.cz>
6046
6047 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
6048 max_loop_iterations_int.
6049
6050 2016-04-18 Richard Biener <rguenther@suse.de>
6051
6052 PR tree-optimization/43434
6053 * tree-ssa-structalias.c (struct vls_data): New.
6054 (visit_loadstore): Handle all pointer-based accesses.
6055 (compute_dependence_clique): Compute a bitmap of restrict tags
6056 assigned bases and pass it to visit_loadstore.
6057
6058 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
6059
6060 PR target/70711
6061 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
6062 armv8.1-a and armv8.1-a+crc.
6063
6064 2016-04-18 Richard Biener <rguenther@suse.de>
6065
6066 PR tree-optimization/70701
6067 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
6068 references after translating through a memcpy.
6069
6070 2016-04-18 Richard Biener <rguenther@suse.de>
6071
6072 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
6073 (compute_antic): ... here. For partial antic use regular
6074 postorder and scrap iteration.
6075 (compute_partial_antic_aux): Remove unused return value.
6076 (init_pre): Do not allocate postorder.
6077 (fini_pre): Do not free postorder.
6078
6079 2016-04-18 Richard Biener <rguenther@suse.de>
6080
6081 PR middle-end/37870
6082 * expmed.c (extract_bit_field_1): Remove broken case
6083 using a wider MODE_INT mode.
6084
6085 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
6086
6087 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
6088 unless compiling with at least GCC-4.8.
6089
6090 2016-04-17 Jan Hubicka <jh@suse.cz>
6091
6092 PR bootstrap/70706
6093 * graphite.c (graphite_finalize): Update call to
6094 tree_estimate_probability.
6095 * predict.h (tree_estimate_probability): Update prototype.
6096
6097 2016-04-17 Jan Hubicka <jh@suse.cz>
6098
6099 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
6100 (tree_estimate_probability): Likewise.
6101 (pass_profile::execute): Update.
6102 (report_predictor_hitrates): New function.
6103 * profile.c (compute_branch_probabilities): Use it.
6104 * predict.h (report_predictor_hitrates): Declare.
6105
6106 2016-04-17 Jan Hubicka <jh@suse.cz>
6107
6108 PR ipa/70018
6109 * cgraph.h (cgraph_node::set_const_flag,
6110 cgraph_node::set_pure_flag): Update prototype to return bool;
6111 update comment.
6112 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
6113 of interposable symbol are interposable, too.
6114 (cgraph_set_const_flag_1): Rename to ...
6115 (set_const_flag_1): ... this one; change to self recursive function
6116 instead of call_for_symbol_thunks_and_aliases. Handle correctly
6117 clearnig the flag in all variants and also virtual thunks of const
6118 functions are pure; track if any change was done.
6119 (cgraph_node::set_const_flag): Update.
6120 (struct set_pure_flag_info): New struct.
6121 (cgraph_set_pure_flag_1): Rename to ...
6122 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
6123 rather than pointer encoded flags; track if any changes was done;
6124 handle correctly clearning flag and setting flag of aliases already
6125 declared const.
6126 (cgraph_node::set_pure_flag): Update.
6127 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
6128
6129 2016-04-17 Tom de Vries <tom@codesourcery.com>
6130
6131 PR other/70433
6132 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
6133 backslash in label.
6134
6135 2016-04-17 Tom de Vries <tom@codesourcery.com>
6136
6137 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
6138 '{}<> ' as escape-for-record.
6139
6140 2016-04-17 Tom de Vries <tom@codesourcery.com>
6141
6142 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
6143 structure.
6144
6145 2016-04-17 Tom de Vries <tom@codesourcery.com>
6146
6147 PR other/70185
6148 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
6149 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
6150 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
6151 * passes.c (finish_optimization_passes): Only call
6152 finish_graph_dump_file if dfi->graph_dump_initialized.
6153 (execute_function_dump, pass_init_dump_file): Use
6154 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
6155
6156 2016-04-17 Tom de Vries <tom@codesourcery.com>
6157
6158 PR tree-optimization/70256
6159 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
6160 (debug_varmap): New function.
6161
6162 2016-04-17 Tom de Vries <tom@codesourcery.com>
6163
6164 PR other/70183
6165 * passes.c (pass_manager::register_pass): Propagate pflags.
6166
6167 2016-04-17 Tom de Vries <tom@codesourcery.com>
6168
6169 PR other/68875
6170 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
6171 * passes.c (pass_manager::pass_manager): Declare and init p_start in
6172 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
6173 check if it's equal to p_start.
6174 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
6175
6176 2016-04-15 Jan Hubicka <jh@suse.cz>
6177
6178 PR ipa/70018
6179 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
6180 function does not bind to current def.
6181 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
6182 handle conservatively calls to functions that does not need to bind
6183 to current def.
6184 (check_call): Update call of worse_state.
6185 (ignore_edge_for_nothrow): Update.
6186 (ignore_edge_for_pure_const): Likewise.
6187 (propagate_pure_const): Update calls to worse_state.
6188 (skip_function_for_local_pure_const): Reformat comments.
6189
6190 2016-04-15 Jan Hubicka <jh@suse.cz>
6191
6192 PR ipa/70018
6193 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
6194 (cgraph_node::function_symbol): Likewise.
6195 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
6196 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
6197 (symtab_node::ultimate_alias_target): Add REF parameter.
6198 (symtab_node::binds_to_current_def_p): Declare.
6199 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
6200 (cgraph_node::function_symbol): Likewise.
6201 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
6202 (cgraph_node::get_availability): Likewise.
6203 (cgraph_edge::binds_to_current_def_p): New inline function.
6204 (varpool_node::get_availability): Add REF parameter.
6205 (varpool_node::ultimate_alias_target): Likewise.
6206 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
6207 (symtab_node::binds_to_current_def_p): Likewise.
6208 * varpool.c (varpool_node::get_availability): Likewise.
6209
6210 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
6211
6212 PR target/70662
6213 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
6214 Fix mode size check.
6215
6216 2016-04-15 Jakub Jelinek <jakub@redhat.com>
6217
6218 * BASE-VER: Set to 7.0.0.
6219
6220 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
6221
6222 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
6223
6224 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6225
6226 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
6227 architecture revisions.
6228
6229 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
6230
6231 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
6232 * config/i386/i386.c (ix86_using_red_zone): No longer static.
6233 * config/i386/i386.md (stack decrement to push peepholes): Guard
6234 with !x86_using_red_zone ().
6235
6236 2016-04-15 Jakub Jelinek <jakub@redhat.com>
6237
6238 PR c++/70675
6239 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
6240 to dump_generic_node.
6241 (NIY): Pass also flags to do_niy.
6242
6243 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
6244
6245 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
6246 (simd_clone_vector_of_formal_parm_types)
6247 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
6248 (simd_clone_mangle, simd_clone_create)
6249 (simd_clone_adjust_return_type, create_tmp_simd_array)
6250 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
6251 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
6252 (ipa_simd_modify_function_body, simd_clone_linear_addend)
6253 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
6254 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
6255 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
6256 * omp-simd-clone.c: ... this new file.
6257 (simd_clone_vector_of_formal_parm_types): Make it static.
6258 * Makefile.in (OBJS): Add omp-simd-clone.o.
6259
6260 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
6261
6262 PR target/70662
6263 * config/i386/sse.md: Use proper memory operand modifiers.
6264
6265
6266 2016-04-15 Richard Biener <rguenther@suse.de>
6267 Alan Modra <amodra@gmail.com>
6268
6269 PR tree-optimization/70130
6270 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
6271 when alignment stays not the same and no not use the realign
6272 scheme then.
6273
6274 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
6275
6276 PR target/70669
6277 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
6278 direct move handlers for KFmode. Change TFmode handlers test from
6279 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
6280
6281 2016-04-14 Jakub Jelinek <jakub@redhat.com>
6282
6283 PR c++/70594
6284 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
6285 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
6286 (inlined_polymorphic_ctor_dtor_block_p): Use it.
6287 * tree-ssa-live.c (remove_unused_scope_block_p): When
6288 in_ctor_dtor_block, avoid discarding not just BLOCKs with
6289 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
6290 block_ultimate_origin is FUNCTION_DECL.
6291 (remove_unused_locals): If current_function_decl is
6292 polymorphic_ctor_dtor_p, pass initial true to
6293 remove_unused_scope_block_p' is_ctor_dtor_block.
6294
6295 2016-04-14 Martin Sebor <msebor@redhat.com>
6296
6297 PR c++/69517
6298 PR c++/70019
6299 PR c++/70588
6300 * doc/extend.texi (Variable Length): Revert.
6301
6302 2016-04-14 Marek Polacek <polacek@redhat.com>
6303 Jan Hubicka <hubicka@ucw.cz>
6304
6305 PR c++/70029
6306 * tree.c (verify_type): Disable the canonical type of main variant
6307 check.
6308
6309 2016-04-14 Jason Merrill <jason@redhat.com>
6310
6311 * cfgexpand.c, expr.c: Revert previous change.
6312
6313 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
6314
6315 PR middle-end/70643
6316 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
6317 when building a mem ref for the incoming reduction variable.
6318
6319 2016-04-14 Richard Biener <rguenther@suse.de>
6320
6321 PR tree-optimization/70614
6322 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
6323 loop if the evolution dropped to chrec_dont_know.
6324 (interpret_condition_phi): Likewise.
6325
6326 2016-04-14 Richard Biener <rguenther@suse.de>
6327
6328 PR tree-optimization/70623
6329 * tree-ssa-pre.c (changed_blocks): Make global ...
6330 (compute_antic): ... local here. Move and fix worklist
6331 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
6332 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
6333 worklist handling, dump when ANTIC_IN changed.
6334 (compute_partial_antic_aux): Remove worklist handling.
6335 (init_pre): Do not compute post dominators. Add a comment about
6336 the CFG order chosen.
6337 (fini_pre): Do not free post dominators.
6338
6339 2016-04-13 Martin Sebor <msebor@redhat.com>
6340
6341 PR c++/69517
6342 PR c++/70019
6343 PR c++/70588
6344 * doc/extend.texi (Variable Length): Document C++ specifics.
6345
6346 2016-04-13 Jakub Jelinek <jakub@redhat.com>
6347
6348 PR c++/70641
6349 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
6350 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
6351 eh edges have been purged.
6352
6353 PR c++/70594
6354 * tree-sra.c (create_access_replacement,
6355 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
6356 gets fancy name.
6357 * tree-pretty-print.c (dump_fancy_name): New function.
6358 (dump_decl_name, dump_generic_node): Use it.
6359
6360 2016-04-13 Jason Merrill <jason@redhat.com>
6361
6362 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
6363 * expr.c (expand_expr_real_1): Likewise.
6364
6365 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
6366
6367 * config/i386/i386.md (kunpckhi): Swap operands.
6368 (kunpcksi): Likewise.
6369 (kunpckdi): Likewise.
6370 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
6371 (vec_pack_trunc_<mode>): Likewise.
6372
6373 2016-04-13 Jakub Jelinek <jakub@redhat.com>
6374
6375 PR debug/70628
6376 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
6377
6378 PR middle-end/70633
6379 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
6380 gimplification turns some element into non-constant.
6381
6382 PR debug/70628
6383 * rtl.h (convert_memory_address_addr_space_1): New prototype.
6384 * explow.c (convert_memory_address_addr_space_1): No longer static,
6385 add NO_EMIT argument and don't call convert_modes if true, pass
6386 it down recursively, remove break after return.
6387 (convert_memory_address_addr_space): Adjust caller.
6388 * simplify-rtx.c (simplify_unary_operation_1): Call
6389 convert_memory_address_addr_space_1 instead of convert_memory_address,
6390 if it returns NULL, don't simplify.
6391
6392 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
6393
6394 PR target/70630
6395 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
6396
6397 2016-04-12 Jakub Jelinek <jakub@redhat.com>
6398
6399 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6400 Bump the upper SIMDLEN limits, so that if the return type or
6401 characteristic type if the return type is void can be passed in
6402 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
6403 allowed.
6404
6405 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
6406
6407 PR target/70640
6408 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
6409 Do not use "=" constraint on an input constraint.
6410 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
6411 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
6412 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
6413 generates (neg (abs ...)) instead of (abs ...).
6414
6415 2016-04-12 Jakub Jelinek <jakub@redhat.com>
6416
6417 PR rtl-optimization/70596
6418 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
6419 just invalidate LRA data and reset them. Adjust dump wording.
6420
6421 2016-04-12 Martin Liska <mliska@suse.cz>
6422
6423 Revert
6424 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
6425
6426 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
6427 estimates here.
6428 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
6429 max_loop_iterations_int.
6430 (tree_unswitch_outer_loop): Likewise.
6431 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
6432 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
6433
6434 2016-04-12 Tom de Vries <tom@codesourcery.com>
6435
6436 PR tree-optimization/68756
6437 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
6438 instead of new_name.
6439
6440 2016-04-12 Jakub Jelinek <jakub@redhat.com>
6441
6442 PR tree-optimization/70602
6443 * tree-sra.c (generate_subtree_copies): Don't write anything into
6444 constant pool decls.
6445
6446 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
6447 regardless whether there are depend clauses or not.
6448
6449 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
6450
6451 PR target/70381
6452 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
6453 target attribute and pragma from changing the -mfloat128
6454 and -mfloat128-hardware options.
6455
6456 * doc/extend.texi (Additional Floating Types): Document PowerPC
6457 __float128 restrictions.
6458
6459 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
6460
6461 PR target/70133
6462 * config/aarch64/driver-aarch64.c
6463 (aarch64_get_extension_string_for_isa_flags): New.
6464 (arch_extension): Rename to...
6465 (aarch64_arch_extension): ...This.
6466 (ext_to_feat_string): Rename to...
6467 (aarch64_extensions): ...This.
6468 (aarch64_core_data): Keep track of architecture extension flags.
6469 (cpu_data): Rename to...
6470 (aarch64_cpu_data): ...This.
6471 (aarch64_arch_driver_info): Keep track of architecture extension
6472 flags.
6473 (get_arch_name_from_id): Rename to...
6474 (get_arch_from_id): ...This, change return type.
6475 (host_detect_local_cpu): Update and reformat for renames, handle
6476 extensions through common infrastructure.
6477
6478 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
6479
6480 PR target/70133
6481 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
6482 track of a canonical flag name.
6483 (all_extensions): Likewise.
6484 (arch_to_arch_name): Also track extension flags enabled by the arch.
6485 (all_architectures): Likewise.
6486 (aarch64_parse_extension): Move to here.
6487 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
6488 rework.
6489 (aarch64_rewrite_selected_cpu): Update for above change.
6490 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
6491 are handled, such that the single explicit value enabled by an
6492 extension is kept seperate from the implicit values it also enables.
6493 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
6494 to here.
6495 (aarch64_parse_extension): New.
6496 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
6497 here to config/aarch64/aarch64-protos.h.
6498 (aarch64_parse_extension): Move from here to
6499 common/config/aarch64/aarch64-common.c.
6500 (aarch64_option_print): Update.
6501 (aarch64_declare_function_name): Likewise.
6502 (aarch64_start_file): Likewise.
6503 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
6504 the canonical flag for extensions.
6505 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
6506 flags.
6507
6508 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
6509
6510 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
6511 AARCH64_FL_CRC.
6512
6513 2016-04-09 Tom de Vries <tom@codesourcery.com>
6514
6515 PR tree-optimization/68953
6516 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
6517 first to last subscript.
6518
6519 2016-04-09 Jakub Jelinek <jakub@redhat.com>
6520
6521 PR tree-optimization/70586
6522 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
6523 for any calls.
6524
6525 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
6526
6527 PR lto/70289
6528 PR ipa/70348
6529 PR tree-optimization/70373
6530 PR middle-end/70533
6531 PR middle-end/70534
6532 PR middle-end/70535
6533 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
6534 clauses for acc parallel reductions as necessary. Error on those
6535 that are private.
6536 * omp-low.c (scan_sharing_clauses): Don't install variables which
6537 are used in acc parallel reductions.
6538 (lower_rec_input_clauses): Remove dead code.
6539 (lower_oacc_reductions): Add support for reference reductions.
6540 (lower_reduction_clauses): Remove dead code.
6541 (lower_omp_target): Don't remap variables appearing in acc parallel
6542 reductions.
6543 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
6544
6545 2016-04-08 Jakub Jelinek <jakub@redhat.com>
6546
6547 PR middle-end/70593
6548 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
6549 with multiple SSA_NAME defs, force the outputs other than first
6550 to be live before calling live_track_process_def on each output.
6551
6552 PR rtl-optimization/70574
6553 * fwprop.c (forward_propagate_and_simplify): Don't add
6554 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
6555 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
6556 paradoxical subregs within *loc.
6557
6558 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
6559
6560 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
6561 -ftree-parallelize-loops={0,1}.
6562 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
6563 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
6564 * config/ia64/hpux.h (LIB_SPEC): Likewise.
6565 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
6566 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
6567
6568 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
6569
6570 PR sanitizer/70541
6571 * asan.c (instrument_derefs): If we get unknown location, extract it
6572 with EXPR_LOCATION.
6573 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
6574
6575 2016-04-08 Tom de Vries <tom@codesourcery.com>
6576
6577 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
6578 implicit firstprivate clause.
6579
6580 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6581
6582 PR target/70566
6583 * config/arm/thumb2.md (tst + branch-> lsls + branch
6584 peephole below *orsi_not_shiftsi_si): Require that condition
6585 register is dead after the peephole.
6586 (second peephole after the above): Likewise.
6587
6588 2016-04-08 Alan Modra <amodra@gmail.com>
6589
6590 PR target/70117
6591 * builtins.c (fold_builtin_classify): For IBM extended precision,
6592 look at just the high-order double to test for NaN.
6593 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
6594 test just the high double for Inf but both doubles for subnormal
6595 limit.
6596
6597 2016-04-07 Jakub Jelinek <jakub@redhat.com>
6598
6599 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
6600 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
6601 node->simdclone->mask_mode != VOIDmode masks.
6602 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
6603 earlier, use it instead of node->simdclone.
6604 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6605 Set clonei->mask_mode.
6606
6607 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
6608
6609 PR c/70436
6610 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
6611 Pass it through to cp_parser_already_scoped_statement.
6612 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
6613 it through to cp_parser_statement.
6614 (cp_parser_statement): Pass IF_P through to
6615 cp_parser_iteration_statement.
6616 (cp_parser_pragma): Adjust call to
6617 cp_parser_iteration_statement.
6618
6619 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
6620
6621 PR c/70436
6622 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
6623 resolve a future -Wparentheses warning.
6624 * omp-low.c (scan_sharing_clauses): Likewise.
6625 * tree-parloops.c (eliminate_local_variables): Likewise.
6626
6627 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
6628
6629 PR rtl-optimization/70398
6630 * lra-constraints.c (process_address_1): Check zero scale and code
6631 for reloading with zero scale.
6632
6633 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
6634
6635 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
6636 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
6637
6638 2016-04-06 Jakub Jelinek <jakub@redhat.com>
6639
6640 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6641 Add support for AVX512F clones, include them by default for
6642 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
6643 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
6644 up to 128.
6645
6646 PR middle-end/70550
6647 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
6648 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
6649 firstprivate clauses.
6650 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
6651 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
6652 (lower_omp_target): Set TREE_NO_WARNING for
6653 non-addressable possibly uninitialized vars which are copied into
6654 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
6655
6656 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
6657
6658 * config/pa/predicates.md (integer_store_memory_operand): Accept
6659 REG+D operands with a large offset when reload_in_progress is true.
6660 (floating_point_store_memory_operand): Likewise.
6661
6662 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6663
6664 PR c++/70336
6665 * match.pd (nested int casts): Limit to GIMPLE.
6666
6667 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
6668
6669 PR ipa/66223
6670 * ipa-devirt.c (maybe_record_node): Fix comment; use
6671 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
6672
6673 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6674
6675 PR rtl-optimization/70542
6676 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
6677 if there are any uses other than insn or debug insns.
6678
6679 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
6680 Jakub Jelinek <jakub@redhat.com>
6681
6682 PR tree-optimization/70509
6683 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
6684 Shift HOST_WIDE_INT_1U instead of 1.
6685
6686 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
6687
6688 PR tree-optimization/70509
6689 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
6690 of the vector base type for index.
6691
6692 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
6693
6694 PR target/70510
6695 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
6696
6697 2016-04-05 Richard Biener <rguenther@suse.de>
6698
6699 PR tree-optimization/70526
6700 * tree-sra.c (build_ref_for_offset): Use prev_base to
6701 extract the alias pointer type.
6702
6703 2016-04-05 Richard Biener <rguenther@suse.de>
6704
6705 * dse.c (struct store_info): Remove alias_set member.
6706 (struct read_info_type): Likewise.
6707 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
6708 spill_deleted, clear_alias_set_lookup): Remove.
6709 (get_group_info): Remove dead base == NULL_RTX case.
6710 (dse_step0): Remove initialization of removed variables.
6711 (delete_dead_store_insn): Reomve alias set dumping.
6712 (free_read_records): Remove alias_set handling.
6713 (canon_address): Remove alias_set_out parameter.
6714 (record_store): Remove spill_alias_set, it's always zero.
6715 (check_mem_read_rtx): Likewise.
6716 (dse_step2): Rename from ...
6717 (dse_step2_nospill): ... this. Adjust.
6718 (scan_stores): Rename from ...
6719 (scan_stores_nospill): ... this.
6720 (scan_reads): Rename from ...
6721 (scan_reads_nospill): ... this.
6722 (scan_stores_spill, scan_reads_spill): Remove.
6723 (dse_step3_scan): Remove for_spills argument which is always false.
6724 (dse_step3): Likewise.
6725 (dse_step5): Rename from ...
6726 (dse_step5_nospill): ... this. Remove alias_set handling.
6727 (rest_of_handle_dse): Adjust.
6728
6729 2016-04-05 Jakub Jelinek <jakub@redhat.com>
6730
6731 PR target/70525
6732 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
6733 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
6734 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
6735 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
6736
6737 2016-04-05 Richard Biener <rguenther@suse.de>
6738
6739 PR middle-end/70499
6740 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
6741 non-register type temporaries into SSA.
6742
6743 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
6744
6745 PR ipa/66223
6746 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
6747 calls when sanitizing.
6748 (possible_polymorphic_call_target_p): Fix formatting.
6749
6750 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6751 Jakub Jelinek <jakub@redhat.com>
6752
6753 PR middle-end/70457
6754 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
6755 to ensure a call statement is compatible with a built-in's
6756 prototype.
6757 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
6758 Likewise.
6759
6760 2016-04-04 Richard Biener <rguenther@suse.de>
6761
6762 PR rtl-optimization/70484
6763 * rtl.h (canon_output_dependence): Declare.
6764 * alias.c (canon_output_dependence): New function.
6765 * dse.c (record_store): Use canon_output_dependence rather
6766 than canon_true_dependence.
6767
6768 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
6769
6770 PR ipa/68881
6771 * cgraph.h (symtab_node::copy_visibility_from): New function.
6772 * symtab.c (symtab_node::copy_visibility_from): New function.
6773 * ipa-visibility.c (optimize_weakref): New function.
6774 (function_and_variable_visibility): Use it.
6775
6776 2016-04-04 Martin Liska <mliska@suse.cz>
6777
6778 PR hsa/70402
6779 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
6780 value that is really in range handled by SBR instruction.
6781 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
6782 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
6783 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
6784
6785 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
6786
6787 PR target/70416
6788 PR target/67391
6789 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
6790 set, but not for SP_REG operands.
6791
6792 2016-04-02 Martin Sebor <msebor@redhat.com>
6793
6794 PR c++/67376
6795 * fold-const.c (maybe_nonzero_address): New function.
6796 (fold_comparison): Call it. Fold equality and relational
6797 expressions involving null pointers.
6798 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
6799
6800 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
6801
6802 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
6803 the "Y" constraint (scalar FP 0.0 immediate).
6804
6805 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
6806 Add the "const_double" to the list of operand constraints.
6807
6808 2016-04-01 Jakub Jelinek <jakub@redhat.com>
6809
6810 PR rtl-optimization/70467
6811 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
6812 If low word of the last operand is 0, just emit addition/subtraction
6813 for the high word.
6814
6815 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6816
6817 PR target/70404
6818 * config/s390/s390.c (s390_expand_insv): Check for everything
6819 constant instead of just VOIDmode stuff.
6820
6821 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6822
6823 PR target/70496
6824 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
6825
6826 2016-04-01 Nathan Sidwell <nathan@acm.org>
6827
6828 * tree.def (TRY_CATCH_EXPR): Correct documentation.
6829
6830 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
6831
6832 PR rtl-optimization/70461
6833 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
6834 is necessary.
6835
6836 2016-03-31 Martin Liska <mliska@suse.cz>
6837
6838 PR hsa/70399
6839 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
6840 a tree value or an immediate integer value to a buffer
6841 that is eventually copied to a BRIG section.
6842 (emit_immediate_operand): Call the function here.
6843 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
6844 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
6845 of class' fields that are removed.
6846 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
6847 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
6848 m_brig_repr_size fields.
6849
6850 2016-03-31 Martin Liska <mliska@suse.cz>
6851
6852 PR hsa/70391
6853 * hsa-gen.c (hsa_function_representation::update_dominance): New
6854 function.
6855 (convert_addr_to_flat_segment): Likewise.
6856 (gen_hsa_memory_set): New alignment argument.
6857 (gen_hsa_ctor_assignment): Likewise.
6858 (gen_hsa_insns_for_single_assignment): Provide alignment
6859 to gen_hsa_ctor_assignment.
6860 (gen_hsa_insns_for_direct_call): Add new argument.
6861 (expand_lhs_of_string_op): New function.
6862 (expand_string_operation_builtin): Likewise.
6863 (expand_memory_copy): New function.
6864 (expand_memory_set): New function.
6865 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
6866 (convert_switch_statements): Change signature.
6867 (generate_hsa): Use a return value of the function.
6868 (pass_gen_hsail::execute): Do not call
6869 convert_switch_statements here.
6870 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
6871 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
6872 (hsa_function_representation::update_dominance): New function.
6873
6874 2016-03-31 Martin Liska <mliska@suse.cz>
6875
6876 PR hsa/70391
6877 * hsa-brig.c (emit_directive_variable): Emit alignment
6878 according to hsa_symbol::m_align.
6879 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
6880 (dump_hsa_symbol): Dump alignment of HSA symbols.
6881 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
6882 (gen_hsa_addr_with_align): New function.
6883 (hsa_bitmemref_alignment): Use newly added function.
6884 (gen_hsa_insns_for_load): Likewise.
6885 (gen_hsa_insns_for_store): Likewise.
6886 (gen_hsa_memory_copy): New argument added.
6887 (gen_hsa_insns_for_single_assignment): Respect
6888 alignment for assignments processed via gen_hsa_memory_copy.
6889 (gen_hsa_insns_for_direct_call): Likewise.
6890 (gen_hsa_insns_for_return): Likewise.
6891 (gen_function_def_parameters): Set default alignment.
6892 * hsa.c (hsa_object_alignment): New function.
6893 (hsa_byte_alignment): Pasted function.
6894 * hsa.h (hsa_symbol::m_align): New field.
6895
6896 2016-03-31 Bin Cheng <bin.cheng@arm.com>
6897
6898 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
6899 scratch field for goto case.
6900
6901 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
6902
6903 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
6904
6905 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
6906
6907 PR target/70442
6908 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
6909 (scalar_chain::convert_insn): Call convert_op for reg
6910 moves to handle undefined registers.
6911
6912 2016-03-31 Nathan Sidwell <nathan@acm.org>
6913
6914 PR c++/70393
6915 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
6916 Assert we don't want to move backwards.
6917
6918 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
6919
6920 PR target/70453
6921 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
6922
6923 2016-03-31 Jakub Jelinek <jakub@redhat.com>
6924
6925 PR rtl-optimization/70460
6926 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
6927 with operand from REG_LABEL_OPERAND, instead substitute
6928 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
6929 Don't do anything for REG_NON_LOCAL_GOTO jumps.
6930
6931 2016-03-31 Martin Liska <mliska@suse.cz>
6932
6933 * passes.c (execute_one_pass): Do not call
6934 todo_after for a discarded function.
6935
6936 2016-03-31 Bin Cheng <bin.cheng@arm.com>
6937
6938 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
6939 (no_cost, infinite_cost): Initialize the new field.
6940 (get_computation_cost_at): Record setup cost.
6941 (determine_use_iv_cost_address): Skip cost computation for sub
6942 uses if we can estimate it without losing accuracy.
6943
6944 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
6945
6946 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
6947 estimates here.
6948 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
6949 max_loop_iterations_int.
6950 (tree_unswitch_outer_loop): Likewise.
6951 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
6952 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
6953
6954 2016-03-30 Richard Biener <rguenther@suse.de>
6955
6956 PR middle-end/70450
6957 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
6958
6959 2016-03-30 Jakub Jelinek <jakub@redhat.com>
6960
6961 PR target/70421
6962 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
6963 in gen_blendm expander.
6964
6965 2016-03-30 Nick Clifton <nickc@redhat.com>
6966
6967 PR target/62254
6968 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
6969 case where we are already provided with an SImode SUBREG.
6970
6971 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
6972
6973 PR target/70439
6974 * config/i386/i386.c (ix86_expand_epilogue): Properly check
6975 conflict between DRAP register and __builtin_eh_return.
6976
6977 2016-03-30 Michael Matz <matz@suse.de>
6978 Richard Biener <rguenther@suse.de>
6979
6980 PR ipa/12392
6981 * ipa-polymorphic-call.c (struct type_change_info): Change
6982 speculative to an unsigned allowing to limit the work we do.
6983 (csftc_abort_walking_p): New inline function..
6984 (check_stmt_for_type_change): Limit the number of may-defs
6985 skipped for speculative devirtualization to
6986 max-speculative-devirt-maydefs.
6987 * params.def (max-speculative-devirt-maydefs): New param.
6988 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
6989
6990 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
6991
6992 PR target/63890
6993 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
6994 and TARGET_MACHO.
6995
6996 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
6997
6998 PR tree-optimization/59124
6999 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
7000 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
7001
7002 2016-03-29 Jeff Law <law@redhat.com>
7003
7004 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
7005
7006 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7007
7008 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
7009 to HOST_WIDE_INT.
7010
7011 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
7012
7013 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
7014 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
7015 gcrt0.o if linking dynamically.
7016
7017 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7018
7019 PR ipa/70283
7020 * ipa-devirt.c (methods_equal_p): New function.
7021 (compare_virtual_tables): Use it.
7022 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
7023 * cgraphclones.c (clone_function_name_1): Use
7024 symbol_table::symbol_suffix_separator.
7025 * coverage.c (build_var): Likewise.
7026 * symtab.c (symbol_table::symbol_suffix_separator): New.
7027
7028 2016-03-29 Jakub Jelinek <jakub@redhat.com>
7029
7030 PR rtl-optimization/70429
7031 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
7032 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
7033 mode != result_mode.
7034
7035 PR c++/70353
7036 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
7037
7038 PR tree-optimization/70405
7039 * ssa-iterators.h (num_imm_uses): Add missing braces.
7040
7041 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
7042
7043 PR rtl-optimization/68695
7044 * ira-color.c (allocno_copy_cost_saving): New.
7045 (improve_allocation): Use it.
7046
7047 2016-03-29 Richard Henderson <rth@redhat.com>
7048
7049 PR middle-end/70355
7050 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
7051
7052 2016-03-29 Richard Biener <rguenther@suse.de>
7053
7054 PR middle-end/70424
7055 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
7056 use alignment returned by get_pointer_alignment_1 if it is
7057 bigger than BITS_PER_UNIT.
7058 * builtins.c (get_pointer_alignment_1): Do not return true
7059 for alignment extracted from SSA info.
7060
7061 2016-03-28 James Bowman <james.bowman@ftdichip.com>
7062
7063 * config/ft32/ft32.opt (mnodiv): New.
7064 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
7065 * doc/invoke.texi (FT32 Options -mnodiv): New.
7066
7067 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
7068
7069 PR target/70406
7070 * config/i386/i386.md (define_split, andn): Fix modes.
7071
7072 2016-03-26 Richard Biener <rguenther@suse.de>
7073 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7074
7075 PR ipa/70366
7076 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
7077 instead of
7078 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
7079 as 2nd argument to cl_optimization_restore().
7080
7081 2016-03-25 Richard Henderson <rth@redhat.com>
7082
7083 PR target/70120
7084 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
7085 * config/aarch64/aarch64-protos.h: Declare it.
7086 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
7087
7088 2016-03-25 Alan Modra <amodra@gmail.com>
7089
7090 PR target/70052
7091 * config/rs6000/constraints.md (j): Simplify.
7092 * config/rs6000/predicates.md (easy_fp_constant): Exclude
7093 decimal float 0.D.
7094 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
7095 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
7096 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
7097 in all constraint alternatives.
7098 (movtd_64bit_nodm): Delete "j" constraint alternative.
7099
7100 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
7101
7102 * tree-ssa-propagate.c: Enhance docs for
7103 SSA_PROP_NOT_INTERESTING.
7104
7105 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
7106
7107 * doc/extend.texi: Fix typo in documentation to pure attribute.
7108
7109 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
7110
7111 PR target/70319
7112 * config/pa/pa.md (bswapdi2): Use a scratch register.
7113
7114 2016-03-24 Richard Henderson <rth@redhat.com>
7115
7116 PR middle-end/69845
7117 * fold-const.c (extract_muldiv_1): Correct test for multiplication
7118 overflow.
7119
7120 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
7121
7122 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
7123 using ix86_expand_binary_operator instead of gen_andsi3.
7124
7125 2016-03-24 Richard Biener <rguenther@suse.de>
7126
7127 PR tree-optimization/70396
7128 * tree-vect-stmts.c (vectorizable_comparison): Use
7129 get_vectype_for_scalar_type.
7130
7131 2016-03-24 Richard Biener <rguenther@suse.de>
7132
7133 PR middle-end/70370
7134 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
7135 with register bases.
7136
7137 2016-03-24 Richard Biener <rguenther@suse.de>
7138
7139 PR tree-optimization/70372
7140 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
7141 build_all_ones_cst to also handle vector types correctly.
7142
7143 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
7144
7145 PR target/70381
7146 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
7147 -mfloat128 here.
7148
7149 2016-03-23 Marek Polacek <polacek@redhat.com>
7150
7151 PR c++/69884
7152 * doc/invoke.texi: Document -Wignored-attributes.
7153
7154 2016-03-23 Bin Cheng <bin.cheng@arm.com>
7155
7156 PR tree-optimization/69042
7157 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
7158 parameter from 30 to 40.
7159
7160 2016-03-23 Bin Cheng <bin.cheng@arm.com>
7161
7162 PR tree-optimization/69042
7163 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
7164 for use with constant offset stripped in base.
7165
7166 2016-03-23 Richard Biener <rguenther@suse.de>
7167
7168 PR middle-end/70251
7169 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
7170 mode compatibility check.
7171 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
7172
7173 2016-03-23 Jeff Law <law@redhat.com>
7174
7175 PR tree-optimization/64058
7176 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
7177 CONFLICT_COUNT.
7178 (struct ssa_conflicts): Move up earlier in the file.
7179 (conflicts_, var_map_): New static variables.
7180 (initialize_conflict_count): New function to initialize the
7181 CONFLICT_COUNT field for each conflict pair.
7182 (compare_pairs): Lazily initialize the conflict count and use it
7183 as the first tie-breaker.
7184 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
7185 and wipe conflicts_ and map_ around the call to qsort. Remove
7186 special case for 2 coalesce pairs.
7187 * bitmap.c (bitmap_count_unique_bits): New function.
7188 (bitmap_count_bits_in_word): New function, extracted from
7189 bitmap_count_bits.
7190 (bitmap_count_bits): Use bitmap_count_bits_in_word.
7191 * bitmap.h (bitmap_count_unique_bits): Declare it.
7192
7193 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
7194
7195 PR target/69917
7196 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
7197 transparent alias chain for decl assembler name.
7198 * config/sol2.c (solaris_assemble_visibility): Likewise.
7199
7200 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7201
7202 * config/arm/arm1020e.md (1020call_op): Reduce reservation
7203 duration.
7204 (v10_fdivs): Likewise.
7205 (v10_fdivd): Likewise.
7206
7207 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7208
7209 PR driver/70132
7210 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
7211 to not call fclose twice on file.
7212
7213 2016-03-23 Jakub Jelinek <jakub@redhat.com>
7214
7215 PR tree-optimization/70354
7216 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
7217 oprnd0 is wider than oprnd1 and there is a cast from the wider
7218 type to oprnd1, mask it with the mask of the narrower type.
7219
7220 PR target/70321
7221 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
7222 Optimize TARGET_STV splitters, if high or low word of last argument
7223 is 0 or -1.
7224
7225 2016-03-22 Jeff Law <law@redhat.com>
7226
7227 PR target/70232
7228 tree-ssa-threadbackward.c
7229 (fsm_find_control_statement_thread_paths): Correctly distinguish
7230 between old style jump threads vs FSM jump threads.
7231
7232 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
7233
7234 PR target/70302
7235 * config/i386/i386.c (scalar_chain::convert_op): Support
7236 uninitialized register usage case.
7237
7238 2016-03-22 Richard Biener <rguenther@suse.de>
7239
7240 PR middle-end/70251
7241 * genmatch.c (gen_transform): Adjust last parameter to a three-state
7242 int...
7243 (capture::gen_transform): ... to change behavior when substituting
7244 a condition into cond or not-cond expr context.
7245 (dt_simplify::gen_1): Adjust.
7246 * gimple-match-head.c: Include gimplify.h for unshare_expr.
7247 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
7248 last change and instead change to
7249 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
7250 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
7251
7252 2016-03-22 Anthony Green <green@moxielogic.com>
7253
7254 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
7255 issue for moxiebox targets.
7256 (CC1PLUS_SPEC): Ditto.
7257
7258 2016-03-22 Richard Biener <rguenther@suse.de>
7259
7260 PR middle-end/70333
7261 * fold-const.c (extract_muldiv_1): Properly perform multiplication
7262 in the wide type.
7263
7264 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
7265
7266 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
7267
7268 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
7269
7270 PR target/70325
7271 * config/i386/i386.c (def_builtin): Handle
7272 OPTION_MASK_ISA_AVX512VL to be and-ed with other
7273 bits.
7274 (const struct builtin_description bdesc_special_args[]):
7275 Remove duplicate ISA bits.
7276
7277 2016-03-22 Jakub Jelinek <jakub@redhat.com>
7278
7279 PR target/70329
7280 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
7281 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
7282 in a way that works also for AVX512BW.
7283
7284 PR target/70300
7285 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
7286 instead of source if operands[1] is xmm16 and above and
7287 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
7288 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
7289
7290 PR c++/70295
7291 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
7292 on assign if (*from_p) is a comparison, set it to
7293 TREE_NO_WARNING (*from_p).
7294
7295 2016-03-21 Jakub Jelinek <jakub@redhat.com>
7296
7297 PR middle-end/70326
7298 * lra.c (restore_scratches): Ignore deleted insns.
7299
7300 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
7301 Jakub Jelinek <jakub@redhat.com>
7302
7303 PR tree-optimization/70317
7304 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
7305 to HONOR_NANS.
7306
7307 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
7308
7309 PR target/70327
7310 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
7311 of ix86_expand_move.
7312 (movoi): Ditto.
7313 (movti): Use general_operand for operand 1 predicate.
7314
7315 2016-03-21 Martin Liska <mliska@suse.cz>
7316
7317 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
7318 insns.
7319 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
7320
7321 2016-03-21 Martin Liska <mliska@suse.cz>
7322
7323 PR ipa/70306
7324 * ipa-icf.c (sem_function::parse): Skip static
7325 constructors and destructors.
7326
7327 2016-03-21 Jakub Jelinek <jakub@redhat.com>
7328
7329 PR target/70296
7330 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
7331 function-like macro, peek following token(s) if it is followed
7332 by CPP_OPEN_PAREN token with optional padding in between, and
7333 if not, don't treat it like a macro.
7334
7335 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
7336 Alexander Monakov <amonakov@ispras.ru>
7337
7338 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
7339 for the stabs debug format.
7340
7341 2016-03-21 Richard Biener <rguenther@suse.de>
7342
7343 PR tree-optimization/70310
7344 * tree-vect-generic.c (expand_vector_condition): Fold the built
7345 condition.
7346
7347 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
7348
7349 PR target/70293
7350 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
7351 Block third alternative for AVX-512VL target,
7352
7353 2016-03-21 Martin Liska <mliska@suse.cz>
7354
7355 PR hsa/70234
7356 * hsa-brig.c (emit_function_directives): Mark unemitted
7357 global variables for emission.
7358 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
7359 (get_symbol_for_decl): Likewise.
7360 * hsa.h (struct hsa_symbol): New flag.
7361
7362 2016-03-21 Richard Biener <rguenther@suse.de>
7363
7364 PR tree-optimization/70288
7365 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
7366 we do not estimate unsimplified all-constant conditionals or
7367 switches as optimized away.
7368
7369 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
7370
7371 PR rtl-optimization/69102
7372 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
7373 when we have a readonly dependency context.
7374
7375 2016-03-18 Jeff Law <law@redhat.com>
7376
7377 PR rtl-optimization/70263
7378 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
7379 (update_equiv_regs): When trying to move a store to after the insn
7380 that sets the source of the store, make sure the store occurs after
7381 the insn that sets the source of the store. When successful note
7382 the REG_EQUIV note created in the dump file.
7383
7384 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
7385 Bernd Schmidt <bschmidt@redhat.com>
7386
7387 * doc/extend.texi: Document more potential problems with basic asms.
7388
7389 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
7390
7391 PR rtl-optimization/70278
7392 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
7393 VOIDmode.
7394
7395 2016-03-18 Jason Merrill <jason@redhat.com>
7396
7397 * calls.c (load_register_parameters): Fix zero size sibcall logic.
7398
7399 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
7400
7401 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
7402 values to 128b regs.
7403
7404 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
7405
7406 PR tree-optimization/70252
7407 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
7408 boolean vector has a proper number of elements.
7409 (supportable_narrowing_operation): Likewise.
7410
7411 2016-03-18 Tom de Vries <tom@codesourcery.com>
7412
7413 PR ipa/70269
7414 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
7415
7416 2016-03-18 Jakub Jelinek <jakub@redhat.com>
7417
7418 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
7419 instead of replace_rtx for DEBUG_INSNs.
7420
7421 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
7422
7423 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
7424 load type reservations.
7425
7426 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
7427
7428 PR target/70188
7429 * config/pa/constraints.md: Revert 2015-02-13 change. Use
7430 define_constraint for "Q" and "T" constraints.
7431
7432 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
7433
7434 Tweak the pipeline model for Exynos M1
7435
7436 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
7437 model.
7438
7439 2016-03-17 David Malcolm <dmalcolm@redhat.com>
7440
7441 PR c/70264
7442 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
7443 where one or both locations aren't within a line_map.
7444
7445 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
7446
7447 PR driver/70192
7448 * opts.c (finish_options): Don't set flag_pie to the default if
7449 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
7450 if it is -1.
7451
7452 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
7453
7454 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
7455 true as ALL_REGS argument to replace_rtx.
7456
7457 2016-03-17 Richard Biener <rguenther@suse.de>
7458
7459 PR debug/70271
7460 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
7461 last.
7462
7463 2016-03-17 Jakub Jelinek <jakub@redhat.com>
7464
7465 PR target/70245
7466 * rtl.h (replace_rtx): Add ALL_REGS argument.
7467 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
7468 equality and assert mode is the same, instead of just rtx pointer
7469 equality.
7470 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
7471 true as ALL_REGS argument to replace_rtx.
7472
7473 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
7474
7475 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
7476 for boolean vector with vector mode only.
7477 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
7478
7479 2016-03-17 Nick Clifton <nickc@redhat.com>
7480
7481 PR target/70162
7482 * config/rx/rx.c (rx_print_integer): Print negative constants in
7483 decimal.
7484
7485 2016-03-17 Jakub Jelinek <jakub@redhat.com>
7486
7487 PR target/70261
7488 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
7489
7490 2016-03-16 Richard Henderson <rth@redhat.com>
7491 Richard Biener <rguenth@suse.de>
7492
7493 PR middle-end/70240
7494 PR middle-end/68215
7495 PR tree-opt/68714
7496 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
7497 first operand as is_gimple_condexpr.
7498
7499 PR middle-end/70240
7500 PR middle-end/68215
7501 Revert r231575
7502 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
7503 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
7504 Do not gimplify the result.
7505 (do_unop): Adjust call to tree_vec_extract.
7506 (do_binop): Likewise.
7507 (do_compare): Likewise.
7508 (do_plus_minus): Likewise.
7509 (do_negate): Likewise.
7510 (expand_vector_condition): Likewise.
7511 (do_cond): Likewise.
7512
7513 2016-03-16 Richard Henderson <rth@redhat.com>
7514
7515 PR target/70048
7516 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
7517 (aarch64_classify_address): Use it.
7518 (aarch64_legitimize_address): Force all subexpressions of PLUS
7519 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
7520
7521 2016-03-16 Jakub Jelinek <jakub@redhat.com>
7522 Richard Biener <rguenth@suse.de>
7523
7524 PR target/70245
7525 * rtlanal.c (replace_rtx): For REG, if from is a REG,
7526 return to even if only REGNO is equal, and assert
7527 mode is the same.
7528
7529 2016-03-11 Jeff Law <law@redhat.com>
7530
7531 PR rtl-optimization/70224
7532 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
7533
7534 2016-03-16 Richard Henderson <rth@redhat.com>
7535
7536 PR middle-end/70199
7537 * function.h (struct function): Add has_forced_label_in_static.
7538 * gimplify.c (force_labels_r): Set it.
7539 * lto-streamer-in.c (input_struct_function_base): Read it.
7540 * lto-streamer-out.c (output_struct_function_base): Write it.
7541 * tree-inline.c (has_label_address_in_static_1): Remove.
7542 (copy_forbidden): Remove fndecl parameter; test
7543 has_forced_label_in_static.
7544 (inline_forbidden_p): Update call to copy_forbidden.
7545 (tree_versionable_function_p): Likewise.
7546 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
7547 (chkp_versioning): Likewise.
7548 * tree-inline.h (copy_forbidden): Update decl.
7549
7550 2016-03-16 Marek Polacek <polacek@redhat.com>
7551
7552 PR c/70093
7553 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
7554 function being thunked if the result type doesn't have fixed size.
7555 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
7556 doesn't have fixed size.
7557
7558 2016-03-16 Bin Cheng <bin.cheng@arm.com>
7559
7560 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
7561 reporting malformed loop nest.
7562
7563 2016-03-16 Tom de Vries <tom@codesourcery.com>
7564
7565 PR lto/70187
7566 * ipa-devirt.c (possible_polymorphic_call_targets): Move
7567 nodes.length () == 1 test to before first nodes[0] access.
7568
7569 2016-03-16 Tom de Vries <tom@codesourcery.com>
7570
7571 PR tree-optimization/68715
7572 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
7573 single_pred_p test.
7574
7575 2016-03-16 Tom de Vries <tom@codesourcery.com>
7576
7577 PR tree-optimization/68809
7578 * graphite-scop-detection.c (same_close_phi_node): Test if result types
7579 are the same.
7580
7581 2016-03-16 Carlos O'Donell <carlos@redhat.com>
7582 Sandra Loosemore <sandra@codesourcery.com>
7583
7584 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
7585 on leaf attribute. Mention ELF interposition problems.
7586
7587 2016-03-16 Alan Modra <amodra@gmail.com>
7588
7589 PR rtl-optimization/69195
7590 PR rtl-optimization/47992
7591 * ira.c (indirect_jump_optimize): Ignore artificial defs.
7592 Add comments.
7593
7594 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
7595
7596 PR bootstrap/69513
7597 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
7598
7599 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7600
7601 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
7602
7603 2016-03-15 Jakub Jelinek <jakub@redhat.com>
7604
7605 PR rtl-optimization/70222
7606 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
7607 optimization if mode is different from result_mode, queue up masking
7608 of the result in outer_op. Formatting fix.
7609
7610 PR middle-end/70239
7611 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
7612 of safe_grow.
7613
7614 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7615
7616 PR rtl-optimization/69032
7617 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
7618 looping backwards over basic block insns.
7619
7620 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7621
7622 PR target/66660
7623 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
7624 to non-speculative when propagating trap bits.
7625
7626 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7627
7628 PR rtl-optimization/63384
7629 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
7630 DEBUG_INSN_P insns.
7631
7632 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
7633
7634 PR target/64411
7635 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
7636 factored out from ...
7637 (sched_analyze_insn): ... here.
7638 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
7639 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
7640 get_implicit_reg_pending_clobbers in it.
7641 (setup_id_reg_sets): Use setup_id_implicit_regs.
7642 (deps_init_id): Ditto.
7643
7644 2016-03-15 Tom de Vries <tom@codesourcery.com>
7645
7646 PR ipa/70161
7647 * cgraph.c (cgraph_node::get_body): Save, reset and restore
7648 dump_file_name.
7649 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
7650 execute_function_dump.
7651 (execute_one_pass): Don't dump function if it will be dumped after ipa
7652 transform.
7653
7654 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
7655
7656 * genrecog.c (match_pattern_2): If pred is NULL don't call
7657 safe_predicate_mode on it.
7658
7659 2016-03-14 Jakub Jelinek <jakub@redhat.com>
7660
7661 PR middle-end/70219
7662 * lra-constraints.c (delete_move_and_clobber): Change assertion
7663 to also allow dregno == 0.
7664
7665 2016-03-14 Richard Henderson <rth@redhat.com>
7666
7667 PR tree-opt/68714
7668 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
7669 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
7670 (reassociate_bb): Use optimize_vec_cond_expr; avoid
7671 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
7672 on vectors.
7673
7674 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
7675
7676 PR target/70083
7677 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
7678 regs.
7679 (lra_create_live_ranges_1): initialize hard register biggest_mode to
7680 VOIDmode.
7681 * lra-constraints.c (split_reg): For hard regs, try to find the
7682 biggest single-register mode used in the function.
7683
7684 2016-03-14 Richard Biener <rguenther@suse.de>
7685
7686 PR tree-optimization/56365
7687 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
7688 constants to compare against.
7689
7690 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
7691
7692 PR target/70098
7693 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
7694 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
7695 (define_split for the GPR case): Use int_reg_operand instead of
7696 gpc_reg_operand for the output.
7697
7698 2016-03-14 Tom de Vries <tom@codesourcery.com>
7699
7700 PR tree-optimization/70045
7701 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
7702 create_empty_if_region_on_edge argument.
7703
7704 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
7705
7706 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
7707 (STACK_CHECK_PROTECT): Likewise.
7708 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
7709 (STACK_CHECK_PROTECT): Likewise.
7710 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
7711 (STACK_CHECK_PROTECT): Likewise.
7712 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
7713 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7714 (STACK_CHECK_PROTECT): Likewise.
7715
7716 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
7717
7718 PR rtl-optimization/69307
7719 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
7720 registers in modes that span more than one register.
7721
7722 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
7723
7724 PR target/69614
7725 * lra-constraints.c (delete_move_and_clobber): New.
7726 (remove_inheritance_pseudos): Use it.
7727
7728 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
7729
7730 PR ada/70017
7731 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
7732 the libcall is LCT_THROW.
7733 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
7734 for the checking routine.
7735
7736 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7737
7738 PR target/70131
7739 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
7740 optimization if we have direct move.
7741 (roundu32<mode>2_fprs): Likewise.
7742
7743 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
7744
7745 PR target/70123
7746 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
7747 be rematerialized.
7748 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
7749 Arguments swapped. All callers changed. Take reg_renumber into
7750 account, and Calculate and compare register ranges for hard regs.
7751
7752 2016-03-11 Jeff Law <law@redhat.com>
7753
7754 PR tree-optimization/70190
7755 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
7756 Handle cases where we can not extract the taken edge, even though we
7757 found a constant value.
7758
7759 PR tree-optimization/64058
7760 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
7761 (num_coalesce_pairs): Move up earlier in file.
7762 (find_coalesce_pair): Initialize the INDEX field for each pair
7763 discovered.
7764 (compare_pairs): No longer sort on the elements in each pair.
7765 Instead break ties with the index of the coalesce pair.
7766
7767 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7768
7769 PR target/70002
7770 * config/aarch64/aarch64-protos.h
7771 (aarch64_save_restore_target_globals): New prototype.
7772 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
7773 Call the above when popping pragma.
7774 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
7775 New function.
7776 (aarch64_set_current_function): Rewrite using the above.
7777
7778 2016-03-11 Jakub Jelinek <jakub@redhat.com>
7779
7780 PR tree-optimization/70177
7781 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
7782 (extract_ops_from_tree): ... this. In the 2 argument
7783 overload remove _1 suffix.
7784 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
7785 (extract_ops_from_tree): ... this.
7786 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
7787 Adjust callers.
7788 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
7789 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
7790 extract_ops_from_tree instead of 2 operand one.
7791
7792 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
7793
7794 PR tree-optimization/70013
7795 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
7796 for constant-pool entries.
7797
7798 2016-03-11 Jakub Jelinek <jakub@redhat.com>
7799
7800 PR rtl-optimization/70174
7801 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
7802 followed by gen_lowpart on force_reg instead of just gen_lowpart.
7803
7804 PR tree-optimization/70169
7805 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
7806 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
7807 for unknown codes.
7808
7809 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
7810 Jakub Jelinek <jakub@redhat.com>
7811
7812 PR target/70160
7813 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
7814 of uninitialized values.
7815
7816 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7817
7818 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
7819 define_expand.
7820 ("*trunctddd2"): New pattern definition.
7821 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
7822 TD->DD truncation.
7823
7824 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7825
7826 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
7827 definitions for BFP and DFP rounding modes.
7828 ("fixuns_truncdddi2", "fixuns_trunctddi2")
7829 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
7830 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
7831 ("fix_trunctf<mode>2"): Use the new constants instead of magic
7832 numbers.
7833
7834 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7835
7836 * config/s390/constraints.md: Adjust comment.
7837 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
7838 s390_decompose_addrstyle_without_index.
7839 * config/s390/predicates.md (shift_count_or_setmem_operand):
7840 Rename to setmem_operand.
7841 * config/s390/s390-protos.h
7842 (s390_decompose_shift_count): Rename to
7843 s390_decompose_addrstyle_without_index.
7844 * config/s390/s390.c (s390_decompose_shift_count)
7845 (s390_mem_constraint, print_shift_count_operand)
7846 (print_operand_address, print_operand): Rename
7847 s390_decompose_shift_count to
7848 s390_decompose_addrstyle_without_index and rename
7849 print_shift_count_operand to print_addrstyle_operand troughout the
7850 file.
7851 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
7852 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
7853 Rename shift_count_or_setmem_operand to setmem_operand.
7854 * config/s390/vx-builtins.md ("vec_insert<mode>")
7855 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
7856 nonmemory_operand.
7857
7858 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7859
7860 PR target/70168
7861 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
7862 Handle overlapping retval and newval.
7863
7864 2016-03-10 Nick Clifton <nickc@redhat.com>
7865
7866 PR target/7044
7867 * config/aarch64/aarch64.c
7868 (aarch64_override_options_after_change_1): When forcing
7869 flag_omit_frame_pointer to be true, use a special value that can
7870 be detected if this function is called again, thus preventing
7871 flag_omit_leaf_frame_pointer from being forced to be false.
7872
7873 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7874
7875 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
7876 Set x_flag_omit_leaf_frame_pointer when handling
7877 -momit-leaf-frame-pointer.
7878
7879 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7880
7881 PR lto/69589
7882 * cgraph.c (cgraph_node::dump): Dump split_part and
7883 indirect_call_target.
7884 * cgraph.h (cgraph_node): Add indirect_call_target flag.
7885 * ipa.c (has_addr_references_p): Cleanup.
7886 (is_indirect_call_target_p): New.
7887 (walk_polymorphic_call_targets): Do not mark virtuals that may be
7888 called indirectly as local.
7889 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
7890
7891 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7892
7893 PR ipa/69630
7894 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
7895 on cxa_pure_virtual.
7896
7897 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7898
7899 PR lto/69589
7900 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
7901
7902 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
7903
7904 PR lto/69589
7905 * tree.c (need_assembler_name_p): Only record main variant type names.
7906
7907 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
7908
7909 PR target/70113.
7910 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
7911 Always define to 0 or 1.
7912 (TARGET_FIX_ERR_A53_843419): New macro.
7913 * config/aarch64/aarch64-elf-raw.h
7914 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
7915 * config/aarch64/aarch64-linux.h: Likewise.
7916 * config/aarch64/aarch64.c
7917 (aarch64_override_options_after_change_1): Do not default
7918 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
7919 843419 is on.
7920 (aarch64_attributes): Handle fix-cortex-a53-843419.
7921 (aarch64_can_inline_p): Likewise.
7922 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
7923
7924 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
7925 Jakub Jelinek <jakub@redhat.com>
7926
7927 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
7928 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
7929 DECL_COMMONS if flag_unconstrained_commons is set.
7930 * tree-dfa.c (get_ref_base_and_extent): Likewise.
7931 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
7932 (funconstrained-commons): Document.
7933
7934 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
7935
7936 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
7937 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
7938
7939 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
7940
7941 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
7942 has a proper number of elements.
7943
7944 2016-03-10 Alan Modra <amodra@gmail.com>
7945
7946 PR rtl-optimization/69195
7947 PR rtl-optimization/47992
7948 * ira.c (recorded_label_ref): Delete.
7949 (update_equiv_regs): Return void.
7950 (indirect_jump_optimize): New function.
7951 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
7952 before regstat_compute_ri. Don't rebuild_jump_labels here.
7953 Delete update_regstat.
7954
7955 2016-03-10 Richard Biener <rguenther@suse.de>
7956
7957 PR tree-optimization/70128
7958 * tree-ssa-structalias.c (set_uids_in_ptset): Set
7959 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
7960
7961 2016-03-09 Jakub Jelinek <jakub@redhat.com>
7962
7963 PR tree-optimization/70152
7964 * tree-sra.c (replace_removed_params_ssa_names): Copy over
7965 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
7966
7967 PR target/70086
7968 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
7969 instead of gen_sse2_loadlpd.
7970 * config/i386/sse.md (*vec_concatv2df): Rename to...
7971 (vec_concatv2df): ... this.
7972
7973 PR tree-optimization/70127
7974 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
7975
7976 2016-03-09 David Malcolm <dmalcolm@redhat.com>
7977
7978 PR c/68473
7979 PR c++/70105
7980 * diagnostic-show-locus.c (compatible_locations_p): New function.
7981 (layout::layout): Sanitize ranges using compatible_locations_p.
7982
7983 2016-03-09 David Malcolm <dmalcolm@redhat.com>
7984
7985 PR c/68473
7986 PR c++/70105
7987 * diagnostic-show-locus.c (layout_range::layout_range): Replace
7988 location_range param with three const expanded_locations * and a
7989 bool.
7990 (layout::layout): Replace call to
7991 rich_location::lazily_expand_location with get_expanded_location.
7992 Extract the range and perform location expansion here, passing
7993 the results to the layout_range ctor.
7994 * diagnostic.c (source_range::debug): Delete.
7995 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
7996 of rich_location::get_expanded_location.
7997 * gcc-rich-location.c (get_range_for_expr): Delete.
7998 (gcc_rich_location::add_expr): Reimplement to avoid the
7999 rich_location::add_range overload that took a location_range,
8000 passing a location_t instead.
8001
8002 2016-03-09 Richard Biener <rguenther@suse.de>
8003 Jakub Jelinek <jakub@redhat.com>
8004
8005 PR tree-optimization/70138
8006 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
8007 Also skip vect_double_reduction_def.
8008
8009 2016-03-09 Jakub Jelinek <jakub@redhat.com>
8010
8011 PR target/70049
8012 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
8013 if the operand is "m".
8014
8015 2016-03-09 Nathan Sidwell <nathan@acm.org>
8016
8017 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
8018
8019 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
8020
8021 * config/i386/i386.c (processor_target_table): Fix cost table
8022 intialization order for znver1.
8023
8024 2016-03-08 Jakub Jelinek <jakub@redhat.com>
8025
8026 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
8027 - becuase -> because.
8028 * ipa-reference.c (ignore_module_statics): Likewise.
8029 * cgraph.c (cgraph_node::get_body): Likewise.
8030 * ipa-inline.c (early_inliner): Likewise.
8031 * ipa-devirt.c (types_same_for_odr): Likewise.
8032 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
8033 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
8034
8035 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8036
8037 * tree-ssa-math-opts.c: Fix typo in comment.
8038
8039 2016-03-08 Jakub Jelinek <jakub@redhat.com>
8040
8041 PR target/70110
8042 * config/i386/i386.c (scalar_chain::make_vector_copies,
8043 scalar_chain::convert_reg): Call end_sequence in between
8044 get_insns and emit_conversion_insns rather than after both
8045 calls.
8046
8047 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
8048
8049 PR target/70064
8050 * config/i386/i386.h (machine_function): Add
8051 pc_thunk_call_expanded flag.
8052 (ix86_pc_thunk_call_expanded): New define.
8053 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
8054 (*set_got): Rename insn pattern from set_got.
8055 (*set_got_labelled): Rename inst pattern from set_got_labelled.
8056 * config/i386/i386.c (ix86_compute_frame_layout): Use
8057 ix86_pc_thunk_call_expanded to prevent red-zone.
8058
8059 2016-03-07 Martin Jambor <mjambor@suse.cz>
8060
8061 * hsa.h (hsa_get_ctor_statements): Declare.
8062 (hsa_get_dtor_statements): Likewise.
8063 (hsa_get_kernel_dispatch_type): Likewise.
8064 * hsa.c (hsa_get_ctor_statements): New function.
8065 (hsa_get_dtor_statements): Likewise.
8066 (hsa_get_kernel_dispatch_type): Likewise.
8067 * hsa-brig.c (hsa_cdtor_statements): Removed.
8068 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
8069 hsa_get_dtor_statements.
8070 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
8071 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
8072
8073 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
8074
8075 * config/arm/arm-cores.def (cortex-r8): New.
8076 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
8077 * config/arm/arm-tune.md: Likewise.
8078 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
8079
8080 2016-03-07 Martin Sebor <msebor@redhat.com>
8081
8082 PR rtl-optimization/19705
8083 * doc/invoke.texi (Options That Control Optimization): Clarify
8084 -fno-branch-count-reg.
8085
8086 2016-02-26 Richard Biener <rguenther@suse.de>
8087 Jeff Law <law@redhat.com>
8088
8089 PR tree-optimization/69740
8090 * cfghooks.c (remove_edge): Request loop fixups if we delete
8091 an edge that might turn an irreducible loop into a natural
8092 loop.
8093 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
8094 Move after definition of loops_state_clear.
8095
8096 2016-03-07 Bin Cheng <bin.cheng@arm.com>
8097
8098 PR rtl-optimization/69052
8099 * rtlanal.c (commutative_operand_precedence): Set higher precedence
8100 to CONST_WIDE_INT.
8101
8102 2016-03-07 Tom de Vries <tom@codesourcery.com>
8103
8104 PR tree-optimization/70116
8105 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
8106 is_tm_ending stmts and ubsan/asan internal functions.
8107 (find_duplicate): Use it. Don't test is_tm_ending here.
8108
8109 2016-03-07 Richard Biener <rguenther@suse.de>
8110
8111 PR tree-optimization/70115
8112 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
8113 (propagate_constants_for_unrolling): Use replace_uses_by.
8114
8115 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
8116
8117 PR middle-end/69916
8118 * omp-low.c (struct oacc_loop): Add ifns.
8119 (new_oacc_loop_raw): Initialize it.
8120 (finish_oacc_loop): Clear mask & flags if no ifns.
8121 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
8122 (oacc_loop_xform_loop): Add ifns arg & adjust.
8123 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
8124
8125 2016-03-07 Richard Henderson <rth@redhat.com>
8126
8127 PR rtl-opt/70061
8128 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
8129 (insert_value_copy_on_edge): Likewise.
8130
8131 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8132
8133 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
8134
8135 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8136
8137 PR target/62281
8138 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
8139
8140 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
8141
8142 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
8143
8144 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
8145
8146 Fix sseimul type attribute.
8147 * config/i386/znver1.md
8148 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
8149 znver1_sseimul_avx256_load) : Fix the type attribute.
8150 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
8151 pipe usage and latency.
8152
8153 2016-03-05 Jakub Jelinek <jakub@redhat.com>
8154
8155 PR c++/70084
8156 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
8157 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
8158 to the right type.
8159
8160 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
8161
8162 PR c/69973
8163 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
8164
8165 PR rtl-optimization/69941
8166 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
8167 the reg share its mode.
8168
8169 2016-03-04 Jeff Law <law@redhat.com>
8170
8171 PR tree-optimization/69196
8172 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8173 If the both SSA_NAMEs are anonymous, then consider them unassociated
8174 and include the PHI in the statement count.
8175
8176 2016-03-05 Tom de Vries <tom@codesourcery.com>
8177
8178 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
8179 construct in oacc routine. Check for oacc region in oacc routine.
8180
8181 2016-03-04 Jakub Jelinek <jakub@redhat.com>
8182
8183 PR target/70062
8184 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
8185 2016-02-22 changes, instead don't recurse if RECUR is already true.
8186 Don't change *dynamic_check if RECUR. Adjust recursive caller
8187 to pass true to the new argument.
8188 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
8189
8190 PR target/70059
8191 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
8192 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
8193 fixes.
8194 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
8195
8196 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
8197
8198 PR rtl-optimization/57676
8199 * lra-assigns.c (lra_assign): Guard test for maximum iterations
8200 with flag_checking.
8201
8202 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
8203
8204 * tree-vect-patterns.c (search_type_for_mask): Handle
8205 comparison of booleans.
8206
8207 2016-03-04 Jakub Jelinek <jakub@redhat.com>
8208
8209 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
8210 Fix @xref usage.
8211
8212 PR debug/69947
8213 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
8214 all other ops that have dw_val_class_die_ref operands,
8215 and DW_OP_GNU_entry_value.
8216
8217 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8218
8219 PR rtl-optimization/69904
8220 * config/arm/arm.c (arm_cannot_copy_insn_p):
8221 Return true for load-exclusive instructions.
8222
8223 2016-03-03 Jakub Jelinek <jakub@redhat.com>
8224
8225 PR target/70021
8226 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
8227 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
8228 the pattern no matter if it is used just by non-pattern, pattern
8229 or mix thereof.
8230 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
8231 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
8232 oprnd1 def_stmt is in pattern, don't look through it.
8233
8234 2016-03-03 Marek Polacek <polacek@redhat.com>
8235
8236 PR middle-end/70050
8237 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
8238
8239 2016-03-03 Martin Liska <mliska@suse.cz>
8240
8241 PR tree-optimization/70043
8242 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
8243 previous statement if we see a debug statement.
8244
8245 2016-03-03 Richard Biener <rguenther@suse.de>
8246
8247 PR tree-optimization/55936
8248 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
8249 parameter and guard unsafe equivalence use.
8250 (vrp_evaluate_conditional_warnv_with_ops): Always use
8251 safe equivalences but not via the quadratic compare_names
8252 helper.
8253
8254 2016-03-03 Michael Collison <michael.collison@linaro.org>
8255
8256 PR target/70014
8257 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
8258 for operand 1 to s_register_operand. Change predicate for operand
8259 2 to arm_not_immediate_operand.
8260
8261 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
8262
8263 * doc/tm.texi: Regenerated.
8264
8265 2016-03-02 Richard Henderson <rth@redhat.com>
8266
8267 PR rtl-opt/67145
8268 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
8269 simplification when all args are positive non-fixed registers.
8270
8271 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8272
8273 * target.def (lra_p): Specify that new ports should use LRA.
8274
8275 2016-03-02 Jakub Jelinek <jakub@redhat.com>
8276
8277 PR libgomp/69555
8278 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
8279 gimplify_type_sizes the type they refer to.
8280 (omp_notice_variable): Handle reference vars to VLAs.
8281 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
8282 reference to VLA decls in the second pass instead of first pass.
8283
8284 2016-03-02 Tom de Vries <tom@codesourcery.com>
8285
8286 PR tree-optimization/68659
8287 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
8288 new_expr == NULL_TREE.
8289 (get_new_name): Handle ADDR_EXPR.
8290
8291 2016-03-02 Bin Cheng <bin.cheng@arm.com>
8292
8293 PR rtl-optimization/69052
8294 * loop-invariant.c (canonicalize_address): New function.
8295 (inv_can_prop_to_addr_use): Check validity of address expression
8296 which is canonicalized by above function.
8297
8298 2016-03-02 Alan Modra <amodra@gmail.com>
8299
8300 PR ipa/69990
8301 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
8302 larger alignment.
8303
8304 2016-03-02 Jakub Jelinek <jakub@redhat.com>
8305
8306 PR target/70028
8307 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
8308 (*movhi_internal): Put mask moves from and to memory separately
8309 from moves from/to GPRs.
8310
8311 2016-03-02 Richard Biener <rguenther@suse.de>
8312
8313 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
8314 GENERIC expressions in GIMPLE.
8315
8316 2016-03-02 Richard Biener <rguenther@suse.de>
8317
8318 * config/i386/i386.c (type_natural_mode): Fix typo.
8319
8320 2016-03-02 Nick Clifton <nickc@redhat.com>
8321
8322 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
8323
8324 2016-03-02 Richard Biener <rguenther@suse.de>
8325 Uros Bizjak <ubizjak@gmail.com>
8326
8327 PR target/67278
8328 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
8329
8330 2016-03-02 Richard Biener <rguenther@suse.de>
8331
8332 PR middle-end/67278
8333 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
8334
8335 2016-03-02 Marek Polacek <polacek@redhat.com>
8336
8337 PR c/67854
8338 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
8339 "is promoted to" warning.
8340
8341 2016-03-01 DJ Delorie <dj@redhat.com>
8342
8343 * config.gcc: Deprecate mep-*.
8344
8345 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
8346
8347 PR middle-end/70025
8348 * lra-constraints.c (regno_val_use_in): New.
8349 (match_reload): Use it instead of regno_use_in.
8350
8351 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
8352
8353 PR rtl-optimization/70007
8354 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
8355 references present in REG_EQUAL notes attached to non-SET patterns.
8356
8357 2016-03-01 Jeff Law <law@redhat.com>
8358
8359 PR tree-optimization/69196
8360 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8361 Appropriately clamp the number of statements to copy when the
8362 thread path does not traverse a loop backedge.
8363
8364 PR tree-optimization/69196
8365 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8366 Do count some PHIs in the thread path against the insn count. Decrease
8367 final statement count by one as the control statement in the last
8368 block will get removed. Remove special cased code for handling PHIs
8369 in the last block.
8370
8371 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
8372
8373 PR target/70027
8374 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
8375 asm dialect alternatives to explicit GOTPCREL calls.
8376
8377 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
8378
8379 PR ada/70017
8380 * ira.c (do_reload): Issue warning for generic stack checking here...
8381 * reload1.c (reload): ...instead of here and streamline it.
8382
8383 2016-03-01 Nick Clifton <nickc@redhat.com>
8384
8385 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
8386
8387 2016-03-01 Richard Biener <rguenther@suse.de>
8388
8389 PR tree-optimization/69983
8390 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
8391 types and fall back to operand_equal_p.
8392
8393 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8394
8395 Revert
8396 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8397
8398 * config/s390/constraints.md ("jm8"): New constraint.
8399 * config/s390/predicates.md ("const_int_8bitset_operand"): New
8400 predicate.
8401 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
8402 into ...
8403 ("*setmem_long<setmem_and>"): New pattern.
8404 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
8405 into ...
8406 ("*setmem_long_31z<setmem_and>"): New pattern.
8407 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
8408 New substitution rules with the required attributes.
8409
8410
8411 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8412
8413 Revert
8414 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8415
8416 * gensupport.c (process_substs_on_one_elem): Split loop to
8417 complete mark_operands_used_in_match_dup on all expressions in the
8418 vector first.
8419 (adjust_operands_numbers): Inline into process_substs_on_one_elem
8420 and remove function.
8421
8422 2016-03-01 Richard Biener <rguenther@suse.de>
8423
8424 PR middle-end/70022
8425 * fold-const.c (fold_indirect_ref_1): Fix range checking for
8426 vector BIT_FIELD_REF extract.
8427
8428 2016-03-01 Richard Biener <rguenther@suse.de>
8429
8430 PR tree-optimization/69994
8431 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
8432
8433 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
8434
8435 PR tree-optimization/69956
8436 * tree-vect-stmts.c (supportable_widening_operation): Support
8437 multi-step conversion of boolean vectors.
8438 (supportable_narrowing_operation): Likewise.
8439
8440 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8441
8442 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
8443 anymore.
8444
8445 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8446
8447 * config/s390/subst.md (DSI_VI): New mode iterator.
8448 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
8449 * config/s390/vector.md ("vec_set<mode>"): Move expander before
8450 the insn definition.
8451 ("*vec_set<mode>"): Change predicate and add alternative to
8452 support only either register or const_int operands as element
8453 selector.
8454 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
8455 operands.
8456 ("vec_extract<mode>"): New expander.
8457 ("*vec_extract<mode>"): New insn definition supporting reg and
8458 const_int element selectors.
8459 ("*vec_extract<mode>_plus"): New insn definition supporting
8460 reg+const_int element selectors.
8461 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
8462 following expander+insn definition.
8463 ("<vec_shifts_name><mode>3"): New expander.
8464 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
8465
8466 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8467
8468 * config/s390/s390.md ("*tabort_1"): Change predicate to
8469 nonmemory_operand. Add a second alternative to cover
8470 register as well as const int operands.
8471 ("*tabort_1_plus"): New pattern definition.
8472
8473 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8474
8475 * config/s390/s390.md ("*ashrdi3_cc_31")
8476 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
8477 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
8478 Merge insn definitions into ...
8479 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
8480 New pattern definition.
8481 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
8482 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
8483 ("*ashr<mode>3_and"): Merge insn definitions into ...
8484 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
8485 New pattern definition.
8486 * config/s390/subst.md ("addr_style_op_cc_subst")
8487 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
8488 substitutions patterns plus attributes.
8489 Add ashiftrt to SUBST iterator.
8490
8491 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8492
8493 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
8494 op2 to nonmemory_operand.
8495 ("*<shift>di3_31", "*<shift>di3_31_and"):
8496 Merge into single pattern definition ...
8497 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
8498 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
8499 pattern definition ...
8500 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
8501 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
8502 iterator.
8503
8504 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8505
8506 * config/s390/predicates.md (const_int_6bitset_operand): New
8507 predicate.
8508 * config/s390/s390.md: Include subst.md.
8509 ("rotl<mode>3"): New expander.
8510 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
8511 ...
8512 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
8513 * config/s390/subst.md: New file.
8514
8515 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8516
8517 * config/s390/s390.md ("op_type", "atype", "length" attributes):
8518 Remove RRR type. It doesn't really exist.
8519 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
8520 attributes.
8521 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
8522 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
8523 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
8524 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
8525 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
8526 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
8527 `enabled' attribute.
8528
8529 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8530
8531 * gensupport.c (process_substs_on_one_elem): Split loop to
8532 complete mark_operands_used_in_match_dup on all expressions in the
8533 vector first.
8534 (adjust_operands_numbers): Inline into process_substs_on_one_elem
8535 and remove function.
8536
8537 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
8538
8539 PR target/69706
8540 * config/sparc/sparc.c (NWORDS_UP): Rename to...
8541 (CEIL_NWORDS): ...this. Use CEIL macro.
8542 (compute_fp_layout): Adjust to above renaming.
8543 (function_arg_union_value): Likewise.
8544 (sparc_arg_partial_bytes): Likewise.
8545 (sparc_function_arg_advance): Likewise.
8546
8547 2016-02-29 Jeff Law <law@redhat.com>
8548
8549 PR tree-optimization/70005
8550 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
8551 where an object with a boolean range is compared against a value
8552 outside [0..1].
8553
8554 PR tree-optimization/69999
8555 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
8556 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
8557 loop cleanups.
8558
8559 2016-02-29 Richard Biener <rguenther@suse.de>
8560
8561 PR tree-optimization/69994
8562 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
8563 (get_unary_op): Look through nop conversions.
8564 (ops_equal_values_p): New function, look for equality diregarding
8565 nop conversions.
8566 (eliminate_plus_minus_pair): Use ops_equal_values_p
8567 (repropagate_negates): Do not use get_unary_op here.
8568
8569 2016-02-29 Martin Liska <mliska@suse.cz>
8570
8571 * system.h: Poison ENABLE_CHECKING macro.
8572
8573 2016-02-29 Martin Liska <mliska@suse.cz>
8574
8575 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
8576 is presented in dump flags.
8577 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
8578 (hsa_regalloc): Likewise.
8579
8580 2016-02-19 Richard Biener <rguenther@suse.de>
8581
8582 PR tree-optimization/69980
8583 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
8584 permutation of those we need to keep.
8585
8586 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
8587
8588 PR target/69706
8589 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
8590 (NWORDS_UP): ...this
8591 (init_cumulative_args): Minor tweaks.
8592 (sparc_promote_function_mode): Likewise.
8593 (scan_record_type): Delete.
8594 (traverse_record_type): New function template.
8595 (classify_data_t): New structure type.
8596 (classify_registers): New inline function.
8597 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
8598 exhausted. Instantiate traverse_record_type on classify_registers and
8599 deal with the case of a structure passed in slot #15 with no FP field
8600 in the first word.
8601 (assign_data_t): New structure type.
8602 (compute_int_layout): New static function.
8603 (compute_fp_layout): Likewise.
8604 (count_registers): New inline function.
8605 (assign_int_registers): New static function.
8606 (assign_fp_registers): Likewise.
8607 (assign_registers): New inline function.
8608 (function_arg_record_value_1): Delete.
8609 (function_arg_record_value_2): Likewise.
8610 (function_arg_record_value_3): Likewise.
8611 (function_arg_record_value): Adjust to above changes. Instantiate
8612 traverse_record_type on count_registers to first count the number of
8613 registers to be used and then on assign_registers to assign them.
8614 (function_arg_union_value): Adjust to above renaming.
8615 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
8616 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
8617 case of a structure passed in slot #15
8618 (sparc_function_arg_advance): Likewise.
8619 (function_arg_padding): Minor tweak.
8620
8621 2016-02-29 Richard Biener <rguenther@suse.de>
8622
8623 PR tree-optimization/69720
8624 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
8625 the adjustment_def path for possibly vectorized defs.
8626 (vect_create_epilog_for_reduction): Handle vectorized initial
8627 defs properly.
8628
8629 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
8630
8631 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
8632
8633 2016-02-27 Jeff Law <law@redhat.com>
8634
8635 Revert
8636 2016-02-26 Richard Biener <rguenther@suse.de>
8637 Jeff Law <law@redhat.com>
8638
8639 PR tree-optimization/69740
8640 * cfghooks.c (remove_edge): Request loop fixups if we delete
8641 an edge that might turn an irreducible loop into a natural
8642 loop.
8643
8644 2016-02-27 Jakub Jelinek <jakub@redhat.com>
8645
8646 PR rtl-optimization/69896
8647 * tree-vect-generic.c (get_compute_type): Avoid single element
8648 vector types.
8649
8650 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
8651
8652 Rename the AArch64 tuning option and related functions to enable the
8653 Newton series for the reciprocal square root to reflect its
8654 approximative characteristic.
8655
8656 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
8657 function to "aarch64_emit_approx_rsqrt".
8658 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
8659 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
8660 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
8661 (xgene1_tunings): Likewise.
8662 (use_rsqrt_p): Likewise.
8663 (aarch64_emit_swrsqrt): Use new function name.
8664 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
8665 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
8666 text explaining this option.
8667 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
8668
8669 2016-02-26 Jakub Jelinek <jakub@redhat.com>
8670
8671 PR target/69969
8672 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
8673 complain about -mallow-movmisalign without -mvsx if
8674 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
8675
8676 2016-02-26 Joel Sherrill <joel@rtems.org>
8677
8678 * config.gcc: Add x86_64-*-rtems*.
8679 * config/i386/rtems-64.h: New file.
8680
8681 2016-02-26 Joel Sherrill <joel@rtems.org>
8682
8683 * config.gcc: Add aarch64-*-rtems*.
8684 * config/aarch64/rtems.h: New file.
8685
8686 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
8687
8688 PR target/69946
8689 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
8690 shift amount using %h. Add comment.
8691
8692 2016-02-26 Richard Biener <rguenther@suse.de>
8693 Jeff Law <law@redhat.com>
8694
8695 PR tree-optimization/69740
8696 * cfghooks.c (remove_edge): Request loop fixups if we delete
8697 an edge that might turn an irreducible loop into a natural
8698 loop.
8699
8700 2016-02-26 Martin Jambor <mjambor@suse.cz>
8701
8702 PR middle-end/69920
8703 * tree-sra.c (sra_modify_assign): Do not remove loads of
8704 uninitialized aggregates to SSA_NAMEs.
8705
8706 2016-02-26 Richard Henderson <rth@redhat.com>
8707
8708 PR target/69709
8709 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
8710 pseudo in case the target rtx matches the source of the left
8711 shift.
8712
8713 2016-02-26 Martin Jambor <mjambor@suse.cz>
8714
8715 PR hsa/69568
8716 * hsa.h (hsa_type_packed_p): Declare.
8717 * hsa.c (hsa_type_packed_p): New function.
8718 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
8719 loads.
8720 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
8721 * hsa-brig.c (emit_basic_insn): Likewise.
8722
8723 2016-02-26 Martin Jambor <mjambor@suse.cz>
8724
8725 pr hsa/69674
8726 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
8727 pointers.
8728 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
8729
8730 2016-02-26 Martin Jambor <mjambor@suse.cz>
8731
8732 * hsa.h (is_a_helper): New overload for hsa_op_immed for
8733 hsa_op_with_type operands.
8734 (hsa_unsigned_type_for_type): Declare.
8735 * hsa.c (hsa_unsigned_type_for_type): New function.
8736 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
8737 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
8738 the finalizer. Do not emit extra move.
8739
8740 2016-02-26 Martin Jambor <mjambor@suse.cz>
8741
8742 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
8743 atomic operations in private segment.
8744
8745 2016-02-26 Martin Jambor <mjambor@suse.cz>
8746
8747 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
8748 statements to wi->info. Also disallow omp simd constructs.
8749 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
8750 for not gridifying. Dump special string for omp_for.
8751
8752 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8753
8754 PR target/69245
8755 * config/aarch64/aarch64.c (aarch64_set_current_function):
8756 Save/restore target globals when switching to
8757 target_option_default_node.
8758
8759 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8760
8761 PR target/69613
8762 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
8763 Return 0 if !SHIFT_COUNT_TRUNCATED.
8764
8765 2016-02-26 Jakub Jelinek <jakub@redhat.com>
8766 Eric Botcazou <ebotcazou@adacore.com>
8767
8768 PR rtl-optimization/69891
8769 * dse.c (scan_insn): If we can't figure out memset arguments
8770 or they are non-constant, call clear_rhs_from_active_local_stores.
8771
8772 2016-02-26 Martin Liska <mliska@suse.cz>
8773
8774 * doc/extend.texi: Mention clog10, clog10f an clog10l
8775 in Builtins section.
8776
8777 2016-02-26 Martin Liska <mliska@suse.cz>
8778
8779 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
8780 CHECKING_P.
8781 (resolve_args_picking_1): Likewise.
8782 * dwarf2out.h (struct GTY): Likewise.
8783
8784 2016-02-26 Martin Liska <mliska@suse.cz>
8785
8786 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
8787 with flag_checking.
8788 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
8789
8790 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
8791 Martin Liska <mliska@suse.cz>
8792
8793 * doc/install.texi: Mention --enable-valgrind-annotations.
8794
8795 2016-02-26 Richard Biener <rguenther@suse.de>
8796
8797 PR tree-optimization/69551
8798 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
8799 looking through aliases adjust DECL_PT_UID to refer to the
8800 ultimate alias target.
8801
8802 2016-02-25 Martin Liska <mliska@suse.cz>
8803
8804 PR middle-end/69919
8805 * alloc-pool.c (after_memory_report): New variable.
8806 * alloc-pool.h (base_pool_allocator ::release): Do not use
8807 the infrastructure if after_memory_report.
8808 * toplev.c (toplev::main): Mark after memory report.
8809
8810 2016-02-25 Richard Biener <rguenther@suse.de>
8811
8812 PR tree-optimization/48795
8813 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
8814
8815 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
8816
8817 PR driver/68463
8818 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
8819 offloading is enabled and -fopenacc or -fopenmp is specified.
8820 (CRTOFFLOADEND): Likewise.
8821 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
8822 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
8823 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
8824 (offload_objects_file_name): New static var.
8825 (tool_cleanup): Remove offload_objects_file_name file.
8826 (find_offloadbeginend): Replace with ...
8827 (find_crtoffloadtable): ... this.
8828 (run_gcc): Remove offload_argc and offload_argv.
8829 Get offload_objects_file_name from -foffload-objects=... option.
8830 Read names of object files with offload from this file, pass them to
8831 compile_images_for_offload_targets. Don't call find_offloadbeginend and
8832 don't pass offloadbegin and offloadend to the linker. Don't pass
8833 offload non-LTO files to the linker, because now they're not claimed.
8834
8835 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
8836
8837 PR ipa/69630
8838 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
8839 on builtin_unreachable.
8840
8841 2016-02-25 Jakub Jelinek <jakub@redhat.com>
8842
8843 PR rtl-optimization/69896
8844 * regcprop.c: Include cfgrtl.h.
8845 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
8846 than remembered mode, either delete it (if noop_move_p), or
8847 treat like copy_p but not noop_p instruction.
8848
8849 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8850
8851 PR debug/69705
8852 * dwarf2out.c (gen_variable_die): Work around buggy LTO
8853 - allow NULL decl for Fortran DW_TAG_common_block variables.
8854
8855 2016-02-24 Jason Merrill <jason@redhat.com>
8856
8857 * common.opt (flifetime-dse): Add -flifetime-dse=1.
8858
8859 2016-02-24 Richard Biener <rguenther@suse.de>
8860 Jakub Jelinek <jakub@redhat.com>
8861
8862 PR middle-end/69760
8863 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
8864 conditionally executed ops to well-defined overflow behavior.
8865
8866 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8867
8868 PR middle-end/69915
8869 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
8870 elements.
8871
8872 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8873
8874 PR rtl-optimization/69886
8875 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
8876 argument. Use it when checking validity of set instructions.
8877 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
8878 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
8879 callsite.
8880 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
8881 * store-motion.c (find_moveable_store): Update
8882 can_assign_to_reg_without_clobbers_p callsite.
8883
8884 2016-02-24 Richard Biener <rguenther@suse.de>
8885
8886 PR middle-end/68963
8887 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
8888 bogus check.
8889 (record_nonwrapping_iv): Do not fall back to the low/high bound
8890 for non-constant IV bases if the stmt is not always executed.
8891
8892 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8893
8894 * config/arm/arm-cores.def (cortex-a32): New entry.
8895 * config/arm/arm-tables.opt: Regenerate.
8896 * config/arm/arm-tune.md: Regenerate.
8897 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
8898 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
8899 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
8900 for -mcpu and -mtune.
8901
8902 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8903
8904 PR target/69875
8905 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
8906 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
8907 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
8908 (atomic_loaddi_1): Delete.
8909 (atomic_loaddi): Rewrite expander using the above changes.
8910
8911 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8912
8913 PR c/69918
8914 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
8915 2 to 3.
8916
8917 2016-02-24 Jakub Jelinek <jakub@redhat.com>
8918 Richard Biener <rguenth@suse.de>
8919
8920 PR middle-end/69909
8921 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
8922 set_mem_attributes if tem is SSA_NAME which got expanded
8923 as a MEM.
8924
8925 2016-02-24 Richard Biener <rguenther@suse.de>
8926
8927 PR tree-optimization/69907
8928 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
8929 end of permutations for BB vectorization.
8930
8931 2016-02-24 Christian Bruel <christian.bruel@st.com>
8932
8933 * config/arm/arm-c.c (arm_option_override): Initialize
8934 target_option_current_node.
8935 * config/arm/arm.c (arm_pragma_target_parse): Replace
8936 build_target_option_node call by target_option_current_node.
8937 Set target_option_current_node.
8938 Fix comments.
8939
8940 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
8941
8942 PR target/69810
8943 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
8944 define_insn_and_split to define_insn.
8945 (zero_extendqi<mode>2_dot2): Same.
8946 (extendqi<mode>2_dot): Same.
8947 (extendqi<mode>2_dot2): Same.
8948
8949 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
8950
8951 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
8952 and add bypass for AES{D,E} and AESMC pairs.
8953 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
8954 and AESMC pairs.
8955
8956 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
8957
8958 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
8959 series for reciprocal square root in Exynos M1.
8960
8961 2016-02-23 Martin Sebor <msebor@redhat.com>
8962
8963 PR c/69759
8964 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
8965 __builtin_alloca_with_align.
8966
8967 2016-02-23 Richard Henderson <rth@redhat.com>
8968
8969 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
8970 (ix86_register_pragmas): Remove __seg_tls.
8971 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
8972 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
8973 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
8974 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
8975 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
8976 * doc/extend.texi (__seg_tls): Remove item.
8977
8978 2016-02-23 Richard Biener <rguenther@suse.de>
8979
8980 * alloc-pool.h (struct allocation_object): Make id member
8981 conditional on CHECKING_P again.
8982 (get_instance): Adjust.
8983 (base_pool_allocator): Likewise.
8984
8985 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
8986
8987 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
8988 (parallelize_loops): In OpenACC kernels mode, set n_threads to
8989 zero.
8990 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
8991 flag_openacc.
8992 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
8993
8994 2016-02-23 Richard Biener <rguenther@suse.de>
8995
8996 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
8997 * bitmap.h (struct bitmap_usage): Likewise.
8998 (bitmap_move): Declare.
8999 * bitmap.c (register_overhead): Take size_t argument.
9000 (bitmap_move): New function.
9001 * df-problems.c (df_rd_transfer_function): Use bitmap_move
9002 to properly account overhead.
9003 * tree.c (free_node): Use tree_size.
9004
9005 2016-02-23 Jakub Jelinek <jakub@redhat.com>
9006
9007 PR c++/69902
9008 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
9009 when inverting comparison.
9010
9011 PR c/69900
9012 * common.opt (Wunreachable-code): Add Warning flag.
9013
9014 2016-02-23 Mark Wielaard <mjw@redhat.com>
9015 Jakub Jelinek <jakub@redhat.com>
9016
9017 PR c/69911
9018 * cgraphunit.c (check_global_declaration): Check main_input_filename
9019 and DECL_SOURCE_FILE are not NULL.
9020
9021 2016-02-23 Martin Jambor <mjambor@suse.cz>
9022
9023 PR tree-optimization/69666
9024 * tree-sra.c (sra_modify_assign): Do not attempt to create
9025 default_def replacements for unscalarizable regions.
9026
9027 2016-02-20 Mark Wielaard <mjw@redhat.com>
9028
9029 PR c/28901
9030 * cgraphunit.c (check_global_declaration): Check level of
9031 warn_unused_const_variable and main_input_filename.
9032 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
9033 (-Wunused-variable): For C implies -Wunused-const-variable=1.
9034 (-Wunused-const-variable): Explain levels 1 and 2.
9035
9036 2016-02-22 Jakub Jelinek <jakub@redhat.com>
9037
9038 PR target/69888
9039 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
9040 identical arguments. Formatting and spelling fixes.
9041
9042 PR target/69885
9043 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
9044 be specified.
9045
9046 PR target/69894
9047 PR target/69895
9048 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
9049 and m68k-devices.def.
9050 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
9051 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
9052
9053 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
9054
9055 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
9056 and HImode registers.
9057
9058 2016-02-22 Richard Biener <rguenther@suse.de>
9059
9060 PR tree-optimization/69882
9061 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
9062 preserve permutations present because of gaps.
9063 (vect_supported_load_permutation_p): Always continue checking
9064 permutations after vect_attempt_slp_rearrange_stmts.
9065
9066 2016-02-22 Bin Cheng <bin.cheng@arm.com>
9067
9068 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
9069 min_profitable_estimate, rather than min_profitable_iters.
9070
9071 2016-02-22 Jakub Jelinek <jakub@redhat.com>
9072
9073 PR target/69885
9074 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
9075 SImode for last match_operand.
9076
9077 2016-02-22 Martin Liska <mliska@suse.cz>
9078
9079 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
9080 return bitsize - 1 as the return value.
9081
9082 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
9083
9084 PR target/69806
9085 PR target/54089
9086 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
9087 Handle negative shift counts.
9088 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
9089 force_reg on the shift constant.
9090 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
9091 (lshrsi3_d): Handle negative shift counts.
9092
9093 2016-02-22 Richard Biener <rguenther@suse.de>
9094 Tom de Vries <tom@codesourcery.com>
9095
9096 * graph.c: Include dumpfile.h.
9097 (print_graph_cfg): Split into three overloads.
9098 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
9099
9100 2016-02-22 Tom de Vries <tom@codesourcery.com>
9101
9102 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
9103 dump-fn.
9104
9105 2016-02-22 Richard Biener <rguenther@suse.de>
9106
9107 PR ipa/37448
9108 * ipa-inline-transform.c (inline_call): When not updating
9109 overall summaries adjust self size by the growth estimate.
9110 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
9111 hash-set, do not update overall summaries here. Renamed from ...
9112 (inline_to_all_callers): ... this which is now wrapping the
9113 above and performing delayed overall summary update.
9114 (early_inline_small_functions): Delay updating of the overall
9115 summary.
9116
9117 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
9118
9119 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
9120 variable.
9121
9122 2016-02-19 Jakub Jelinek <jakub@redhat.com>
9123
9124 PR driver/69805
9125 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
9126 :%* in %:gt() argument.
9127 (greater_than_spec_func): Adjust for expecting only numbers,
9128 if there are more than two numbers, compare the last two.
9129
9130 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
9131
9132 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
9133 -Wnarrowing with -std.
9134
9135 2016-02-19 Jakub Jelinek <jakub@redhat.com>
9136
9137 PR c++/69851
9138 * expr.c (store_field): Don't use bit-field path if exp is
9139 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
9140 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
9141 and the assignment can be performed by bitwise copy. Formatting
9142 fix.
9143
9144 PR middle-end/69838
9145 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
9146 call copy_reg_eh_region_note_forward on before and/or after sequences
9147 and remove note from insn if it no longer can throw.
9148
9149 PR target/69820
9150 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
9151 if TARGET_AVX512BW.
9152
9153 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9154
9155 * config/s390/vector.md: Add missing commutative operand markers
9156 to the patterns which qualify for one.
9157 * config/s390/vx-builtins.md: Likewise.
9158
9159 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9160
9161 * config/s390/vector.md (VI, VI_QHS): Add single element vector
9162 types to mode iterators.
9163 (vec_double): ... and mode attribute.
9164 * config/s390/vx-builtins.md (non_vec_int): Likewise.
9165
9166 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9167
9168 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
9169 Change the predicate of op2 from nonimmediate to general and let
9170 reload fix it if necessary.
9171
9172 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9173
9174 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
9175
9176 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9177
9178 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
9179 mode.
9180
9181 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9182
9183 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
9184 * config/s390/s390.c (s390_expand_vec_movstr): New function.
9185 * config/s390/s390.md ("movstr<P:mode>"): Call
9186 s390_expand_vec_movstr.
9187
9188 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9189
9190 * config/s390/s390.md: Add missing output modifier for operand 1
9191 to print it as address properly.
9192
9193 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9194
9195 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
9196 * config/s390/2964.md: New file.
9197 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
9198 of insn grouping attributes depending on the CPU level.
9199 (s390_get_unit_mask): New function.
9200 (s390_sched_score): Remove the OOO from the scheduling macros.
9201 Add loop to calculate a score for the instruction mix.
9202 (s390_sched_reorder): Likewise plus improve debug output.
9203 (s390_sched_variable_issue): Rename macros as above. Calculate
9204 the unit distances after actually scheduling an insn. Improve
9205 debug output.
9206 (s390_sched_init): Clear last_scheduled_unit_distance array.
9207 * config/s390/s390.md: Include 2964.md.
9208
9209 2016-02-18 Jakub Jelinek <jakub@redhat.com>
9210
9211 PR target/69671
9212 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
9213 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
9214 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
9215 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
9216 *avx512f_<code>v8div16qi2_mask_1): New insns.
9217
9218 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
9219
9220 PR target/68404
9221 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
9222 2016-02-09 change.
9223
9224 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
9225 earlyclobber from target. Use wF constraint for fused memory
9226 address.
9227 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
9228
9229 2016-02-18 Jakub Jelinek <jakub@redhat.com>
9230 Martin Liska <mliska@suse.cz>
9231
9232 PR sanitizer/69863
9233 * cfgexpand.c (asan_sanitize_stack_p): New function.
9234 (partition_stack_vars): Use the function.
9235 (expand_stack_vars): Likewise.
9236 (defer_stack_allocation): Likewise.
9237 (expand_used_vars): Likewise.
9238
9239 2016-02-18 Richard Biener <rguenther@suse.de>
9240
9241 PR middle-end/69553
9242 * fold-const.c (operand_equal_p): Properly compare offsets for
9243 IMAGPART_EXPR and ARRAY_REF.
9244
9245 2016-02-18 Nick Clifton <nickc@redhat.com>
9246
9247 PR target/62254
9248 PR target/69610
9249 * config/arm/arm.c (arm_option_override_internal): Disable
9250 interworking if the target does not support thumb instructions.
9251 (arm_reload_in_hi): Handle the case where a register to register
9252 move needs reloading because there is no simple pattern to handle
9253 it.
9254 (arm_reload_out_hi): Likewise.
9255
9256 2016-02-18 Richard Biener <rguenther@suse.de>
9257
9258 PR middle-end/69854
9259 * match.pd: Don't use fold_binary or fold_unary for folding
9260 constants.
9261
9262 2016-02-17 Jakub Jelinek <jakub@redhat.com>
9263
9264 PR c++/69850
9265 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
9266 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
9267 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
9268 warn on gimple_no_warning_p statements.
9269
9270 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
9271
9272 * doc/extend.texi (C++ Attributes): Correct description of
9273 warn_unused type attribute.
9274
9275 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9276
9277 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
9278 correct instruction.
9279
9280 2016-02-17 Richard Biener <rguenther@suse.de>
9281
9282 PR rtl-optimization/69609
9283 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
9284 (find_traces_1_round): When ending a trace update cached priority
9285 of successors.
9286 (bb_to_key): Use cached priority when available.
9287 (copy_bb): Initialize cached priority.
9288 (reorder_basic_blocks_software_trace_cache): Likewise.
9289
9290 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9291
9292 PR target/69161
9293 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
9294 New predicate.
9295 (aarch64_comparison_operator): Break overly long line into two.
9296 (aarch64_comparison_operation): Likewise.
9297 * config/aarch64/aarch64.md (cstorecc4): Use
9298 aarch64_comparison_operator_mode instead of
9299 aarch64_comparison_operator.
9300 (cstore<mode>4): Likewise.
9301 (aarch64_cstore<mode>): Likewise.
9302 (*cstoresi_insn_uxtw): Likewise.
9303 (cstore<mode>_neg): Likewise.
9304 (*cstoresi_neg_uxtw): Likewise.
9305
9306 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9307
9308 PR target/69161
9309 * config/arm/predicates.md (arm_comparison_operator_mode):
9310 New predicate.
9311 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
9312 instead of arm_comparison_operator.
9313 (*mov_negscc): Likewise.
9314 (*mov_notscc): Likewise.
9315 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
9316 (*thumb2_mov_negscc): Likewise.
9317 (*thumb2_mov_negscc_strict_it): Likewise.
9318 (*thumb2_mov_notscc): Likewise.
9319 (*thumb2_mov_notscc_strict_it): Likewise.
9320
9321 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
9322
9323 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
9324 Add missing return.
9325
9326 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
9327
9328 * config/visium/visium.c (machine_libfunc_index): New enum.
9329 (machine_libfuncs): New structure.
9330 (visium_libfuncs): New static variable.
9331 (TARGET_INIT_LIBFUNCS): Define to...
9332 (visium_init_libfuncs): ...this. New function.
9333 (expand_block_move_4): Use the appropriate libfunc.
9334 (expand_block_move_2): Likewise.
9335 (expand_block_move_1): Likewise.
9336 (expand_block_set_4): Likewise.
9337 (expand_block_set_2): Likewise.
9338 (expand_block_set_1): Likewise.
9339 (visium_trampoline_init): Likewise.
9340
9341 2016-02-17 Nick Clifton <nickc@redhat.com>
9342
9343 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
9344 TI's devices.csv file as of March 2016.
9345
9346 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
9347
9348 PR Target/48344
9349 * opts-global.c (handle_common_deferred_options): Introduce and
9350 initialize two global variables to remember command-line options
9351 specifying a stack-limiting register.
9352 * opts.h: Add extern declarations of the two new global variables.
9353 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
9354 variable based on the values of the two new global variables.
9355
9356 2016-02-16 Jakub Jelinek <jakub@redhat.com>
9357
9358 PR c/69835
9359 * common.opt (Wnonnull-compare): New warning.
9360 * doc/invoke.texi (-Wnonnull): Remove text about comparison
9361 of arguments against NULL.
9362 (-Wnonnull-compare): Document.
9363 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
9364 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
9365 * passes.def (pass_warn_nonnull_compare): Add.
9366 * gimple-ssa-nonnull-compare.c: New file.
9367
9368 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
9369
9370 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
9371 AARCH64_EXTRA_TUNE_RECIP_SQRT.
9372
9373 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
9374
9375 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
9376 reciprocal sqrt for -mlow-precision-recip-sqrt.
9377
9378 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
9379 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9380
9381 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
9382 always use lane loads to construct non-constant vectors.
9383
9384 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
9385
9386 * config/aarch64/aarch64.md
9387 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
9388 constraints for operand 3.
9389 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
9390
9391 2016-02-16 Jakub Jelinek <jakub@redhat.com>
9392 Richard Biener <rguenther@suse.de>
9393
9394 PR tree-optimization/69820
9395 * tree-vect-patterns.c (type_conversion_p): Return false if
9396 *orig_type is unsigned single precision or boolean.
9397 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
9398 Formatting fix.
9399
9400 2016-02-16 Jakub Jelinek <jakub@redhat.com>
9401
9402 PR rtl-optimization/69764
9403 PR rtl-optimization/69771
9404 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
9405 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
9406
9407 2016-02-16 Richard Biener <rguenther@suse.de>
9408
9409 PR tree-optimization/69776
9410 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
9411 sets from caller.
9412 (indirect_refs_may_alias_p): Likewise.
9413 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
9414 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
9415 according to tbaa_p.
9416 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
9417 (optimize_stmt): For redundant store discovery do not allow tbaa.
9418
9419 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
9420
9421 PR tree-optimization/69714
9422 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
9423 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
9424
9425 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
9426
9427 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
9428 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
9429 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
9430 * config/arc/arc.c (arc_init): Check FPU options.
9431 (get_arc_condition_code): Handle new CC_FPU* modes.
9432 (arc_select_cc_mode): Likewise.
9433 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
9434 register pair only. Allow access for ARCv2 accumulator.
9435 (gen_compare_reg): Whenever we have FPU support use FPU compare
9436 instructions.
9437 (arc_reorg): Don't generate brcc insns when FPU compare
9438 instructions are involved.
9439 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
9440 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
9441 floating point emulation.
9442 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
9443 (REVERSE_CONDITION): Add new CC_FPU* modes.
9444 (TARGET_FP_SP_BASE): Define.
9445 (TARGET_FP_DP_BASE): Likewise.
9446 (TARGET_FP_SP_FUSED): Likewise.
9447 (TARGET_FP_DP_FUSED): Likewise.
9448 (TARGET_FP_SP_CONV): Likewise.
9449 (TARGET_FP_DP_CONV): Likewise.
9450 (TARGET_FP_SP_SQRT): Likewise.
9451 (TARGET_FP_DP_SQRT): Likewise.
9452 (TARGET_FP_DP_AX): Likewise.
9453 * config/arc/arc.md (ARCV2_ACC): New constant.
9454 (type): New fpu type attribute.
9455 (SDF): Conditional iterator.
9456 (cstore<mode>, cbranch<mode>): Change expand condition.
9457 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
9458 handles FPU/FPX cases as well.
9459 * config/arc/arc.opt (mfpu): New option.
9460 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
9461 Renamed.
9462 (adddf3, muldf3, subdf3): Removed.
9463 * config/arc/predicates.md (proper_comparison_operator): Recognize
9464 CC_FPU* modes.
9465 * config/arc/fpu.md: New file.
9466 * doc/invoke.texi (ARC Options): Document mfpu option.
9467
9468 2016-02-16 Richard Biener <rguenther@suse.de>
9469
9470 PR rtl-optimization/69291
9471 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
9472 noce_operand_ok check.
9473
9474 2016-02-16 Tom de Vries <tom@codesourcery.com>
9475
9476 PR lto/67709
9477 * omp-low.c (simd_clone_create): Remove call to
9478 symtab->call_cgraph_insertion_hooks.
9479
9480 2016-02-16 Jakub Jelinek <jakub@redhat.com>
9481
9482 PR tree-optimization/69802
9483 * tree-ssa-reassoc.c (update_range_test): If op is
9484 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
9485 op == 1 test of precision 1 integral op, otherwise handle
9486 that case as op itself. Fix up formatting.
9487 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
9488 up formatting.
9489
9490 2016-02-16 Richard Biener <rguenther@suse.de>
9491
9492 PR tree-optimization/69586
9493 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
9494 types for conversion sources.
9495
9496 2016-02-16 Richard Biener <rguenther@suse.de>
9497
9498 PR middle-end/69801
9499 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
9500 mask OEP_ADDRESS_OF.
9501
9502 2016-02-16 Alan Modra <amodra@gmail.com>
9503
9504 PR target/68973
9505 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
9506 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
9507 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
9508 (p8_mtvsrwz): New.
9509 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
9510 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
9511 (p8_fmrgow_<mode>): Likewise.
9512 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
9513 changes.
9514 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
9515 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
9516 to use movdi_internal64. Remove op0_di.
9517 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
9518
9519 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
9520
9521 Add support for the FCCMP insn types
9522
9523 * config/aarch64/aarch64.md (fccmp): Change insn type.
9524 (fccmpe): Likewise.
9525 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
9526 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
9527 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
9528 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
9529 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
9530 * config/arm/types.md (fccmps): Add new insn type.
9531 (fccmpd): Likewise.
9532
9533 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
9534
9535 * alias.c (get_alias_set): Fix a typo in comment.
9536
9537 2016-02-15 Richard Biener <rguenther@suse.de>
9538
9539 PR tree-optimization/69595
9540 * match.pd: Complete range test simplification to true.
9541
9542 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
9543
9544 PR rtl-optimization/69648
9545 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
9546 pic_offset_table_rtx.
9547
9548 PR rtl-optimization/69752
9549 * ira.c (update_equiv_regs): When looking for more than a single SET,
9550 also take other side effects into account.
9551
9552 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
9553
9554 * config/s390/s390.c (s390_function_profiler): Add a new sequence
9555 for z900+ CPUs in 31-bit mode.
9556
9557 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
9558
9559 * common/config/s390/s390-common.c (s390_supports_split_stack):
9560 New function.
9561 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
9562 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
9563 * config/s390/s390.c (struct machine_function): New field
9564 split_stack_varargs_pointer.
9565 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
9566 in s390_emit_prologue.
9567 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
9568 vararg pointer.
9569 (morestack_ref): New global.
9570 (SPLIT_STACK_AVAILABLE): New macro.
9571 (s390_expand_split_stack_prologue): New function.
9572 (s390_live_on_entry): New function.
9573 (s390_va_start): Use split-stack vararg pointer if appropriate.
9574 (s390_asm_file_end): Emit the split-stack note sections.
9575 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
9576 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
9577 (UNSPECV_SPLIT_STACK_CALL): New unspec.
9578 (UNSPECV_SPLIT_STACK_DATA): New unspec.
9579 (split_stack_prologue): New expand.
9580 (split_stack_space_check): New expand.
9581 (split_stack_data): New insn.
9582 (split_stack_call): New expand.
9583 (split_stack_call_*): New insn.
9584 (split_stack_cond_call): New expand.
9585 (split_stack_cond_call_*): New insn.
9586
9587 2016-02-15 Richard Biener <rguenther@suse.de>
9588
9589 PR tree-optimization/69783
9590 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9591 Add trivially correct cases.
9592
9593 2016-02-15 Tom de Vries <tom@codesourcery.com>
9594
9595 PR lto/69655
9596 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
9597 do_force_output.
9598 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
9599
9600 2016-02-15 Richard Biener <rguenther@suse.de>
9601
9602 PR tree-optimization/69776
9603 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
9604 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
9605 indicate whether we can use TBAA to disambiguate against stores.
9606 Use alias-set zero if not.
9607 (visit_reference_op_store): Do not use TBAA when looking up
9608 redundant stores.
9609 * tree-ssa-pre.c (compute_avail): Use TBAA here.
9610 (eliminate_dom_walker::before_dom_children): But not when looking
9611 up redundant stores.
9612
9613 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
9614
9615 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
9616
9617 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
9618
9619 * config/i386/znver1.md
9620 (znver1_pop, znver1_pop_mem,
9621 znver1_load_imov_double_store,
9622 znver1_load_imov_direct_store,
9623 znver1_load_imov_direct_load,
9624 znver1_load_imov_double_load): Add new.
9625 (znver1_insn, znver1_insn_load): Add icmov type.
9626 (znver1_sseavx_fma,
9627 znver1_sseavx_fma_load,
9628 znver1_avx256_fma,
9629 znver1_avx256_fma_load): Fix pipe usage.
9630
9631 2016-02-14 Alan Modra <amodra@gmail.com>
9632
9633 PR target/68973
9634 * reloads.c (find_reloads_address_1): For pre/post-inc/dec
9635 with an invalid hard reg, reload just the reg not the entire
9636 pre/post-inc/dec address expression.
9637
9638 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
9639
9640 PR target/67260
9641 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
9642 fixed R1_REG scratch reg.
9643 (sibcall_value_pcrel_fdpic): Likewise.
9644
9645 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
9646
9647 PR target/67636
9648 PR target/64345
9649 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
9650
9651 2016-02-12 Walter Lee <walt@tilera.com>
9652
9653 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
9654 * config/tilegx/t-tilegx: Likewise.
9655
9656 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9657
9658 PR other/69554
9659 * diagnostic-show-locus.c (struct line_span): New struct.
9660 (layout::get_first_line): Delete.
9661 (layout::get_last_line): Delete.
9662 (layout::get_num_line_spans): New member function.
9663 (layout::get_line_span): Likewise.
9664 (layout::print_heading_for_line_span_index_p): Likewise.
9665 (layout::get_expanded_location): Likewise.
9666 (layout::calculate_line_spans): Likewise.
9667 (layout::m_first_line): Delete.
9668 (layout::m_last_line): Delete.
9669 (layout::m_line_spans): New field.
9670 (layout::layout): Update comment. Replace m_first_line and
9671 m_last_line with m_line_spans, replacing their initialization
9672 with a call to calculate_line_spans.
9673 (diagnostic_show_locus): When printing source lines and
9674 annotations, rather than looping over a single span
9675 of lines, instead loop over each line_span within
9676 the layout, with an inner loop over the lines within them.
9677 Call the context's start_span callback when changing line spans.
9678 * diagnostic.c (diagnostic_initialize): Initialize start_span.
9679 (diagnostic_build_prefix): Break out the building of the location
9680 part of the string into...
9681 (diagnostic_get_location_text): ...this new function, rewriting
9682 it from nested ternary expressions to a sequence of "if"
9683 statements.
9684 (default_diagnostic_start_span_fn): New function.
9685 * diagnostic.h (diagnostic_start_span_fn): New typedef.
9686 (diagnostic_context::start_span): New field.
9687 (default_diagnostic_start_span_fn): New prototype.
9688
9689 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9690
9691 PR driver/69779
9692 * gcc.c (driver::finalize): Fix cleanup of "specs".
9693
9694 2016-02-12 David Malcolm <dmalcolm@redhat.com>
9695
9696 PR driver/69265
9697 PR driver/69453
9698 * gcc.c (driver::driver): Initialize m_option_suggestions.
9699 (driver::~driver): Clean up m_option_suggestions.
9700 (suggest_option): Convert to...
9701 (driver::suggest_option): ...this, and split out into
9702 driver::build_option_suggestions and find_closest_string.
9703 (driver::build_option_suggestions): New function, from
9704 first half of suggest_option. Special-case
9705 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
9706 the sanitizer_opts array. For options of enum types, add the
9707 various enum values to the candidate strings.
9708 (driver::handle_unrecognized_options): Remove "const".
9709 * gcc.h (driver::handle_unrecognized_options): Likewise.
9710 (driver::build_option_suggestions): New decl.
9711 (driver::suggest_option): New decl.
9712 (driver::m_option_suggestions): New field.
9713 * opts-common.c (add_misspelling_candidates): New function.
9714 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
9715 and make non-static.
9716 * opts.h (sanitizer_opts): New array decl.
9717 (add_misspelling_candidates): New function decl.
9718 * spellcheck.c (find_closest_string): New function.
9719 * spellcheck.h (find_closest_string): New function decl.
9720
9721 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9722
9723 PR rtl-optimization/69764
9724 PR rtl-optimization/69771
9725 * optabs.c (expand_binop_directly): For shift_optab_p, force
9726 convert_modes with VOIDmode if xop1 has VOIDmode.
9727
9728 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
9729
9730 PR target/69729
9731 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
9732 to correctly determine instrumentation thunks.
9733
9734 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9735
9736 PR ipa/69241
9737 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
9738 type by reference, force lhs on the call.
9739
9740 PR ipa/68672
9741 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
9742 Compute retval and retbnd early in all cases if split_part_return_p
9743 and return_bb is not EXIT. Remove all clobber stmts and reset
9744 all debug stmts that refer to SSA_NAMEs defined in split part,
9745 except if it is retval, in that case replace the old retval with the
9746 lhs of the call to the split part.
9747
9748 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9749
9750 revert:
9751 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9752
9753 PR middle-end/66726
9754 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
9755 whose result is used in PHI.
9756 (maybe_optimize_range_tests): Likewise.
9757 (final_range_test_p): Likweise.
9758
9759 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
9760
9761 PR middle-end/66726
9762 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
9763 whose result is used in PHI.
9764 (maybe_optimize_range_tests): Likewise.
9765 (final_range_test_p): Likweise.
9766
9767 2016-02-12 Jakub Jelinek <jakub@redhat.com>
9768
9769 * cgraph.c: Spelling fixes - behaviour -> behavior and
9770 neighbour -> neighbor.
9771 * target.def: Likewise.
9772 * sel-sched.c: Likewise.
9773 * config/mips/mips.c: Likewise.
9774 * config/arc/arc.md: Likewise.
9775 * config/arm/cortex-a57.md: Likewise.
9776 * config/arm/arm.c: Likewise.
9777 * config/arm/neon.md: Likewise.
9778 * config/arm/arm-c.c: Likewise.
9779 * config/vms/vms-c.c: Likewise.
9780 * config/s390/s390.c: Likewise.
9781 * config/i386/znver1.md: Likewise.
9782 * config/i386/i386.c: Likewise.
9783 * config/ia64/hpux-unix2003.h: Likewise.
9784 * config/msp430/msp430.md: Likewise.
9785 * config/rx/rx.c: Likewise.
9786 * config/rx/rx.md: Likewise.
9787 * config/aarch64/aarch64-simd.md: Likewise.
9788 * config/aarch64/aarch64.c: Likewise.
9789 * config/nvptx/nvptx.c: Likewise.
9790 * config/bfin/bfin.c: Likewise.
9791 * config/cris/cris.opt: Likewise.
9792 * config/rs6000/rs6000.c: Likewise.
9793 * target.h: Likewise.
9794 * spellcheck.c: Likewise.
9795 * ira-build.c: Likewise.
9796 * tree-inline.c: Likewise.
9797 * builtins.c: Likewise.
9798 * lra-constraints.c: Likewise.
9799 * explow.c: Likewise.
9800 * hwint.h: Likewise.
9801 * targhooks.c: Likewise.
9802 * tree-vect-data-refs.c: Likewise.
9803 * expr.c: Likewise.
9804 * doc/tm.texi: Likewise.
9805 * doc/extend.texi: Likewise.
9806 * doc/install.texi: Likewise.
9807 * doc/md.texi: Likewise.
9808 * tree-ssa-tail-merge.c: Likewise.
9809 * sched-int.h: Likewise.
9810 * match.pd: Likewise.
9811 * sched-ebb.c: Likewise.
9812 * target.def (omit_struct_return_reg): Likewise.
9813 * gimple-ssa-isolate-paths.c: Likewise.
9814 (find_implicit_erroneous_behaviour): Renamed to...
9815 (find_implicit_erroneous_behavior): ... this.
9816 (find_explicit_erroneous_behaviour): Renamed to...
9817 (find_explicit_erroneous_behavior): ... this.
9818 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
9819
9820 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
9821
9822 PR rtl-optimization/64682
9823 PR rtl-optimization/69567
9824 PR rtl-optimization/69737
9825 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
9826 in I2 as well, just lose it.
9827
9828 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9829
9830 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
9831 New variable.
9832 (aarch64_last_printed_tune_string): Likewise.
9833 (aarch64_declare_function_name): Only output .arch assembler
9834 directive if it will be different from the previously output
9835 directive. Same for .tune comment but only if -dA is set.
9836 (aarch64_start_file): New function.
9837 (TARGET_ASM_FILE_START): Define.
9838
9839 2016-02-11 David Malcolm <dmalcolm@redhat.com>
9840
9841 PR plugins/69758
9842 * Makefile.in (PLUGIN_HEADERS): Add params.list.
9843
9844 2016-02-11 Jakub Jelinek <jakub@redhat.com>
9845
9846 PR target/65313
9847 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
9848 -Wmaybe-uninitialized warning.
9849
9850 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
9851
9852 PR target/69713
9853 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
9854
9855 2016-02-11 Richard Biener <rguenther@suse.de>
9856
9857 PR rtl-optimization/69291
9858 * ifcvt.c (noce_try_store_flag_constants): Do not allow
9859 subexpressions affected by changing the result.
9860
9861 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
9862
9863 PR target/69148
9864 * lra-constraints.c (curr_insn_transform): Find in/out operands
9865 for secondary memory moves. Update dups.
9866
9867 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
9868
9869 PR tree-optimization/69652
9870 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
9871 to nested loop, did source re-formatting, skip debug statements,
9872 add check on statement with volatile operand, remove dead scalar
9873 statements.
9874
9875 2016-02-10 Jakub Jelinek <jakub@redhat.com>
9876 Patrick Palka <ppalka@gcc.gnu.org>
9877
9878 PR ipa/69241
9879 PR c++/69649
9880 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
9881 calls if the return type is TREE_ADDRESSABLE.
9882 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
9883 * ipa-split.c (split_function): Fix doubled "we" in comment.
9884 Use void return type for the split part even if
9885 !split_point->split_part_set_retval.
9886
9887 2016-02-10 Bin Cheng <bin.cheng@arm.com>
9888
9889 PR tree-optimization/68021
9890 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
9891 when computing the value of biv cand by itself.
9892
9893 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
9894
9895 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
9896 (cortexa57_tunings): Likewise.
9897 (cortexa72_tunings): Likewise.
9898 (arch_macro_fusion_pair_p): Add support for AES fusion.
9899 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
9900 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
9901 Allow virtual registers before reload so early scheduling works.
9902 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
9903 correct latency and pipeline.
9904 (cortex_a57_crypto_complex): Likewise.
9905 (cortex_a57_crypto_xor): Likewise.
9906 (define_bypass): Add AES bypass.
9907
9908 2016-02-10 Richard Biener <rguenther@suse.de>
9909
9910 PR tree-optimization/69726
9911 * passes.def: Add DCE pass before late uninit.
9912 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
9913 really fixup if-conversions job.
9914
9915 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
9916
9917 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
9918 (arm_cortex_a57_tune): Likewise.
9919 (aarch_macro_fusion_pair_p): Add support for AES fusion.
9920 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
9921
9922 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
9923
9924 * timevar.def (TV_PHASE_DBGINFO): Delete.
9925 (TV_PHASE_CHECK_DBGINFO): Likewise.
9926 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
9927
9928 2016-02-10 Richard Biener <rguenther@suse.de>
9929
9930 PR tree-optimization/69719
9931 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
9932 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
9933
9934 2016-02-09 Andrew Pinski <apinski@cavium.com>
9935
9936 PR tree-opt/69282
9937 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
9938 get_vcond_mask_icode returns false.
9939
9940 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
9941
9942 PR target/68404
9943 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
9944 an ADDIS that adds a pointer to a large constant that sets the
9945 upper16 bits with a load operation.
9946
9947 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
9948
9949 PR target/68532
9950 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
9951 order.
9952 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
9953 endian.
9954 (vzipq_s16): Likewise.
9955 (vzipq_s32): Likewise.
9956 (vzipq_f32): Likewise.
9957 (vzipq_u8): Likewise.
9958 (vzipq_u16): Likewise.
9959 (vzipq_u32): Likewise.
9960 (vzipq_p8): Likewise.
9961 (vzipq_p16): Likewise.
9962
9963 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
9964
9965 PR target/68532
9966 * config/arm/arm.c (neon_endian_lane_map): New function.
9967 (neon_vector_pair_endian_lane_map): New function.
9968 (arm_evpc_neon_vuzp): Allow for big endian lane order.
9969 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
9970 endian.
9971 (vuzpq_s16): Likewise.
9972 (vuzpq_s32): Likewise.
9973 (vuzpq_f32): Likewise.
9974 (vuzpq_u8): Likewise.
9975 (vuzpq_u16): Likewise.
9976 (vuzpq_u32): Likewise.
9977 (vuzpq_p8): Likewise.
9978 (vuzpq_p16): Likewise.
9979
9980 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
9981
9982 PR target/69634
9983 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
9984 debug insns.
9985
9986 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
9987
9988 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
9989 truncate const_int operand 1 to QImode.
9990
9991 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
9992
9993 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
9994 corresponding to an abnormal edge.
9995
9996 2016-02-09 Tom de Vries <tom@codesourcery.com>
9997
9998 PR tree-optimization/69599
9999 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
10000 function.
10001 (find_func_aliases_for_builtin_call, find_func_clobbers)
10002 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
10003 partition.
10004
10005 2016-02-09 Richard Biener <rguenther@suse.de>
10006
10007 PR tree-optimization/69715
10008 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
10009 LHS on calls as non-rewritable.
10010
10011 2016-02-09 Tom de Vries <tom@codesourcery.com>
10012
10013 PR lto/69707
10014 * lto-wrapper.c (append_diag_options): New function.
10015 (compile_offload_image): Call append_diag_options.
10016
10017 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
10018
10019 PR other/69722
10020 * doc/extend.texi (Flag Output Operands): Correct sectioning.
10021 Minor copy-edit to fix verb tenses.
10022
10023 2016-02-08 Jakub Jelinek <jakub@redhat.com>
10024
10025 PR tree-optimization/69209
10026 * ipa-split.c (split_function): If split part is not
10027 returning retval, retval has gimple type but is not
10028 gimple value, force it into a SSA_NAME first.
10029
10030 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
10031
10032 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
10033 outdated section.
10034
10035 2016-02-08 Jason Merrill <jason@redhat.com>
10036
10037 PR c++/69631
10038 * convert.c (convert_to_integer_1): Check dofold on truncation
10039 distribution.
10040 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
10041 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
10042 Rename from *_nofold.
10043 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
10044 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
10045
10046 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
10047
10048 PR target/60410
10049 * tree.c (build_common_tree_nodes): Remove short_double argument.
10050 All callers changed.
10051 * tree.h (build_common_tree_nodes): Adjust declaration.
10052 * doc/invoke.texi (-fshort-double): Remove documentation.
10053 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
10054 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
10055 * lto-wrapper.c (merge_and_complain, append_compiler_options)
10056 (append_linker_options): Don't handle OPT_fshort_double.
10057
10058 PR rtl-optimization/68730
10059 * lra-remat.c (insn_to_cand_activation): New static variable.
10060 (lra_remat): Allocate and free it.
10061 (create_cand): New arg activation. Initialize a field in
10062 insn_to_cand_activation if it is nonnull.
10063 (create_cands): Pass the activation insn to create_cand when making
10064 a candidate involving an output reload. Reorganize code a little.
10065 (do_remat): Keep track of active status of candidates in a separate
10066 bitmap.
10067
10068 2016-02-08 Richard Biener <rguenther@suse.de>
10069
10070 PR tree-optimization/69719
10071 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
10072 Properly use absolute of the difference of the two offsets to
10073 compare or adjust the segment length.
10074
10075 2016-02-08 Richard Biener <rguenther@suse.de>
10076 Jeff Law <law@redhat.com>
10077
10078 PR target/68273
10079 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
10080 types for anonymous SSA names.
10081
10082 2016-02-08 Richard Biener <rguenther@suse.de>
10083
10084 PR rtl-optimization/69274
10085 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
10086
10087 2016-02-08 Jeff Law <law@redhat.com>
10088
10089 PR tree-optimization/65917
10090 * tree-ssa-dom.c (record_temporary_equivalences): Record both
10091 equivalences from if (x == y) style conditionals.
10092 (loop_depth_of_name): Remove.
10093 (record_equality): Remove loop depth check.
10094 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
10095 (const_and_copies::record_const_or_copy_raw): New member function.
10096 * tree-ssa-scopedtables.c
10097 (const_and_copies::record_const_or_copy_raw): New, factored out of
10098 (const_and_copies::record_const_or_copy): Call new member function.
10099
10100 2016-02-05 Jeff Law <law@redhat.com>
10101
10102 PR tree-optimization/68541
10103 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
10104 (count_stmts_in_block): New function.
10105 (poor_ifcvt_candidate_code): Likewise.
10106 (is_feasible_trace): Add some heuristics to determine when path
10107 splitting is profitable.
10108 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
10109 is a diamond with a single exit.
10110
10111 2016-02-05 Martin Sebor <msebor@redhat.com>
10112
10113 PR c++/69662
10114 * doc/invoke.texi: Update -Wplacement-new to take an optional
10115 argument.
10116
10117 2016-02-06 Richard Henderson <rth@redhat.com>
10118
10119 PR c/69643
10120 * tree.c (tree_nop_conversion_p): Do not strip casts into or
10121 out of non-standard address spaces.
10122
10123 2016-02-05 Jakub Jelinek <jakub@redhat.com>
10124
10125 PR rtl-optimization/69691
10126 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
10127
10128 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
10129
10130 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
10131 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
10132 (*ieee128_mfvsrd_64bit): Likewise.
10133 (*ieee128_mfvsrd_32bit): Likewise.
10134
10135 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
10136
10137 PR target/69369
10138 Revert r232560:
10139 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
10140
10141 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
10142 instrumented_version.
10143
10144 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
10145
10146 * doc/invoke.texi (Optimize Options): In table of --param options
10147 rename second occurrence of tracer-min-branch-ratio to
10148 tracer-min-branch-probability, rename
10149 tracer-min-branch-ratio-feedback to
10150 tracer-min-branch-probability-feedback and clarify description,
10151 rename sched-spec-state-edge-prob-cutoff to
10152 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
10153 to selsched-insns-to-rename, rename lto-minpartition to
10154 lto-min-partition, delete reorder-blocks-duplicate and
10155 reorder-blocks-duplicate-feedback.
10156
10157 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10158
10159 * config/s390/s390.c (s390_register_info_set_ranges): Remove
10160 superfluous loops.
10161
10162 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
10163
10164 * doc/extend.texi: S/390: Correct some typos.
10165
10166 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10167
10168 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
10169
10170 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10171
10172 PR target/69625
10173 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
10174 (s390_register_info_gprtofpr): Use new macros above.
10175 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
10176 its name.
10177 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
10178 its name. Adjust restore and save gpr ranges.
10179 (s390_register_info_set_ranges): New function.
10180 (s390_register_info): Use new macros above. Call
10181 s390_register_info_set_ranges.
10182 (s390_optimize_register_info): Likewise.
10183 (s390_hard_regno_rename_ok): Use new macros.
10184 (s390_hard_regno_scratch_ok): Likewise.
10185 (s390_emit_epilogue): Likewise.
10186 (s390_can_use_return_insn): Likewise.
10187 (s390_optimize_prologue): Likewise.
10188 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
10189
10190 2016-02-05 Jakub Jelinek <jakub@redhat.com>
10191
10192 PR bootstrap/69677
10193 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
10194 alignment fixes.
10195 (ix86_option_override_internal): Disable TARGET_STV even for
10196 -m{incoming,preferred}-stack-boundary=3.
10197
10198 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10199
10200 * config.gcc: Mark deprecated rtems targets as obsolete.
10201
10202 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
10203
10204 PR rtl-optimization/64682
10205 PR rtl-optimization/69567
10206 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
10207 before I2 only if the register is both used and set in I2.
10208
10209 2016-02-04 DJ Delorie <dj@redhat.com>
10210
10211 * config/msp430/msp430.c (msp430_start_function): Add function type.
10212
10213 2016-02-04 Jakub Jelinek <jakub@redhat.com>
10214
10215 PR fortran/69368
10216 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
10217
10218 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
10219
10220 PR rtl-optimization/69577
10221 Revert:
10222 2015-10-29 Richard Henderson <rth@redhat.com>
10223
10224 PR target/68124
10225 PR rtl-opt/67609
10226 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
10227 sse check to the exact conditions of PR 67609.
10228
10229 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
10230
10231 PR target/69667
10232 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
10233 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
10234 not allowed into the traditional Altivec registers.
10235 (movtd_64bit_nodm): Likewise.
10236 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
10237
10238 2016-02-04 David Malcolm <dmalcolm@redhat.com>
10239
10240 * config/aarch64/cortex-a57-fma-steering.c
10241 (aarch64_register_fma_steering): Remove "static" from arguments
10242 to register_pass.
10243
10244 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
10245
10246 PR target/69619
10247 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
10248 twice when complex.
10249
10250 2016-02-04 Mike Frysinger <vapier@gentoo.org>
10251
10252 * doc/invoke.texi: Delete -mno-fma4.
10253
10254 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
10255
10256 PR rtl-optimization/69577
10257 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
10258 (find_subregs_of_mode): Update accordingly. Iterate over partial
10259 definitions.
10260
10261 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
10262
10263 * config/arm/arm-protos.h (neon_reinterpret): Remove.
10264 * config/arm/arm.c (neon_reinterpret): Remove.
10265 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
10266 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
10267 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
10268 vreinterpretti): Remove.
10269 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
10270 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
10271 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
10272 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
10273 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
10274 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
10275 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
10276 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
10277 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
10278 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
10279 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
10280 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
10281 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
10282 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
10283 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
10284 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
10285 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
10286 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
10287 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
10288 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
10289 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
10290 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
10291 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
10292 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
10293 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
10294 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
10295 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
10296 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
10297 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
10298 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
10299 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
10300 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
10301 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
10302 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
10303 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
10304 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
10305 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
10306 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
10307 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
10308 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
10309 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
10310 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
10311 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
10312 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
10313 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
10314 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
10315 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
10316 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
10317 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
10318 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
10319 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
10320 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
10321 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
10322 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
10323 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
10324 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
10325 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
10326 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
10327 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
10328 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
10329 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
10330 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
10331 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
10332 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
10333 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
10334 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
10335 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
10336 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
10337 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
10338 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
10339 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
10340 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
10341 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
10342 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
10343 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
10344 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
10345 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
10346 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
10347 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
10348 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
10349 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
10350 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
10351 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
10352 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
10353 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
10354 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
10355 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
10356 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
10357 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
10358 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
10359 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
10360 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
10361 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
10362 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
10363 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
10364 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
10365 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
10366 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
10367 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
10368 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
10369 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
10370 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
10371 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
10372
10373 2016-02-04 Martin Liska <mliska@suse.cz>
10374
10375 PR sanitizer/69276
10376 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
10377 that are gimple_store_p.
10378 (maybe_instrument_call): Likewise.
10379
10380 2016-02-04 Bin Cheng <bin.cheng@arm.com>
10381
10382 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
10383 register scaling out of memory reference and comment why.
10384
10385 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10386
10387 PR target/65932
10388 PR target/67714
10389 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
10390 folding the source of a SET.
10391
10392 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10393
10394 PR target/65932
10395 PR target/67714
10396 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
10397 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
10398
10399 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
10400
10401 PR target/65932
10402 PR target/67714
10403 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
10404 HImode.
10405
10406 2016-02-04 Christian Bruel <christian.bruel@st.com>
10407
10408 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
10409 * config/arm/arm.c (arm_set_current_function): Likewise.
10410
10411 2016-02-04 Jakub Jelinek <jakub@redhat.com>
10412 Ilya Enkovich <enkovich.gnu@gmail.com>
10413 H.J. Lu <hongjiu.lu@intel.com>
10414
10415 PR target/69454
10416 * config/i386/i386.c (convert_scalars_to_vector): Remove
10417 stack alignment fixes.
10418 (ix86_option_override_internal): Disable TARGET_STV if stack
10419 might not be aligned enough.
10420 (ix86_minimum_alignment): Assert that TARGET_STV is false.
10421
10422 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
10423
10424 * config/i386/x86-tune.def: Disable default prefetching
10425 for -march=znver1.
10426
10427 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
10428 Vladimir Makarov <vmakarov@redhat.com>
10429
10430 PR target/69461
10431 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
10432 in validating fused toc addresses.
10433
10434 2016-02-03 Jakub Jelinek <jakub@redhat.com>
10435
10436 PR c/69627
10437 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
10438 range->m_caret fields if range->m_show_caret_p is false.
10439
10440 PR target/69644
10441 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
10442 Force oldval into register if it does not satisfy reg_or_short_operand
10443 predicate. Fix up formatting.
10444
10445 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
10446 Alexandre Oliva <aoliva@redhat.com>
10447
10448 PR target/69461
10449 * lra-constraints.c (simplify_operand_subreg): Check additionally
10450 address validity after potential reloading.
10451 (process_address_1): Check insns validity. In case of failure do
10452 nothing.
10453
10454 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
10455
10456 PR target/69118
10457 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
10458 Fix target.
10459
10460 2016-02-02 Jakub Jelinek <jakub@redhat.com>
10461
10462 * wide-int.cc (canonize_uhwi): New function.
10463 (wi::divmod_internal): Use it.
10464
10465 2016-02-02 James Norris <jnorris@codesourcery.com
10466
10467 * gimplify.c (omp_notice_variable): Add usage check.
10468
10469 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
10470
10471 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
10472 like LE, GE, LT, GT when emitting relational operator.
10473
10474 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
10475
10476 * ira-costs.c (find_costs_and_classes): Add extra argument.
10477 * target.def (ira_change_pseudo_allocno_class): Add parameter.
10478 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
10479 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
10480 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
10481 Add best_class parameter, and return it if not ALL_REGS.
10482 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
10483 Add parameter.
10484 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
10485 Update target hook.
10486
10487 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
10488
10489 * config/aarch64/aarch64.c
10490 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
10491 (aarch64_ira_change_pseudo_allocno_class): New function.
10492
10493 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
10494
10495 PR target/67032
10496 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
10497
10498 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
10499
10500 * config/avr/avr.c (avr_option_override): Set
10501 PARAM_ALLOW_STORE_DATA_RACES to 1.
10502
10503 2016-02-02 Richard Biener <rguenther@suse.de>
10504
10505 PR tree-optimization/69595
10506 * match.pd: Add range test simplifications to true/false.
10507
10508 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
10509
10510 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
10511 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
10512 instead.
10513
10514 2016-02-02 Richard Biener <rguenther@suse.de>
10515
10516 PR tree-optimization/69606
10517 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
10518 info on the result before moving a stmt.
10519
10520 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
10521
10522 PR middle-end/68542
10523 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
10524 branch with vector comparison.
10525 * config/i386/sse.md (VI48_AVX): New mode iterator.
10526 (define_expand "cbranch<mode>4): Add support for conditional branch
10527 with vector comparison.
10528 * tree-vect-loop.c (optimize_mask_stores): New function.
10529 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
10530 has_mask_store field of vect_info.
10531 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
10532 vectorized loops having masked stores after vec_info destroy.
10533 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
10534 correspondent macros.
10535 (optimize_mask_stores): Add prototype.
10536
10537 2016-02-02 Alan Modra <amodra@gmail.com>
10538
10539 PR target/69548
10540 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
10541 allow subregs.
10542
10543 2016-02-02 Alan Modra <amodra@gmail.com>
10544
10545 PR target/68662
10546 * config/rs6000/rs6000.c (need_toc_init): New var, set it
10547 whenever toc_label_name used.
10548 (rs6000_file_start): Don't set up toc section here,
10549 (rs6000_output_function_epilogue): do so here instead,
10550 (rs6000_xcoff_file_start): and here.
10551 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
10552 (load_toc_aix_di): Likewise.
10553
10554 2016-02-01 Jakub Jelinek <jakub@redhat.com>
10555
10556 PR rtl-optimization/69592
10557 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
10558 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
10559 (num_sign_bit_copies_binary_arith_p): New inline function.
10560 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
10561
10562 2016-02-01 Jeff Law <law@redhat.com>
10563
10564 PR tree-optimization/69580
10565 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
10566 * tree-ssa-threadbackward.c
10567 (fsm_find_control_statement_thread_paths): Do not try to walk
10568 through large PHI nodes.
10569
10570 2016-02-01 Jakub Jelinek <jakub@redhat.com>
10571
10572 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
10573 when count is incremented above limit, don't analyze further
10574 insns afterwards.
10575
10576 * omp-low.c (oacc_parse_default_dims): Avoid
10577 -Wsign-compare warning, make sure value fits into int
10578 rather than just unsigned int.
10579
10580 2016-02-01 Bin Cheng <bin.cheng@arm.com>
10581
10582 PR tree-optimization/67921
10583 * fold-const.c (split_tree): New parameters. Convert pointer
10584 type variable part to proper type before negating.
10585 (fold_binary_loc): Pass new arguments to split_tree.
10586
10587 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
10588
10589 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
10590 (nvptx_goacc_validate_dims): Extend to handle global defaults.
10591 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
10592 * doc/tm.texti: Rebuilt.
10593 * doc/invoke.texi (fopenacc-dim): Document.
10594 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
10595 (append_compiler_options): Likewise.
10596 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
10597 (oacc_parse_default_dims): New.
10598 (oacc_validate_dims): Add USED arg. Select non-unity default when
10599 possible.
10600 (oacc_loop_fixed_partitions): Return mask of used partitions.
10601 (oacc_loop_auto_partitions): Emit dump info.
10602 (oacc_loop_partition): Return mask of used partitions.
10603 (execute_oacc_device_lower): Parse default dimension arg. Adjust
10604 loop partitioning and validation calls.
10605
10606 2016-02-01 Richard Biener <rguenther@suse.de>
10607
10608 PR middle-end/69556
10609 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
10610
10611 2016-02-01 Richard Biener <rguenther@suse.de>
10612
10613 PR tree-optimization/69574
10614 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
10615 of asserting return chrec_dont_know.
10616
10617 2016-02-01 Martin Liska <mliska@suse.cz>
10618
10619 * mem-stats-traits.h: Add copyright header.
10620 * mem-stats.h: Likewise.
10621
10622 2016-02-01 Richard Biener <rguenther@suse.de>
10623
10624 PR tree-optimization/69579
10625 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
10626 Do not propagate through abnormal PHI results.
10627
10628 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
10629
10630 * postreload.c (reload_cse_simplify): Remove dead code.
10631
10632 2016-02-01 Jakub Jelinek <jakub@redhat.com>
10633
10634 PR rtl-optimization/69570
10635 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
10636 if there is more than one set, not if there is a single set.
10637
10638 2016-02-01 Richard Henderson <rth@redhat.com>
10639
10640 PR rtl-opt/69535
10641 * combine.c (make_compound_operation): When looking through a
10642 subreg, make sure to re-extend to the width of the outer mode.
10643
10644 2016-01-30 Jakub Jelinek <jakub@redhat.com>
10645
10646 PR tree-optimization/69546
10647 * wide-int.cc (wi::divmod_internal): For unsigned division
10648 where both operands fit into uhwi, if o1 is 1 and o0 has
10649 msb set, if divident_prec is larger than bits per hwi,
10650 clear another quotient word and return 2 instead of 1.
10651 Similarly for remainder with msb in HWI set, if dividend_prec
10652 is larger than bits per hwi.
10653
10654 2016-01-29 Martin Jambor <mjambor@suse.cz>
10655
10656 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
10657 Use short lowercase names.
10658 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
10659 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
10660 acq_rel one. Protect warning agains segfaults if
10661 get_memory_order_name returns NULL.
10662 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
10663 with release semantics. Do not warn if get_memory_order already did.
10664 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
10665 semantics. Fix check for relaxed or acquire semantics. Do not warn
10666 if get_memory_order already did.
10667
10668 2016-01-29 Sebastian Pop <s.pop@samsung.com>
10669
10670 * doc/install.texi: Document that isl-0.16 is supported.
10671
10672 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
10673
10674 PR target/69299
10675 * config/i386/constraints.md (Bm): Describe as special memory
10676 constraint.
10677 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
10678 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10679 * genpreds.c (struct constraint_data): Add is_special_memory.
10680 (have_special_memory_constraints, special_memory_start): New
10681 static vars.
10682 (special_memory_end): Ditto.
10683 (add_constraint): Add new arg is_special_memory. Add code to
10684 process its true value. Update have_special_memory_constraints.
10685 (process_define_constraint): Pass the new arg.
10686 (process_define_register_constraint): Ditto.
10687 (choose_enum_order): Process special memory.
10688 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
10689 function insn_extra_special_memory_constraint.
10690 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10691 * gensupport.c (process_rtx): Process
10692 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
10693 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
10694 * ira-lives.c (single_reg_class): Use
10695 insn_extra_special_memory_constraint.
10696 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
10697 * lra-constraints.c (process_alt_operands): Ditto.
10698 (curr_insn_transform): Use insn_extra_special_memory_constraint.
10699 * recog.c (asm_operand_ok, preprocess_constraints): Process
10700 CT_SPECIAL_MEMORY.
10701 * reload.c (find_reloads): Ditto.
10702 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
10703 * stmt.c (parse_input_constraint): Use
10704 insn_extra_special_memory_constraint.
10705
10706 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
10707
10708 PR target/69530
10709 * lra-splill.c (lra_final_code_change): Revert r229087 by
10710 removing all sub-registers.
10711
10712 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
10713
10714 PR target/65604
10715 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
10716
10717 2016-01-29 Jakub Jelinek <jakub@redhat.com>
10718
10719 PR target/69551
10720 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
10721 SSE1, copy target into the temporary reg first before recursing
10722 on it.
10723
10724 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
10725
10726 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
10727 with vm.
10728
10729 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
10730
10731 * ginclude/stdarg.h: Test __cplusplus instead of
10732 __GXX_EXPERIMENTAL_CXX0X__.
10733
10734 2016-01-29 Richard Biener <rguenther@suse.de>
10735
10736 PR tree-optimization/69547
10737 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
10738 Do not mark clobbers necessary.
10739 (mark_all_reaching_defs_necessary_1): Likewise.
10740
10741 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
10742
10743 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
10744 declaration name with %qs and print it in both error messages.
10745 Also fix indentation.
10746
10747 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
10748
10749 PR other/69006
10750 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
10751 trailing blank line from error message.
10752
10753 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
10754
10755 PR c++/69462
10756 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
10757 for C++-11.
10758
10759 2016-01-29 Richard Biener <rguenther@suse.de>
10760
10761 PR middle-end/69537
10762 * match.pd: Allow all integral types when simplifying a
10763 widening or sign-changing conversion.
10764
10765 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10766
10767 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
10768 back to setting codegen_error to fail codegen.
10769
10770 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
10771
10772 PR target/69459
10773 * config/i386/constraints.md (C): Only accept constant zero operand.
10774 (BC): New constraint.
10775 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
10776 instead of C constraint.
10777 * doc/md.texi (Machine Constraints): Update description
10778 of C constraint.
10779
10780 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
10781
10782 PR target/68400
10783 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
10784
10785 2016-01-28 Jakub Jelinek <jakub@redhat.com>
10786
10787 PR middle-end/69542
10788 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
10789 non-debug insns.
10790
10791 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
10792
10793 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
10794 branches if using guessed profile.
10795
10796 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
10797
10798 * graphite-optimize-isl.c (optimize_isl): Fix dump.
10799
10800 2016-01-28 Richard Henderson <rth@redhat.com>
10801
10802 PR target/69305
10803 * config/aarch64/aarch64-modes.def (CC_Cmode): New
10804 * config/aarch64/aarch64-protos.h: Update.
10805 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
10806 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
10807 (aarch64_get_condition_code_1): Handle CC_Cmode.
10808 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
10809 (*add<mode>3_compareC_cconly_imm): New.
10810 (*add<mode>3_compareC_cconly): New.
10811 (*add<mode>3_compareC_imm): New.
10812 (add<mode>3_compareC): New.
10813 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
10814 to be first. Use aarch64_carry_operation.
10815 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
10816 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
10817 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
10818 (subti3): Use subdi3_compare1.
10819 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
10820 (sub<mode>3_compare1): New.
10821 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
10822 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
10823 (*subsi3_carryin_uxtw): Likewise.
10824 (*ngc<mode>, *ngcsi_uxtw): Likewise.
10825 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
10826 * config/aarch64/iterators.md (DWI): New.
10827 * config/aarch64/predicates.md (aarch64_carry_operation): New.
10828 (aarch64_borrow_operation): New.
10829
10830 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
10831
10832 * graphite-optimize-isl.c (optimize_isl): Print a different debug
10833 message when isl does not return a valid schedule.
10834
10835 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10836
10837 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
10838 Remove comments from class declarations: they are already in the code
10839 close by the defs.
10840
10841 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10842
10843 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
10844 codegen_error_p.
10845 (ternary_op_to_tree): Same.
10846 (unary_op_to_tree): Same.
10847 (nary_op_to_tree): Same.
10848 (gcc_expression_from_isl_expr_op): Same.
10849 (gcc_expression_from_isl_expression): Same.
10850 (graphite_create_new_loop): Same.
10851 (graphite_create_new_loop_guard): Same.
10852 (build_iv_mapping): Same.
10853 (graphite_create_new_guard): Same.
10854 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
10855 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
10856
10857 2016-01-28 Sebastian Pop <s.pop@samsung.com>
10858
10859 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
10860 instead of setting codegen_error to fail codegen.
10861
10862 2016-01-28 Jason Merrill <jason@redhat.com>
10863
10864 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
10865
10866 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10867
10868 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
10869 Remove CONST_INT_P check in CCMP cost calculation.
10870
10871 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10872
10873 * config/aarch64/aarch64.c (generic_vector_cost):
10874 Set vec_permute_cost.
10875 (cortexa57_vector_cost): Likewise.
10876 (exynosm1_vector_cost): Likewise.
10877 (xgene1_vector_cost): Likewise.
10878 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
10879 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
10880 Add vec_permute_cost entry.
10881
10882 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
10883
10884 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
10885 immediate as %1.
10886 (add<mode>3_compare0): Likewise.
10887 (addsi3_compare0_uxtw): Likewise.
10888 (add<mode>3nr_compare0): Likewise.
10889 (compare_neg<mode>): Likewise.
10890 (<optab><mode>3): Likewise.
10891
10892 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
10893
10894 * tree-vect-stmts.c (vectorizable_comparison): Add
10895 NULL check for vectype.
10896
10897 2016-01-28 Richard Biener <rguenther@suse.de>
10898
10899 PR tree-optimization/69466
10900 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
10901 Account for PHIs we couldn't duplicate.
10902
10903 2016-01-28 Martin Liska <mliska@suse.cz>
10904
10905 PR pch/68758
10906 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
10907 instead of ENABLE_VALGRIND_CHECKING.
10908
10909 2016-01-27 Richard Henderson <rth@redhat.com>
10910
10911 PR rtl-opt/69447
10912 * lra-remat.c (subreg_regs): New.
10913 (dump_candidates_and_remat_bb_data): Dump it.
10914 (operand_to_remat): Reject if operand in subreg_regs.
10915 (set_bb_regs): Collect subreg_regs.
10916 (lra_remat): Init and free subreg_regs. Compute
10917 calculate_local_reg_remat_bb_data before create_cands.
10918
10919 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
10920
10921 PR target/68986
10922 * config/i386/i386.c (ix86_update_stack_boundary): Don't
10923 change stack_alignment_needed for __tls_get_addr call.
10924
10925 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
10926
10927 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
10928
10929 2016-01-27 Jeff Law <law@redhat.com>
10930
10931 PR tree-optimization/68398
10932 PR tree-optimization/69196
10933 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
10934 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
10935 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10936 Only count PHIs in the last block in the path. The others will
10937 const/copy propagate away. Add heuristic to allow more irreducible
10938 subloops to be created when it is likely profitable to do so.
10939
10940 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10941 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
10942 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
10943
10944 2016-01-27 Jakub Jelinek <jakub@redhat.com>
10945
10946 PR lto/69254
10947 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
10948 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
10949 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
10950 * tree-streamer-in.c: Include asan.h.
10951 (streamer_get_builtin_tree): For builtins in sanitizer
10952 range call initialize_sanitizer_builtins and retry.
10953
10954 2016-01-27 Ian Lance Taylor <iant@google.com>
10955
10956 * common.opt (fkeep-gc-roots-live): New undocumented option.
10957 * tree-ssa-loop-ivopts.c (add_candidate_1): If
10958 -fkeep-gc-roots-live, skip pointers.
10959 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
10960 NULL.
10961
10962 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
10963
10964 PR target/69512
10965 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
10966 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
10967
10968 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
10969
10970 PR target/68380
10971 * configure.ac: NetBSD provides SSP in its C library.
10972 * configure: Updated.
10973
10974 2016-01-27 Richard Biener <rguenther@suse.de>
10975
10976 PR tree-optimization/69166
10977 * tree-vect-loop.c (vect_is_simple_reduction): Always check
10978 reduction code for commutativity / associativity.
10979
10980 2016-01-27 Martin Jambor <mjambor@suse.cz>
10981
10982 PR tree-optimization/69355
10983 * tree-sra.c (analyze_access_subtree): Correct hole detection when
10984 total_scalarization fails.
10985
10986 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
10987
10988 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
10989 power9.
10990
10991 2016-01-27 Christian Bruel <christian.bruel@st.com>
10992
10993 PR target/69245
10994 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
10995 Move arm_reset_previous_fndecl and set_target_option_current_node in
10996 the conditional part. Call save_restore_target_globals.
10997 * config/arm/arm.c (arm_set_current_function):
10998 Refactor to better support #pragma target and attribute mix.
10999 Call save_restore_target_globals.
11000 * config/arm/arm-protos.h (save_restore_target_globals): New function.
11001
11002 2016-01-27 Martin Liska <mliska@suse.cz>
11003
11004 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
11005 reference for an HSA kernel and its host function.
11006
11007 2016-01-27 Jakub Jelinek <jakub@redhat.com>
11008
11009 PR tree-optimization/69399
11010 * wide-int.h (wi::lrshift): For larger precisions, only
11011 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
11012
11013 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
11014
11015 * config/arc/predicates.md (proper_comparison_operator): Reject
11016 constant-constant comparison.
11017
11018 2016-01-26 Tom de Vries <tom@codesourcery.com>
11019
11020 PR tree-optimization/69110
11021 * tree-data-ref.c (initialize_data_dependence_relation): Handle
11022 DR_NUM_DIMENSIONS == 0.
11023
11024 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
11025 Sebastian Pop <s.pop@samsung.com>
11026
11027 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
11028 isl_ast_op_cond and isl_ast_op_select.
11029 (gcc_expression_from_isl_expr_op): Same.
11030
11031 2016-01-26 Jason Merrill <jason@redhat.com>
11032
11033 PR c++/68782
11034 * tree.c (recompute_constructor_flags): Split out from
11035 build_constructor.
11036 (verify_constructor_flags): New.
11037 * tree.h: Declare them.
11038
11039 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
11040
11041 PR rtl-optimization/69217
11042 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
11043 are no TYPE_FIELDS set for the record type.
11044
11045 2016-01-26 Jakub Jelinek <jakub@redhat.com>
11046
11047 PR target/68662
11048 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
11049 toc_label_name unconditionally.
11050 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
11051 SYMBOL_REF string. Use toc_label_name instead of constructing
11052 LCTOC1.
11053 (rs6000_elf_declare_function_name): Use toc_label_name instead of
11054 constructing LCTOC1.
11055
11056 2016-01-26 Martin Sebor <msebor@redhat.com>
11057
11058 PR other/69477
11059 * doc/extend.texi (Common Type Attributes): Move text that talks about
11060 attribute packed from attribute aligned to the section discussing
11061 the former attribute for clarity.
11062
11063 2016-01-26 Richard Henderson <rth@redhat.com>
11064
11065 PR middle-end/60908
11066 * trans-mem.c (tm_region_init): Mark entry block as visited.
11067
11068 2016-01-26 David Malcolm <dmalcolm@redhat.com>
11069
11070 PR other/69006
11071 * diagnostic-show-locus.c (layout::print_source_line): Replace
11072 call to pp_newline with call to layout::print_newline.
11073 (layout::print_annotation_line): Likewise.
11074 (layout::move_to_column): Likewise.
11075 (layout::print_any_fixits): After printing any fixits, print a
11076 trailing newline, if necessary.
11077 (layout::print_newline): New method, resetting any colorization
11078 before a newline.
11079 (diagnostic_show_locus): Move the pp_newline to before the
11080 early bailout. Remove dummy block enclosing the layout instance.
11081 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
11082 of pp_newline_and_flush with pp_flush.
11083 (diagnostic_append_note): Delete use of pp_newline.
11084 (diagnostic_append_note_at_rich_loc): Delete.
11085 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
11086 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
11087 when newline characters are added to the buffer.
11088
11089 2016-01-26 Michael Matz <matz@suse.de>
11090
11091 * configure.ac (ac_cv_std_swap_in_utility): New test.
11092 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
11093 * configure: Regenerate.
11094 * config.in: Regenerate.
11095
11096 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
11097
11098 * config/arc/arc.md (cstoresi4): Force operand into register.
11099 (arcset<code>): Fix predicate.
11100 (arcsetltu): Likewise.
11101 (arcsetgeu): Likewise.
11102 (arcsethi): Likewise.
11103 (arcsetls): Likewise.
11104
11105 2016-01-26 Jakub Jelinek <jakub@redhat.com>
11106
11107 PR tree-optimization/69483
11108 * gimple-fold.c (canonicalize_constructor_val): Return NULL
11109 if base has error_mark_node type.
11110
11111 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
11112
11113 PR target/68620
11114 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
11115 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
11116 New helper macros.
11117 (vget_lane_f16): Handle big-endian.
11118 (vgetq_lane_f16): Likewise.
11119 (vset_lane_f16): Likewise.
11120 (vsetq_lane_f16): Likewise.
11121 * config/arm/iterators.md (VQXMOV): Add V8HF.
11122 (VDQ): Add V4HF and V8HF.
11123 (V_reg): Handle V4HF and V8HF.
11124 (Is_float_mode): Likewise.
11125 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
11126 neon_vdup_nv8hf): New patterns.
11127 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
11128 Use VD_LANE iterator.
11129 (neon_vld1_dup<mode>): Use VQ2 iterator.
11130
11131 2016-01-26 Nathan Sidwell <nathan@acm.org>
11132
11133 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
11134 (set_oacc_fn_attrib): Add IS_KERNEL arg.
11135 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
11136 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
11137 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
11138 (oacc_validate_dims): Add LEVEL arg, don't return level.
11139 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
11140 oacc_validate_dims.
11141 (execute_oacc_device_lower): Adjust, add more dump output.
11142 * tree-ssa-loop.c (gate_oacc_kernels): Use
11143 oacc_fn_attrib_kernels_p.
11144 * tree-parloops.c (create_parallel_loop): Adjust
11145 set_oacc_fn_attrib call.
11146
11147 2016-01-26 Jakub Jelinek <jakub@redhat.com>
11148
11149 PR lto/69254
11150 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
11151 (append_compiler_options): Handle -fcilkplus.
11152 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
11153
11154 2016-01-26 Nick Clifton <nickc@redhat.com>
11155
11156 PR target/66655
11157 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
11158 been marked as DECL_ONE_ONLY but we do not the means to make it
11159 so, then do not allow it to bind locally.
11160
11161 2016-01-26 Jakub Jelinek <jakub@redhat.com>
11162
11163 PR lto/69254
11164 * opts.h (parse_sanitizer_options): New prototype.
11165 * opts.c (sanitizer_opts): New array.
11166 (parse_sanitizer_options): New function.
11167 (common_handle_option): Use parse_sanitizer_options.
11168
11169 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
11170
11171 PR target/68986
11172 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
11173 alignment adjustment to ...
11174 (ix86_update_stack_boundary): Here. Don't over-align stack for
11175 __tls_get_addr.
11176 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
11177 if __tls_get_addr is called.
11178
11179 2016-01-26 Christian Bruel <christian.bruel@st.com>
11180
11181 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
11182
11183 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
11184
11185 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
11186
11187 2016-01-26 Richard Biener <rguenther@suse.de>
11188
11189 PR middle-end/69467
11190 * match.pd: Guard X * CST CMP 0 pattern with single_use.
11191
11192 2016-01-26 Richard Biener <rguenther@suse.de>
11193
11194 PR tree-optimization/69452
11195 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
11196 (move_computations_dom_walker::before_dom_children): Rename
11197 to ...
11198 (move_computations_worker): This.
11199 (move_computations): Perform an RPO rather than a DOM walk.
11200
11201 2016-01-26 Jakub Jelinek <jakub@redhat.com>
11202
11203 PR target/69442
11204 * combine.c (combine_instructions): For REG_EQUAL note with
11205 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
11206 to the underlying register.
11207 * doc/rtl.texi (REG_EQUAL): Document the behavior of
11208 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
11209
11210 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
11211
11212 PR target/67896
11213 * config/aarch64/aarch64-builtins.c
11214 (aarch64_init_simd_builtin_types): Do not set structural
11215 equality to __Poly{8,16,64,128}_t types.
11216
11217 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
11218
11219 PR tree-optimization/69400
11220 * wide-int.cc (wi_pack): Take the precision as argument and
11221 perform canonicalization here rather than in the callers.
11222 Use the main loop to handle all full-width HWIs. Add a
11223 zero HWI if in_len isn't a full result.
11224 (wi::divmod_internal): Update accordingly.
11225 (wi::mul_internal): Likewise. Simplify.
11226
11227 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
11228 Sebastian Pop <s.pop@samsung.com>
11229
11230 * graphite-poly.c (apply_poly_transforms): Simplify.
11231 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
11232 (print_isl_map): Same.
11233 (print_isl_union_map): Same.
11234 (print_isl_schedule): New.
11235 (debug_isl_schedule): New.
11236 * graphite-dependences.c (scop_get_reads): Do not call
11237 isl_union_map_add_map that is undocumented isl functionality.
11238 (scop_get_must_writes): Same.
11239 (scop_get_may_writes): Same.
11240 (scop_get_original_schedule): Remove.
11241 (scop_get_dependences): Do not call isl_union_map_compute_flow that
11242 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
11243 (compute_deps): Remove.
11244 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
11245 (debug_schedule_ast): New.
11246 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
11247 set_separate_option.
11248 (graphite_regenerate_ast_isl): Add dump.
11249 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
11250 from scop->transformed_schedule.
11251 (graphite_regenerate_ast_isl): Add more dump.
11252 * graphite-optimize-isl.c (optimize_isl): Set
11253 scop->transformed_schedule. Check whether schedules are equal.
11254 (apply_poly_transforms): Move here.
11255 * graphite-poly.c (apply_poly_transforms): ... from here.
11256 (free_poly_bb): Static.
11257 (free_scop): Static.
11258 (pbb_number_of_iterations_at_time): Remove.
11259 (print_isl_ast): New.
11260 (debug_isl_ast): New.
11261 (debug_scop_pbb): New.
11262 * graphite-scop-detection.c (print_edge): Move.
11263 (print_sese): Move.
11264 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
11265 (build_scop_scattering): Remove.
11266 (create_pw_aff_from_tree): Assert instead of bailing out.
11267 (add_condition_to_pbb): Remove unused code, do not fail.
11268 (add_conditions_to_domain): Same.
11269 (add_conditions_to_constraints): Remove.
11270 (build_scop_context): New.
11271 (add_iter_domain_dimension): New.
11272 (build_iteration_domains): Initialize pbb->iterators.
11273 Call add_conditions_to_domain.
11274 (nested_in): New.
11275 (loop_at): New.
11276 (index_outermost_in_loop): New.
11277 (index_pbb_in_loop): New.
11278 (outermost_pbb_in): New.
11279 (add_in_sequence): New.
11280 (add_outer_projection): New.
11281 (outer_projection_mupa): New.
11282 (add_loop_schedule): New.
11283 (build_schedule_pbb): New.
11284 (build_schedule_loop): New.
11285 (embed_in_surrounding_loops): New.
11286 (build_schedule_loop_nest): New.
11287 (build_original_schedule): New.
11288 (build_poly_scop): Call build_original_schedule.
11289 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
11290 (free_poly_dr): Remove.
11291 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
11292 (free_poly_bb): Remove.
11293 (debug_loop_vec): Remove.
11294 (print_isl_ast): Declare.
11295 (debug_isl_ast): Declare.
11296 (scop_do_interchange): Remove.
11297 (scop_do_strip_mine): Remove.
11298 (scop_do_block): Remove.
11299 (flatten_all_loops): Remove.
11300 (optimize_isl): Remove.
11301 (pbb_number_of_iterations_at_time): Remove.
11302 (debug_scop_pbb): Declare.
11303 (print_schedule_ast): Declare.
11304 (debug_schedule_ast): Declare.
11305 (struct scop): Remove schedule. Add original_schedule,
11306 transformed_schedule.
11307 (free_gimple_poly_bb): Remove.
11308 (print_generated_program): Remove.
11309 (debug_generated_program): Remove.
11310 (unify_scattering_dimensions): Remove.
11311 * sese.c (print_edge): ... here.
11312 (print_sese): ... here.
11313 (debug_edge): ... here.
11314 (debug_sese): ... here.
11315 * sese.h (print_edge): Declare.
11316 (print_sese): Declare.
11317 (dump_edge): Declare.
11318 (dump_sese): Declare.
11319
11320 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
11321 Sebastian Pop <s.pop@samsung.com>
11322
11323 * Makefile.in: Set ISLVER in site.exp.
11324
11325 2016-01-25 Jakub Jelinek <jakub@redhat.com>
11326
11327 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
11328 DECL_VALUE_EXPR of new_var even for the non-array case. Look
11329 through DECL_VALUE_EXPR for expansion.
11330
11331 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
11332
11333 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
11334 the frame info after reload completed.
11335
11336 2016-01-25 Jeff Law <law@redhat.com>
11337
11338 PR tree-optimization/69196
11339 PR tree-optimization/68398
11340 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
11341 tree-ssa-threadupdate.c.
11342 (determine_bb_domination_status): Prototype
11343 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
11344 (determine_bb_domination_status): No longer static.
11345 (valid_jump_thread_path): Remove code to detect characteristics
11346 of the jump thread path not associated with correctness.
11347 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
11348 Correct test for thread path length. Count PHIs for real operands as
11349 statements that need to be copied. Do not count ASSERT_EXPRs.
11350 Look at all the blocks in the thread path. Compute and selectively
11351 filter thread paths based on threading through the latch, threading
11352 a multiway branch or crossing a multiway branch.
11353
11354 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11355
11356 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
11357 decl with __attribute__ ((unused)) annotation.
11358
11359 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
11360
11361 PR target/69421
11362 * tree-vect-stmts.c (vectorizable_condition): Check vectype
11363 of operands is compatible with a statement vectype.
11364
11365 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
11366
11367 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
11368 improve wording for mixed storage order support.
11369
11370 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
11371
11372 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
11373 (vcvt_u64_f64): Likewise.
11374 (vcvta_s64_f64): Likewise.
11375 (vcvta_u64_f64): Likewise.
11376 (vcvtm_s64_f64): Likewise.
11377 (vcvtm_u64_f64): Likewise.
11378 (vcvtn_s64_f64): Likewise.
11379 (vcvtn_u64_f64): Likewise.
11380 (vcvtp_s64_f64): Likewise.
11381 (vcvtp_u64_f64): Likewise.
11382
11383 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
11384
11385 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
11386 (arc_init): Check validity mll64 option.
11387 (arc_save_restore): Use double load/store instruction.
11388 (arc_expand_movmem): Likewise.
11389 (arc_split_move): Don't split if we have double load/store
11390 instructions. Returns a boolean.
11391 (arc_process_double_reg_moves): Change function to return boolean
11392 instead of a sequence of instructions.
11393 (arc_dwarf_register_span): New function.
11394 * config/arc/arc-protos.h (arc_split_move): Change prototype.
11395 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
11396 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
11397 (*movdf_insn): Likewise.
11398 * config/arc/arc.opt (mll64): New option.
11399 * config/arc/predicates.md (even_register_operand): New predicate.
11400 * doc/invoke.texi (ARC Options): Add mll64 documentation.
11401
11402 2016-01-25 Richard Biener <rguenther@suse.de>
11403
11404 PR lto/69393
11405 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
11406 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
11407 DECL_NAMELESS.
11408 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
11409
11410 2016-01-25 Richard Biener <rguenther@suse.de>
11411
11412 PR tree-optimization/69376
11413 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
11414 flag.
11415 (VN_INFO_ANTI_RANGE_P): New inline.
11416 (VN_INFO_RANGE_TYPE): Likewise.
11417 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
11418 SSA_NAME_ANTI_RANGE_P.
11419 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
11420 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11421 Properly query VN_INFO_RANGE_TYPE.
11422
11423 2016-01-25 Nick Clifton <nickc@redhat.com>
11424
11425 PR target/66655
11426 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
11427
11428 2016-01-23 Tom de Vries <tom@codesourcery.com>
11429
11430 PR tree-optimization/69426
11431 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
11432 removed clobber.
11433
11434 2016-01-23 Jakub Jelinek <jakub@redhat.com>
11435
11436 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
11437 "the the" with "the" in the comments.
11438 * ipa-devirt.c (build_type_inheritance_graph,
11439 update_type_inheritance_graph): Likewise.
11440 * tree.c (build_function_type_list_1): Likewise.
11441 * cfgloopmanip.c (scale_loop_profile): Likewise.
11442 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
11443 * gimple-ssa-split-paths.c
11444 (find_block_to_duplicate_for_splitting_paths): Likewise.
11445 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
11446 * expr.c (convert_move): Likewise.
11447 * var-tracking.c (vt_stack_adjustments): Likewise.
11448 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
11449 * tree-vrp.c (test_for_singularity): Likewise.
11450
11451 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
11452 directly instead of building a temporary tree.
11453
11454 PR bootstrap/69434
11455 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
11456 remove <algorithm> include.
11457
11458 2016-01-22 Jakub Jelinek <jakub@redhat.com>
11459
11460 PR target/69432
11461 * config/i386/i386.c: Include dojump.h.
11462 (expand_small_movmem_or_setmem,
11463 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
11464 fixes.
11465 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
11466 if dynamic_check != -1.
11467
11468 2016-01-21 Jeff Law <law@redhat.com>
11469
11470 PR middle-end/69347
11471 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
11472 record_temporary_equivalences. Rewritten to avoid unnecessary calls
11473 into dominated_by_p.
11474 (cprop_into_successor_phis): Avoid unnecessary tests.
11475
11476 2016-01-22 Richard Henderson <rth@redhat.com>
11477
11478 PR target/69416
11479 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
11480 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
11481
11482 2016-01-22 Michael Matz <matz@suse.de>
11483
11484 * system.h (string, algorithm): Include only conditionally.
11485 (new): Include always under C++.
11486 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
11487 * final.c (toplevel): Ditto.
11488 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
11489 * genconditions.c (write_header): Make gencondmd.c define
11490 INCLUDE_STRING.
11491 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
11492
11493 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
11494 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
11495
11496 2016-01-22 Christian Bruel <christian.bruel@st.com>
11497
11498 PR target/68674
11499 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
11500
11501 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11502
11503 PR target/69403
11504 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
11505 define_insn_and_split. Ensure operands[1] and operands[0] do not
11506 get assigned the same register.
11507
11508 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
11509
11510 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
11511
11512 2016-01-22 Christian Bruel <christian.bruel@st.com>
11513
11514 * config/arm/arm-c.c (arm_pragma_target_parse):
11515 Remove warn_builtin_macro_redefined overwrite.
11516
11517 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
11518
11519 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
11520 flag_non_call_exceptions compatibility.
11521
11522 2016-01-22 Jakub Jelinek <jakub@redhat.com>
11523
11524 PR debug/66668
11525 * dwarf2out.c (add_child_die_after): New function.
11526 (dwarf_qual_info_t): New type.
11527 (dwarf_qual_info): New variable.
11528 (qualified_die_p): New function.
11529 (modified_type_die): For -fdebug-types-section, ensure
11530 canonical order of qualifiers. Put qualified DIEs adjacent
11531 to the corresponding non-qualified type DIE and search there
11532 for existing qualified DIEs.
11533
11534 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
11535
11536 * doc/extend.texi (scalar_storage_order type attribute): Document
11537 restriction on type punning and aliasing, and remove future tense.
11538
11539 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
11540
11541 PR target/69252
11542 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
11543 first stage.
11544
11545 2016-01-21 Jeff Law <law@redhat.com>
11546
11547 PR middle-end/69347
11548 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
11549 useless call to record_temporary_equivalences.
11550 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
11551 allocate 10 slots in the bb_path vector and let it grow as needed.
11552 (fsm_find_control_statement_thread_paths): Similarly for the next_path
11553 vector.
11554
11555 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
11556
11557 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
11558 Detangle.
11559 * configure: Regenerate.
11560
11561 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
11562
11563 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
11564 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
11565
11566 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
11567
11568 PR middle-end/66178
11569 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
11570 drop EXPAND_INITIALIZER.
11571 * rtl.h (contains_symbolic_reference_p): Declare.
11572 * rtlanal.c (contains_symbolic_reference_p): New function.
11573 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
11574 a subtraction into a NOT if symbolic constants are involved.
11575
11576 2016-01-21 Anton Blanchard <anton@samba.org>
11577 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11578
11579 PR target/63354
11580 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
11581 #define.
11582 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
11583 function.
11584
11585 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
11586
11587 * config/microblaze/microblaze.c
11588 (get_branch_target): New.
11589 (insert_wic_for_ilb_runout): New.
11590 (insert_wic): New.
11591 (microblaze_machine_dependent_reorg): New.
11592 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
11593 * config/microblaze/microblaze.md
11594 (UNSPEC_IPREFETCH): Define.
11595 (iprefetch): New pattern
11596 * config/microblaze/microblaze.opt
11597 (mxl-prefetch): New flag.
11598
11599 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
11600
11601 * config/microblaze/microblaze.h
11602 (FIXED_REGISTERS): Update in macro.
11603 (CALL_USED_REGISTERS): Update in macro.
11604
11605 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
11606
11607 PR rtl-optimization/68920
11608 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
11609 moves.
11610
11611 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
11612
11613 PR rtl-optimization/68990
11614 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
11615 pseudo instead of inheritance ones.
11616
11617 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
11618 Nick Clifton <nickc@redhat.com>
11619
11620 PR target/69129
11621 PR target/69012
11622 * config/mips/mips.c (mips_compute_frame_info): Initialise
11623 args_size and hard_frame_pointer_offset fields of the frame
11624 structure before calling mips_global_pointer.
11625
11626 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
11627
11628 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
11629 label reference.
11630 * configure: Regenerate.
11631
11632 2016-01-21 Richard Biener <rguenther@suse.de>
11633
11634 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
11635
11636 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
11637
11638 * config/s390/s390.c (s390_asm_declare_function_size): Add code
11639 to actually emit the .size directive.
11640
11641 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
11642 Jakub Jelinek <jakub@redhat.com>
11643
11644 PR target/69187
11645 PR target/65624
11646 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
11647 args array size by one to avoid buffer overflow.
11648
11649 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
11650
11651 * config/s390/s390.md (pool_section_start): Use switch_to_section
11652 to select proper read-only data section instead of hardcoding
11653 .rodata.
11654 (pool_section_end): Use switch_to_section to match the above.
11655
11656 2016-01-21 Richard Biener <rguenther@suse.de>
11657
11658 PR tree-optimization/69378
11659 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
11660 (set_ssa_val_to): Use it for dominance checks taking into
11661 account not executable edges.
11662
11663 2016-01-21 Jakub Jelinek <jakub@redhat.com>
11664
11665 PR c++/69355
11666 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
11667 for bitsize instead of GET_MODE_PRECISION (mode).
11668
11669 2016-01-20 Martin Sebor <msebor@redhat.com>
11670
11671 PR c/52291
11672 * extend.texi (__sync Builtins): Clarify the semantics of
11673 __sync_fetch_and_OP built-ins on pointers.
11674 (__atomic Builtins): Same.
11675
11676 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11677 Sebastian Pop <s.pop@samsung.com>
11678
11679 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
11680 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
11681 (is_valid_rename): Same.
11682 (translate_isl_ast_to_gimple::get_rename): Same.
11683 (translate_isl_ast_to_gimple::rename_all_uses): Same.
11684 (translate_isl_ast_to_gimple::rename_uses): Same.
11685 (get_new_name): Check for close_phi nodes.
11686 (copy_loop_phi_args): Use phi_node_kind.
11687 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
11688 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
11689
11690 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11691 Sebastian Pop <s.pop@samsung.com>
11692
11693 Revert commit r229783.
11694 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
11695 Remove use of parameter_rename_map.
11696 (copy_def): Remove.
11697 (copy_internal_parameters): Remove.
11698 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
11699 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
11700 (free_sese_info): Do not free parameter_rename_map.
11701 (set_rename): Do not use parameter_rename_map.
11702 (rename_uses): Update call to set_rename.
11703 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
11704 * sese.h (parameter_rename_map_t): Remove.
11705 (struct sese_info_t): Remove field parameter_rename_map.
11706
11707 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11708 Sebastian Pop <s.pop@samsung.com>
11709
11710 * graphite-isl-ast-to-gimple.c: Fix comment.
11711 * graphite-scop-detection.c (defined_in_loop_p): New.
11712 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
11713 names defined in loop.
11714
11715 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11716 Sebastian Pop <s.pop@samsung.com>
11717
11718 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
11719 Discard unstructured if-then-else regions.
11720
11721 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11722 Sebastian Pop <s.pop@samsung.com>
11723
11724 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
11725 (cleanup_loop_iter_dom): Remove.
11726 (build_loop_iteration_domains): Remove.
11727 (build_scop_context): Remove.
11728 (build_scop_iteration_domain): Remove.
11729 (add_loop_constraints): New.
11730 (build_iteration_domains): New.
11731 (build_poly_scop): Call build_iteration_domains.
11732
11733 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11734 Sebastian Pop <s.pop@samsung.com>
11735
11736 * graphite-scop-detection.c
11737 (scop_detection::harmful_loop_in_region): Free dom and loops.
11738 (scop_detection::loop_body_is_valid_scop): Free bbs.
11739
11740 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11741 Sebastian Pop <s.pop@samsung.com>
11742
11743 * graphite-scop-detection.c (record_loop_in_sese): New.
11744 (gather_bbs::before_dom_children): Call record_loop_in_sese.
11745 (build_scops): Remove call to build_sese_loop_nests.
11746 * sese.c (sese_record_loop): Remove.
11747 (build_sese_loop_nests): Remove.
11748 (new_sese_info): Remove region->loops.
11749 (free_sese_info): Same.
11750 * sese.h (sese_contains_loop): Same.
11751 (build_sese_loop_nests): Remove.
11752 (sese_contains_loop): Remove.
11753
11754 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11755 Sebastian Pop <s.pop@samsung.com>
11756
11757 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
11758 loop_is_valid_in_scop.
11759 (scop_detection::harmful_stmt_in_region): Renamed
11760 harmful_loop_in_region.
11761 Call loop_is_valid_in_scop.
11762
11763 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11764 Sebastian Pop <s.pop@samsung.com>
11765
11766 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
11767 isl_ast_node_mark.
11768
11769 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11770 Sebastian Pop <s.pop@samsung.com>
11771
11772 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
11773 * graphite.h (struct poly_bb): Remove field is_reduction.
11774 (PBB_IS_REDUCTION): Remove.
11775
11776 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
11777 Sebastian Pop <s.pop@samsung.com>
11778
11779 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
11780 (add_pdr_constraints): Same.
11781 (scop_get_reads): Same.
11782 (scop_get_must_writes): Same.
11783 (scop_get_may_writes): Same.
11784 (scop_get_original_schedule): Same.
11785 (extend_schedule): Same.
11786 (apply_schedule_on_deps): Same.
11787 (carries_deps): Same.
11788 (compute_deps): Same.
11789 (scop_get_dependences): Same.
11790 * graphite-isl-ast-to-gimple.c
11791 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
11792 * graphite-optimize-isl.c (get_schedule_for_band): Same.
11793 (get_schedule_for_band_list): Same.
11794 (get_schedule_map): Same.
11795 (apply_schedule_map_to_scop): Same.
11796 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
11797 (build_loop_iteration_domains): Same.
11798 (add_condition_to_pbb): Same.
11799 (add_param_constraints): Same.
11800 (pdr_add_memory_accesses): Same.
11801 (pdr_add_data_dimensions): Same.
11802
11803 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
11804
11805 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
11806 requirements.
11807
11808 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
11809
11810 * common.opt (feliminate-dwarf2-dups): Replace references to
11811 "DWARF 2" with just "DWARF".
11812 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
11813 * doc/extend.texi: Likewise.
11814 * doc/cpp.texi: Likewise.
11815 * doc/invoke.texi: Likewise.
11816 (Option Summary): Add -gdwarf to list of Debugging Options.
11817 (Debugging Options): Document -gdwarf.
11818 * doc/contrib.texi: Spell "DWARF" like that.
11819
11820 2016-01-21 Jakub Jelinek <jakub@redhat.com>
11821
11822 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
11823 warning. Fix up formatting.
11824
11825 PR middle-end/67653
11826 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
11827 attempt to mark memory input operand addressable and
11828 call prepare_gimple_addressable in that case. Don't adjust
11829 input_location for diagnostics, use error_at instead.
11830
11831 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
11832
11833 * config/rs6000/ppc-auxv.h: New file.
11834 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
11835 (cpu_is): Likewise.
11836 (cpu_supports): Likewise.
11837 * config/rs6000/rs6000.c: include "ppc-auxv.h".
11838 (cpu_is_info): New variable.
11839 (cpu_supports_info): Likewise.
11840 (tcb_verification_symbol): Likewise.
11841 (cpu_builtin_p): Likewise.
11842 (cpu_expand_builtin): New function.
11843 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
11844 (rs6000_init_builtins): Likewise.
11845 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
11846 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
11847 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
11848 * configure: Regenerate.
11849 * config.in: Likewise.
11850 * doc/extend.texi (PowerPC Built-in Functions): Document
11851 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
11852
11853 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
11854
11855 PR target/68609
11856 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
11857 domain check.
11858 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
11859 for V4SFmode.
11860
11861 2016-01-20 Richard Henderson <rth@redhat.com>
11862
11863 PR bootstrap/69343
11864 PR bootstrap/69339
11865 PR tree-opt/68964
11866 Revert:
11867 * tree.c (tm_define_builtin): New.
11868 (find_tm_vector_type): New.
11869 (build_tm_vector_builtins): New.
11870 (build_common_builtin_nodes): Call it.
11871
11872 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
11873
11874 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
11875 (arm_fp_ok): Likewise.
11876 (arm_fp): Likewise.
11877 (arm_crypto): Likewise.
11878
11879 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
11880 Richard Biener <rguenther@suse.de>
11881
11882 PR tree-optimization/69328
11883 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
11884 vectors have same number of elements.
11885 (vectorizable_condition): Fix masked version recognition.
11886
11887 2016-01-20 Richard Biener <rguenther@suse.de>
11888
11889 PR tree-optimization/69345
11890 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
11891 (VN_INFO_PTR_INFO): Likewise.
11892 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
11893 info when it is equal between non-dominating SSA names.
11894 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11895 Make sure to look at original SSA infos.
11896
11897 2016-01-20 Jeff Law <law@redhat.com>
11898
11899 PR target/25114
11900 * config/m68k/predicates.md (pow2_m1_operand): New predicate
11901 extracted from ...
11902 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
11903 (pc_or_label_operand): New predicate.
11904 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
11905 tests for small integers that are 2^n - 1.
11906
11907 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
11908
11909 * doc/invoke.texi (Options Summary): Add '.' after @xref.
11910
11911 2016-01-19 Jeff Law <law@redhat.com>
11912
11913 PR middle-end/69347
11914 * tree-ssa-threadbackwards.c
11915 (fsm_find_control_statement_thread_paths): Do not try to lookup
11916 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
11917
11918 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
11919
11920 * doc/lto.texi: Remove text that says only Gold has linker plugin
11921 support.
11922
11923 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
11924
11925 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
11926 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
11927 the DIE accordingly.
11928 (modified_type_die): Add REVERSE parameter and pass it recursively,
11929 as well as to base_type_die. Adjust presence check accordingly.
11930 (base_type_for_mode): Adjust call to modified_type_die.
11931 (add_type_attribute): Add REVERSE parameter and pass it to
11932 modified_type_die.
11933 (generic_parameter_die): Adjust call to add_type_attribute.
11934 (add_scalar_info): Likewise.
11935 (add_subscript_info): Likewise.
11936 (gen_array_type_die): Likewise.
11937 (gen_descr_array_type_die): Likewise.
11938 (gen_entry_point_die): Likewise.
11939 (gen_enumeration_type_die): Likewise.
11940 (gen_formal_parameter_die): Likewise.
11941 (gen_subprogram_die): Likewise.
11942 (gen_variable_die ): Likewise.
11943 (gen_const_die): Likewise.
11944 (gen_field_die): Likewise.
11945 (gen_pointer_type_die): Likewise.
11946 (gen_reference_type_die): Likewise.
11947 (gen_ptr_to_mbr_type_die): Likewise.
11948 (gen_inheritance_die): Likewise.
11949 (gen_subroutine_type_die): Likewise.
11950 (gen_typedef_die): Likewise.
11951 (force_type_die): Adjust call to modified_type_die.
11952
11953 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
11954
11955 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
11956 flow throughout the file. Fix broken link to Objective-C 2.0
11957 documentation.
11958 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
11959 errors.
11960
11961 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
11962
11963 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
11964
11965 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
11966
11967 PR ipa/66223
11968 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
11969 (maybe_record_node): Record cxa_pure_virtual as the only possible
11970 target if there are not ohter candidates.
11971 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
11972
11973 2016-01-19 Richard Biener <rguenther@suse.de>
11974
11975 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
11976 (get_memory_order): Likewise.
11977
11978 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
11979
11980 * tree-vect-stmts.c (vectorizable_store): Check
11981 rhs vectype.
11982
11983 2016-01-19 David Malcolm <dmalcolm@redhat.com>
11984
11985 PR jit/68446
11986 * gcc.c (driver::decode_argv): Add call to
11987 init_opts_obstack before init_options_struct.
11988 * opts.c (init_opts_obstack): Remove idempotency.
11989 (init_options_struct): Replace call to init_opts_obstack
11990 with a gcc_assert to verify that it has already been called.
11991 * toplev.c (toplev::main): Add call to init_opts_obstack before
11992 calls to init_options_struct.
11993 (toplev::finalize): Move cleanup of opts_obstack next to
11994 cleanup of save_decoded_options, clearing the latter, and
11995 save_decoded_options_count.
11996
11997 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11998
11999 PR target/69135
12000 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
12001 attribute to unconditional. Remove %? from output template.
12002
12003 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
12004 Jiong Wang <jiong.wang@arm.com>
12005
12006 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
12007 generated from different expand order.
12008
12009 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
12010
12011 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
12012 Add support for CCMP costing.
12013
12014 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
12015
12016 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
12017 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
12018 (fccmpe<mode>): Likewise.
12019 (fcmp): Rename to fcmp and globalize pattern.
12020 (fcmpe): Likewise.
12021 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
12022 (aarch64_gen_ccmp_next): Add FP support.
12023
12024 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
12025
12026 * target.def (gen_ccmp_first): Update documentation.
12027 (gen_ccmp_next): Likewise.
12028 * doc/tm.texi (gen_ccmp_first): Update documentation.
12029 (gen_ccmp_next): Likewise.
12030 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
12031 expand_ccmp_expr_1. Improve comments.
12032 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
12033 (ccmp_ior<mode>): Remove pattern.
12034 (cmp<mode>): Remove expand.
12035 (cmp): Globalize pattern.
12036 (cstorecc4): Use cc_register.
12037 (mov<mode>cc): Remove ccmp_cc_register check.
12038 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
12039 Simplify after removal of CC_DNE/* modes.
12040 (aarch64_ccmp_mode_to_code): Remove.
12041 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
12042 In 'k' case use integer as condition.
12043 (aarch64_nzcv_codes): Remove inverted cases.
12044 (aarch64_code_to_ccmode): Remove.
12045 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
12046 comparison with CC register to be used in folowing CCMP/branch/CSEL.
12047 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
12048 pattern. Return the comparison with CC register. Invert conditions
12049 when bitcode is OR.
12050 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
12051 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
12052
12053 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
12054
12055 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
12056 instrumented_version.
12057
12058 2016-01-19 Richard Biener <rguenther@suse.de>
12059
12060 PR tree-optimization/69336
12061 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
12062 handled components with get_ref_base_and_extent.
12063 (equal_mem_array_ref_p): Adjust.
12064
12065 2016-01-19 Jakub Jelinek <jakub@redhat.com>
12066
12067 PR debug/65779
12068 * shrink-wrap.c: Include valtrack.h.
12069 (move_insn_for_shrink_wrap): Add DEBUG argument. If
12070 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
12071 in between insn and where it will be moved to. Call
12072 dead_debug_insert_temp.
12073 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
12074 first and dead_debug_local_finish at the end.
12075 For uses and defs bitmap, handle all regs in between REGNO and
12076 END_REGNO, not just the first one.
12077
12078 2016-01-19 Richard Biener <rguenther@suse.de>
12079
12080 PR tree-optimization/69352
12081 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
12082 (equal_mem_array_ref_p): Constrain size and max size properly.
12083 Compare the reverse flag.
12084
12085 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
12086
12087 * ira.c (ira): Update regstat data if we deleted insns.
12088
12089 2016-01-19 Jakub Jelinek <jakub@redhat.com>
12090
12091 PR rtl-optimization/68955
12092 PR rtl-optimization/64557
12093 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
12094 here. Fix up formatting.
12095 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
12096
12097 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
12098
12099 PR lto/69133
12100 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
12101 assume that the node has body.
12102 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
12103 check.
12104
12105 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
12106
12107 * lto-streamer-out.c (lto_output): Do not stream instrumentation
12108 thunks.
12109
12110 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
12111
12112 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
12113 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
12114
12115 2016-01-19 Martin Jambor <mjambor@suse.cz>
12116 Martin Liska <mliska@suse.cz>
12117 Michael Matz <matz@suse.de>
12118
12119 * Makefile.in (OBJS): Add new source files.
12120 (GTFILES): Add hsa.c.
12121 * common.opt (disable_hsa): New variable.
12122 (-Whsa): New warning.
12123 * config.in (ENABLE_HSA): New.
12124 * configure.ac: Treat hsa differently from other accelerators.
12125 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
12126 $enable_offloading.
12127 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
12128 * doc/install.texi (Configuration): Document --with-hsa-runtime,
12129 --with-hsa-runtime-include, --with-hsa-runtime-lib and
12130 --with-hsa-kmt-lib.
12131 * doc/invoke.texi (-Whsa): Document.
12132 (hsa-gen-debug-stores): Likewise.
12133 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
12134 to invoke offload compiler for hsa acclerator.
12135 * opts.c (common_handle_option): Determine whether HSA offloading
12136 should be performed.
12137 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
12138 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
12139 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
12140 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
12141 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
12142 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
12143 GF_OMP_FOR_KIND_GRID_LOOP.
12144 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
12145 (pp_gimple_stmt_1): Likewise.
12146 * gimple-walk.c (walk_gimple_stmt): Likewise.
12147 * gimple.c (gimple_build_omp_grid_body): New function.
12148 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
12149 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
12150 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
12151 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
12152 GF_OMP_TEAMS_GRID_PHONY.
12153 (gimple_statement_omp_single_layout): Updated comments.
12154 (gimple_build_omp_grid_body): New function.
12155 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
12156 (gimple_omp_for_grid_phony): New function.
12157 (gimple_omp_for_set_grid_phony): Likewise.
12158 (gimple_omp_parallel_grid_phony): Likewise.
12159 (gimple_omp_parallel_set_grid_phony): Likewise.
12160 (gimple_omp_teams_grid_phony): Likewise.
12161 (gimple_omp_teams_set_grid_phony): Likewise.
12162 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
12163 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
12164 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
12165 (BUILT_IN_GOMP_TARGET): Updated type.
12166 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
12167 (adjust_for_condition): New function.
12168 (get_omp_for_step_from_incr): Likewise.
12169 (extract_omp_for_data): Moved parts to adjust_for_condition and
12170 get_omp_for_step_from_incr.
12171 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
12172 (fixup_child_record_type): Bail out if receiver_decl is NULL.
12173 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
12174 (scan_omp_parallel): Do not create child functions for phony
12175 constructs.
12176 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
12177 (scan_omp_1_op): Checking assert we are not remapping to
12178 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
12179 (parallel_needs_hsa_kernel_p): New function.
12180 (expand_parallel_call): Register apprpriate parallel child
12181 functions as HSA kernels.
12182 (grid_launch_attributes_trees): New type.
12183 (grid_attr_trees): New variable.
12184 (grid_create_kernel_launch_attr_types): New function.
12185 (grid_insert_store_range_dim): Likewise.
12186 (grid_get_kernel_launch_attributes): Likewise.
12187 (get_target_argument_identifier_1): Likewise.
12188 (get_target_argument_identifier): Likewise.
12189 (get_target_argument_value): Likewise.
12190 (push_target_argument_according_to_value): Likewise.
12191 (get_target_arguments): Likewise.
12192 (expand_omp_target): Call get_target_arguments instead of looking
12193 up for teams and thread limit.
12194 (grid_expand_omp_for_loop): New function.
12195 (grid_arg_decl_map): New type.
12196 (grid_remap_kernel_arg_accesses): New function.
12197 (grid_expand_target_kernel_body): New function.
12198 (expand_omp): Call it.
12199 (lower_omp_for): Do not emit phony constructs.
12200 (lower_omp_taskreg): Do not emit phony constructs but create for them
12201 a temporary variable receiver_decl.
12202 (lower_omp_taskreg): Do not emit phony constructs.
12203 (lower_omp_teams): Likewise.
12204 (lower_omp_grid_body): New function.
12205 (lower_omp_1): Call it.
12206 (grid_reg_assignment_to_local_var_p): New function.
12207 (grid_seq_only_contains_local_assignments): Likewise.
12208 (grid_find_single_omp_among_assignments_1): Likewise.
12209 (grid_find_single_omp_among_assignments): Likewise.
12210 (grid_find_ungridifiable_statement): Likewise.
12211 (grid_target_follows_gridifiable_pattern): Likewise.
12212 (grid_remap_prebody_decls): Likewise.
12213 (grid_copy_leading_local_assignments): Likewise.
12214 (grid_process_kernel_body_copy): Likewise.
12215 (grid_attempt_target_gridification): Likewise.
12216 (grid_gridify_all_targets_stmt): Likewise.
12217 (grid_gridify_all_targets): Likewise.
12218 (execute_lower_omp): Call grid_gridify_all_targets.
12219 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
12220 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
12221 (tree_omp_clause): Added union field dimension.
12222 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
12223 * tree.c (omp_clause_num_ops): Added number of arguments of
12224 OMP_CLAUSE__GRIDDIM_.
12225 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
12226 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
12227 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
12228 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
12229 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
12230 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
12231 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
12232 * tree-pass.h (make_pass_gen_hsail): Declare.
12233 (make_pass_ipa_hsa): Likewise.
12234 * ipa-hsa.c: New file.
12235 * lto-section-in.c (lto_section_name): Add hsa section name.
12236 * lto-streamer.h (lto_section_type): Add hsa section.
12237 * timevar.def (TV_IPA_HSA): New.
12238 * hsa-brig-format.h: New file.
12239 * hsa-brig.c: New file.
12240 * hsa-dump.c: Likewise.
12241 * hsa-gen.c: Likewise.
12242 * hsa.c: Likewise.
12243 * hsa.h: Likewise.
12244 * toplev.c (compile_file): Call hsa_output_brig.
12245 * hsa-regalloc.c: New file.
12246
12247 2016-01-18 Jeff Law <law@redhat.com>
12248
12249 PR tree-optimization/69320
12250 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
12251 ranged object, do nothing if the RHS constant is not [0..1].
12252 (optimize_stmt): Comparing a boolean ranged object against a
12253 constant outside [0..1] results in a compile-time constant.
12254
12255 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
12256 test.
12257
12258 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
12259
12260 * doc/invoke.texi (Invoking GCC): Add new section to menu.
12261 (Option Summary): Update to reflect new section and moved options.
12262 (C++ Dialect Options): Move -fstats to new section.
12263 (Debugging Options): Move all dump, statistics, and other GCC
12264 developer options to new section. Rewrite section introduction
12265 and re-order remaining options to put the more basic ones first.
12266 (Optimization Options): Move -fira-verbose and -flto-report* to
12267 new section.
12268 (Developer Options): New section incorporating moved options.
12269 * doc/cppopts.texi (-dM): Update cross-reference.
12270
12271 2016-01-18 Richard Henderson <rth@redhat.com>
12272
12273 PR target/69176
12274 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
12275 operands to pseudo only if CSE is expected. Split long immediate
12276 operands only after reload, and for the stack pointer.
12277 (*add<GPI>3_pluslong): Remove.
12278 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
12279 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
12280 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
12281 (*add<GPI>3 peepholes): New.
12282 (*add<GPI>3 splitters): New.
12283 * config/aarch64/constraints.md (Upl): New.
12284 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
12285
12286 2016-01-18 Richard Biener <rguenther@suse.de>
12287
12288 PR tree-optimization/69297
12289 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
12290 stmt at most once.
12291 (vect_bb_vectorization_profitable_p): Clear visited flag again.
12292
12293 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
12294
12295 PR middle-end/68542
12296 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
12297 of mixind vector and scalar types.
12298 (fold_relational_const): Add handling of vector
12299 comparison with boolean result.
12300 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
12301 comparison of vector operands with boolean result for EQ/NE only.
12302 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
12303 (verify_gimple_cond): Likewise.
12304 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
12305 valid type of VAL.
12306
12307 2016-01-18 Joseph Myers <joseph@codesourcery.com>
12308
12309 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
12310 !TARGET_OCTEON.
12311
12312 2016-01-18 Richard Biener <rguenther@suse.de>
12313
12314 PR middle-end/69308
12315 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
12316
12317 2016-01-18 Tom de Vries <tom@codesourcery.com>
12318
12319 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
12320
12321 2016-01-18 Tom de Vries <tom@codesourcery.com>
12322
12323 * omp-low.c (set_oacc_fn_attrib): Make extern.
12324 * omp-low.h (set_oacc_fn_attrib): Declare.
12325 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
12326 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
12327 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
12328 Add and handle function parameter oacc_kernels_p.
12329 (find_reduc_addr, get_omp_data_i_param): New function.
12330 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
12331 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
12332 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
12333 Calculate dominance info. Skip loops that are not in a kernels region
12334 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
12335 (pass_parallelize_loops::execute): Call parallelize_loops with
12336 oacc_kernels_p argument.
12337 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
12338 New member function.
12339 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
12340 * passes.def: Add argument to pass_parallelize_loops instantation.
12341
12342 2016-01-18 Tom de Vries <tom@codesourcery.com>
12343
12344 * tree-parloops.c (pass_parallelize_loops::execute): Allow
12345 pass_parallelize_loops to be run outside the loop pipeline.
12346
12347 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
12348
12349 * tree-scalar-evolution.c (follow_copies_to_constant): New.
12350 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
12351
12352 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
12353
12354 PR target/63679
12355 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
12356 using get_ref_base_and_extent.
12357 (equal_mem_array_ref_p): New.
12358 (hashable_expr_equal_p): Add call to previous.
12359
12360 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
12361
12362 PR target/63679
12363 * tree-sra.c (disqualified_constants, constant_decl_p): New.
12364 (sra_initialize): Allocate disqualified_constants.
12365 (sra_deinitialize): Free disqualified_constants.
12366 (disqualify_candidate): Update disqualified_constants when appropriate.
12367 (create_access): Scan for constant-pool entries as we go along.
12368 (scalarizable_type_p): Add check against type_contains_placeholder_p.
12369 (maybe_add_sra_candidate): Allow constant-pool entries.
12370 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
12371 (initialize_constant_pool_replacements): New.
12372 (sra_modify_assign): Avoid mangling assignments created by previous,
12373 and don't generate writes into constant pool.
12374 (sra_modify_function_body): Call initialize_constant_pool_replacements.
12375
12376 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
12377
12378 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
12379 andnot instruction.
12380 (scalar_chain::convert_op): Likewise.
12381 * config/i386/i386.md (*andndi3_doubleword): New.
12382
12383 2016-01-18 Richard Biener <rguenther@suse.de>
12384
12385 PR tree-optimization/69170
12386 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
12387 building a vector from scalar results of a pattern stmt.
12388
12389 2016-01-18 Jakub Jelinek <jakub@redhat.com>
12390
12391 * haifa-sched.c (autopref_multipass_init): Work around
12392 -Wmaybe-uninitialized warning.
12393
12394 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
12395
12396 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
12397 against the constant 0.
12398
12399 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12400
12401 PR tree-optimization/68799
12402 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
12403 look up phi candidates in the statement-candidate map.
12404 (phi_add_costs): Likewise.
12405 (record_phi_increments): Likewise.
12406 (phi_incr_cost): Likewise.
12407 (ncd_with_phi): Likewise.
12408 (all_phi_incrs_profitable): Likewise.
12409
12410 2016-01-17 Jakub Jelinek <jakub@redhat.com>
12411
12412 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
12413 -Wmaybe-uninitialized warning.
12414
12415 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
12416
12417 * doc/invoke.texi (Invoking GCC): Add new section to menu.
12418 (Option Summary): Update to reflect new section and moved options.
12419 (C++ Dialect Options): Move -fvtable-verify and related options.
12420 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
12421 and profiling-related options.
12422 (Optimization Options): Move profile generation options and
12423 -fstack-protector and related options.
12424 (Instrumentation Options): New section incorporating moved options.
12425 (Code Generation Options): Move -finstrument-functions and
12426 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
12427
12428 2016-01-16 Tom de Vries <tom@codesourcery.com>
12429
12430 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
12431
12432 2016-01-16 Tom de Vries <tom@codesourcery.com>
12433
12434 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
12435
12436 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
12437
12438 * hash-table.h (hash_table::empty): Turn into an inline wrapper
12439 that checks whether the table is already empty. Rename the
12440 original implementation to...
12441 (hash_table::empty_slot): ...this new private function.
12442
12443 2016-01-15 David Malcolm <dmalcolm@redhat.com>
12444
12445 PR diagnostic/68899
12446 * diagnostic-show-locus.c (layout::print_source_line): Move x
12447 offset of line until after call to
12448 get_line_width_without_trailing_whitespace.
12449
12450 2016-01-15 Jeff Law <law@redhat.com>
12451
12452 PR tree-optimization/69270
12453 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
12454 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
12455 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
12456 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
12457 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
12458 ssa_name_has_boolean_range and constant_boolean_node.
12459
12460 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
12461
12462 PR rtl-optimization/69030
12463 * lra-spills.c (remove_pseudos): Check nrefs and make the function
12464 returning bool.
12465 (spill_pseudos): Delete debug insn for dead pseudo.
12466 (lra_spill): Initiate spill_hard_reg and slots memory separately.
12467
12468 2016-01-15 Jiong Wang <jiong.wang@arm.com>
12469
12470 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
12471 New.
12472 (TYPES_UNOPUS): Likewise.
12473 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
12474 builtin type, from UNOP to UNOPUS.
12475 (lbtruncuv4sf): Likewise.
12476 (lbtruncuv2df): Likewise.
12477 (lrounduv2sf): Likewise.
12478 (lrounduv4sf): Likewise.
12479 (lrounduv2df): Likewise.
12480 (lroundusf): Likewise.
12481 (lroundusf): Likewise.
12482 (lceiluv2sf): Likewise.
12483 (lceiluv4sf): Likewise.
12484 (lceiluv2df): Likewise.
12485 (lceilusf): Likewise.
12486 (lceiludf): Likewise.
12487 (lflooruv2sf): Likewise.
12488 (lflooruv4sf): Likewise.
12489 (lflooruv2df): Likewise.
12490 (lfloorusf): Likewise.
12491 (lfloorudf): Likewise.
12492 (lfrintnuv2sf): Likewise.
12493 (lfrintnuv4sf): Likewise.
12494 (lfrintnuv2df): Likewise.
12495 (lfrintnusf): Likewise.
12496 (lfrintnudf): Likewise.
12497 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
12498 conversion.
12499 (vcvtq_u32_f32): Likewise.
12500 (vcvtq_u64_f64): Likewise.
12501 (vcvta_u32_f32): Likewise.
12502 (vcvtaq_u32_f32): Likewise.
12503 (vcvtaq_u64_f64): Likewise.
12504 (vcvtm_u32_f32): Likewise.
12505 (vcvtmq_u32_f32): Likewise.
12506 (vcvtmq_u64_f64): Likewise.
12507 (vcvtn_u32_f32): Likwise.
12508 (vcvtnq_u32_f32): Likewise.
12509 (vcvtnq_u64_f64): Likewise.
12510 (vcvtp_u32_f32): Likewise.
12511 (vcvtpq_u32_f32): Likewise.
12512 (vcvtpq_u64_f64): Likewise.
12513 (vcvtmd_u64_f64): Likewise.
12514 (vcvtms_u32_f32): Likewise.
12515 (vcvtad_u64_f64): Likewise.
12516 (vcvtas_u32_f32): Likewise.
12517 (vcvtnd_u64_f64): Likewise.
12518 (vcvtns_u32_f32): Likewise.
12519 (vcvtpd_u64_f64): Likewise.
12520 (vcvtps_u32_f32): Likewise.
12521
12522 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12523
12524 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
12525 CSEL of zero_extended registers.
12526
12527 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12528
12529 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
12530 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
12531
12532 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12533
12534 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
12535 false when argument string is not found in the attributes table
12536 at all.
12537
12538 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
12539
12540 PR target/68609
12541 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
12542 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
12543 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
12544 precision estimate.
12545
12546 2016-01-15 Richard Biener <rguenther@suse.de>
12547
12548 PR tree-optimization/66856
12549 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
12550 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
12551 (vect_create_new_slp_node): Increment stmt reference count.
12552 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
12553 an SLP tree before swapping operands.
12554 (vect_build_slp_tree): Likewise.
12555 (destroy_bb_vec_info): Free stmt info after SLP instances.
12556 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
12557 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
12558 (STMT_VINFO_NUM_SLP_USES): New macro.
12559
12560 2016-01-15 Richard Biener <rguenther@suse.de>
12561
12562 PR debug/69137
12563 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
12564 (add_linkage_name): ... here.
12565 (gen_typedef_die): Use add_linkage_name_raw instead of
12566 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
12567 if necessary.
12568
12569 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
12570
12571 * gimplify.c (oacc_default_clause): Decode reference and pointer
12572 types for both kernels and parallel regions.
12573
12574 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
12575
12576 PR middle-end/69246
12577 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
12578
12579 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
12580
12581 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
12582 (convert_scalars_to_vector): Likewise.
12583
12584 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
12585
12586 * doc/extend.texi (Type Traits): Fix grammar.
12587
12588 2016-01-15 Martin Jambor <mjambor@suse.cz>
12589
12590 * tree-inline.c (remap_decl): Use existing dclarations if
12591 remapping a type and prevent_decl_creation_for_types.
12592 (replace_locals_stmt): Do an initial remapping of non-VLA typed
12593 decls first. Do real remapping with
12594 prevent_decl_creation_for_types set.
12595 * tree-inline.h (copy_body_data): New field
12596 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
12597 padding.
12598
12599 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
12600
12601 * config/s390/s390.opt (mmvcle): More verbose help text.
12602
12603 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
12604
12605 * config/s390/s390.opt: Add period to -mzvector option text.
12606
12607 2016-01-15 Richard Biener <rguenther@suse.de>
12608
12609 PR tree-optimization/68961
12610 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
12611 of invariants in stores again.
12612
12613 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
12614
12615 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
12616
12617 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
12618
12619 * config/i386/i386.c (ix86_expand_branch): Don't split
12620 DI mode xor instruction to SI mode.
12621
12622 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
12623
12624 PR ipa/68148
12625 * ipa-icf.c (sem_function::merge): Virtual functions may become
12626 reachable even if they address is not taken and there are no
12627 idrect calls.
12628
12629 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
12630
12631 * lto-streamer-out.c (subtract_estimated_size): New function.
12632 (get_symbol_initial_value): Use it.
12633
12634 2016-01-15 Christian Bruel <christian.bruel@st.com>
12635
12636 PR target/65837
12637 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
12638 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
12639 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
12640 use add_builtin_function_ext_scope instead of add_builtin_function.
12641 (neon_set_p, neon_crypto_set_p): Remove.
12642 (arm_init_builtins): Always call arm_init_neon_builtins and
12643 arm_init_crypto_builtins.
12644 (arm_expand_builtin): Check that builtins are allowed for the arch.
12645 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
12646 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
12647 arm_init_neon_builtins call.
12648
12649 2016-01-15 Richard Biener <rguenther@suse.de>
12650
12651 PR tree-optimization/69117
12652 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
12653 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
12654 of the leader conservatively.
12655 (free_scc_vn): Restore original SSA name infos.
12656
12657 2016-01-14 Jeff Law <law@redhat.com>
12658
12659 PR tree-optimization/69270
12660 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
12661 single bit of precision, verify it's also unsigned.
12662 (record_edge_info): Use constant_boolean_node rather than fold_convert
12663 to convert boolean_true/boolean_false to the right type.
12664
12665 2016-01-14 Richard Henderson <rth@redhat.com>
12666
12667 PR rtl-opt/69014
12668 * loop-doloop.c (record_reg_sets): New.
12669 (doloop_optimize): Reject the transform if the sequence
12670 clobbers registers live at the end of the loop block.
12671 (doloop_optimize_loops): Enable df_live if needed.
12672
12673 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
12674
12675 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
12676 * config/rs6000/rs6000.c: Likewise.
12677 * config/rs6000/rs6000.h: Likewise.
12678 * config/rs6000/rs6000.md: Likewise.
12679 * doc/extend.texi: Likewsie.
12680
12681 2016-01-14 Jeff Law <law@redhat.com>
12682
12683 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
12684 typo.
12685
12686 2016-01-14 Richard Henderson <rth@redhat.com>
12687
12688 PR c/69272
12689 PR tree-opt/68964
12690 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
12691 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
12692 instead of builtin_decl_declared_p to test for declaration.
12693
12694 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
12695
12696 * doc/loop.texi (Loop Analysis and Representation): Document
12697 loop_depth function.
12698
12699 2016-01-14 Tom de Vries <tom@codesourcery.com>
12700
12701 PR tree-optimization/68773
12702 * omp-low.c (expand_omp_target): Don't set force_output.
12703 * varpool.c (varpool_node::get_create): Same.
12704 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
12705 offload_funcs with force_output.
12706
12707 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12708
12709 PR debug/69244
12710 * lra-eliminations.c (move_plus_up): Don't change anything if either
12711 the outer or inner subreg mode is not MODE_INT.
12712 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
12713 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
12714
12715 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
12716
12717 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
12718 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
12719 reduc_uplus_@var{m}): Remove.
12720 * expr.c (expand_expr_real_2): Remove expansion path for
12721 reduc_[us](min|max|plus) optabs.
12722 * optabs-tree.c (scalar_reduc_to_vector): Remove.
12723 * optabs-tree.h (scalar_reduc_to_vector): Remove.
12724 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
12725 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
12726 * tree-vect-loop.c (vectorizable_reduction): Remove test for
12727 reduc_[us](min|max|plus) optabs.
12728
12729 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
12730
12731 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
12732 (reduc_plus_scal_v2sf): New.
12733 (reduc_smax_v2sf): Rename to...
12734 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
12735 (reduc_smin_v2sf): Rename to...
12736 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
12737
12738 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
12739
12740 * alias.c (compare_base_symbol_refs): New function.
12741 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
12742 it.
12743
12744 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12745
12746 PR middle-end/68146
12747 PR tree-optimization/69155
12748 * tree-complex.c: Include cfganal.h.
12749 (phis_to_revisit): New variable.
12750 (extract_component): Add phiarg_p argument. Assert that returned
12751 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
12752 (update_phi_components): Partly rewrite to use loop over real/imag
12753 components instead of code duplication. If extract_component returns
12754 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
12755 create_tmp_reg into the PHI node instead, and mention the phi triplet
12756 in phis_to_revisit.
12757 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
12758 in phis_to_revisit at the end.
12759
12760 2016-01-14 Richard Biener <rguenther@suse.de>
12761
12762 PR tree-optimization/68060
12763 * tree-vect-loop.c (vect_is_simple_reduction): Check the
12764 outer loop reduction is only used in the inner loop before
12765 detecting a double reduction.
12766
12767 2016-01-14 Jakub Jelinek <jakub@redhat.com>
12768
12769 PR target/68269
12770 * combine.c (expand_field_assignment): Punt if compute_mode is
12771 unsupported scalar mode.
12772
12773 2016-01-14 Richard Biener <rguenther@suse.de>
12774
12775 PR tree-optimization/66856
12776 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
12777 SLP node only if it built successfully.
12778 (vect_analyze_slp_instance): Adjust.
12779
12780 2016-01-14 Jeff Law <law@redhat.com>
12781
12782 PR tree-optimization/69270
12783 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
12784 (record_edge_info): Use it. Convert boolean_{true,false}_node
12785 to the type of op0.
12786
12787 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
12788
12789 PR ipa/66487
12790 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
12791 use block_ultimate_origin
12792 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
12793
12794 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
12795
12796 * doc/invoke.texi (Submodel Options): Rename section to
12797 "Machine-Dependent Options" to better reflect its content.
12798 Rewrite introductory text to remove archaic CPU names.
12799 Update references.
12800
12801 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
12802
12803 * doc/invoke.texi (Code Gen Options): Move section up in file,
12804 before target-specific options. Update menu and option summary
12805 to reflect the new section ordering.
12806
12807 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
12808
12809 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
12810 (C++ Dialect Options): Add cross-reference to -std option.
12811 * doc/standards.texi (C++ Language): Document C++14 support.
12812
12813 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
12814
12815 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
12816 for pack/unpack functions for __ibm128.
12817 (PACK_IF): Likewise.
12818 (UNPACK_IF): Likewise.
12819
12820 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
12821 support for __ibm128 pack/unpack functions.
12822 (rs6000_invalid_builtin): Likewise.
12823 (rs6000_init_builtins): Likewise.
12824 (rs6000_opt_masks): Likewise.
12825
12826 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
12827 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
12828 functions
12829 (RS6000_BTM_COMMON): Likewise.
12830
12831 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
12832 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
12833 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
12834 128-bit floating point. Add support for the double values to be
12835 in Altivec registers for TF/IF packing and unpacking, but restrict
12836 TD packing sub-fields to be FPR registers. Don't allow overlapped
12837 register support for packing. Allow pack inputs to be memory
12838 locations. Don't build generator functions for unpack<mode>_dm
12839 and unpack<mode>_nodm.
12840 (unpack<mode>_dm): Likewise.
12841 (unpack<mode>_nodm): Likewise.
12842 (pack<mode>): Likewise.
12843
12844 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
12845 built-in functions to pack/unpack explicit __ibm128 values.
12846 (__builtin_unpack_ibm128): Likewise.
12847
12848 * doc/extend.texi (PowerPC Built-in Functions): Document
12849 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
12850
12851 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
12852
12853 PR c/66208
12854 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
12855 Add new arg loc and pass it down as context.
12856 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
12857 to the location to use for the warning.
12858 (check_function_arguments): New arg loc. All callers changed. Pass
12859 it to check_function_nonnull.
12860 * c-common.h (check_function_arguments): Adjust declaration.
12861
12862 2016-01-13 Jakub Jelinek <jakub@redhat.com>
12863
12864 PR tree-optimization/69156
12865 * gimple.c (validate_type): Removed.
12866 (gimple_builtin_call_types_compatible_p): Use
12867 useless_type_conversion_p instead of validate_type.
12868 * value-prof.c (gimple_stringop_fixed_value): Fold
12869 icall_size to correct type.
12870
12871 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
12872
12873 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
12874 effects.
12875
12876 2016-01-13 Richard Henderson <rth@redhat.com>
12877
12878 PR tree-opt/68964
12879 * target.def (builtin_tm_load, builtin_tm_store): Remove.
12880 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
12881 (ix86_builtin_tm_store): Remove.
12882 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
12883 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
12884 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
12885 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
12886 * doc/tm.texi: Rebuild.
12887
12888 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
12889 (BUILT_IN_TM_MEMCPY_RTWN): New.
12890 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
12891 fallback from vector to integer helpers.
12892 (build_tm_load): Handle vector types directly, instead of
12893 via target hook.
12894 (build_tm_store): Likewise.
12895 (expand_assign_tm): Prepare for register types not handled by
12896 the above. Copy them to memory and use memcpy.
12897 * tree.c (tm_define_builtin): New.
12898 (find_tm_vector_type): New.
12899 (build_tm_vector_builtins): New.
12900 (build_common_builtin_nodes): Call it.
12901
12902 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
12903
12904 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
12905 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
12906
12907 2016-01-13 Tom de Vries <tom@codesourcery.com>
12908
12909 PR tree-optimization/69169
12910 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
12911 handled_struct_type param.
12912 (create_variable_info_for, intra_create_variable_infos): Call
12913 create_variable_info_for_1 with extra arg.
12914
12915 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
12916
12917 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
12918 and "armv8.1-a+crc" entries.
12919
12920 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
12921
12922 PR target/69228
12923 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
12924 Change first operand predicate from register_or_constm1_operand
12925 to register_operand.
12926 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
12927 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
12928 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
12929 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
12930 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
12931 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
12932 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
12933 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
12934 comparison with constm1_rtx from vec_prefetch_gen part.
12935
12936 2016-01-13 Richard Biener <rguenther@suse.de>
12937
12938 PR tree-optimization/69013
12939 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
12940 Exchange assert for a test.
12941
12942 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12943
12944 PR target/69247
12945 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
12946
12947 2016-01-13 Richard Biener <rguenther@suse.de>
12948
12949 PR tree-optimization/69242
12950 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
12951 assert with a check.
12952
12953 2016-01-13 Richard Biener <rguenther@suse.de>
12954
12955 PR tree-optimization/69186
12956 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
12957 Properly guard vect_update_misalignment_for_peel call.
12958
12959 2016-01-12 Jeff Law <law@redhat.com>
12960
12961 PR tree-optimization/pr67755
12962 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
12963 "need_profile_correction".
12964 (thread_block_1): Initialize new field to false by default. If we
12965 have multiple thread paths through a common joiner to different
12966 final targets, then set new field to true.
12967 (compute_path_counts): Only do count adjustment when it's really
12968 needed.
12969
12970 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12971
12972 * doc/invoke.texi (Spec Files): Move section down in file, past
12973 all command-line option descriptions.
12974
12975 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12976
12977 PR middle-end/54809
12978 * doc/gty.texi: Remove documentation of mark_hook.
12979 * gengtype.c (struct write_types_data): Remove code to support
12980 mark_hook attribute.
12981 (walk_type): Likewise.
12982 (write_func_for_structure): Likewise.
12983
12984 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
12985
12986 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
12987 Directory Options, and -specs= to Overall Options.
12988 (Overall Options): Adjust similarly. Reorder to group related
12989 options together. Make -specs= cross-reference the spec file details.
12990 (Directory Options): Adjust similarly.
12991
12992 2016-01-12 Jeff Law <law@redhat.com>
12993
12994 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
12995
12996 2016-01-12 Olivier Hainque <hainque@adacore.com>
12997
12998 * gcc.c (spec_undefvar_allowed): New global.
12999 (process_command): Set to true when running for --version or --help,
13000 alone or together.
13001 (getenv_spec_function): When the variable is not defined, use the
13002 variable name as the variable value if we're allowed not to issue
13003 a fatal error.
13004
13005 2016-01-12 Bin Cheng <bin.cheng@arm.com>
13006
13007 PR tree-optimization/68911
13008 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
13009 information computed for expression "init + nit * step".
13010
13011 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
13012
13013 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
13014 about name of GCC executable. Remove deleted node from menu.
13015 (Directory Options) <-B>: Remove cross-reference to deleted node.
13016 (Target Options): Delete section.
13017
13018 2016-01-12 Christian Bruel <christian.bruel@st.com>
13019
13020 PR target/69180
13021 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
13022 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
13023
13024 2016-01-12 Jakub Jelinek <jakub@redhat.com>
13025
13026 PR target/69198
13027 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
13028 aligned_mem is properly set for AVX512-VL floating point masked
13029 stores.
13030
13031 PR target/69175
13032 * ifcvt.c (cond_exec_process_if_block): When removing the last
13033 insn from then_bb, remove also any possible barriers that follow it.
13034
13035 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
13036
13037 PR target/68456
13038 PR target/69226
13039 * config/i386/iamcu.h (SIZE_TYPE): New macro.
13040 (PTRDIFF_TYPE): Likewise.
13041 (WCHAR_TYPE): Likewise.
13042 (WCHAR_TYPE_SIZE): Likewise.
13043 (STDINT_LONG32): Likewise.
13044
13045 2016-01-12 Richard Biener <rguenther@suse.de>
13046
13047 PR tree-optimization/69053
13048 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
13049 convert initial value for cond reductions.
13050
13051 2016-01-12 Richard Biener <rguenther@suse.de>
13052
13053 PR tree-optimization/69007
13054 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
13055 widen_sum after dot_prod and sad.
13056
13057 2016-01-12 Richard Biener <rguenther@suse.de>
13058
13059 PR tree-optimization/69168
13060 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
13061 pattern stmt SLP type.
13062 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
13063 end up unused so cope with that case.
13064
13065 2016-01-12 Richard Biener <rguenther@suse.de>
13066
13067 PR tree-optimization/69157
13068 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
13069 stmts def type only during analyze phase.
13070 (vectorizable_call): Likewise.
13071 (vectorizable_simd_clone_call): Likewise.
13072 (vectorizable_conversion): Likewise.
13073 (vectorizable_assignment): Likewise.
13074 (vectorizable_shift): Likewise.
13075 (vectorizable_operation): Likewise.
13076 (vectorizable_store): Likewise.
13077 (vectorizable_load): Likewise.
13078
13079 2016-01-12 Richard Biener <rguenther@suse.de>
13080
13081 PR tree-optimization/69174
13082 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
13083 space.
13084 (vectorizable_load): Properly compute the number of loads needed
13085 for permuted strided SLP loads and do not spuriously assign
13086 to SLP_TREE_VEC_STMTS.
13087
13088 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
13089
13090 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
13091 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
13092 (MD_EXEC_PREFIX): Remove.
13093 (MD_STARTFILE_PREFIX) Removee.
13094 (FILE_NAME_ABSOLUTE_P): Remove.
13095 (CPP_SPEC): Do not read macros from sys/version.h.
13096 (LINK_COMMAND_SPEC): Remove.
13097 (LOCAL_INCLUDE_DIR): Remove.
13098 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
13099 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
13100 (POST_LINK_SPEC): Define to invoke stubify after linker
13101 (LIBSTDCXX): Remove define
13102 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
13103 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
13104 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
13105 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
13106 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
13107 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
13108 (i386_djgpp_asm_named_section): Add propotype of new procedure
13109
13110 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
13111 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
13112 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
13113 in config/i386/djgpp.h).
13114 (STANDARD_STARTFILE_PREFIX_2): Define identical to
13115 STANDARD_STARTFILE_PREFIX_1.
13116 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
13117 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
13118 installation errors.
13119 (MAX_OFILE_ALIGNMENT): Define to 128.
13120 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
13121
13122 * config/i386/djgpp.c: New file. Add implementation of
13123 i386_djgpp_asm_named_section.
13124
13125 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
13126
13127 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
13128 Add rule for building djgpp.o.
13129
13130 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13131
13132 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
13133 (rtx_is_swappable_p): Reductions are swappable.
13134 (insn_is_swappable_p): V2DF reductions are swappable.
13135
13136 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
13137
13138 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
13139 reloads for other unsupported memory operands.
13140
13141 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
13142 Jim Wilson <jim.wilson@linaro.org>
13143
13144 PR target/69194
13145 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
13146 copy_to_mode_reg instead of force_reg.
13147
13148 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
13149
13150 PR target/69225
13151 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
13152 TARGET_80387 is true.
13153
13154 2016-01-11 Jakub Jelinek <jakub@redhat.com>
13155
13156 PR target/69071
13157 * lra-eliminations.c (move_plus_up): Only move plus up
13158 if subreg of the constant can be simplified into constant
13159 and use the simplified subreg of the constant instead of
13160 the original constant.
13161
13162 * fold-const.c (fold_convertible_p): Don't return true
13163 for conversion of VECTOR_TYPE to same sized integral type.
13164 (fold_convert_loc): Fix up formatting. Fold conversion of
13165 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
13166 instead of NOP_EXPR.
13167
13168 PR tree-optimization/69214
13169 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
13170 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
13171 Formatting fix.
13172
13173 PR tree-optimization/69207
13174 * tree-vect-slp.c (vect_get_constant_vectors): For
13175 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
13176 fold_convertible_p to vector_type's element type, and always
13177 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
13178
13179 2016-01-11 Richard Biener <rguenther@suse.de>
13180
13181 PR tree-optimization/69173
13182 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
13183 fixup the cycle if all stmts are in a pattern.
13184
13185 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
13186
13187 PR middle-end/68999
13188 * alias.c (base_alias_check): Move check for addresses with
13189 alignment ANDs before the call for compare_base_decls.
13190 (memrefs_conflict_p): Return -1 for different decls
13191 that went through alignment adjustments.
13192
13193 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13194
13195 PR rtl-optimization/68796
13196 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
13197 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
13198 and QImode comparisons against zero with CC_NZmode.
13199 * config/aarch64/iterators.md (short_mask): New mode_attr.
13200
13201 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
13202
13203 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
13204 (<avx512>_store<mode>_mask): Likewise.
13205
13206 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
13207 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13208
13209 PR rtl-optimization/68841
13210 * ifcvt.c (struct noce_if_info): Add orig_x field.
13211 (bbs_ok_for_cmove_arith): Add to_rename parameter.
13212 Don't record conflicts on to_rename if it's present.
13213 Allow memory destinations in sets.
13214 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
13215 blocks, passing orig_x to the checks.
13216 (noce_process_if_block): Set if_info->orig_x appropriately.
13217
13218 2016-01-11 Tom de Vries <tom@codesourcery.com>
13219
13220 PR tree-optimization/69069
13221 * tree-parloops.c (create_parallel_loop): Add missing phi args.
13222
13223 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
13224
13225 PR rtl-optimization/68920
13226 * config/i386/i386.c (ix86_option_override_internal): Restrict number
13227 of conditional moves for RTL if-conversion to 1 for
13228 TARGET_ONE_IF_CONV_INSN.
13229 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
13230 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
13231 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
13232 parameter to restirct number of conditional moves for
13233 RTL if-conversion.
13234 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
13235 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
13236 conditionl moves.
13237
13238 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
13239
13240 PR bootstrap/69123
13241 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
13242 onepart vars. Fix typo in comment. Fix reversed condition in
13243 unshare test.
13244 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
13245
13246 PR bootstrap/69123
13247 * var-tracking.c (dump_onepart_variable_differences): New.
13248 (dataflow_set_different): If a detailed dump is requested,
13249 delay early returns and dump differences between onepart
13250 variables present before and after, and added variables.
13251
13252 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
13253
13254 PR target/69010
13255 * expr.c (expand_expr_real_1): For boolean vector constants
13256 with a scalar mode use const_scalar_mask_from_tree.
13257 (const_scalar_mask_from_tree): New.
13258 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
13259 assigned to a mask type to handle constants.
13260
13261 2016-01-11 Martin Jambor <mjambor@suse.cz>
13262
13263 PR ipa/69044
13264 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
13265 useless parameters if we cannot change function signature.
13266
13267 2016-01-11 Martin Jambor <mjambor@suse.cz>
13268
13269 PR ipa/66616
13270 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
13271 flag.
13272
13273 2016-01-11 Tom de Vries <tom@codesourcery.com>
13274
13275 PR tree-optimization/69109
13276 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
13277 latch with phi.
13278
13279 2016-01-11 Tom de Vries <tom@codesourcery.com>
13280
13281 PR tree-optimization/69108
13282 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
13283 res is not used in a phi.
13284
13285 2016-01-11 Yury Gribov <y.gribov@samsung.com>
13286
13287 PR 67425
13288 * common.opt (frandom-seed): Fix parameter name.
13289 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
13290
13291 2016-01-11 Tom de Vries <tom@codesourcery.com>
13292
13293 PR tree-optimization/69058
13294 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
13295 not supported.
13296
13297 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
13298
13299 * config/arc/arc.opt (mdiv-rem): Add period to the end.
13300 (mcode-density): Likewise.
13301
13302 2016-01-10 Tom de Vries <tom@codesourcery.com>
13303
13304 PR tree-optimization/69062
13305 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
13306 (parallelize_loops): Don't paralelize loop that has phi with address
13307 arg.
13308
13309 2016-01-10 Tom de Vries <tom@codesourcery.com>
13310
13311 PR tree-optimization/69039
13312 * tree-parloops.c (try_create_reduction_list): Only allow single exit
13313 phi for reduction.
13314
13315 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
13316
13317 PR middle-end/68743
13318 * match.pd: Require target has function_c99_misc before doing
13319 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
13320
13321 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
13322
13323 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
13324 use GMPINC.
13325 * configure: Regenerate.
13326
13327 2016-01-09 Jakub Jelinek <jakub@redhat.com>
13328
13329 PR middle-end/50865
13330 PR tree-optimization/69097
13331 * fold-const.h (expr_not_equal_to): New prototype.
13332 * fold-const.c: Include stringpool.h and tree-ssanames.h.
13333 (expr_not_equal_to): New function.
13334 * match.pd (X % -Y is the same as X % Y): Don't optimize
13335 unless X is known not to be equal to minimum or Y is known
13336 not to be equal to -1.
13337 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
13338 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
13339 (simplify_stmt_using_ranges): Adjust caller.
13340 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
13341 substitute_and_fold.
13342
13343 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
13344
13345 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
13346 w/o DECL_NAME.
13347
13348 2016-01-08 Jakub Jelinek <jakub@redhat.com>
13349
13350 PR tree-optimization/69167
13351 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
13352 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
13353 ops[0] comparison.
13354 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
13355
13356 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
13357 Richard Biener <rguenther@suse.de>
13358
13359 PR tree-optimization/68707
13360 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
13361 instances that can be handled via vect_load_lanes.
13362
13363 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
13364
13365 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
13366 if we can't determine address equivalence.
13367 * alias.c (compare_base_decl): Update for changed return value of
13368 symtab_node::equal_address_to.
13369
13370 2016-01-08 Jason Merrill <jason@redhat.com>
13371
13372 PR c++/68983
13373 PR c++/67557
13374 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
13375 * expr.c (store_field): Not here.
13376 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
13377 call with TREE_ADDRESSABLE type.
13378 * tree-cfg.c (verify_gimple_call): Adjust.
13379
13380 2016-01-08 Olivier Hainque <hainque@adacore.com>
13381
13382 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
13383 libc_internal.
13384
13385 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
13386
13387 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
13388 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
13389 (reduc_smin_v2sf): Rename to...
13390 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
13391 (reduc_splus_v2sf): Rename to...
13392 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
13393
13394 2016-01-08 Jakub Jelinek <jakub@redhat.com>
13395
13396 PR tree-optimization/69162
13397 * gimplify.c (gimplify_va_arg_expr): Encode original type of
13398 valist argument in another argument.
13399 (gimplify_modify_expr): Adjust for the above change. Cleanup.
13400 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
13401 to determine the va_list type, build a MEM_REF instead of
13402 build_fold_indirect_ref.
13403
13404 PR tree-optimization/69172
13405 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
13406 gimple_build.
13407
13408 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
13409
13410 PR tree-optimization/67781
13411 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
13412 and cmpnop in two steps: first the ones not accessed in original
13413 gimple expression in a endian independent way and then the ones not
13414 accessed in the final result in an endian-specific way.
13415
13416 2016-01-08 Jakub Jelinek <jakub@redhat.com>
13417
13418 PR tree-optimization/69083
13419 * tree-vect-slp.c (vect_get_constant_vectors): For
13420 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
13421 element type. If op is fold_convertible_p to vector_type's element
13422 type, use NOP_EXPR instead of VCE.
13423
13424 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
13425
13426 PR rtl-optimization/67778
13427 PR rtl-optimization/68634
13428 PR rtl-optimization/68909
13429 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
13430 block from the stack until done with it. Remove a superfluous
13431 bitmap set. Remove a superfluous bitmap test.
13432
13433 2016-01-07 Martin Sebor <msebor@redhat.com>
13434
13435 PR c/68966
13436 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
13437 constraint on the type of arguments.
13438
13439 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
13440
13441 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
13442 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
13443 unaligned_access on the gcc_options set.
13444 * config/arm/arm.c (arm_option_override_internal): Use
13445 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
13446
13447 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
13448
13449 PR target/69140
13450 * config/i386/i386.c (ix86_frame_pointer_required): Enable
13451 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
13452
13453 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
13454
13455 Revert
13456 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
13457
13458 PR target/69140
13459 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
13460 depending on frame_pointer_needed before remaining integer and SSE
13461 registers are saved.
13462
13463 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
13464
13465 PR 1078
13466 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
13467
13468 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
13469
13470 PR target/69171
13471 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
13472 Use the "xBm" constraint.
13473 (float<sseintvecmodelower><mode>2<mask_name><round_name):
13474 Likewise.
13475 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
13476 (sse_cvtsi2ssq<round_name>): Likewise.
13477 (sse_cvtss2si<round_name>): Likewise.
13478 (sse_cvtss2siq<round_name>): Likewise.
13479 (sse2_cvtsi2sdq<round_name>): Likewise.
13480 (sse2_cvtsd2si<round_name>): Likewise.
13481 (sse2_cvtsd2siq<round_name>): Likewise.
13482 * config/i386/subst.md (round_nimm_scalar_predicate): New
13483 predicate.
13484
13485 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
13486
13487 PR middle-end/67639
13488 * varasm.c (make_decl_rtl): Mark invalid register vars as
13489 DECL_EXTERNAL.
13490
13491 PR rtl-optimization/66206
13492 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
13493 All callers changed.
13494
13495 2016-01-07 Jakub Jelinek <jakub@redhat.com>
13496
13497 PR tree-optimization/69141
13498 * tree-ssa-pre.c: Include langhooks.h.
13499 (eliminate_dom_walker::before_dom_children): Use
13500 lang_hooks.decl_printable_name instead of
13501 cgraph_node::get ()->name ().
13502
13503 PR middle-end/68960
13504 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
13505 it and DECL_ALIGN too.
13506
13507 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
13508
13509 * config/mips/mips-ftypes.def: Sort to lexicographical order.
13510
13511 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
13512
13513 PR target/69140
13514 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
13515 depending on frame_pointer_needed before remaining integer and SSE
13516 registers are saved.
13517
13518 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13519
13520 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
13521 mode iterator with VSX_M2.
13522 (*p9_vecstore_<mode>): Likewise.
13523 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
13524 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
13525 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
13526 (define_split for VSX_LE128 stores): Likewise.
13527 (define_peephole2 for TImode LE swaps): Likewise.
13528 (define_split for VSX_LE128 post-reload stores): Likewise.
13529
13530 2016-01-06 Marek Polacek <polacek@redhat.com>
13531
13532 PR sanitizer/69099
13533 * convert.c (convert_to_integer_1): Adjust call to
13534 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
13535 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
13536 EXPR instead of ARG.
13537 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
13538
13539 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
13540
13541 PR 1078
13542 * doc/extend.texi (RL78 Variable Attributes): New section.
13543
13544 2016-01-05 Marek Polacek <polacek@redhat.com>
13545
13546 PR c/69104
13547 * builtins.c (get_memmodel): Use expansion point location rather than
13548 the input location. Call warning_at rather than warning.
13549 (expand_builtin_atomic_compare_exchange): Likewise.
13550 (expand_builtin_atomic_load): Likewise.
13551 (expand_builtin_atomic_store): Likewise.
13552 (expand_builtin_atomic_clear): Likewise.
13553
13554 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
13555
13556 PR target/68991
13557 * config/i386/i386.c (ix86_expand_vector_logical_operator):
13558 Replace nonimmediate_operand with vector_operand.
13559 * config/i386/predicates.md (vector_operand): New predicate.
13560 (general_vector_operand): Replace nonimmediate_operand with
13561 vector_operand.
13562 * config/i386/sse.md: Replace nonimmediate_operand with
13563 vector_operand and m constraint with Bm constraint on SSE
13564 patterns with 16-byte memory operand.
13565 * config/i386/subst.md (round_nimm_predicate): Replace
13566 nonimmediate_operand with vector_operand.
13567 (round_saeonly_nimm_predicate): Likewise.
13568 (round_saeonly_nimm_scalar_predicate): New.
13569
13570 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
13571
13572 PR target/68991
13573 * config/i386/constraints.md (Bm): New constraint.
13574 * config/i386/predicates.md (vector_memory_operand): New
13575 predicate.
13576 * config/i386/sse.md: Replace xm with xBm in plusminus and
13577 any_logic patterns.
13578
13579 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
13580
13581 PR 1078
13582 * doc/extend.texi (V850 Function Attributes): New section.
13583 (V850 Variable Attributes): New section.
13584
13585 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
13586
13587 PR 1078
13588 * doc/extend.texi (MicroBlaze Function Attributes): Document
13589 interrupt_handler and fast_interrupt attributes.
13590
13591 2016-01-05 Sergei Trofimovich <siarheit@google.com>
13592
13593 PR other/60465
13594 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
13595 for local symbolic operands.
13596 * config/ia64/predicates.md (local_symbolic_operand64): New
13597 predicate.
13598
13599 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13600
13601 PR rtl-optimization/68651
13602 * combine.c (combine_simplify_rtx): Canonicalize x + x into
13603 x << 1.
13604
13605 2016-01-05 Nathan Sidwell <nathan@acm.org>
13606
13607 * alias.c (compare_base_decls): Use symtab_node::get.
13608
13609 2016-01-05 Nick Clifton <nickc@redhat.com>
13610
13611 PR target/68770
13612 * ira-costs.c (copy_cost): Initialise the t_icode field of the
13613 secondary_reload_info structure.
13614
13615 PR target/66655
13616 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
13617 decls if weak support is available.
13618
13619 2016-01-04 Martin Sebor <msebor@redhat.com>
13620
13621 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
13622
13623 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
13624
13625 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
13626 OPTION_MASK_P9_DFORM.
13627
13628 * config/rs6000/constraints.md (wo constraint): New constraint for
13629 ISA 3.0 (power9).
13630
13631 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
13632 for wo constraint.
13633 (rs6000_init_hard_regno_mode_ok): Likewise.
13634
13635 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
13636 wo constraint.
13637
13638 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
13639 expanders not to have constraints. Add support for ISA 3.0 xxperm
13640 instruction. Add support for fusing xxlor with xxperm.
13641 (altivec_vperm_<mode>_internal): Likewise.
13642 (altivec_vperm_v8hiv16qi): Likewise.
13643 (altivec_vperm_<mode>v16q): Likewise.
13644 (altivec_vperm_<mode>_uns): Likewise.
13645 (vperm_v8hiv4si): Likewise.
13646 (vperm_v16qiv8hi): Likewise.
13647
13648 * doc/md.texi (RS/6000 constraints): Document wo constraint.
13649
13650 2016-01-04 Jakub Jelinek <jakub@redhat.com>
13651
13652 Update copyright years.
13653
13654 * gcc.c (process_command): Update copyright notice dates.
13655 * gcov-dump.c (print_version): Ditto.
13656 * gcov.c (print_version): Ditto.
13657 * gcov-tool.c (print_version): Ditto.
13658 * gengtype.c (create_file): Ditto.
13659 * doc/cpp.texi: Bump @copying's copyright year.
13660 * doc/cppinternals.texi: Ditto.
13661 * doc/gcc.texi: Ditto.
13662 * doc/gccint.texi: Ditto.
13663 * doc/gcov.texi: Ditto.
13664 * doc/install.texi: Ditto.
13665 * doc/invoke.texi: Ditto.
13666
13667 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13668
13669 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
13670 modes larger than TImode as TImode if NEON is not enabled.
13671
13672 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13673
13674 PR target/69100
13675 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
13676 mode for %f0-%f31 only if TARGET_FPU.
13677
13678 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
13679
13680 PR target/69072
13681 * config/sparc/sparc.c (scan_record_type): Take into account subfields
13682 to compute the PACKED_P predicate.
13683 (function_arg_record_value): Minor tweaks.
13684
13685 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
13686
13687 * doc/install.texi (--with-multilib-list): Describe the meaning of the
13688 option for arm*-*-* targets.
13689
13690 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
13691
13692 * doc/extend.texi (Common Function Attributes): Move docs for
13693 MSP430-specific attributes to....
13694 (MSP430 Function Attributes): ...here. Delete the redundant
13695 entries and copy-edit the remaining text.
13696 (MSP430 Variable Attributes): Use uniform format for index
13697 entries and add a cross-reference to the corresponding function
13698 attribute docs.
13699
13700 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
13701
13702 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
13703 -finite-math typo.
13704 (x86 Options): Likewise.
13705
13706 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
13707
13708 PR 1078
13709
13710 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
13711 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
13712 to corresponding attribute.
13713
13714 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
13715
13716 * doc/extend.texi (Common Function Attributes) <noplt>: Move
13717 to correct alphabetization of table. Copy-edit and correct
13718 markup.
13719 <stack_protect>: Likewise.
13720 <target_clones>: Likewise.
13721 <simd>: Likewise.
13722 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
13723 Correct punctuation.
13724 (Code Gen Options) <-fno-plt>: Copy-edit.
13725
13726 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
13727
13728 PR target/68917
13729 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
13730 SI values. Explicitly convert SI to DI and vice-versa.
13731
13732 2016-01-01 Jakub Jelinek <jakub@redhat.com>
13733
13734 PR tree-optimization/69070
13735 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
13736 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
13737
13738 PR sanitizer/69055
13739 * ubsan.c (ubsan_instrument_float_cast): Call
13740 initialize_sanitizer_builtins.
13741
13742 PR target/69015
13743 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
13744 \f
13745 Copyright (C) 2016 Free Software Foundation, Inc.
13746
13747 Copying and distribution of this file, with or without modification,
13748 are permitted in any medium without royalty provided the copyright
13749 notice and this notice are preserved.